Advertisement

数字信号处理实验一 离散时间信号分析与离散时间系统分析

阅读量:

一、【实验内容及基本要求】:

1.任务1:用Matlab实现下列基本离散时间信号(序列)并画出图形。

1)单位脉冲序列 δ(n)及其移位信号 δ(n-5);

2)单位阶跃序列 u(n);

3)矩形序列 RN(n),其中N=8;

4)实指数序列x(n)=anu(n),分别画出a=1.6,a=-1.6,a=0.9,a=-0.9的实指数序列。

5)正弦序列x(n)=sin(πn/10);__

2.任务2:用Matlab计算下列两个序列的和,并画出y(n)图形。

y(n)= 2 δ(n-3)+__ 5 δ(n-5) + R 8(n-2).

3.任务3:设序列x(n)的波形如图1所示,使用Matlab计算x(n)的DTFT,分别通过DTFT的定义(即教材公式1.9),及x(n)的表达式(即等比数列求和公式)这2种方法绘制出幅度特性图与相位特性图(如图2所示)。

4.任务4:用Matlab实现下列信号的离散卷积,并画出输入信号及卷积信号的图形。

y(n)= [2 δ(n-3)+__ 5 δ(n-5)] * R 8(n-2).

二、【实验过程及实验步骤】:

任务1:用Matlab实现下列基本离散时间信号(序列)并画出图形。

1)单位脉冲序列 δ(n)及其移位信号 δ(n-5);

复制代码
  
    
 %单位脉冲序列δ(n)代码如下:
    
 n = -5:5;
    
 x = n == 0;% 当n为0时,x的值为1
    
 stem(n, x, 'filled');
    
 axis([-5 5 0 1.1*max(x)]);%规定坐标轴的范围
    
 xlabel('时间(n)');ylabel('幅度(n)'); 
    
    
    
    
    Matlab
    
    

结果如图:

复制代码
 %②其移位信号δ(n-5)代码如下:

    
 n = -5:10;
    
 x = n ==5;	%当n为5时,x的值为1
    
 stem(n, x, 'filled');
    
 axis([-5 10 0 1.1*max(x)]);%规定坐标轴的范围
    
 xlabel('时间(n)');ylabel('幅度(n)');
    
    
    
    
    Matlab
    
    

结果如图:

2)单位阶跃序列 u(n);

复制代码
 %单位阶跃信号

    
 n = -2:8;
    
 x = n >= 0; % 当n大于等与零时,其值为1
    
 stem(n, x, 'filled');
    
 axis([-4, 4, 0, 1.1*max(x)]);
    
 title('阶跃信号');
    
 xlabel('时间(n)');ylabel('幅度(n)');
    
    
    
    
    Matlab
    
    

结果如图:

3)矩形序列 R N(n),其中N=8代码如下:

复制代码
 %矩形序列

    
 n=0:8;
    
 x= n>=0&n<=7;  %当x大于等于0小于等于7时为1
    
 stem(n,x,'filled');
    
 axis([0 8 -0.1 1.1]);
    
 title('矩阵序列');
    
 xlabel('x');
    
 ylabel('n');
    
    
    
    
    Matlab
    
    

结果如图:

4)实指数序列x(n)=anu(n),分别画出a=1.6,a=-1.6,a=0.9,a=-0.9的实指数序列代码如下:

复制代码
 n=1:11;

    
 a1=1.6;a2=-1.6;a3=0.9;a4=-0.9;
    
 x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;
    
 subplot(2,2,1);
    
 stem(n,x1,'filled'),grid on;
    
 xlabel('n');title('a=1.6');
    
 subplot(2,2,2);
    
 stem(n,x2,'filled'),grid on;
    
 xlabel('n');title('a=-1.6');
    
 subplot(2,2,3);
    
 stem(n,x3,'filled'),grid on;
    
 xlabel('n');title('a=0.9');
    
 subplot(2,2,4);
    
 stem(n,x4,'filled'),grid on;
    
 xlabel('n');title('a=-0.9');
    
    
    
    
    Matlab
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/S0ewaCV3KlP7Tu6iJktXhd1vrAnU.png)

结果如图:

5)正弦序列x(n)=sin(πn/10)代码如下:

