FQ2RI Convert frequency/Q pole/zero representation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: FQ2RI Convert frequency/Q pole/zero representation into real and imaginary conjugate pairs. Returns [ri conj(ri)] CALL: ri= fq2ri(f0, Q) VERSION: $Id: fq2ri.m,v 1.3 2008/07/11 17:34:47 ingo Exp $ HISTORY: 02-04-2007 M Hewitson Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 % FQ2RI Convert frequency/Q pole/zero representation 0002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0003 % 0004 % DESCRIPTION: FQ2RI Convert frequency/Q pole/zero representation into real 0005 % and imaginary conjugate pairs. 0006 % Returns [ri conj(ri)] 0007 % 0008 % CALL: ri= fq2ri(f0, Q) 0009 % 0010 % VERSION: $Id: fq2ri.m,v 1.3 2008/07/11 17:34:47 ingo Exp $ 0011 % 0012 % HISTORY: 02-04-2007 M Hewitson 0013 % Creation 0014 % 0015 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0016 0017 function ri= fq2ri(f0, Q) 0018 0019 if(nargin==0) 0020 disp('usage: ri = fq2ri2(f0, Q)') 0021 return 0022 elseif(nargin==1 || nargin==2 && isnan(Q)) 0023 ri = -(1/(2*pi*f0)); 0024 elseif(nargin==2 && Q>=0) 0025 if Q < 0.5 0026 warning('!!! Q < 0.5! Splitting to two real poles;') 0027 ri = [-(1/(2*pi*f0)) -(1/(2*pi*f0))]; 0028 else 0029 w0 = 2*pi*f0; 0030 G = 1/(w0*w0); 0031 re = G.*-w0/(2*Q); 0032 im = G.*w0*sqrt(4*Q*Q-1)/(2*Q); 0033 tri = complex(re,im); 0034 ri = [tri; conj(tri)]; 0035 end 0036 end 0037