离散系统的冲激响应、卷积和

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

三、实验原理:

在离散时间情况下,最重要的是线性时不变(LTI )系统。线性时不变系统的输入输出关系可通过冲激响应][n h 表示

∑∞

-∞=-=

*=k k n h k x n h n x n y ][][][][][ 其中*表示卷积运算,MATLAB 提供了求卷积函数conv ,即

y =conv(x,h)

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

2)()(-+++≤≤+h x h x h x N N n n n n n

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

filter 命令计算线性常系数差分方程表征的因果LTI 系统在某一给定输入时的输出。具体地说,考虑一个满足下列差分方程的LTI 系统:

∑∑==-=-M

m m N k k m n x b k n y a

00][][ 式中x [n ]是系统输入,y [n ]是系统输出。若x 是包含在区间1-+≤≤x x x N n n n 内x [n ]的一个MATLAB 向量,而向量a 和b 包含系数k a 和k b ,那么

y=filter(b,a,x)

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

∑∑==-+=-+M

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

注意,k a k a =+)1(和m b m b =+)1(,因为MATLAB 要求所有的向量序号都从1

开始。例如,为了表示差分方程]1[3][]1[2][--=-+n x n x n y n y 表征的系统,就应该定义a=[1 2] 和 b =[1 -3]。 由filter 产生的输出向量y 包含了y [n ]在与向量x 中所在样本同一区间上的样本,即1-+≤≤x x x N n n n ,以使得两个向量x 和y 中都包含了x N 个样本。

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

五、实验内容:

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

实验内容(二)、MATLAB 仿真

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

七、实验步骤:

1、考虑有限长信号

1,05[]0,n x n n ≤≤⎧=⎨⎩其余 ,05[]0,n n h n n

≤≤⎧=⎨⎩其余 (a) 首先用解析方法计算[][]*[]y n x n h n =。

(b) 接下来利用conv 计算[][]*[]y n x n h n =的非零样本值,并将这些样本存 入向量y 中。构造一个标号向量ny ,对应向量y 样本的序号。

用stem(ny ,y )画出这一结果。验证其结果与(a )是否一致。

2、对以下差分方程描述的系统

]2[2]1[][5.0][-+-+=n x n x n x n y

][2]1[8.0][n x n y n y +-=

]1[2]1[8.0][-=--n x n y n y

分别利用filter 计算出输入信号][][n nu n x =在41≤≤n 区间内的响应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=在4

nu

n

]

[n

[

≤n区间内的响应y[n]

1≤

Matlab 程序源代码:

n

x

=n

+

n

-

y如下:

x

n

x

]

]1

2

[

+

[

]2

[-

[

]

5.0

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

y+

=如下:

-

x

n

[n

[

]1

2

]

8.0

[

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

输出图像:

x

-n

-

n

y如下:

=

y

n

8.0

[

]1

2

]1

]

[

[-

相关文档
最新文档