2016-02-08 18 views
5

Tu jest nadal funkcję transferu czas (G(s)) w formie:Dekomponowanie licznik i wielomianów mianownika w ich parzystych i nieparzystych części

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) 

i (s = j*w) gdzie w = frequency symbol.

Teraz, jak to jest możliwe, dekomponować licznik i mianownik wielomianów równ. (1) do ich parzystych i nieparzystych części i uzyskać G(jw) jak (przy użyciu Matlab):

enter image description here

+0

To nie jest pytanie programistyczne. –

+1

Możesz zdefiniować swoją funkcję przesyłania G w następujący sposób: 's = tf ('s') ; G = (s^3 + 4 * s^2-s + 1)/(s^5 + 2 * s^4 + 32 * s^3 + 14 * s^2-4 * s + 50); '. '[p, z] = pzmap (G)' daje bieguny i zera. To pomaga? –

+0

Niestety Nie. Ta metoda daje tylko tyczki i zera funkcji transferu formy Z. Nie, Nie, De i Do są dla mnie ważne (powiązane z kwadratem W). – salam

Odpowiedz

5

Można chyba przyjąć rzeczywiste i urojone części po podstawienie s=j*w. Jednak rzeczywiście można wybrać parzystych i nieparzystych części swoich wielomianó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); 

i taka sama dla mianownika.

+0

Drogi Deaku, czy możliwe jest rozwiązanie tego problemu również dla s = j * w? – Thomas

+0

@Thomas, jak o podstawianiu 's = jw' do wyniku? :) W każdym razie, jeśli' w' jest prawdziwe, jak zwykle jest, to 'N_e' jest po prostu' real (N) ', a' N_o' to 'imag (N)/w' jeśli się nie mylę. –

+1

Dobra robota Deak. +1. – rayryeng