2015-12-16 276 views
2

我有這樣的功能:尋找Z變換和繪製它的零極點圖的MATLAB

X [η] =(1/2)^ N * U [N] +(-1/3)^ N * U [N]

我需要做兩件事情與此使用MATLAB:

  1. 發現它ž -transform。

  2. 繪製它的極點和零點。

我使用下面的代碼:

syms n; 
f = (1/2)^n + (-1/3)^n; 
F = ztrans(f); 

我得到的F變量ž -transform,但我不能看到如何創建它的零極點。我正在使用內置函數pzmappzmap(F);),但它似乎不適用於ztrans(f)的輸出。

我在做什麼錯?我是否需要將變換轉換爲其他形式,如傳遞函數模型或零極點增益模型?如果是這樣,有人可以解釋如何使用ztrans(f)的輸出完成?

回答

1

您給出的代碼的第一位使用符號數學來解決-transform的z。您需要將輸出轉換爲控制系統工具箱支持的discrete-time model

syms n; 
f = (1/2)^n + (-1/3)^n; 
F = ztrans(f) 

返回z/(z - 1/2) + z/(z + 1/3)。您可以選擇使用collect

F2 = collect(F) 

轉換爲(12*z^2 - z)/(6*z^2 - z - 1)。那麼你要找到在分子和分母多項式的係數和特定採樣週期創建tf離散時間傳遞函數對象:

[num,den] = numden(F2); 
Ts = 0.1; % Sampling period 
H = tf(sym2poly(num),sym2poly(den),Ts) 

然後pzmap(H)會產生這樣一個情節:

Pole-Zero Map plot