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

本文详细介绍了如何使用Matlab实现离散时间信号的基本操作,包括绘制单位脉冲、移位信号、阶跃序列、矩形序列、实指数序列和正弦序列,以及计算和绘图序列和、DTFT和离散卷积。通过实例展示了如何在Matlab中完成这些信号处理任务。
摘要由CSDN通过智能技术生成

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

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) + R8(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)] * R8(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)'); 

结果如图:      

%②其移位信号δ(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)');

结果如图: 

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)');

结果如图:

3)矩形序列RN(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');

 结果如图:

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');

结果如图:

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

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

 结果如图:

任务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;

 结果如图:

任务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');

结果如图:

任务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;

结果如图所示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>