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)');