2016-09-21 2230 views
0

我試圖在matlab中輸入這個傳遞函數,但我無法弄清楚它是如何的,因爲它既有正指數也有負指數。在MATLAB中使用tf()函數

enter image description here

如果我做H = tf([1],[1 1 1 1],0.1,'variable','z^-1')我幾乎得到它,但我無法弄清楚如何積極z添加到了谷底。我試圖用H來繪製pzmap(H)的極點和零點。

+0

我以前從未使用過'tf',但你不能簡化傳遞函數和使用'H(z)= 1 /(z^-1 + 1 + z^-2 + z^-3 + z^-4)'而不是? – Prakhar

+0

是的,我應該這樣做,我乘以Z,因爲我對z變換不熟悉,並且認爲我需要這樣做,通過設置Z = 0以及獲得極點來獲得分子中的零點。 – Austin

回答

0

爲了避免負指數,我們可以通過z^3乘兩個分母和分子:

H = tf([1 0 0 0 0],[1 1 1 1 1],0.1,'variable','z') 

或者通過z

H = tf([1],[1 1 1 1 1],0.1,'variable','z^-1') 
+0

我不想避開負指數,我想混合匹配正指數和負指數。我發佈的H(z)是我試圖得到的,而我發佈的tf()並不完全實現它,因爲它在分母中缺少+ z^1。 – Austin

+0

如果沒有分析性重組,我們不能做到這一點。但如果可能的話,它應該像'H = tf({[1],0},{[1 1 1 1],[0,1]},0.1,'variable',{'z^-1 」, 'Z'})'。我現在無法訪問matlab。因此,我無法檢查這一點。 –

+0

啊,我得到這個錯誤:對於連續時間系統,必須將「Variable」屬性設置爲字符串's'或'p'中的一個,並且對於字符串'z','q',' z^-1',或'q^-1'爲離散時間系統。 – Austin

0

劃分其可以創建

z = tf('z', 0.1) 

然後創建你想要的任何傳遞函數,例如

H = z/(1 + z + z^-1 + z^-2 + z^-3) 

然而,MATLAB會自動在z=0增加了額外的零極點對,使傳遞函數H只包含z並沒有z^-1。因此,您將在z=0看到多個杆,而不是隻有一個。不幸的是,我還沒有找到一個解決方案來阻止Matlab做到這一點...

+0

我不知道爲什麼,但是這產生了:H = z^7 / z^7 + z^6 + z^5 + z^4 + z^3 – Austin

0

您稱爲傳遞函數實際上稱爲DSP表示,因爲它們的實現屬性。因爲z的每個冪都是單位延遲。因此,您必須使用filt。在此表示ž方面應該有非正的力量,因此如果從分母分解出一個Z和抵消你

H = filt(1,[1,1,1,1,1])