离散系统的冲激响应、卷积和 下载本文

内容发布更新时间 : 2024/6/26 17:05:06星期一 下面是文章的全部内容请认真阅读。

电 子 科 技 大 学

实 验 报 告

学生姓名:彭淼 学 号:2903101008 指导教师:魏芳伟 一、实验室名称:信号与系统实验室

二、实验项目名称:离散系统的冲激响应、卷积和 三、实验原理:

在离散时间情况下,最重要的是线性时不变(LTI)系统。线性时不变系统

的输入输出关系可通过冲激响应h[n]表示

y[n]?x[n]?h[n]?k????x[k]h[n?k]

?其中?表示卷积运算,MATLAB提供了求卷积函数conv,即

y=conv(x,h)

这里假设x[n]和h[n]都是有限长序列。如果x[n]仅在nx?n?nx?Nx?1区间内为非零,而h[n]仅在nh?n?nh?Nh?1上为非零,那么y[n]就仅在

(nx?nh)?n?(nx?nh)?Nx?Nh?2

内为非零值。同时也表明conv只需要在上述区间内计算y[n]的Nx?Nh?1个样本值。需要注意的是,conv并不产生存储在y中的y[n]样本的序号,而这个序号是有意义的,因为x和h的区间都不是conv的输入区间,这样就应负责保持这些序号之间的联系。

filter命令计算线性常系数差分方程表征的因果LTI系统在某一给定输入时的

输出。具体地说,考虑一个满足下列差分方程的LTI系统:

?ak?0Nky[n?k]??bmx[n?m]

m?0M式中x[n]是系统输入,y[n]是系统输出。若x是包含在区间nx?n?nx?Nx?1内x[n]的一个MATLAB向量,而向量a和b包含系数ak和bk,那么

y=filter(b,a,x)

就会得出满足下面差分方程的因果LTI系统的输出:

?a(k?1)y[n?k]??b(m?1)x[n?m]

k?0m?0NM注意,a(k?1)?ak和b(m?1)?bm,因为MATLAB要求所有的向量序号都从1开始。例如,为了表示差分方程y[n]?2y[n?1]?x[n]?3x[n?1]表征的系统,就应该定义a=[1 2] 和 b=[1 -3]。 由filter产生的输出向量y包含了y[n]在与向量x中所在样本同一区间上的样本,即nx?n?nx?Nx?1,以使得两个向量x和y中都包含了Nx个样本。

四、实验目的:加深对离散系统冲激响应、卷积和分析方法的理解。 五、实验内容:

实验内容(一)、使用实验仿真系统(略) 实验内容(二)、MATLAB仿真

六、实验器材(设备、元器件):计算机、MATLAB软件。 七、实验步骤:

1、考虑有限长信号

?1,0?n?5x[n]??

?0,其余n?n,0?n?5h[n]??

?0,其余n(a) 首先用解析方法计算y[n]?x[n]*h[n]。

(b) 接下来利用conv计算y[n]?x[n]*h[n]的非零样本值,并将这些样本存 入向量y中。构造一个标号向量ny,对应向量y样本的序号。 用stem(ny,y)画出这一结果。验证其结果与(a)是否一致。 2、对以下差分方程描述的系统

y[n]?0.5x[n]?x[n?1]?2x[n?2] y[n]?0.8y[n?1]?2x[n]

y[n]?0.8y[n?1]?2x[n?1]

分别利用filter计算出输入信号x[n]?nu[n]在1?n?4区间内的响应y[n]。

八、实验数据及结果分析:

1、利用conv计算y[n]?x[n]*h[n]的非零样本值

Matlab 程序源代码:

a=[ones(1,6)];

h=[0,1,2,3,4,5]; y=conv(a,h); m=length(y)-1; ny=0:1:m;

stem(ny,y,'fill');grid on;

xlabel('Time index n');ylabel('Conversation y')

输出图像:

2、利用filter计算出输入信号x[n]?nu[n]在1?n?4区间内的响应y[n]

Matlab 程序源代码:

y[n]?0.5x[n]?x[n?1]?2x[n?2]如下:

a1=[0.5,1,2]; b1=[1]; n=1:4;

x1=[1 zeros(1,3)]; y1=filter(a1,b1,x1); stem(n,y1,'fill');

title('y[n]=0.5x[0]+x[n-1]+2x[n-2]'); xlabel('x');ylabel('y');

输出图像:

y[n]?0.8y[n?1]?2x[n]如下:

a2=[2];

b2=[1,-0.8]; n=1:4;

x2=[1 zeros(1,3)]; y2=filter(a2,b2,x2); stem(n,y2,'fill');

title('y[n]=0.8y[n-1]+2x[n]'); xlabel('x'); ylabel('y');

输出图像:

y[n]?0.8y[n?1]?2x[n?1]如下:

a3=[0,2]; b3=[1,-0.8]; n=1:4;

x3=[1 zeros(1,3)]; y3=filter(a3,b3,x3); stem(n,y3,'fill');

title('y[n]-0.8y[n-1]=2x[n-1]'); xlabel('x');ylabel('y');

输出图像:

九、实验结论:

Matlab功能很强大,能快速方便地模拟出离散冲激响应和卷积积分。

十、总结及心得体会:

Matlab功能很强大,能快速方便地模拟出离散冲激响应和卷积积分。

十一、对本实验过程及方法、手段的改进建议:(略)

报告评分:

指导教师签字: