7.4.1连续时间系统的频域分析
1. 系统稳定性分析
拉普拉斯变换主要用于系统分析。描述系统的另一种数学模型就是建立在拉普拉斯变换基础上的系统函数
。系统函数
的零点、极点的分布完全决定了系统的特性。通过零点、极点分析可以分析连续系统的稳定性。
对
进行零点、极点计算可以采用roots函数实现,求得后利用plot绘图函数在复平面上绘制系统函数的零极点图,在零点位置标以符号“o”,而在极点位置标以“X”。
Matlab提供了pzmap函数绘制系统函数
的零极点图。

a=[1 2 -3 2 1]
b=[1 0 -4]
p=roots(a)
q=roots(b)
hold on
plot(real(p),imag(p),'x','LineWidth',2);
plot(real(q),imag(q),'o','LineWidth',2);
title('H(s)零极点图');
grid on

图7-8应用roots函数作零极点分布图
程序运行得到零极点分布如图7-8所示,应用函数pzmap,执行pzmap(b,a)语句也可以作出零极点分布图,从图中判断系统是不稳定的。
2. 频率响应函数
Matlab提供了专门用于分析连续系统频率响应的函数freqs。其格式如下:
h =freqs(b,a,w)
[h,w] =freqs(b,a,n)
说明:计算由向量w指定的频率点上模拟滤波器系统函数的频率响应,结果存在h中。n是标量,freqs函数自动将这n个频点设置在适当的频率范围。无输出变量时,函数将自动绘出频率响应的幅频曲线和相频曲线。

a = [1 0.4 1];
b = [0.2 0.3 1];
w = logspace(-1,1);
freqs(b,a,w)
程序执行,得到幅频曲线与相频曲线如图7-9所示。

7.4.2离散时间系统的频率响应
对于离散系统,频率响应可由freqz函数求得。其格式如下:
[h,w] = freqz(b,a,n)
其中,b、a分别是数字滤波器传递函数的分子和分母向量,计算出的频响值用向量h返回。n为计算的频率点个数,应为2的幂,默认8192。无输出变量时,函数将自动绘出频率响应的幅频曲线和相频曲线。
这里还要注意数字信号处理中归一化数字频率问题,
是模拟频率,采样周期为
,则数字频率
。在Matlab,
为归一化数字频率。将归一化数字频率乘以
能得到数字频率,如果乘以采样速度的一样,就得到以
表示的模拟频率。

b=[0.0181 0.0543 0.0543 0.0181];
a=[1 -1.76 1.1829 -0.2781];
[h,w]=freqz(b,a);
subplot(2,1,1),plot(w/pi,abs(h));
xlabel('归一化频率(*\pirad/sample)');title('幅频响应');grid on;
subplot(2,1,2),plot(w/pi,angle(h)/pi);
xlabel('归一化频率(*\pirad/sample)') ;title('相频响应');gridon
求得的滤波器频率响应曲线如图7-10所示。

图7-10滤波器频率响应