matlab中两个小程序的讲解
_________________________
函数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) = 65438。
n =-20:120;
h =滤波器(b,a,x);当滤波器的输入为X时,输出为H,因为X是单位冲激函数,所以H是滤波器的单位冲激响应。
图(1)
stem(n,h);%画一个火柴棍图,N为横轴,H为纵轴。
标题(“脉冲响应”);
xlabel(' n ');
ylabel(' h(n)');
%
图(二)
[z,P,g]=tf2zp(b,a) % [Z,P,K] = TF2ZP(NUM,DEN)求零点、极点和增益:
% 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 =[n 1:N2];
x =[(n-n0)= = 0];
函数pr2()
%12实验
__________________________________________
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:长度(b)-1;
l=0:长度(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 =角度(H);%求单位脉冲响应函数的相位
图(1)
支线剧情(2,1,1);%制作一个子图
绘图(w/pi,magH);
网格;%添加栅格
轴([0,1,0,1]);%调整轴范围
xlabel(' w(pi)');
y label(' | H | ');
标题(“振幅、相位响应”);
支线剧情(2,1,2);
plot(w/pi,angH);
网格;
xlabel(' w(pi)');
ylabel('角度(H)');