PZMODEL constructor for pzmodel class. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: PZMODEL constructor for pzmodel class. SUPER CLASSES: ltpda_uoh < ltpda_uo < ltpda_obj PROPERTIES: Inherit Properties (read only) name - name of object created - creation time (time-object) prov - contains a instance of the provenance class. hist - history of the object (history object) version - cvs-version string. Protected Properties (read only) gain - gain of the model poles - pole-array of the model zeros - zero-array of the model PZMODEL Methods: Defined Abstract methods: char - returns one character string which represents the object copy - copies an object display - displays an object string - converts an object to a command string which will recreate the plist object update_struct - updates a object structure to the current tbx-version Public methods: fngen - creates an arbitrarily long time-series based on the input pzmodel getlowerFreq - gets the frequency of the lowest pole or zero in the model getupperFreq - gets the frequency of the highest pole or zero in the model pzm2ab - convert pzmodel to IIR filter coefficients using bilinear transform resp - returns the complex response of a pzmodel as an Analysis Object tomfir - approximates a pole/zero model with an FIR filter tomiir - converts a pzmodel to an IIR filter using a bilinear transform. Protected methods: setGain - set the property 'gain' setPoles - set the property 'poles' setZeros - set the property 'zeros' Private methods: fromFile - construct a pzmodel from a file fromRepository - construct a pzmodel from a repository fromPolesAndZeros - construct a pzmodel from poles and zeros CONSTRUCTOR: pzm = pzmodel() - creates an empty pzmodel object pzm = pzmodel(g, p, z) - construct from gain, poles, zeros pzm = pzmodel(g, p, z, 'name') - construct including name pzm = pzmodel('foo.fil') - construct from LISO .fil file pzm = pzmodel('foo.xml') - construct by loading the pzmodel from disk pzm = pzmodel('foo.mat') - construct by loading the pzmodel from disk pzm = pzmodel(pl) - create a pzmodel object from the description given in the parameter list. Parameter sets for plist constructor (in order of priority): From XML File ------------- Construct a PZMODEL by loading it from an XML file. 'filename' - construct a PZMODEL from a filename. Example: plist('filename', 'pzm1.xml') [default: empty string] From MAT File ------------- Construct a PZMODEL by loading it from a MAT file. 'filename' - construct a PZMODEL from a filename. Example: plist('filename', 'pzm1.mat') [default: empty string] From LISO File -------------- Construct a PZMODEL by loading it from a LISO file. 'filename' - construct a PZMODEL from a filename. Example: plist('filename', 'pzm1.fil') [default: empty string] From Repository --------------- Construct a PZMODEL by retrieving it from an LTPDA repository. 'Hostname' - the repository hostname. Only those objects which are PZMODELs are returned. [default: 'localhost']; Additional parameters: 'Database' - The database name [default: 'ltpda'] 'ID' - A vector of object IDs. [default: []] 'CID' - Retrieve all pzmodel objects from a particular collection. From Poles/Zeros ---------------- Construct a PZMODEL from poles and zeros. 'Gain' - model gain [default: 1] 'Poles' - vector of pole objects [default: empty pole] 'Zeros' - vector of zero objects [default: empty zero] 'name' - name of model [default: 'None'] Example: plist('name', 'lp_filter', 'poles', [pole(0.1) pole(1,100)], ... 'gain', 2); From Plist ---------- 'Plist' - construct from a plist. The value passed should be a plist object. [default: empty plist] EXAMPLE 1: Still to be written ... M-FILE INFO: The following call returns an minfo object that contains information about the pzmodel constructor: >> info = pzmodel.getInfo or >> info = pzmodel.getInfo('pzmodel') You can get information about class methods by calling: >> info = pzmodel.getInfo(method) e.g. >> info = pzmodel.getInfo('eq') You can also restrict the sets of parameters contained in the minfo object by calling: >> info = pzmodel.getInfo(method, set) e.g. >> info = pzmodel.getInfo('pzmodel', 'From Pzmodel') VERSION: $Id: pzmodel.m,v 1.60 2008/09/07 10:48:46 hewitson Exp $ HISTORY: 03-04-2007 M Hewitson Creation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0001 % PZMODEL constructor for pzmodel class. 0002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0003 % 0004 % DESCRIPTION: PZMODEL constructor for pzmodel class. 0005 % 0006 % SUPER CLASSES: ltpda_uoh < ltpda_uo < ltpda_obj 0007 % 0008 % PROPERTIES: 0009 % 0010 % Inherit Properties (read only) 0011 % name - name of object 0012 % created - creation time (time-object) 0013 % prov - contains a instance of the provenance class. 0014 % hist - history of the object (history object) 0015 % version - cvs-version string. 0016 % 0017 % Protected Properties (read only) 0018 % gain - gain of the model 0019 % poles - pole-array of the model 0020 % zeros - zero-array of the model 0021 % 0022 % PZMODEL Methods: 0023 % 0024 % Defined Abstract methods: 0025 % char - returns one character string which represents the object 0026 % copy - copies an object 0027 % display - displays an object 0028 % string - converts an object to a command string which will 0029 % recreate the plist object 0030 % update_struct - updates a object structure to the current tbx-version 0031 % 0032 % Public methods: 0033 % fngen - creates an arbitrarily long time-series based on 0034 % the input pzmodel 0035 % getlowerFreq - gets the frequency of the lowest pole or zero in 0036 % the model 0037 % getupperFreq - gets the frequency of the highest pole or zero in 0038 % the model 0039 % pzm2ab - convert pzmodel to IIR filter coefficients using 0040 % bilinear transform 0041 % resp - returns the complex response of a pzmodel as 0042 % an Analysis Object 0043 % tomfir - approximates a pole/zero model with an FIR filter 0044 % tomiir - converts a pzmodel to an IIR filter using 0045 % a bilinear transform. 0046 % 0047 % Protected methods: 0048 % setGain - set the property 'gain' 0049 % setPoles - set the property 'poles' 0050 % setZeros - set the property 'zeros' 0051 % 0052 % Private methods: 0053 % fromFile - construct a pzmodel from a file 0054 % fromRepository - construct a pzmodel from a repository 0055 % fromPolesAndZeros - construct a pzmodel from poles and zeros 0056 % 0057 % CONSTRUCTOR: 0058 % 0059 % pzm = pzmodel() - creates an empty pzmodel object 0060 % pzm = pzmodel(g, p, z) - construct from gain, poles, zeros 0061 % pzm = pzmodel(g, p, z, 'name') - construct including name 0062 % pzm = pzmodel('foo.fil') - construct from LISO .fil file 0063 % pzm = pzmodel('foo.xml') - construct by loading the pzmodel from disk 0064 % pzm = pzmodel('foo.mat') - construct by loading the pzmodel from disk 0065 % pzm = pzmodel(pl) - create a pzmodel object from the 0066 % description given in the parameter list. 0067 % 0068 % Parameter sets for plist constructor (in order of priority): 0069 % 0070 % From XML File 0071 % ------------- 0072 % 0073 % Construct a PZMODEL by loading it from an XML file. 0074 % 0075 % 'filename' - construct a PZMODEL from a filename. 0076 % Example: plist('filename', 'pzm1.xml') 0077 % [default: empty string] 0078 % 0079 % From MAT File 0080 % ------------- 0081 % 0082 % Construct a PZMODEL by loading it from a MAT file. 0083 % 0084 % 'filename' - construct a PZMODEL from a filename. 0085 % Example: plist('filename', 'pzm1.mat') 0086 % [default: empty string] 0087 % 0088 % From LISO File 0089 % -------------- 0090 % 0091 % Construct a PZMODEL by loading it from a LISO file. 0092 % 0093 % 'filename' - construct a PZMODEL from a filename. 0094 % Example: plist('filename', 'pzm1.fil') 0095 % [default: empty string] 0096 % 0097 % From Repository 0098 % --------------- 0099 % 0100 % Construct a PZMODEL by retrieving it from an LTPDA repository. 0101 % 0102 % 'Hostname' - the repository hostname. Only those objects which 0103 % are PZMODELs are returned. 0104 % [default: 'localhost']; 0105 % 0106 % Additional parameters: 0107 % 0108 % 'Database' - The database name [default: 'ltpda'] 0109 % 'ID' - A vector of object IDs. [default: []] 0110 % 'CID' - Retrieve all pzmodel objects from a particular 0111 % collection. 0112 % 0113 % From Poles/Zeros 0114 % ---------------- 0115 % 0116 % Construct a PZMODEL from poles and zeros. 0117 % 0118 % 'Gain' - model gain [default: 1] 0119 % 'Poles' - vector of pole objects [default: empty pole] 0120 % 'Zeros' - vector of zero objects [default: empty zero] 0121 % 'name' - name of model [default: 'None'] 0122 % 0123 % Example: plist('name', 'lp_filter', 'poles', [pole(0.1) pole(1,100)], ... 0124 % 'gain', 2); 0125 % 0126 % From Plist 0127 % ---------- 0128 % 0129 % 'Plist' - construct from a plist. The value passed should be a plist 0130 % object. 0131 % [default: empty plist] 0132 % 0133 % EXAMPLE 1: Still to be written ... 0134 % 0135 % M-FILE INFO: The following call returns an minfo object that contains 0136 % information about the pzmodel constructor: 0137 % >> info = pzmodel.getInfo 0138 % or >> info = pzmodel.getInfo('pzmodel') 0139 % 0140 % You can get information about class methods by calling: 0141 % >> info = pzmodel.getInfo(method) 0142 % e.g. >> info = pzmodel.getInfo('eq') 0143 % 0144 % You can also restrict the sets of parameters contained in 0145 % the minfo object by calling: 0146 % >> info = pzmodel.getInfo(method, set) 0147 % e.g. >> info = pzmodel.getInfo('pzmodel', 'From Pzmodel') 0148 % 0149 % VERSION: $Id: pzmodel.m,v 1.60 2008/09/07 10:48:46 hewitson Exp $ 0150 % 0151 % HISTORY: 03-04-2007 M Hewitson 0152 % Creation 0153 % 0154 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0155 0156 classdef pzmodel < ltpda_uoh 0157 0158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0159 % Property definition % 0160 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0161 0162 %---------- Public (read/write) Properties ---------- 0163 properties 0164 end 0165 0166 %---------- Protected read-only Properties ---------- 0167 properties (SetAccess = protected) 0168 gain = NaN; 0169 poles = pz; 0170 zeros = pz; 0171 version = '$Id: pzmodel.m,v 1.60 2008/09/07 10:48:46 hewitson Exp $'; 0172 end 0173 0174 %---------- Private Properties ---------- 0175 properties (GetAccess = protected, SetAccess = protected) 0176 end 0177 0178 %---------- Abstract Properties ---------- 0179 properties (Abstract = true, SetAccess = protected) 0180 end 0181 0182 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0183 % Check property setting % 0184 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0185 0186 methods 0187 function obj = set.gain(obj, val) 0188 if ~isnumeric(val) || isempty(val) || ~isreal(val) 0189 error('### The value for the property ''gain'' must be a real number'); 0190 end 0191 obj.gain = val; 0192 end 0193 function obj = set.poles(obj, val) 0194 if ~isa(val, 'pz') && ~isempty(val) 0195 error('### The value for the property ''poles'' must be an array of pz objects.'); 0196 end 0197 obj.poles = val; 0198 end 0199 function obj = set.zeros(obj, val) 0200 if ~isa(val, 'pz') && ~isempty(val) 0201 error('### The value for the property ''zeros'' must be an array of pz objects.'); 0202 end 0203 obj.zeros = val; 0204 end 0205 end 0206 0207 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0208 % Constructor % 0209 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0210 0211 methods 0212 function obj = pzmodel(varargin) 0213 0214 import utils.const.* 0215 utils.helper.msg(msg.OMNAME, 'running %s/%s', mfilename('class'), mfilename); 0216 0217 % Call superclass 0218 obj = obj@ltpda_uoh(varargin{:}); 0219 0220 %%%%%%%%%% Set dafault values %%%%%%%%%% 0221 0222 % Collect all pzmodel objects 0223 [pzs, invars, rest] = utils.helper.collect_objects(varargin(:), 'pzmodel'); 0224 0225 if isempty(rest) && ~isempty(pzs) 0226 % Do copy constructor and return 0227 utils.helper.msg(msg.OPROC1, 'copy constructor'); 0228 obj = copy(pzs, 1); 0229 for kk=1:numel(obj) 0230 obj(kk).addHistory(pzmodel.getInfo('pzmodel', 'None'), [], [], obj(kk).hist); 0231 end 0232 return 0233 end 0234 0235 switch nargin 0236 case 0 0237 utils.helper.msg(msg.OPROC1, 'empty constructor'); 0238 obj.addHistory(pzmodel.getInfo('pzmodel', 'None'), [], [], []); 0239 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0240 %%%%%%%%%%%% Zero inputs %%%%%%%%%%%%%%% 0241 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0242 0243 case 1 0244 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0245 %%%%%%%%%%%% One inputs %%%%%%%%%%%%%%% 0246 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0247 0248 if ischar(varargin{1}) 0249 %======== Filename 0250 %%%%%%%%%% pzm = pzmodel('foo.mat') %%%%%%%%%% 0251 %%%%%%%%%% pzm = pzmodel('foo.xml') %%%%%%%%%% 0252 %%%%%%%%%% pzm = pzmodel('foo.liso') %%%%%%%%%% 0253 utils.helper.msg(msg.OPROC1, 'constructing from file %s', varargin{1}); 0254 obj = fromFile(obj, varargin{1}); 0255 0256 elseif isstruct(varargin{1}) 0257 %======== Struct 0258 %%%%%%%%%% pzm = pzmodel(struct) %%%%%%%%%% 0259 0260 %%% Set properties which are declared in this class 0261 utils.helper.msg(msg.OPROC1, 'constructing from struct'); 0262 pzm_struct = varargin{1}; 0263 0264 obj.gain = pzm_struct.gain; 0265 obj.poles = utils.helper.struct2obj(pzm_struct.poles, 'pz'); 0266 obj.zeros = utils.helper.struct2obj(pzm_struct.zeros, 'pz'); 0267 obj.version = varargin{1}.version; 0268 0269 elseif isa(varargin{1}, 'plist') 0270 %======== Plist 0271 %%%%%%%%%% pzm = pzmodel(plist) %%%%%%%%%% 0272 pl = varargin{1}; 0273 0274 % Selection of construction method 0275 if pl.isparam('filename') 0276 utils.helper.msg(msg.OPROC1, 'constructing from file %s', varargin{1}); 0277 % construct from file 0278 obj = fromFile(obj, pl); 0279 elseif pl.isparam('hostname') || pl.isparam('conn') 0280 utils.helper.msg(msg.OPROC1, 'constructing from repository %s', pl.find('hostname')); 0281 % do hostname constructor 0282 obj = obj.fromRepository(pl); 0283 elseif pl.isparam('gain') || pl.isparam('poles') || pl.isparam('zeros') 0284 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0285 % Construct from poles and zeros 0286 obj = fromPolesAndZeros(obj, pl); 0287 elseif pl.isparam('ipl') 0288 ipl = find(pl, 'plist'); 0289 % if the plist is empty, we return an empty PZMODEL 0290 if ipl.nparams == 0 0291 else 0292 % do plist constructor 0293 obj = pzmodel(ipl); 0294 end 0295 else 0296 %%% if the plist is empty then return empty PZMODEL 0297 if nparams(pl) == 0 0298 else 0299 error('### Unknown PZMODEL constructor method.'); 0300 end 0301 end 0302 else 0303 error('### Unknown single argument constructor.'); 0304 end 0305 0306 case 2 0307 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0308 %%%%%%%%%%%%% Two inputs %%%%%%%%%%%%%%% 0309 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0310 if isa(varargin{1}, 'database') && isnumeric(varargin{2}) 0311 0312 %%%%%%%%%% f = pzmodel(<database-object>, [IDs]) %%%%%%%%%% 0313 % pzmodel(<database-object>, [IDs]) 0314 utils.helper.msg(msg.OPROC1, 'retrieve from repository'); 0315 obj = obj.fromRepository(plist('conn', varargin{1}, 'id', varargin{2})); 0316 elseif isa(varargin{1}, 'pzmodel') && isa(varargin{2}, 'plist') && isempty(varargin{2}.params) 0317 % pass to copy constructor 0318 obj = pzmodel(varargin{1}); 0319 else 0320 error('### Unknown 2 argument constructor.'); 0321 end 0322 0323 case 3 0324 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0325 %%%%%%%%%%%% Three inputs %%%%%%%%%%%%%% 0326 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0327 0328 %%%%%%%%%% pzm = pzmodel(gain, poles, zeros) %%%%%%%%%% 0329 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0330 pl = plist('gain', varargin{1}, 'poles', varargin{2}, 'zeros', varargin{3}); 0331 obj = fromPolesAndZeros(obj, pl); 0332 case 4 0333 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0334 %%%%%%%%%%%% Four inputs %%%%%%%%%%%%%%% 0335 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0336 0337 %%%%%%%%%% pzm = pzmodel(gain, poles, zeros, name) %%%%%%%%%% 0338 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0339 pl = plist('gain', varargin{1}, 'poles', varargin{2}, 'zeros', varargin{3}, 'name', varargin{4}); 0340 obj = fromPolesAndZeros(obj, pl); 0341 0342 otherwise 0343 [pzs, invars, rest] = utils.helper.collect_objects(args, 'pzmodel'); 0344 0345 %%% Do we have a list of AOs as input 0346 if ~isempty(pzs) && isempty(rest) 0347 obj = pzmodel(pzs); 0348 else 0349 error('### Unknown number of arguments.'); 0350 end 0351 end 0352 0353 end % End constructor 0354 0355 end 0356 0357 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0358 % Methods (protected) % 0359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0360 methods (Access = protected) 0361 obj = setGain(obj, val) 0362 obj = setPoles(obj, val) 0363 obj = setZeros(obj, val) 0364 end 0365 0366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0367 % Methods (static) % 0368 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0369 methods (Static) 0370 0371 varargout = update_struct(varargin); 0372 0373 function out = VEROUT() 0374 out = '$Id: pzmodel.m,v 1.60 2008/09/07 10:48:46 hewitson Exp $'; 0375 end 0376 0377 function ii = getInfo(varargin) 0378 ii = utils.helper.generic_getInfo(varargin{:}, 'pzmodel'); 0379 end 0380 0381 function out = SETS() 0382 out = {... 0383 'Default', ... 0384 'From XML File', ... 0385 'From MAT File', ... 0386 'From LISO File', ... 0387 'From Repository', ... 0388 'From Poles/Zeros', ... 0389 'From Plist'}; 0390 end 0391 0392 function out = getDefaultPlist(set) 0393 switch set 0394 case 'Default' 0395 out = plist(); 0396 %--- Pole/zero constructor 0397 case 'From Poles/Zeros' 0398 out = plist('gain', 1, ... 0399 'poles', [], ... 0400 'zeros', [], ... 0401 'name', 'None'); 0402 %--- Repository constructor 0403 case 'From Repository' 0404 out = plist('hostname', 'localhost', 'database', 'ltpda', 'ID', []); 0405 %--- Read from XML file 0406 case 'From XML File' 0407 out = plist('filename', ''); 0408 %--- Read from MAT file 0409 case 'From MAT File' 0410 out = plist('filename', ''); 0411 %--- Create from LISO file 0412 case 'From LISO File' 0413 out = plist('filename', ''); 0414 %--- Create from a plist 0415 case 'From Plist' 0416 out = plist('Plist', []); 0417 otherwise 0418 out = plist(); 0419 end 0420 end % function out = getDefaultPlist(varargin) 0421 0422 end % End static methods 0423 0424 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0425 % Methods (static, private) % 0426 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0427 0428 methods (Static, Access=private) 0429 0430 [ao,bo] = abcascade(a1,b1,a2,b2) 0431 0432 end % End static, private methods 0433 0434 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0435 % Methods (public) % 0436 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0437 methods 0438 varargout = char(varargin) 0439 varargout = display(varargin) 0440 varargout = string(varargin) 0441 varargout = copy(varargin) 0442 0443 f = getlowerFreq(varargin) 0444 f = getupperFreq(varargin) 0445 f = tomiir(varargin) 0446 f = tomfir(varargin) 0447 varargout = pzm2ab(varargin) 0448 varargout = fngen(varargin) 0449 varargout = resp(varargin) 0450 end 0451 0452 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0453 % Methods (protected) % 0454 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0455 methods (Access = protected) 0456 pzm = fromLISO(pzm, pli) 0457 end 0458 0459 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0460 % Methods (private) % 0461 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0462 methods (Access = private) 0463 % Constructors 0464 varargout = fromPolesAndZeros(varargin) 0465 0466 % Converters 0467 [a,b] = cp2iir(p, fs) 0468 [a,b] = rp2iir(p, fs) 0469 [a,b] = cz2iir(z, fs) 0470 [a,b] = rz2iir(z, fs) 0471 end 0472 0473 end % End classdef 0474