Home Ask Login Register

Developers Planet

Your answer is one click away!

salam February 2016

Decomposing the numerator and the denominator polynomials into their even and odd parts

Here there is a continues time transfer function (G(s)) in form of:

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)

and (s = j*w) where w = frequency symbol.

Now, how is it possible to decompose the numerator and the denominator polynomials of Eq. (1) into their even and odd parts and get the G(jw) as (Using Matlab) :

enter image description here


Andras Deak February 2016

You could probably take the real and imaginary parts after the substitution with s=j*w. However, you can actually select the even and odd parts of your polynomials:

% 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
    imin_o = 2;  %// for odd part
    imin_e = 1;  %// for even part
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);

and the same for the denominator.

Post Status

Asked in February 2016
Viewed 3,370 times
Voted 6
Answered 1 times


Leave an answer

Quote of the day: live life