分爲兩大部分,1是計算系統的幅度響應和相位響應,2是計算系統的零點、極點。
舉個例子,如果系統的差分方程爲:
y(n)-0.53y(n-1)+0.73y(n-2) = 0.14[x(n)-x(n-2)]
matlab提供了計算頻率響應的函數freqz,使用時只用輸入傳輸函數的係數即可:
a = [1,-0.53,0.73];
b = [1,0,-1];
[h,w] = freqz(b,a);
subplot(2,1,1);
plot(w,abs(h));
subplot(2,1,2);
plot(w,angle(h));
其中a是傳輸函數分子的係數,b是分母的係數,按照(z^-1)的升冪排列,沒有的補0。
計算結果如圖:
然後是計算零極點。其實就是把一般傳輸函數的多項式形式變爲乘積的形式,matlab也提供了類似的函數tf2zpk來實現二者之間的轉化,並可以使用zplane函數來畫出零極點圖:
b = [0,0.8];
a=[1,0.5,-0.3];
[z,p,k] = tf2zpk(b,a);
zplane(b,a);
figure;
zplane(z,p);
另外,由函數zp2tf來計算相反的轉化,這裏不多說了