3)时变与时不变系统的仿真。 时不变系统实例:
y(n)?0.4y(n?1)?0.75y(n?2)?2.2403x(n)?2.4908x(n?1)?2.2403x(n?2)n=0:60;m=8;p=2;q=-5;
x=p*cos(2*pi*0.1*n)+q*cos(2*pi*0.4*n); xd=[zeros(1,m) x];
b=[2.2403 2.4908 2.2403]; a=[1 -0.4 0.75]; y=filter(b,a,x); yd=filter(b,a,xd); d=y-yd(1+m:61+m); subplot(3,1,1)stem(n,y); ylabel('y(n)');
title('信号x(n)的响应y(n)');grid; subplot(3,1,2);stem(n,yd(1:61)); ylabel('y(n-m)');
title('信号x(n-m)的响应y(n-m)');grid; subplot(3,1,3);stem(n,d); xlabel('n');ylabel('波幅'); title('y(n-m)-y(n-m)');grid;
时变系统实例:
n=[-10:10];
y(n)?nx(n)?x(n?1)
x1=sin(0.1*pi*n);
subplot(2,2,1);stem(n,x1); xlabel('n');ylabel('x1'); x2=sin(0.1*pi*(n-1)); subplot(2,2,2);stem(n,x2); xlabel('n');ylabel('x2'); y=n.*x1+x2;
subplot(2,2,3);stem(n,y) xlabel('n');ylabel('y')
2.线性时不变系统仿真 1)冲激响应的计算
用MATLAB语言编程实现线性时不变系统的冲激响应计算。 线性时不变系统实例:
y(n)?0.4y(n?1)?0.75y(n?2)?2x(n)?3x(n?1)?2x(n?2)m=50;
x=[1 zeros(1,m-1)]; b=[2 3 2]; a=[1 -0.4 0.75]; K=0:1:m-1;
y=filter(b,a,x);stem(K,y); title('冲激响应');
xlabel('n');ylabel('h(n)');
2) 在实际应用中高阶因果线性时不变系统可以用低阶因果线性时不变系统级联得到,这可简化系统的设计与实现。例如,对于三阶线性时不变系统
8y(n)?10y(n?1)?6y(n?2)?y(n?3)?16x(n?1)?40x(n?2)?16x(n?3)可以用一个一阶和一个二阶系统级联实现。
第一级
y1(n)?0.25y1(n?1)?2x(n)?x(n?1)
第二级y2(n)?y2(n?1)?0.5y2(n?2)?y1(n?1)?2y1(n?2) 用MATLAB语言编程验证系统的级联。 x=[1 zeros(1,20)];n=0:20;
a=[8 -10 6 -1];b=[0 16 -40 16];y=filter(b,a,x); a1=[1 -0.25];b1=[2 -1];a2=[1 -1 0.5];b2=[0 1 -2]; y1=filter(b1,a1,x);y2=filter(b2,a2,y1);d=y-y2; subplot(3,1,1);stem(n,y);ylabel('y(n)'); title('信号通过高阶LTI系统的响应');grid;
subplot(3,1,2)stem(n,y2);ylabel('y2(n)'); title('信号通过低阶LTI系统级联的响应');grid; subplot(3,1,3)stem(n,d);
xlabel('n');ylabel('波幅');title('y(n)-y2(n)');grid;
3.线性时不变系统的稳定性
若一个线性时不变系统的冲激响应是绝对可和,则此系统就是BIBO的稳定系统。由此,无限冲激响应线性时不变系统稳定的必要条件是,随着输入序列点的增加,冲激响应衰减到零。用MATLAB语言编程计算一个IIR线性时不变系统冲激响应的绝对值的和,验证稳定特性。
b=[0 1 2 1];
a=[1 -0.5 -0.005 0.3];
subplot(3,1,1);zplane(b,a);%由分子分母多项式的系数画出零-极点分布图 xlabel('Re');ylabel('jIm'); axis([-2 2 -1 1]); h=impz(b,a);
subplot(3,1,2)stem(h); title('单位脉冲响应'); xlabel('k'); [H,w]=freqz(b,a); subplot(3,1,3) plot(w/pi,abs(H)); xlabel('频率\\omega'); title('频率响应');