function [num,den]=fd2pol(fnat,dpm,Ts);
//function [num,den]=fd2pol(fnat,dpm,Ts);
//computes numerator num and denominator den of 2nd order discret transfer function
//from natural frequency fnat and damping dmp of its continues equivalent.
//The continues 2nd order transfer function is of the form:
//                        2.pi.fnat
//   G2(s)= ---------------------------------------
//          s^2 + 2.dmp.2.pi.fnat.s + (2.pi.fnat)^2
//
//The discret transfer function is:
//            b1z^-1 + b2z^-2
//   Gd(z)= -------------------
//          1 + a1z^-1 + a2z^-1
//
//inputs:
//fnat ... natural frequency of continues 2nd order system
//dmp ... damping of continues 2nd order system
//Ts ... desired sampling time
//outputs:
//num=[0 b1 b2] ... vector of discret numerator coefficients
//den=[1 a1 a2] ... vector of discret denominator coefficients
//
//written by:  H. Prochazka, I.D. Landau
//7th june 2002

w=fnat*2*%pi;
omega=w*sqrt(1-dpm^2);
alpha=exp(-dpm*w*Ts);
beta=cos(omega*Ts);
delta=sin(omega*Ts);
A1=-2*alpha*beta;
A2=alpha*alpha;
B1=1-alpha*(beta+(dpm*w*delta/omega));
B2=alpha^2+alpha*((dpm*w*delta/omega)-beta);
den=poly([1 A1 A2],"z^-1","coeff");
num=poly([0 B1 B2],"z^-1","coeff");
