基本函数
impz()函数
MATLAB提供了专门用于求离散系统频响特性的函数impz(),调用impz()的格式有以下几种:
① [h,t] = impz(b,a)
② [h,t] = impz(sos)
③ [h,t] = impz(d)
B-分子系数
A-分母系数
二、举例说明:
H(z) = Y(z)/X(z) = 1 / 1 - 1.13z^-1 + 0.64z^-2;
其中分子系数为 B=[1]
分母系数为: A=[1, -1.13, 0.64]
调用函数: impz(B,A)
axis([xmin xmax ymin ymax])
axis([xmin xmax ymin ymax]) 用来标注输出的图线的最大值最小值。
subplot
subplot是MATLAB中的函数,是将多个图画到一个平面上的工具。
filter
MATLAB中filter函数的用法:Y = FILTER(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母
整个滤波过程是通过差分方程实现的:a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
代码
A=[1,-0.9];B=[0.05,0.05];
x1n=[1 1 1 1 1 1 1 1 zeros(1,50)];
x2n=ones(1,128);
hn=impz(B,A,58);
subplot(2,2,1);
y='hn';
tstem(hn,y);
title('(a)系统单位脉冲响应h(n)')
y1n=filter(B,A,x1n);
subplot(2,2,2);y='y1(n)';tstem(y1n,y);
title('(b)系统对R8(n)的响应y1(n)')
y2n=filter(B,A,x2n);
subplot(2,2,4);y='y1(n)';tstem(y1n,y);
title('(c)系统对u(n)的响应y2(n)')
function tstem(xn,yn)
n=0:length(xn)-1;
stem(n, xn,'.');
xlabel('n');ylabel('yn');
axis([0,n(end),min(xn),1.2*max(xn)]);
end
结果