好久没做过这类地解答了,希望我说的还算明白_________________________function pr1()%11差分方程a=[1,-1,0.9]; %通过a,b构造了一个滤波器,传递函数为H(z)=1/(1-z^(-1)+0.9*z^(-2)),a构造分母,b构造分子b=1;x=impseq(0,-20,120) %impseq是用来构造单位冲击函数,时间t的范围为[-20,120],当且仅当t=0处为1,即x(21)=1,其余均为零n=-20:120;h=filter(b,a,x); %以a,b构造的的滤波器,当输入为x时,输出为h,因为x是单位冲击函数,所以h就是该滤波器的单位冲击响应了figure(1)stem(n,h); %以n为横轴,h为纵轴画出火柴杆图title('冲激响应');xlabel('n');ylabel('h(n)');%figure(2)[z,p,g]=tf2zp(b,a) % [Z,P,K] = TF2ZP(NUM,DEN) finds the zeros, poles, and gains: % z为零点,p为极点,g为增益,如下: % (z-z1)(z-z2)...(z-zn) % H(z) = K ------------------------ % (z-p1)(z-p2)...(z-pn)zplane(z,p) %画出极零图function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];function pr2()%12 experiment__________________________________________b=[0.0181,0.0543,0.0543,0.0181]; %其实虚线框中的这部分的作用和上面函数中的FILTER函数的作用一样,就是构造一个滤波器,H(z)还是b为分母,a为分子a=[1.000,-1.76,1.1829,-0.2781]; m=0:length(b)-1;l=0:length(a)-1;K=500;k=1:K;w=pi*k/K;H=(b*exp(-j*m'*w))./(a*exp(-j*l'*w)); %求出单位冲击响应函数__________________________________________________________________________________magH=abs(H); %求出单位冲击响应函数的幅值angH=angle(H); %求出单位冲击响应函数的相位figure(1)subplot(2,1,1); %做出子图plot(w/pi,magH); grid; %添加栅格axis([0,1,0,1]); %调节坐标轴范围xlabel('w(pi)');ylabel('|H|');title('幅度,相位响应');subplot(2,1,2);plot(w/pi,angH);grid;xlabel('w(pi)');ylabel('angle(H)');
matlab中poles的意思,关于matlab的两个小程序的解释说明
最新推荐文章于 2022-06-07 23:10:08 发布