# MATLAB: How to obtain Real and Imaginary parts of symbolic polynomial

imaginaryMATLABrealsymbolicSymbolic Math Toolbox

I have the below code. I cannot figure out how to obtain the real and imaginary parts of the symbolic polynomial (I have already solved the complete problem in standard Matlab, trying to learn the Symbolic Toolbox). My code is:
polynomial = [1 10 45 105 105]; % This polynomial is the Bessel Filter % polynomial computed above, and changes with the order of the filter.p = poly2sym(polynomial, s)pw = subs(p, 1*j*w)% attempt from Walter Roberson's comment at: % https://www.mathworks.com/matlabcentral/answers/% 465739-real-and-imaginary-part-of-this-function-pleasereal_pw = simplify( rewrite(real(pw), 'exp') )imag_pw = simplify( rewrite(imag(pw), 'exp') )% NOT WORKING FOR ME% Assuming I can get the above done, my next steps would be to convert the% below (from standard Matlab) to symbolic.  Any help with the below would% also be appreciated.sq_real = conv(real_pw, real_pw);sq_imag = conv(imag_pw, imag_pw);sq_denom = sq_real + sq_imag;
The above code gives me:
real_pw =
10*imag(w^3) – 45*real(w^2) + real(w^4) – 105*imag(w) + 105
imag_pw =
imag(w^4) – 45*imag(w^2) – 10*real(w^3) + 105*real(w)
Instead, I am expecting something like (obtained from my working plain Matlab code):
real_poly = 1 0 -45 0 105
imag_poly = 0 -10 0 105 0
>> syms ssyms w realpolynomial = [1 10 45 105 105]; % This polynomial is the Bessel Filter % polynomial computed above, and changes with the order of the filter.p = poly2sym(polynomial, s);pw = subs(p, 1j*w);  % note use of 1j, not 1*jreal_pw = simplify( rewrite(real(pw), 'exp') )imag_pw = simplify( rewrite(imag(pw), 'exp') )% but this is simplerreal_pw = real(pw)imag_pw = imag(pw) real_pw = w^4 - 45*w^2 + 105  imag_pw = - 10*w^3 + 105*w  real_pw = w^4 - 45*w^2 + 105  imag_pw = - 10*w^3 + 105*w
>> conv(real_pw,real_pw)Error using conv2Invalid data type. First and second arguments must be numeric or logical.Error in conv (line 43)c = conv2(a(:),b(:),shape); 
>> sq_real = real_pw*real_pw sq_real = (w^4 - 45*w^2 + 105)^2 >> sq_imag = imag_pw*imag_pw sq_imag = (- 10*w^3 + 105*w)^2 >> sq_denom = sq_real + sq_imag sq_denom = (- 10*w^3 + 105*w)^2 + (w^4 - 45*w^2 + 105)^2 >> expand(sq_denom) ans = w^8 + 10*w^6 + 135*w^4 + 1575*w^2 + 11025