北交大数字信号处理
————————————————————————————————作者: ————————————————————————————————日期:
?
《数字信号处理》课程研究性学习报告
试点班专用
姓名
学号
班级
指导教师陈后金
李居朋
时间
?基本概念和技能学习报告
【目的】
(1) 掌握离散信号和系统时域、频域和z域分析中的基本方法和概念;
(2)学会用计算机进行离散信号和系统时域、频域和z域分析。
(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
利用MATLA B的filter 函数,求出下列系统的单位脉冲响应,并判断系统是否稳定。讨论本
题所获得的结果。 211850586.0845.111)(--+-=z z z H 21285.085.111)(--+-=z
z z H 【题目目的】
?1. 掌握LTI 系统单位脉冲响应的基本概念、系统稳定性与单位脉冲响应的关系;
2. 学会fi lter 函数的使用方法及用f ilt er函数计算系统单位脉冲响应;
?3. 体验有限字长对系统特性的影响。
【仿真结果】
【结果分析】
1.若已知]}[{][k x T k y =则]}[{][k T k h δ=
2. ][],[21k h k h 均为有限长序列,满足绝对可和的条件,说明这两个系统都稳定。
【问题探究】
已知LTI 系统的系统函数)(z H ,有哪些计算系统单位脉冲响应方法,比较这些方法的优缺点。
方法一:用部分分式法或留数法对)(z H 反变换,)}({][1
z H Z k h -= 方法二:由∑∑=-=-==n i i i
m j j j zi z a z b z X z Y z H 00)()()(可知∑∑==-=-m
j j n i i j k x b i k y a 00][][,依据单位脉冲响应的定义知∑∑==-=-m
j j
n i i j k b i k h a 00][][δ 比较:方法一较为直接,但计算难度大;方法二关注系数,回到时域计算不易得到闭合解。
【仿真程序】
b=1;
a1=[1,-1.845,0.850586];
a2=[1,-1.85,0.85];
k=-50:50;
x=[zeros(1,50),1,zeros(1,50)];
h1=filter(b,a1,x);
h2=filter(b,a2,x );
sub plo t(1,2,1);s tem(k,h1,'.');
title('T he R esponse of H1(z)');
x la be l('x[k]');ylabe l('h[k]');
subp lot(1,2,2);stem(k,h2,'.');
title ('The Res ponse of H 2(z)');
xla be l('x[k]');yl abel ('h[k ]');
(1)利用MAT LAB 语句
x =firls(511,[0 0.4 0.404 1],[1 1 0 0])
产生一个长度为512的序列x [k ],并画出该序列的幅度频谱。
(2) 已知序列)cos(][][0k k x k y πΩ=,分别画出ππ,9.0π,8.0π,4.00=Ω时序列y [k ]的幅度频谱。解释所得到的结果。
【题目目的】
1. 学会用MATLA B函数f req z计算序列频谱;
2.掌握序列频谱的基本特性及分析方法。
【温磬提示】
?只需知道MATLAB语句
x=firls(511,[00.4 0.404 1],[1 1 00])
产生一个长度为512的序列x[k],该序列满足
=k
k
-
x
=
k
x
]
,
255
[
,1,0
],
[
511
不需知道其他细节。用函数freqz计算该序列的频谱,在画幅度频谱时,建议用归一化频率。【仿真结果】
【结果分析】
序列)cos(][][0k k x k y πΩ=,序列y[k ]的幅度频谱)(Ωj e Y 在ππ,9.0π,8.0π,4.00=Ω时相当于][k x 的频谱()Ω
j e X 左偏移、右偏移、幅度减半(在一个周期上)后叠加的结果(在整个Ω轴上)
【问题探究】
有部分的计算结果可能与理论分析的结果不一致,分析出现该现象的原因,给出解决问题方法并进行仿真实验。
π9.0=Ω时与理论计算的偏差较大,原因是MATLAB 在输入)cos(0k πΩ序列时为有限长度。 解决方法:增加)cos(0k πΩ的取值,][k x 随之补0.
【仿真程序】
k=0:1:511;
x=fi rls(511,[0 0.4 0.404 1],[1 1 0 0]);
b1=x;
a1=1;
w=l in spac e(0,pi,512);
y 1=x.*cos (0.4*pi*k);
y 2=x .*cos(0.8*p i*k);
y3=x .*cos(0.9*pi*k);
y 4=x.*cos(pi *k);
X=f reqz(b 1,a1,w);
Y1=fre qz (y1,a1,w);
Y2=f reqz(y2,a 1,w);
Y3=fr eqz(y3,a 1,w);
Y4=fre qz(y4,a1,w);
figure(1);p lot(w /pi,abs (X));
xlab el ('Normalized Frequ en cy');ylabel('Am plitu de');
title ('A mpl itude Re sponse of x[k]');
figure(2);p lot (w/pi,ab s(Y 1));
xlabel('Norma lized F reque ncy');ylabel ('Am plit ud e');
ti tle('Am plit ude Re sp on se of x[k ]cos(0.4*pi*k)');
f igur e(3);plot(w /p i,abs (Y2));
x label('No rmalized Frequency');ylab el ('Amp litude');
ti tle('Amp litude Respon se of x[k]co s(0.8*pi*k)');
figur e(4);pl ot(w/pi ,abs (Y3));
xlabe l('Norma liz ed Freque ncy ');ylabel('Ampl itu de');
title ('A mp litu de R esp onse of x[k]cos (0.9*pi*k)');
figu re(5);plot (w/pi,abs (Y4));
x label('No rmal ized Fre quency');ylabe l('Am plitude');
title ('Amplitud e Re spo nse of x[k]cos(pi*k)');
已知一因果系统的H (z ) 为 6.055.199.02)(22++++=z z z z z H 试求出和H (z )具有相同幅度响应的最小相位系统H min (z )和最大相位系统H ma x(z )。画出并比较H (z )、H min (z) 和H max (z)的相位响应。
【题目目的】
?1. 掌握全通滤波器的基本特征和特性;
2. 学会计算具有相同幅度响应的最小相位系统H m in(z )和最大相位系统H max (z)。
【温磬提示】
在画系统的相位响应时,要把三个系统的相位响应画在一张图上,比较其解卷绕(unwrap)后的相位特点。
【仿真结果】
【结果分析】
由图可见,在具有相同幅度响应的因果稳定系统中,最小相位系统具有最小的相位滞后,最大相位系统具有最大的的相位滞后。
【问题探究】
手算时,如何找出最小相位系统Hmin(z)和最大相位系统H max(z)?用计算机自动求解时,如何找出最小相位系统Hmin(z)和最大相位系统Hmax(z)?你所用的算法是一样的吗?
我使用的是相同的算法,先求零点,与1比较后再做变换。
【仿真程序】
b1=[1,2,0.99];
a=[1,1.55,0.6];
disp('Zeros');disp(roots(b1))
bb1=[1.1,1];bb2=[1,0.9];
bb3=[1,1.1];bb4=[0.9,1];
b2=conv(bb1,bb2);
b3=conv(bb3,bb4);
w=linspace(0,pi,512);
H1=freqz(b1,a,w);
H2=freqz(b2,a,w);
H3=freqz(b3,a,w);
plot(w/pi,unwrap(angle(H1)),w/pi,unwrap(angle(H2)),w/pi,unwrap(angle(H3)));
legend('H','Hmin','Hmax');
xlabel('Normalized Frequency');ylabel('Phase');
title('Response of Phase');
一个长度为5的FIR滤波器,其脉冲响应满足h[0]=h[4],h[1]=h[3],系统输入信号为三个角频率分别为0.1π rad, 0.4 πrad, 0.7 πrad的余弦序列的和。若要求系统只能使频率为
0.4 π rad的余弦序列通过,试求出系统的单位脉冲激响应h[k],画出该系统的幅度和相位响应,用
MATLAB验证系统的滤波效果。
【题目目的】
?1.学会最简单的FIR滤波器设计;
2.了解滤波器的特性对系统输出的影响。
【FIR滤波器的设计过程】
【仿真结果】
【结果分析】
系统的相位响应对输出有何影响?编程验证输出信号的延迟量。
【问题探究】
若想消除瞬态响应的影响,提出解决问题的方案,并进行仿真实验。
【仿真程序】
k1=-100:1:100;
x=cos(0.1*pi*k1)+cos(0.4*pi*k1)+cos(0.7*pi*k1);%产生x[k]
h0=-0.0772;
h4=-0.0772;
h1=-0.24;
h3=-0.24;
h2=0.6705;
b1=[h0,h1,h2,h3,h4];%产生标准Ⅰ型FIR滤波器
k2=0:1:4;
b2=cos(0.1*pi*k2)+1i*sin(0.1*pi*k2);
b3=cos(0.7*pi*k2)+1i*sin(0.7*pi*k2);
h1=b1.*b2;%相移滤波器
h2=b1.*b3;
w=linspace(0,pi,512);
X=freqz(x,1,w);
subplot(1,2,1);plot(w/pi,abs(X));
title('TheOriginalSignal');xlabel('Normalized Frequency');ylabel('Amplitude');y0=filter(h1,1,x);
y=filter(h2,1,y0);
Y=freqz(y,1,w);
subplot(1,2,2);plot(w/pi,abs(Y));
title('The Filtrated Signal');xlabel('NormalizedFrequency');ylabel('Amplitu de');