对输入x[n]滤波,求得y1[n] 。
y[n]和y1[n]有差别吗?为什么要使用对x[n]补零后得到的x1[n]作为输入来产生y1[n] ?三、实验器材及软件1•微型计算机1台2. MATLAB 7.0 软件四、实验原理1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为y[n] 1-(x[ n] x[n 1] x[n 2]) 3归纳上式可得1 M 1y[n] x[n k]IVI k 0此式表示了一个因果M点平滑FIR滤波器2.对线性离散时间系统,若y1[n]和y2[n]分别是输入序列xqn]和X2[n]的响应,则输入x[n] xdn] X2【n]的输出响应为y[n] yd n] y2【n]则系统称为线性系统。
3.对于离散时不变系统,若y1[n]是x1[n]的响应,则输入x[n]=x 1[n-n o]的输出响应为y[n]=y qn-n o]则称系统为时不变系统。
五、实验步骤2.1 首先利用MATLA产生一个高频正弦信号和一个低频正弦信号,利用两个信个信号,再对输出信号进行分析。
2.2 在2.1的基础上编写num=ones[1-1],运行程序得出结论。
2.4 分别用扫频信号通过2.1、2.2的系统,进行比较分析。
2.7 分别计算出y1[n]和y2[n],得到yt[n];再利用filter 函数求得y[n],计算差值输出,比较y[n]和yt[n]。
2.20根据impz函数的调用方式,得到num = [0.9 -0.45 0.35 0.002] den = [1 0.71 -0.46 -0.62] ,再调用impz 函数,画出图像。
2.23首先产生序列x[n],把它作为四阶系统的输入,生成y[n]。
然后将同样的输入x[n]应用到第一级得到y1[n]。
接着用相同的方法得到y2[n]。
最后求得两者的差,并画出图像。
2.28分别用conv函数和filter 函数求得输出,进行图像比较。
六、实验记录(数据、图表、波形、程序等)2.1 对M=2运行上述程序,生成输入x[n]=s1[n]+s2[n] 的输出信号。
输入x[n] 的哪个分量被该离散时间系统抑制?% Program P2_1clf;n = 0:100;si = cos(2*pi*0.05* n); s2 = cos(2*pi*0.47* n); x = s1+s2;M = input('滤波器所需的长度 =');num = on es(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,4); plot (n, y);axis([0, 100, -2, 2]);xlabel('时间序号 n' ); ylabel('振幅'); title('输岀信号'); axis;2.2 若线性时不变系统由 y[n]=0.5(x[n]+x[n-1])变成-2-20 1.5 1 0.5幅0 -0.5 -1 -1.5 信号#110 20 30 4050时间序号60 n70 80 90 100幅信号#2时间序号n2 1.5 10.5 幅 0振-0.5-1 -1.5 10 2030 输入信号405060 70 80 90 100时间序号n输出信号y[n]=0.5(x[n]-x[n-1]) ,对输入 x[n]=s1[n]+s2[n] 的影响是什么?在 M=2的基础上,线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]) ,则在 MATLA 上,程序 P2.1 更改:num 可以直接表示为 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系统: elf; 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 = on es(1,M);信号#12 ---------------------------- .——2 If-1 ” _1-20 100 -2 100-20 210 -1 -2 010050 时间序号n 输出信号1 0信号#210 50 时间序号n 输入信号-1 50100 时间序号nIf50时间序号ny = 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,4); plot (n, y);axis([0, 100, -2, 2]);xlabel('时间序号 n' ); ylabel('振幅'); title('输岀信号'); axis;2 1 0 -1 -2 050100时间序号n%日频信号通过2.2系统: clf; n = 0:100;s1 = cos(2*pi*0.05* n); s2 = cos(2*pi*0.47* n);2 1 0 -1 -20 50100信号#1幅 振2 10 -1 -2 050100时间序号n 输入信号幅 振2 10 -1 -2 050100时间序号n 输出信号时间序号na = 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, 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('输岀信号'); axis;幅振21-1-20 50 100时间序号n输入信号2 r ------------------------- -------------------------- r幅振21-1-2信号#2-2 1------------------------- ■------------------------ 10 50 10021-1-20 50 100时间序号n 输出信号时间序号n0 50 100时间序号n加权输出:a y 1[n] + b y 2[n]x 10-15差信号2.12运行程序P2.4并比较输出序列y[n]和yd[n-10]。
这两个系列之间有什么 关系?该系统是时不变系统吗?% Program P2_4 elf ;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,de n,x,ic); yd = filter( num,de n, xd,ic); d = y - yd(1+D:41+D); subplot(3,1,1) stem( n,y); ylabel('振幅'); title('输岀 y[n]' ); grid;subplot(3,1,2) stem( n, yd(1:41)); ylabel('振幅');title(['由于延时输入 x[n' , num2str(D),']的输岀’]);grid; subplot(3,1,3) stem( n,d);xlabel('时间序号 n' ); ylabel('振幅’); title('差值信号');grid;幅 振5 10 1520 25303540时间序号n50输出y[n]-5011.I 1 -t at 心tLi.1 1 <.1「6..:厂丁 1 "1'J.1 r* i.1」j1亠inr l-1 )7Tin由于延时输入x[n10]的输出50-50差值信号2.19运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应% Program P2_5elf;N = 40;num = [2.2403 2.4908 2.2403];den = [1 -0.4 0.75];y = impz( num,de n, N);stem(y);xlabel('时间序号n' ); ylabel('振幅'); title('冲激响应');grid;冲激响应幅振2.20修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本:y[n] 0.71 y[ n 1] 0.46y[ n 2] 0.62 y[ n 3]0.9x[ n] 0.45x[n 1] 0.35x[n 2] 0.002x[ n 3]Cif;N = 45;num = [0.9 -0.45 0.35 0.002]; den = [1 0.71 -0.46 -0.62];y = impz( num,de n, N);stem(y);xlabel('时间序号n' ); ylabel('振幅'); title('冲激响应');grid;2.23运行程序P2.6,计算输出序列y[n]和y2[n]以及差值信号d[n] 。