2013-02-23 50 views
1

我想繪製p = 7的簡單多項式(1 + z)^(2p)的極點/零點圖。我的代碼如下:zplane中的零位錯誤

p = 7; 
rCoeffs = [1 1]; 
for ii=1:2*p-1 
    rCoeffs = conv(rCoeffs, [1 1]); 
end 
zplane(real(rCoeffs),1); 

該圖顯示如下:

enter image description here

我不明白爲什麼零點是複數。我認爲所有的零應該位於z = -1,但是這個圖表顯示了一個圓圈。當p很小時,不會發生這種情況,但我又看到了一些顯然由zplane生成的圖表,它們在特定點上顯示大量的零點。

+0

@NathanG對不起,我無法得到您的意見。你不覺得它是這樣做的,即卷積實際上是多項式乘法/擴展? – ubaabd 2013-02-23 23:38:53

+0

你說得對。我認爲它與MATLAB在排除大數多項式之前解決的排列次數有關。 – N8TRO 2013-02-24 00:09:28

回答

1

基本上你正在尋找解決方案,14所給出的設置公式。不幸的是,階數5或更大的多項式方程的一般解不存在,並且必須以數字形式找到。所提供的解決方案是正確的,只是大概算法認爲你在找什麼。

我想補充說,Nathan的方法是按照預期工作的,如果稍微改變它,你會看到上述方程的所有解法。

z = tf('z',1) 
H = (1+z)^(2*7); 
[p,z1] = pzmap(H) 
z1 % solution to H = 0 
(1+z1)^(2*7) 
0

一個簡單的方法:

p = 7 

z = zpk('z',0.1); 
H = (1+z)^(2*p); 

pzmap(H) 
+0

我實際上有一個向量中的多項式係數,我想用(1 + z)^ 2p(例如h1)乘以一個多項式係數,然後創建一個極點/零點圖。我不知道我將如何用你所建議的方法來做到這一點。在你的方法中,我認爲在繪製極點/零點圖之前我們應該知道極點和零點? – ubaabd 2013-02-23 23:43:51

+0

不一定。只需輸入你的z方程到H中,pzmap會爲你繪製它。 – N8TRO 2013-02-24 00:11:24