实验4Z变换和系统频域特性的MATLAB实现.docx
《实验4Z变换和系统频域特性的MATLAB实现.docx》由会员分享,可在线阅读,更多相关《实验4Z变换和系统频域特性的MATLAB实现.docx(12页珍藏版)》请在冰豆网上搜索。
实验4Z变换和系统频域特性的MATLAB实现
小实验4Z变换和系统频域特性的MATLAB实现
1.实验目的
学习通过Z变换来分析离散系统的频率响应,并用MATLAB实现。
加深对系统的零、极点分布概念的理解。
2.实例分析
2.1通过Z变换分析求解系统的冲激响应
已知用线性常系数差分方程:
表示的线性时不变系统其系统函数为:
(3-1)
上式为两个关于
的多项式之比,即
为有理分式。
同时,式可以表示成部分分式的形式:
则可以通过所熟悉的常见序列的Z变换形式求得
的Z反变换,从而求得系统的冲激响应函数
。
MATLAB提供了一个内部函数residuez(),来计算有理多项式的留数和直接项,residuez()函数有几种调用方式:
(1)[R,p,C]=residuez(b,a),在已知以分子行向量b和分母行向量a下,得到列向量R含有留数,列向量p是极点位置,行向量C包含直接项;
(2)[b,a]=residuez(R,p,C),将部分分式展开式转换到分子行向量b和分母行向量a.
MATLAB还提供了一个内部函数impz(b,a,N),在已知分子行向量b和分母行向量a下,计算N点的单位冲激响应
。
例3.1求系统:
的单位冲激响应
。
解:
由上述基本原理和MATLAB提供的函数,将下列指令编辑到“exe3impz.m”文件中,可以得到所求系统的冲激响应
。
%exe3impz.mh(n)求解
b=[0.001836,0.007344,0.011016,0.007374,0.001836];
a=[1,-3.0544,3.8291,-2.2925,0.55075];
[h,n]=impz(b,a,40);
stem(n,h,'.');ylabel('h[n]');gridon
运行“exe3impz.m”文件将产生如图3-1所示的序列。
图4-1系统冲激响应
例3.2求
的Z反变换。
解:
由上述基本原理和MATLAB提供的函数,将下列指令编辑到“exe3zinver.m”文件中,来求Z反变换。
%exe3zinver.mz反变换求解
b=[0,1,0];
a=[3,-4,1];
[R,p,C]=residuez(b,a)
[b,a]=residuez(R,p,C)
运行结果如下:
R=
0.5000
-0.5000
p=
1.0000
0.3333
C=
0
b=
-0.00000.33330
a=
1.0000-1.33330.3333
因此得到因式分解后的
,所以Z反变换的结果为
。
2.2通过Z变换分析离散系统的频率响应和零、极点分布
将式(3-1)表示的
的分子、分母进行因式分解,可采用根的形式表示多项式,即
其中,
为分子多项式的根,称为系统函数的零点,
为分母多项式的根,称为系统函数的极点,A为比例。
这样系统函数就表示成了零极点的形式,零极点在Z平面的位置刻画了系统很重要的特性,可以通过系统函数零极点位置估算出系统函数的频率响应,进而判断系统的滤波特性,这是一种非常实用的方法,也称为频率响应的几何确定法。
根据频率响应的定义,将
代入上式,系统频率响应为:
MATLAB提供了一个内部函数zplane(b,a),在已知系统函数的分子行向量b和分母行向量a下,画出极点和零点。
MATLAB还提供了一个内部函数freqz()来求系统的频率响应,freqz()函数有几种调用方式:
(1)[H,w]=freqz(b,a,N),在已知分子行向量b和分母行向量a情况下得到N点的频率向量w和N点的系统复频率响应向量H,频率响应在单位圆的上半圆的N个等分点上求值;
(2)[H,w]=freqz(b,a,N,’whole’),在已知分子行向量b和分母行向量a情况下得到N点的频率向量w和N点的系统复频率响应向量H,频率响应用环绕整个单位圆的N个等分点求值;
(3)H=freqz(b,a,w),在已知分子行向量b和分母行向量a情况下得到在频率向量w上的频率响应向量H。
例3.3画出因果系统
的零极点图和频率响应曲线,并求出脉冲响应
。
解:
由上述的基本原理和MATLAB提供的函数,将下列指令编辑到“exe3freqz.m”文件中,即可求得系统的零极点图和频率响应。
%exe3freqz.m系统求解
b=[1,0];
a=[1,-0.9];
subplot(2,2,1);zplane(b,a);
[H,w]=freqz(b,a,100);
magH=abs(H);
phaH=angle(H);
subplot(2,2,3);plot(w/pi,magH);gridon
xlabel('FrequencyinPiuints');
ylabel('Magnitude');
title('Magnituderesponse');
subplot(2,2,4);plot(w/pi,phaH/pi);
xlabel('FrequencyinPiuints');
ylabel('Phase');
title('Phaseresponse');
[h,n]=impz(b,a,40);
subplot(2,2,2);stem(n,h,'.');ylabel('h[n]');gridon
运行“exe3freqz.m”文件将产生如图3-2所示的序列。
图4-2系统零极点及频率响应
例3.4定性画出
的零极点图和频率响应曲线。
解:
由上述基本原理和MATLAB提供的函数,将下列指令编辑到“exe3freqz2.m”文件中,即可求得系统的零极点图和频率响应。
%exe3freqz2.m系统求解
N=8;
b=[1,0,0,0,0,0,0,0,-1];
a=[1,0,0,0,0,0,0,0,0];
subplot(2,1,1);
zplane(b,a);
title('零点-极点图');
[H,w]=freqz(b,a,100);
magH=abs(H);
phaH=angle(H);
subplot(2,2,3);plot(w/pi,magH);gridon
xlabel('FrequencyinPiuints');
ylabel('Magnitude');
title('Magnituderesponse');
subplot(2,2,4);plot(w/pi,phaH/pi);
xlabel('FrequencyinPiuints');
ylabel('Phase');
title('Phaseresponse');
运行“exe3freqz2.m”文件将产生如图3-3所示的序列。
图4-3零极点及频率响应图
2.3由
求解零极点及由零极点得到
的表达式
例3.5已知系统函数
有5个零点,一个在
,另外4个是
及其共轭与镜像,求
的系数并进行验证。
解:
MATLAB提供了一个内部函数tf2zp(),来求
的零极点和增益;提供了一个内部函数zp2tf(),在零极点已知时求
和
的系数;提供了一个内部函数roots(),来求一个多项式的根;提供了一个内部函数poly(),由给定的根求出相应多项式的系数。
因此,将下列指令编辑到“exe2zphz.m”文件中,可求解和验证。
%exe3zphz.m零极点与系统函数的转换
B=poly([0.5*exp(j*pi/3),0.5*exp(-j*pi/3),2*exp(j*pi/3),2*exp(-j*pi/3),0.8]);
L=length(B);
A=zeros(1,L);A
(1)=1;
[Z,P,K]=tf2zp(B,A);
sort(Z)
[b,a]=zp2tf(Z,P,K)
Z1=roots(B)
运行“exe3zphz.m”文件结果如下,可自行比较验证。
ans=
0.2500-0.4330i
0.2500+0.4330i
0.8000
1.0000-1.7321i
1.0000+1.7321i
b=
1.0000-3.30007.2500-6.70003.0000-0.8000
a=
100000
Z1=
1.0000+1.7321i
1.0000-1.7321i
0.8000
0.2500+0.4330i
0.2500-0.4330i
3.实验内容
3.1求系统
的零极点和频率响应。
b=[0.0528,0.0797,0.1295,0.1295,0.797,0.0528];
a=[1,-1.8107,2.494,-1.8801,0.9537,-0.2336];
subplot(2,2,1);zplane(b,a);
[H,w]=freqz(b,a,1000);
magH=abs(H);
phaH=angle(H);
subplot(2,2,3);plot(w/pi,magH);gridon
xlabel('FrequencyinPiuints');
ylabel('Magnitude');
title('Magnituderesponse');
subplot(2,2,4);plot(w/pi,phaH/pi);
xlabel('FrequencyinPiuints');
ylabel('Phase');
title('Phaseresponse');
[h,n]=impz(b,a,40);
subplot(2,2,2);stem(n,h,'.');ylabel('h[n]');gridon
3.2求出矩形序列
的零极点和频率响应。
3.3已知离散系统差分方程为:
求其Z变换,画出零极点图,并判断系统的稳定性。
b=[1,-0.5,0];
a=[1,0.75,0.125];
subplot(2,2,1);zplane(b,a);
[H,w]=freqz(b,a,100);
magH=abs(H);
phaH=angle(H);
极点在单位圆内,所以系统是稳定的
4.思考题
试从理论上计算分析例子3.4的零极点分布和幅频响应,并把结果同MATLAB程序运行结果对比。