2016-02-08 5 views
5

に分子と分母多項式を分解するここの形で時間伝達関数(G(s))を続けている。彼らの偶数と奇数の部分

G(s) = N(s)/D(s); 
G(s) = (s^3+4s^2-s+1)/(s^5+2s^4+32s^3+14s^2-4s+50)  (1) 

w = frequency symbol.

(s = j*w)は今、それが可能ですか分子と分母を分解する。 式の多項式。 (1)自分の偶数と奇数の部分に及びG(jw)(MATLABを使用)などを取得する:

enter image description here

+0

これは実際にプログラミングに関する質問ではありません。 –

+1

伝達関数Gを以下のように定義することができます: 's = tf( 's') ; G =(s^3 + 4 * s^2-s + 1)/(s^5 + 2 * s^4 + 32 * s^3 + 14 * s^2-4 * s + '[p、z] = pzmap(G)'は極と零点を与えます。それは役に立ちますか? –

+0

残念ながら、このメソッドはZフォームの伝達関数の極と零点を与えます.Ne、No、De、Doは重要です(W四角形に関連しています)。 – salam

答えて

5

あなたはおそらくs=j*wで置換した後、実部と虚部を取ることができます。分母のため

% G(s) = N(s)/D(s); 

syms s; 
N = s^3+4*s^2-s+1; 

p = sym2poly(N); 

%// do this in fewer lines: 
%{ 
/* 
if mod(length(p),2)==0 %// then first index is odd 
    imin_o = 1; %// for odd part 
    imin_e = 2; %// for even part 
else 
    imin_o = 2; %// for odd part 
    imin_e = 1; %// for even part 
end 
*/ 
%} 
imin_o = mod(length(p),2) + 1; 
imin_e = 2 - mod(length(p),2); 

% odd part of numerator 
p_o = zeros(size(p)); 
p_o(imin_o:2:end) = p(imin_o:2:end); 
% even part of numerator 
p_e = zeros(size(p)); 
p_e(imin_e:2:end) = p(imin_e:2:end); 

% restore 
N_o = poly2sym(p_o,s); 
N_e = poly2sym(p_e,s); 

と同じ:ただし、あなたが実際にあなたの多項式の偶数と奇数のパーツを選択することができます。

+0

親愛なるディークに、この問題をs = j * wについても解くことは可能ですか? – Thomas

+0

@トーマス「s = jw」を結果に代入する方法は?:)とにかく、 'w'が実数であれば、通常は' N_e'は単純に 'real(N)'であり、 'N_o'は' imag私が間違っていないならば(N)/ w' –

+1

いい仕事です。 +1。 – rayryeng