湖北工业大学商贸学院毕业设计
plot?real?p?,imag?p?,'x'? %画极点 plot?real?q?,imag?q?,'o'? %画零点 title?'pole?zero diagram for discrete system'?
hold off
上述程序中,传入参量A和B分别是要绘制零极点图的系统函数的分母和分子多项式的系数向量。
3.2 用MATLAB实现离散系统的频率特性分析
离散系统的幅频特性曲线和相频特性曲线直观地反映了系统对不同频率的输入序列的处理情况。因此,我们只要知道离散系统的频率响应H(ejw),就可分析离散系统的整个频率特性。那么,如何求得离散系统的频率响应H(ejw)呢?最简便的方法就是通过系统函数H(z)的分析而得到系统的频率响应H(ejw),通常采用如下分析方法即直接法:
设某离散系统的系统函数为H(z),则该系统的频率响应为
H(ejw)?|H(ejw)|?ej?(w)?H(z)|z?ejw (3-2)
MATLAB为用户提供了专门用于求离散系统频率响应的函数freqz( ),调用此函数有如下两种格式:
(1)[H,w]?freqz?B,A, N?
在上述调用中,B和A分别是待分析的离散系统的系统函数分子、分母多项式的系数向量,N为正整数,返回向量H则包含了离散系统频率响应H(ejw)在0~?范围内N个频率等分点的值,向量w则包含0~?范围内的N 个频率等分点。调用中若N缺省,则系统默认N=512。
例如,对如下离散系统
H(z)=z?0.5 (3-3) z则计算其0~? 频率范围内10个频率等分点的频率响应H(ejw)的样值的MATLAB命令为:
A ??1 0?; B ??1 ?0.5?;
?H,w??freqz?B,A, 10?
运行结果为 H = 0.5000
18
湖北工业大学商贸学院毕业设计
0.5245 + 0.1545i 0.5955 + 0.2939i 0.7061 + 0.4045i 0.8455 + 0.4755i 1.0000 + 0.5000i 1.1545 + 0.4755i 1.2939 + 0.4045i 1.4045 + 0.2939i 1.4755 + 0.1545i w = 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274
(2)[H,w]?freqz?B,A, N,'whole'?
该调用格式将计算离散系统在ake (k )??范围内N个频率等分点的频率响应H(ejw)的值。因此,我们可以先调用freqz()函数计算出离散系统频率响应的值,然后再利用MATLAB的abs()和angle()函数及plot命令,即可绘制出系统在0~?或0~2?范围内的幅频特性和相频特性曲线。例如,对于式(3-3)所示系统,绘制系统幅频特性和相频特性曲线的MATLAB 命令如下:
B??1 ?0.5?; A ??1 0?;
?H,w??freqz(B,A,400,'whole');
19
湖北工业大学商贸学院毕业设计
Hf?abs?H?; Hx?angle?H?;
Clf
figure?1? plot?w,Hf?
title(‘离散系统幅频特性曲线’)
figure?2? plot?w,Hx?
title(‘离散系统相频特性曲线’)
该程序绘制的系统频率特性曲线如图 3—1和3—2所示。
离散系统幅频特性曲线1.5