我試圖在matlab中輸入這個傳遞函數,但我無法弄清楚它是如何的,因爲它既有正指數也有負指數。在MATLAB中使用tf()函數
如果我做H = tf([1],[1 1 1 1],0.1,'variable','z^-1')
我幾乎得到它,但我無法弄清楚如何積極z
添加到了谷底。我試圖用H
來繪製pzmap(H)
的極點和零點。
我試圖在matlab中輸入這個傳遞函數,但我無法弄清楚它是如何的,因爲它既有正指數也有負指數。在MATLAB中使用tf()函數
如果我做H = tf([1],[1 1 1 1],0.1,'variable','z^-1')
我幾乎得到它,但我無法弄清楚如何積極z
添加到了谷底。我試圖用H
來繪製pzmap(H)
的極點和零點。
爲了避免負指數,我們可以通過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')
我不想避開負指數,我想混合匹配正指數和負指數。我發佈的H(z)是我試圖得到的,而我發佈的tf()並不完全實現它,因爲它在分母中缺少+ z^1。 – Austin
如果沒有分析性重組,我們不能做到這一點。但如果可能的話,它應該像'H = tf({[1],0},{[1 1 1 1],[0,1]},0.1,'variable',{'z^-1 」, 'Z'})'。我現在無法訪問matlab。因此,我無法檢查這一點。 –
啊,我得到這個錯誤:對於連續時間系統,必須將「Variable」屬性設置爲字符串's'或'p'中的一個,並且對於字符串'z','q',' z^-1',或'q^-1'爲離散時間系統。 – Austin
劃分其可以創建
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做到這一點...
我不知道爲什麼,但是這產生了:H = z^7 / z^7 + z^6 + z^5 + z^4 + z^3 – Austin
您稱爲傳遞函數實際上稱爲DSP表示,因爲它們的實現屬性。因爲z的每個冪都是單位延遲。因此,您必須使用filt
。在此表示ž方面應該有非正的力量,因此如果從分母分解出一個Z和抵消你
H = filt(1,[1,1,1,1,1])
我以前從未使用過'tf',但你不能簡化傳遞函數和使用'H(z)= 1 /(z^-1 + 1 + z^-2 + z^-3 + z^-4)'而不是? – Prakhar
是的,我應該這樣做,我乘以Z,因爲我對z變換不熟悉,並且認爲我需要這樣做,通過設置Z = 0以及獲得極點來獲得分子中的零點。 – Austin