《数字信号处理A》实验报告
实验二实验名称:离散系统的差分方程、冲激响应与卷积分析专业及班级:电子131 姓名:XXX 学号:XXXXXX 一、实验目的
加深对离散系统的差分方程、冲激响应与卷积分析方法的理解。
二、实验步骤(附源代码及仿真结果图)
1、以下程序中分别使用conv与filter函数计算h与x的卷积y与y1,运行程序,并分析y与y1就是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j 个值,使用filter完成卷积功能,需要如何补零?
编制程序求解下列两个系统的单位冲激响应与阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
+n
x
-
-
=
n
+
n
y
y
n
y
n
x
-
]2
[
[
]
]1
[-
125
[
.0
]
.0
75
[
]1
给出理论计算结果与程序计算结果并讨论。
a.单位冲激响应:
(1)用filter函数
a1=[1,0、75,0、125];
b1=[1,-1];
n=0:20;
x1=[1 zeros(1,20)];
y1filter=filter(b1,a1,x1);
stem(n,y1filter);
title('y1filter');
xlabel('x');
ylabel('y');
2468
101214161820
y1filter
x
y
(2)用conv 函数
a1=[1,0、75,0、125]; b1=[1,-1];
x1=[1 zeros(1,10)]; [h]=impz(b1,a1,10); y1conv=conv(h,x1); n=0:19;
stem(n,y1conv,'filled')
2468101214161820
a1=[1,0、75,0、125]; b1=[1,-1];
impz(b1,a1,21);
n (samples)
A m p l i t u d e
Impulse Response
b. 单位阶跃响应: (1) 用filter 函数 a1=[1,0、75,0、125]; b1=[1,-1]; n=0:20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2); stem(n,y1filter); title('y1filter_step'); xlabel('x');
ylabel('y');
y1filter tep
x
y
a1=[1,0、75,0、125]; b1=[1,-1]; x2=ones(1,21);
[h]=impz(b1,a1,20); y1=conv(h,x2); y1conv=y1(1:21); n1=0:20;
stem(n1,y1conv,'filled'); title('y1conv'); xlabel('n'); ylabel('y1[n]');
02468
101214161820
n
y 1[n ]
2、编制程序求解下列两个系统的单位冲激响应与阶跃响应,并绘出其图形。
要求分别用 filter 、conv 、impz 三种函数完成。
]}4[]3[]2[]1[{25.0][-+-+-+-=n x n x n x n x n y
给出理论计算结果与程序计算结果并讨论 a 、单位冲激响应: (1)用filter 函数 a1=[1];
b1=[0、25,0、25,0、25,0、25]; n=0:20;
x1=[1 zeros(1,20)];
y1filter=filter(b1,a1,x1); stem(n,y1filter); title('y1filter'); xlabel('x'); ylabel('y');
y
x
(2)用conv函数
a1=[1];
b1=[0,0、25,0、25,0、25,0、25];
x1=[1 zeros(1,10)];
[h]=impz(b1,a1,10);
y1conv=conv(h,x1);
n=0:19;
stem(n,y1conv,'filled')
(3)用impz函数
a1=[1];
b1=[0,0、25,0、25,0、25,0、25];
impz(b1,a1,21);
n (samples)
A m p l i t u d e
b 、单位阶跃响应: (2) 用filter 函数 a1=[1];
b1=[0,0、25,0、25,0、25,0、25]; n=0:20;
x2=ones(1,21);
y1filter=filter(b1,a1,x2); stem(n,y1filter); title('y1filter_step'); xlabel('x'); ylabel('y');
y1filter s tep
x
y
(2)用conv 函数 a1=[1];
b1=[0,0、25,0、25,0、25,0、25]; x2=ones(1,21);
[h]=impz(b1,a1,20); y1=conv(h,x2); y1conv=y1(1:21); n1=0:20;
stem(n1,y1conv,'filled'); title('y1conv'); xlabel('n'); ylabel('y1[n]');
n
y 1[n ]
三、总结与体会
通过这次实验,我对冲激函数跟阶跃函数的理解更加加深了,同时加深对离散系统的差分方程、冲激响应与卷积分析方法的理解。
把课本上的内容很好的应用并且理解,做到了学以致用,这个过程中也出现了很多的问题,例如输入程序时发生错误,导致失败,上一次也出现过这样的问题,所以我提前把程序输入到Word 里保存下来,这样就会节省很多的时间,将更多的时间用于程序的理解中,这次实验还让我懂了一个道理,就就是有些事情的本质就是一样的,变化的只就是一层外表,这次实验的两个题目本质上没有变化,只就是变了一些参数,真正懂了之后就会知道怎么样去做。