在电子领域,线性时不变系统具有广泛的代表意义。
系统的冲激响应h(t)和系统函数H(s)从时域和变换域两方面表征了同一系统的两个侧面。H(s)是用s域表示的系统函数,它不仅仅是频域的概念。
应用GNU Octave的impulse()函数,可以从系统函数H(s), 求出冲激响应h(t),
例如,对于系统函数H1(s),可以用以下程序求出冲激响应和阶跃响应。
num=[1 -2];den=[1 1 0];
sys=tf(num,den);
figure(1)
subplot(221);
pzmap(sys);
axis([-2.5 2.5 -1.5 1.5]);
t=0:0.02:15;
subplot(222);
y=impulse(sys,t);
plot(t,y);
subplot(223);
z=step(sys,t);
plot(t,z);
图一为冲击响应: y=-2+3exp(-t)的波形
图一
图二为阶跃响应: y=-2t+3-3exp(-t)的波形
图二
但是,当遇到如下系统函数,按照上面的程序进行求解时,会遇到问题。
问题显示如下:
原因是:本例的系统函数,分子和分母都是2阶的。按照s变换的定义,在变换为时域的冲激响应时,存在δ(t)函数。完整的冲激响应为:h(t)= δ(t)-2exp(-t)*cost.但在用符号函数进行求解时,直接将h(t)写为:-2exp(-t)*cost。
因此,为了使用上面的程序求出这个系统的冲激响应函数,需将s函数先减去1,即,消除δ(t),变为如下:
图三
该程序输出了零极点、冲激响应h(t)、频率响应H(jw),如图四。
图四
总结:
本文通过GNU Octave软件的impulse函数,求解系统函数对应的冲激响应和频率响应曲线。
系统函数的分子的阶数大于等于分母的阶数时,会遇到无法求解的问题。
分析出原因,并加以解决。
|