1、数字信号处理实验二实验二 离散时间系统的时域分析实验室名称: 实验时间: 姓 名: 学号: 专业: 指导教师:成绩教师签名: 年 月 日一、实验目的1.利用MATLAB仿真简单的离散时间系统,研究其时域特性;2.对线性时不变系统进行重点分析研究,掌握其特性。二、实验容2.1 对M=2,运行上述程序,生成输入xn=s1n+s2n的输出信号。输入xn的哪个分量被该离散时间系统抑制?2.2 若线性时不变系统由yn=0.5(xn+xn-1)变成yn=0.5(xn-xn-1),对输入xn=s1n+s2n的影响是什么?2.4 修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信
2、号作为输入信号(见程序P1.7),计算其输出信号。你能用该系统对扫频信号的响应来解释习题Q2.1和习题Q2.2的结果吗?2.7 运行程序P2.3,对由加权输入得到的yn与在相同权系数下输出y1n和y2n相加得到的ytn进行比较,这两个序列是否相等?该系统是线性系统吗?2.12 运行程序P2.4并比较输出序列yn和ydn-10。这两个系列之间有什么关系?该系统是时不变系统吗?2.19 运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。2.20 修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本: 2.23 运行程序P2.6,计算输出序列yn和y2n以及差值信号dn
3、。Yn和y2n相等吗?2.28 运行程序P2.7,对序列hn和xn求卷积,生成yn,并用滤波器hn对输入xn滤波,求得y1n。yn和y1n有差别吗?为什么要使用对xn补零后得到的x1n作为输入来产生y1n?三、实验器材及软件1. 微型计算机1台2. MATLAB 7.0软件四、实验原理 1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为归纳上式可得此式表示了一个因果M点平滑FIR滤波器。2.对线性离散时间系统,若y1n和y2n分别是输入序列x1n和x2n的响应,则输入的输出响应为则系统称为线性系统。 3.对于离散时
4、不变系统,若y1n是x1n的响应,则输入xn=x1n-n0的输出响应为yn=y1n-n0则称系统为时不变系统。 五、实验步骤 2.1 首先利用MATLAB产生一个高频正弦信号和一个低频正弦信号,利用两个信号生成一个输入信号,接着利用filter函数生成输出信号,最后利用plot函数画出4个信号,再对输出信号进行分析。2.2 在2.1的基础上编写num=ones1 -1,运行程序得出结论。2.4 分别用扫频信号通过2.1、2.2的系统,进行比较分析。2.7 分别计算出y1n和y2n,得到ytn;再利用filter函数求得yn,计算差值输出,比较yn和ytn。2.20 根据impz函数的调用方式,
5、得到num = 0.9 -0.45 0.35 0.002 den = 1 0.71 -0.46 -0.62,再调用impz函数,画出图像。2.23首先产生序列xn,把它作为四阶系统的输入,生成yn。然后将同样的输入xn应用到第一级得到y1n。接着用相同的方法得到y2n。最后求得两者的差,并画出图像。2.28 分别用conv函数和filter函数求得输出,进行图像比较。六、实验记录(数据、图表、波形、程序等)2.1 对M=2,运行上述程序,生成输入xn=s1n+s2n的输出信号。输入xn的哪个分量被该离散时间系统抑制?% Program P2_1clf;n = 0:100;s1 = cos(2*
6、pi*0.05*n); s2 = cos(2*pi*0.47*n); x = s1+s2;M = input(滤波器所需的长度=);num = ones(1,M);y = filter(num,1,x)/M;subplot(2,2,1);plot(n, s1);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #1);subplot(2,2,2);plot(n, s2);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #2);subplot(2,2,3);plot(n,
7、 x);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输入信号);subplot(2,2,4);plot(n, y);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输出信号); axis;2.2 若线性时不变系统由yn=0.5(xn+xn-1)变成yn=0.5(xn-xn-1),对输入xn=s1n+s2n的影响是什么?在M=2的基础上,线性时不变系统由yn=0.5(xn+xn-1)变成 yn=0.5(xn-xn-1),则在MATLAB上,程序P2.1更改:num可以直接表示为
8、num=1 -1,通用的表达式为:num=1 -ones(1,M-1)。得到图像为2.4 修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信号作为输入信号(见程序P1.7),计算其输出信号。你能用该系统对扫频信号的响应来解释习题Q2.1和习题Q2.2的结果吗?%扫频信号通过2.1系统:clf;n = 0:100;s1 = cos(2*pi*0.05*n); s2 = cos(2*pi*0.47*n); a = pi/2/100;b = 0;arg = a*n.*n + b*n;x = cos(arg); M = input(滤波器所需的长度=);num = one
9、s(1,M);y = filter(num,1,x)/M;subplot(2,2,1);plot(n, s1);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #1);subplot(2,2,2);plot(n, s2);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #2);subplot(2,2,3);plot(n, x);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输入信号);subplot(2,2,
10、4);plot(n, y);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输出信号); axis;%扫频信号通过2.2系统:clf;n = 0:100;s1 = cos(2*pi*0.05*n); s2 = cos(2*pi*0.47*n); a = pi/2/100;b = 0;arg = a*n.*n + b*n;x = cos(arg); M = input(滤波器所需的长度=);num = 1 -1;y = filter(num,1,x)/M;subplot(2,2,1);plot(n, s1);axis(0, 100, -2
11、, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #1);subplot(2,2,2);plot(n, s2);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(信号 #2);subplot(2,2,3);plot(n, x);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输入信号);subplot(2,2,4);plot(n, y);axis(0, 100, -2, 2);xlabel(时间序号 n); ylabel(振幅);title(输出信号
12、); axis; 2.7 运行程序P2.3,对由加权输入得到的yn与在相同权系数下输出y1n和y2n相加得到的ytn进行比较,这两个序列是否相等?该系统是线性系统吗?% Program P2_3clf;n = 0:40;a = 2;b = -3;x1 = cos(2*pi*0.1*n);x2 = cos(2*pi*0.4*n);x = a*x1 + b*x2;num = 2.2403 2.4908 2.2403;den = 1 -0.4 0.75;ic = 0 0;y1 = filter(num,den,x1,ic); y2 = filter(num,den,x2,ic);y = filter
13、(num,den,x,ic);yt = a*y1 + b*y2; d = y - yt;subplot(3,1,1)stem(n,y);ylabel(振幅);title(加权输入: a cdot x_1n + b cdot x_2n的输出);subplot(3,1,2)stem(n,yt);ylabel(振幅);title(加权输出: a cdot y_1n + b cdot y_2n);subplot(3,1,3)stem(n,d);xlabel(时间序号 n);ylabel(振幅);title(差信号);2.12 运行程序P2.4并比较输出序列yn和ydn-10。这两个系列之间有什么关系?
14、该系统是时不变系统吗?% Program P2_4clf;n = 0:40; D = 10;a = 3.0;b = -2;x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = zeros(1,D) x;num = 2.2403 2.4908 2.2403;den = 1 -0.4 0.75;ic = 0 0;y = filter(num,den,x,ic);yd = filter(num,den,xd,ic);d = y - yd(1+D:41+D);subplot(3,1,1)stem(n,y);ylabel(振幅); title(输出 yn); gr
15、id;subplot(3,1,2)stem(n,yd(1:41);ylabel(振幅);title(由于延时输入xn, num2str(D),的输出); grid;subplot(3,1,3)stem(n,d);xlabel(时间序号n); ylabel(振幅);title(差值信号); grid;2.19 运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。% Program P2_5clf;N = 40;num = 2.2403 2.4908 2.2403;den = 1 -0.4 0.75;y = impz(num,den,N);stem(y);xlabel(时间序号n);
16、ylabel(振幅);title(冲激响应); grid;2.20 修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本: clf;N = 45;num = 0.9 -0.45 0.35 0.002;den = 1 0.71 -0.46 -0.62;y = impz(num,den,N);stem(y);xlabel(时间序号n); ylabel(振幅);title(冲激响应); grid;2.23 运行程序P2.6,计算输出序列yn和y2n以及差值信号dn。Yn和y2n相等吗?% Program P2_6clf;x = 1 zeros(1,40);n = 0:40;den =
17、 1 1.6 2.28 1.325 0.68;num = 0.06 -0.19 0.27 -0.26 0.12;y = filter(num,den,x);num1 = 0.3 -0.2 0.4;den1 = 1 0.9 0.8;num2 = 0.2 -0.5 0.3;den2 = 1 0.7 0.85;y1 = filter(num1,den1,x);y2 = filter(num2,den2,y1);d = y - y2;subplot(3,1,1);stem(n,y);ylabel(振幅);title(四阶实现的输出); grid;subplot(3,1,2);stem(n,y2)yla
18、bel(振幅);title(级联实现的输出); grid;subplot(3,1,3);stem(n,d)xlabel(时间序号n);ylabel(振幅);title(差值信号); grid;2.28 运行程序P2.7,对序列hn和xn求卷积,生成yn,并用滤波器hn对输入xn滤波,求得y1n。yn和y1n有差别吗?为什么要使用对xn补零后得到的x1n作为输入来产生y1n?% Program P2_7clf;h = 3 2 1 -2 1 0 -4 0 3;x = 1 -2 3 -4 3 2 1; y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);x
19、label(时间序号n); ylabel(振幅);title(用卷积得到的输出); grid;x1 = x zeros(1,8);y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel(时间序号n); ylabel(振幅);title(由滤波生成的输出); grid;7、实验思考题及解答2.1 由图像可知,输出信号只保留了输入信号中的信号 #1(低频)部分,抑制了高频分量,将其滤除,该滤波器为一个低通滤波器。2.2 由图可知,输入信号的系数改变,输出信号为输入信号的高频部分,低频部分受到了抑制,则滤波器为高通滤波器。2.4 当扫频正弦信号经过2
20、.1的系统,根据其输入输出信号可以观察出,当输入信号的频率低时,输出信号的衰减小,随着频率增加,其衰减增大。由于输入信号为f1=0.05和f2=0.47两信号的叠加,观察扫频信号,当n=10时,几乎无衰减,当n=94时,衰减很多,即s2高频信号受到了抑制,所以2.1的输出为低频信号。当扫频正弦信号经过2.2的系统,根据其输入输出信号可以观察出,当输入信号的频率低时,输出信号的衰减大,随着频率增加,其衰减减小。由于输入信号为f1=0.05和f2=0.47两信号的叠加,观察扫频信号,当n=94时,几乎无衰减,当n=10时,衰减很多,即s1低频信号受到了抑制,所以2.2的输出为高频信号。2.7 因为差值信号的数量级为10-15,是非常小的,所以两个序列应为相等的;根据线性系统的定义,该系统是线性系统。2.12 ydn-10是yn延时10个单位。因为xnyn,xn-10yn-10,所以该系统是一个时不变系统。2.23 因为差值信号的数量级为10-14,非常小,所以两个信号是相等的。2.28 yn与y1n没有差别; 因为fliter函数产生的输出向量y的长度与输入序列x的长度相同,而conv函数输出向量的长度为冲激h与输入序列x的长度之和减一,两者的长度不等,所以要对xn补零,使得x1n的长度与conv输出向量的长度相等。