Home > classes > @pole > cp2iir.m

cp2iir

PURPOSE ^

CP2IIR Return a,b IIR filter coefficients for a complex pole designed using the bilinear transform.

SYNOPSIS ^

function [a,b] = cp2iir(p, fs)

DESCRIPTION ^

 CP2IIR Return a,b IIR filter coefficients for a complex pole designed using the bilinear transform.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: CP2IIR Return a,b IIR filter coefficients for a complex pole
              designed using the bilinear transform.

 CALL:        [a,b] = cp2iir(p, fs)

 REMARK:      This is just a helper function. This function should only be
              called from class functions.

 INPUT:       p  - pole object
              fs - the sample rate for the filter

 VERSION:     $Id: cp2iir.m,v 1.4 2008/01/11 13:42:41 ingo Exp $

 HISTORY:     03-04-2007 M Hewitson
                  Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [a,b] = cp2iir(p, fs)
0002 % CP2IIR Return a,b IIR filter coefficients for a complex pole designed using the bilinear transform.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: CP2IIR Return a,b IIR filter coefficients for a complex pole
0007 %              designed using the bilinear transform.
0008 %
0009 % CALL:        [a,b] = cp2iir(p, fs)
0010 %
0011 % REMARK:      This is just a helper function. This function should only be
0012 %              called from class functions.
0013 %
0014 % INPUT:       p  - pole object
0015 %              fs - the sample rate for the filter
0016 %
0017 % VERSION:     $Id: cp2iir.m,v 1.4 2008/01/11 13:42:41 ingo Exp $
0018 %
0019 % HISTORY:     03-04-2007 M Hewitson
0020 %                  Creation
0021 %
0022 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0023 
0024 VERSION = '$Id: cp2iir.m,v 1.4 2008/01/11 13:42:41 ingo Exp $';
0025 
0026 %%%%%   'Params' && 'Version' Call   %%%%%
0027 if nargin == 2
0028   if isa(p, 'pole') && ischar(fs)
0029     in = fs;
0030     if strcmp(in, 'Params')
0031       a = plist();
0032       return
0033     elseif strcmp(in, 'Version')
0034       a = VERSION;
0035       return
0036     end
0037   end
0038 end
0039 
0040 f0 = get(p, 'f');
0041 q  = get(p, 'q');
0042 
0043 w0  = f0*2*pi;
0044 w02 = w0^2;
0045 
0046 k    = (q*w02 + 4*q*fs*fs + 2*w0*fs) / (q*w02);
0047 b(1) =  1;
0048 b(2) = (2*w02-8*fs*fs) / (k*w02);
0049 b(3) = (q*w02 + 4*q*fs*fs - 2*w0*fs) / (k*q*w02);
0050 
0051 a(1) =  1/k;
0052 a(2) = -2/k;
0053 a(3) = -1/k;
0054 a    =  a*-2;
0055 
0056 % END

Generated on Tue 22-Jan-2008 10:39:13 by m2html © 2003