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.6 2008/08/08 13:34:56 anneke 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(strcmp(ii.sets, 'From Poles/Zeros')));
0029 
0030  % Set fields
0031  pzm.gain  = find(pl, 'gain');
0032  ps = find(pl, 'poles');
0033  zs = find(pl, 'zeros');
0034 
0035  % Add only valid poles
0036  pzm.poles = [];
0037  for kk = 1:length(ps)
0038    if ~isnan(ps(kk).f)
0039      pzm.poles = [pzm.poles ps(kk)];
0040    end
0041  end
0042 
0043  % Add only valid zeros
0044  pzm.zeros = [];
0045  for kk = 1:length(zs)
0046    if ~isnan(zs(kk).f)
0047      pzm.zeros = [pzm.zeros zs(kk)];
0048    end
0049  end
0050 
0051  name      = find(pl, 'name');
0052  if ~isempty(name)
0053    pzm.name = name;
0054  end
0055 
0056  % Add history
0057  % CALL:        obj = addHistory(obj, minfo, h_pl, var_name, inhists, ...);
0058  pzm.addHistory(ii, pli, [], []);
0059 
0060   % Combine input plist with default values
0061   pl = combine(pli, ii.plists(strcmp(ii.sets, 'From Poles/Zeros')));
0062 
0063   % Set fields
0064   pzm.gain  = find(pl, 'gain');
0065   ps = find(pl, 'poles');
0066   zs = find(pl, 'zeros');
0067 
0068   % Add only valid poles
0069   pzm.poles = [];
0070   for kk = 1:length(ps)
0071     if ~isnan(ps(kk).f)
0072       pzm.poles = [pzm.poles ps(kk)];
0073     end
0074   end
0075 
0076   % Add only valid zeros
0077   pzm.zeros = [];
0078   for kk = 1:length(zs)
0079     if ~isnan(zs(kk).f)
0080       pzm.zeros = [pzm.zeros zs(kk)];
0081     end
0082   end
0083 
0084   name      = find(pl, 'name');
0085   if ~isempty(name)
0086     pzm.name = name;
0087   end
0088 
0089   % Add history
0090   % CALL:        obj = addHistory(obj, minfo, h_pl, var_name, inhists, ...);
0091   pzm.addHistory(ii, pli, [], []);
0092 
0093 
0094 end

Generated on Mon 25-Aug-2008 22:39:29 by m2html © 2003