Home > classes > @pzmodel > fromPolesAndZeros.m

fromPolesAndZeros

PURPOSE ^

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

SYNOPSIS ^

function pzm = fromPolesAndZeros(pzm, pli)

DESCRIPTION ^

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

 FUNCTION:    fromPolesAndZeros

 DESCRIPTION: Construct a pzmodel from poles and zeros

 CALL:        pzm = fromPolesAndZeros(a, pl)

 PARAMETER:
              pl   - plist

 HISTORY:     07-05-2007 Hewitson
              Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0002 %
0003 % FUNCTION:    fromPolesAndZeros
0004 %
0005 % DESCRIPTION: Construct a pzmodel from poles and zeros
0006 %
0007 % CALL:        pzm = fromPolesAndZeros(a, pl)
0008 %
0009 % PARAMETER:
0010 %              pl   - plist
0011 %
0012 % HISTORY:     07-05-2007 Hewitson
0013 %              Creation
0014 %
0015 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0016 function pzm = fromPolesAndZeros(pzm, pli)
0017 
0018   VERSION = '$Id: fromPolesAndZeros.m,v 1.9 2008/09/04 13:37:14 ingo Exp $';
0019 
0020 
0021   % get pzmodel info
0022   ii = pzmodel.getInfo('pzmodel', 'From Poles/Zeros');
0023 
0024   % Set the method version string in the minfo object
0025   ii.setMversion([VERSION '-->' ii.mversion]);
0026 
0027   % Combine input plist with default values
0028   pl = combine(pli, ii.plists);
0029 
0030   % Set fields
0031   pzm.gain  = find(pl, 'gain');
0032   ps = find(pl, 'poles');
0033   zs = find(pl, 'zeros');
0034 
0035   % If the poles/zeros in the plist are no pz-objects then convert them
0036   if ~isa(ps, 'pz') && ~isempty(ps)
0037     ps = pz(ps);
0038   end
0039   if ~isa(zs, 'pz') && ~isempty(zs)
0040     zs = pz(zs);
0041   end
0042 
0043   % Add only valid poles
0044   pzm.poles = [];
0045   for kk = 1:length(ps)
0046     if ~isnan(ps(kk).f)
0047       pzm.poles = [pzm.poles ps(kk)];
0048     end
0049   end
0050 
0051   % Add only valid zeros
0052   pzm.zeros = [];
0053   for kk = 1:length(zs)
0054     if ~isnan(zs(kk).f)
0055       pzm.zeros = [pzm.zeros zs(kk)];
0056     end
0057   end
0058 
0059   name = find(pl, 'name');
0060   if ~isempty(name)
0061     pzm.name = name;
0062   end
0063 
0064   % Add history
0065   pzm.addHistory(ii, pl, [], []);
0066 
0067 end

Generated on Mon 08-Sep-2008 13:18:47 by m2html © 2003