实验报告
通信工程  1101
学号:*********
*****  *
实验2  用MATLAB进行信号频谱分析
一、实验目的
㈠ 初步掌握MATLAB产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理
㈠ 常用的离散时间信号
在 MATLAB语言主要是研究离散信号的。常用的离散信号有:
1.单位取样序列   
                     
    2.单位阶跃序列
                     
3.实指数序列
                   
4.复指数序列
                   
5.正(余)弦序列
                       
6.周期序列
                     
㈡ 离散信号的产生
离散信号的图形显示使用stem指令。
    在 MATLAB中的信号处理工具箱中,主要提供的信号是离散信号。
由于MATLAB对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3…
因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如
      n=[-3,-2,-1,0,l,2,3,4,5]; 
      x=[1,-l,3,2,0,4,5,2,1];
这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。
    1.单位取样序列   
                     
这一函数实现的方法有二:
方法一:可利用MATLAB的zeros函数。
      x=zeros(1,N);    %建立一个一行N列的全零数组
  x(1)=1;            %对X(1)赋1
    方法二:可借助于关系操作符实现
  n=1:N;             
  x=[n==1];  %n等于1时逻辑关系式结果为真,x=1;n不等于1时为假,x=0
如要产生             
则可采用MATLAB实现:
      n=n1:n2;
  x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;nn0时为假,x=0
    2.单位阶跃序列
                     
    这一函数可利用MATLAB的ones函数实现:
      x=ones(1,N);
还可借助于关系操作符“>=”来实现。如要产生在n1≤n0≤n2上的单位阶跃序列
                     
则可采用MATLAB实现:
用subplot函数
        n=n1:n2;
  x=[(n-n0)>=0]; %n-n00为真,x=1;n-n00时为假,x=0
    3.实指数序列
采用MATLAB实现:
        n=0:N-l;
        x=a.^n; 
    4.复指数序列
采用MATLAB实现:
        n=0:N-1;
        x=exp((lu+j*w0)*n);
  5.正(余)弦序列
                                   
采用MATLAB实现:
        n=0:N-l;
      x=cos(w0*n+Q);
  6.随机序列
    MATLAB中提供了两类(伪)随机信号:
    rand(1,N)产生[0,1)上均匀分布的随机矢量;
    randn(1,N)产生均值为0,方差为1的高斯随机序列,也就是白噪声序列。其它分布的随机数可通过上述随机数的变换而产生。
  7.周期序列
                     
    例如,设t1表示T序列中一个周期的序列,要产生4个周期的T序列,用MATLAB实现:
T=[t1 t1 t1 t1];
例1:编写MATLAB程序来产生下列基本脉冲序列。
    (1)单位脉冲序列:起点no,终点nf,在ns处有一单位脉冲(no≤ns≤nf)。
    (2)单位阶跃序列: 起点no,终点nf,在ns前为0,在ns处及以后为l(no≤ns≤nf)。
    (3)实数指数序列:   
    (4)复数指数序列:   
其MATLAB程序及结果如下,运行结果如图7-3-1所示。
n0=0;nf=10;ns=3;
    n1=n0:nf;x1=[(n1-ns)==0];            %单位脉冲序列
    n2=n0:nf;x2=[(n2-ns)>=0];          %单位阶跃序列
    n3=n0:nf;x3=(0.75).^n3;              %实数指数序列
    n4=n0:nf;x4=exp((-0.2+0.7j)*n4);   %复数指数序列
subplot(2,2,1),stem(n1,x1); 
subplot(2,2,2),stem(n2,x2);
    subplot(2,2,3),stem(n3,x3);
    subplot(4,2,6),stem(n4,real(x4));   %注意subplot的输入变元
    subplot(4,2,8),stem(n4,imag(x4));
图7-3-1      例1 基本脉冲序列
例2:一个连续的锯齿波信号频率为1Hz,振幅值幅度为1V,在窗口上显示两个周期的信号波形,对它进行32点采样获得离散信号,试显示原信号和其采样获得离散信号波形。(见图7-3-2)
f=1;Um=1;nt=2;                      %输入信号频率、振幅和显示周期个数
N=32;T=nt/f;                        %N为采样点数,T为窗口显示时间

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。