资源描述:
《实验 离散系统的频率响应分析和零、极点分布 - read》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验3离散系统的频率响应分析和零、极点分布实验目的:加深对离散系统的频率响应分析和零、极点分布的概念理解。实验原理:离散系统的时域方程为其变换域分析方法如下:频域系统的频率响应为Z域系统的转移函数为分解因式,其中和称为零、极点。在MATLAB中,可以用函数[z,p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点,用函数zplane(z,p)绘出零、极点分布图;也可以用函数zplane(num,den)直接绘出有理分式形式的系统转移函数的零、极点分布图。使h=freqz(num,den,w)函
2、数可求系统的频率响应,w是频率的计算点,如w=0:pi/255:pi,h是复数,abs(h)为幅度响应,angle(h)为相位响应。另外,在MATLAB中,可以用函数[r,p,k]=residuez(num,den)完成部分分式展开计算;可以用函数sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。例1求下列直接型系统函数的零、极点,并将它转换成二阶节形式解用MATLAB计算程序如下:num=[1-0.1-0.3-0.3-0.2];den=[10.10.20.20.5];[z,p,k]=tf2zp(n
3、um,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);disp('二阶节');disp(real(sos));zplane(num,den)输入到“num”和“den”的分别为分子和分母多项式的系数。计算求得零、极点增益系数和二阶节的系数:零点0.9615-0.5730-0.1443+0.5850i-0.1443-0.5850i 极点0.5276+0.6997i0.5276-0.6997
4、i-0.5776+0.5635i-0.5776-0.5635i 增益系数1 二阶节1.0000-0.3885-0.55091.00001.15520.65111.00000.28850.36301.0000-1.05520.7679 系统函数的二阶节形式为:极点图如右图。 例2差分方程所对应的系统的频率响应。解:差分方程所对应的系统函数为用MATLAB计算的程序如下:k=256;num=[0.8-0.440.360.02];den=[10.7-0.45-0.6];w=0:pi/k:pi;h=freqz(num,de
5、n,w);subplot(2,2,1);plot(w/pi,real(h));gridtitle('实部')xlabel('omega/pi');ylabel('幅度')subplot(2,2,2);plot(w/pi,imag(h));gridtitle('虚部')xlabel('omega/pi');ylabel('Amplitude')subplot(2,2,3);plot(w/pi,abs(h));gridtitle('幅度谱')xlabel('omega/pi');ylabel('幅值')subp
6、lot(2,2,4);plot(w/pi,angle(h));gridtitle('相位谱')xlabel('omega/pi');ylabel('弧度') 实验内容:求系统的零、极点和幅度频率响应和相位响应。实验要求:编程实现系统参数输入,绘出幅度频率响应和相位响应曲线和零、极点分布图。num=[0.05280.07970.12950.12950.7970.0528];den=[1-1.81072.4947-1.88010.9537-0.2336];[z,p,k]=tf2zp(nu
7、m,den);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);figure(1)zplane(num,den)figure(2)freqz(num,den,128)上机完成课本作业P6.22;P2107.26,7.28;P1054.12P1054.12求滤波器输出的前十个采样值;num=[0.3-0.250.1];den=[100];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点
8、');disp(p);[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);subplot(2,2,1);zplane(num,den);title('零极点图');k=256;w=0:pi/k:pi;h=freqz(num,den,w);sub