复制代码
 n = -20:20;

    
 x = sin(pi * n / 10);
    
 stem(n, x,'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('正弦序列');
    
    
    
    
    Matlab
    
    

结果如图:

任务2:用Matlab计算下列两个序列的和,并画出y(n)图形。

y(n)= 2δ(n-3)+ 5δ(n-5) + R8(n-2).

代码如下:

复制代码
 n = -5:10;

    
 % 定义输入信号
    
 x1 = 2 * (n == 3);
    
 x2 = 5 * (n == 5);
    
 x3 = 1 * (n>=2 & n<=9);
    
 x = x1 + x2 + x3;
    
 % 定义冲激响应
    
 h = ones(size(n));
    
 h(n < 2) = 0;
    
   
    
 % 绘制输入信号及序列和信号图形
    
 figure;
    
 subplot(4, 1, 1);
    
 stem(n, x1, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('输入信号 2δ(n-3)');
    
 grid on;
    
  
    
 subplot(4, 1, 2);
    
 stem(n, x2, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('输入信号 5δ(n-5)');
    
 grid on;
    
  
    
 subplot(4, 1, 3);
    
 stem(n, x3, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('输入信号 R8(n-2)');
    
 grid on;
    
  
    
 subplot(4, 1, 4);
    
 stem(n, x, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('序列和信号 y(n)');
    
 grid on;
    
    
    
    
    Matlab
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/8dG0kebN7p2S14ItOPhYiBmJswFz.png)

结果如图:

任务3:设序列x(n)的波形如图1所示,使用Matlab计算x(n)的DTFT,分别通过DTFT的定义(即教材公式1.9),及x(n)的表达式(即等比数列求和公式)这2种方法绘制出幅度特性图与相位特性图(如图2所示)
图1 x(n)波形图
图2 x(n)经DTFT后的幅度特性与相位特性曲线(频谱)

代码如下:

复制代码
 %用DTFT定义计算

    
 n=0:5;xn=ones(1, 6);
    
 k=-100:100;w=(pi/100)* k;
    
 X=xn*(exp( -j* pi/100)).^ (n'*k);
    
 magX=abs(X) ;angX=angle(X);
    
 subplot(2,1,1);plot(w/pi,magX) ;
    
 grid;
    
 axis([-1,1,0, 8]);
    
 title('幅度特性');
    
 xlabel('频率(单位\pi)');
    
 ylabel('幅度|x(e^ j\omega)|');
    
 subplot(2,1,2);
    
 plot(w/pi,angX/pi);
    
 grid;
    
 axis([-1,1,-1,1]);title('相位特性');
    
 xlabel('频率(单位\pi)');ylabel('弧度/\pi');
    
  
    
 %用表达式计算
    
 w=w+(w==0)*eps;%避免0/0
    
 x=exp(-j*5*w/2).* sin (3*w)./ sin (w/2);
    
 figure(2);
    
 subplot(2,1,1);plot( w/pi, abs(x)) ;
    
 grid;
    
 axis([-1,1,0, 8]);
    
 title('幅度特性');
    
 xlabel('频率(单位\pi)');
    
 ylabel('幅度|x(e^ j\omega)|');
    
 subplot(2,1,2);
    
 plot(w/pi,angX/pi);
    
 grid;
    
 axis([-1,1,-1,1]);
    
 title('相位特性');
    
 xlabel('频率(单位\pi)');ylabel('弧度/\pi');
    
    
    
    
    Matlab
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/26vhDrMKk1Q49H5oWgTduCwIqbeV.png)

结果如图:

任务4:用Matlab实现下列信号的离散卷积,并画出输入信号及卷积信号的图形。

y(n)= [2δ(n-3)+ 5δ(n-5)] * R8(n-2).

代码如下:

复制代码
 n = -10:20;

    
 % 定义输入信号
    
 x1 = 2 * (n == 3);
    
 x2 = 5 * (n == 5);
    
 x = x1 + x2;
    
 % 定义冲激响应
    
 h = ones(size(n));
    
 h(n < 2) = 0;
    
  
    
 % 计算离散卷积
    
 y = conv(x, h, 'same');
    
  
    
 % 绘制输入信号及卷积信号图形
    
 figure;
    
 subplot(3, 1, 1);
    
 stem(n, x1, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('输入信号 2δ(n-3)');
    
 grid on;
    
  
    
 subplot(3, 1, 2);
    
 stem(n, x2, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('输入信号 5δ(n-5)');
    
 grid on;
    
  
    
 subplot(3, 1, 3);
    
 stem(n, y, 'filled');
    
 xlabel('n');
    
 ylabel('Amplitude');
    
 title('卷积信号 y(n)');
    
 grid on;
    
    
    
    
    Matlab
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/sWYi1EdfJUNBIPTK7jQra8ZF0hq5.png)

结果如图所示:

全部评论 (0)

还没有任何评论哟~