


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: []]
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.54 2008/08/22 14:17:27 ingo 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 % 0111 % From Poles/Zeros 0112 % ---------------- 0113 % 0114 % Construct a PZMODEL from poles and zeros. 0115 % 0116 % 'Gain' - model gain [default: 1] 0117 % 'Poles' - vector of pole objects [default: empty pole] 0118 % 'Zeros' - vector of zero objects [default: empty zero] 0119 % 'name' - name of model [default: 'None'] 0120 % 0121 % Example: plist('name', 'lp_filter', 'poles', [pole(0.1) pole(1,100)], ... 0122 % 'gain', 2); 0123 % 0124 % From Plist 0125 % ---------- 0126 % 0127 % 'Plist' - construct from a plist. The value passed should be a plist 0128 % object. 0129 % [default: empty plist] 0130 % 0131 % EXAMPLE 1: Still to be written ... 0132 % 0133 % M-FILE INFO: The following call returns an minfo object that contains 0134 % information about the pzmodel constructor: 0135 % >> info = pzmodel.getInfo 0136 % or >> info = pzmodel.getInfo('pzmodel') 0137 % 0138 % You can get information about class methods by calling: 0139 % >> info = pzmodel.getInfo(method) 0140 % e.g. >> info = pzmodel.getInfo('eq') 0141 % 0142 % You can also restrict the sets of parameters contained in 0143 % the minfo object by calling: 0144 % >> info = pzmodel.getInfo(method, set) 0145 % e.g. >> info = pzmodel.getInfo('pzmodel', 'From Pzmodel') 0146 % 0147 % VERSION: $Id: pzmodel.m,v 1.54 2008/08/22 14:17:27 ingo Exp $ 0148 % 0149 % HISTORY: 03-04-2007 M Hewitson 0150 % Creation 0151 % 0152 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0153 0154 classdef pzmodel < ltpda_uoh 0155 0156 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0157 % Property definition % 0158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0159 0160 %---------- Public (read/write) Properties ---------- 0161 properties 0162 end 0163 0164 %---------- Protected read-only Properties ---------- 0165 properties (SetAccess = protected) 0166 gain = NaN; 0167 poles = pz; 0168 zeros = pz; 0169 end 0170 0171 %---------- Private Properties ---------- 0172 properties (GetAccess = protected, SetAccess = protected) 0173 end 0174 0175 %---------- Abstract Properties ---------- 0176 properties (Abstract = true, SetAccess = protected) 0177 end 0178 0179 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0180 % Check property setting % 0181 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0182 0183 methods 0184 function obj = set.gain(obj, val) 0185 if ~isnumeric(val) || isempty(val) || ~isreal(val) 0186 error('### The value for the property ''gain'' must be a real number'); 0187 end 0188 obj.gain = val; 0189 end 0190 function obj = set.poles(obj, val) 0191 if ~isa(val, 'pz') && ~isempty(val) 0192 error('### The value for the property ''poles'' must be an array of pz objects.'); 0193 end 0194 obj.poles = val; 0195 end 0196 function obj = set.zeros(obj, val) 0197 if ~isa(val, 'pz') && ~isempty(val) 0198 error('### The value for the property ''zeros'' must be an array of pz objects.'); 0199 end 0200 obj.zeros = val; 0201 end 0202 end 0203 0204 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0205 % Constructor % 0206 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0207 0208 methods 0209 function obj = pzmodel(varargin) 0210 0211 import utils.const.* 0212 utils.helper.msg(msg.OMNAME, 'running %s/%s', mfilename('class'), mfilename); 0213 0214 % Call superclass 0215 obj = obj@ltpda_uoh(varargin{:}); 0216 0217 %%%%%%%%%% Set dafault values %%%%%%%%%% 0218 %%% Exept for a struct as an input 0219 if ~(nargin == 1 && isstruct(varargin{1})) 0220 % set version 0221 obj.prependVersion('$Id: pzmodel.m,v 1.54 2008/08/22 14:17:27 ingo Exp $'); 0222 end 0223 0224 % Collect all pzmodel objects 0225 [pzs, invars, rest] = utils.helper.collect_objects(varargin(:), 'pzmodel'); 0226 0227 if isempty(rest) && ~isempty(pzs) 0228 % Do copy constructor and return 0229 utils.helper.msg(msg.OPROC1, 'copy constructor'); 0230 obj = copy(pzs, 1); 0231 for kk=1:numel(obj) 0232 obj(kk).addHistory(pzmodel.getInfo('pzmodel', 'None'), [], [], obj(kk).hist); 0233 end 0234 return 0235 end 0236 0237 switch nargin 0238 case 0 0239 utils.helper.msg(msg.OPROC1, 'empty constructor'); 0240 obj.addHistory(pzmodel.getInfo('pzmodel', 'None'), plist(), [], []); 0241 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0242 %%%%%%%%%%%% Zero inputs %%%%%%%%%%%%%%% 0243 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0244 case 1 0245 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0246 %%%%%%%%%%%% One inputs %%%%%%%%%%%%%%% 0247 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0248 0249 if ischar(varargin{1}) 0250 %======== Filename 0251 %%%%%%%%%% pzm = pzmodel('foo.mat') %%%%%%%%%% 0252 %%%%%%%%%% pzm = pzmodel('foo.xml') %%%%%%%%%% 0253 %%%%%%%%%% pzm = pzmodel('foo.liso') %%%%%%%%%% 0254 utils.helper.msg(msg.OPROC1, 'constructing from file %s', varargin{1}); 0255 obj = fromFile(obj, varargin{1}); 0256 0257 elseif isstruct(varargin{1}) 0258 %======== Struct 0259 %%%%%%%%%% pzm = pzmodel(struct) %%%%%%%%%% 0260 0261 %%% Set properties which are declared in this class 0262 utils.helper.msg(msg.OPROC1, 'constructing from struct'); 0263 pzm_struct = varargin{1}; 0264 0265 obj.gain = pzm_struct.gain; 0266 obj.poles = utils.helper.struct2obj(pzm_struct.poles, 'pz'); 0267 obj.zeros = utils.helper.struct2obj(pzm_struct.zeros, 'pz'); 0268 0269 elseif isa(varargin{1}, 'plist') 0270 %======== Plist 0271 %%%%%%%%%% pzm = pzmodel(plist) %%%%%%%%%% 0272 pl = varargin{1}; 0273 filename = find(pl, 'filename'); 0274 hostname = find(pl, 'hostname'); 0275 conn = find(pl ,'conn'); 0276 gain = find(pl, 'gain'); 0277 ipl = find(pl, 'plist'); 0278 0279 % Selection of construction method 0280 if ~isempty(filename) 0281 utils.helper.msg(msg.OPROC1, 'constructing from file %s', varargin{1}); 0282 % construct from file 0283 obj = fromFile(obj, pl); 0284 elseif ~isempty(hostname) || ~isempty(conn) 0285 utils.helper.msg(msg.OPROC1, 'constructing from repository %s', hostname); 0286 % do hostname constructor 0287 obj = obj.fromRepository(pl); 0288 elseif ~isempty(gain) 0289 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0290 % Construct from poles and zeros 0291 obj = fromPolesAndZeros(obj, pl); 0292 elseif ~isempty(ipl) 0293 % if the plist is empty, we return an empty PZMODEL 0294 if ipl.nparams == 0 0295 else 0296 % do plist constructor 0297 obj = pzmodel(ipl); 0298 end 0299 else 0300 %%% if the plist is empty then return empty PZMODEL 0301 if nparams(pl) == 0 0302 else 0303 error('### Unknown PZMODEL constructor method.'); 0304 end 0305 end 0306 else 0307 error('### Unknown single argument constructor.'); 0308 end 0309 case 2 0310 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0311 %%%%%%%%%%%%% Two inputs %%%%%%%%%%%%%%% 0312 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0313 if isa(varargin{1}, 'database') && isnumeric(varargin{2}) 0314 0315 %%%%%%%%%% f = pzmodel(<database-object>, [IDs]) %%%%%%%%%% 0316 % pzmodel(<database-object>, [IDs]) 0317 utils.helper.msg(msg.OPROC1, 'retrieve from repository'); 0318 obj = obj.fromRepository(plist('conn', varargin{1}, 'id', varargin{2})); 0319 0320 else 0321 error('### Unknown 2 argument constructor.'); 0322 end 0323 0324 0325 case 3 0326 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0327 %%%%%%%%%%%% Three inputs %%%%%%%%%%%%%% 0328 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0329 0330 %%%%%%%%%% pzm = pzmodel(gain, poles, zeros) %%%%%%%%%% 0331 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0332 pl = plist('gain', varargin{1}, 'poles', varargin{2}, 'zeros', varargin{3}); 0333 obj = fromPolesAndZeros(obj, pl); 0334 case 4 0335 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0336 %%%%%%%%%%%% Four inputs %%%%%%%%%%%%%%% 0337 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0338 0339 %%%%%%%%%% pzm = pzmodel(gain, poles, zeros, name) %%%%%%%%%% 0340 utils.helper.msg(msg.OPROC1, 'constructing from poles and zeros'); 0341 pl = plist('gain', varargin{1}, 'poles', varargin{2}, 'zeros', varargin{3}, 'name', varargin{4}); 0342 obj = fromPolesAndZeros(obj, pl); 0343 0344 otherwise 0345 error('### Unknown number of arguments.'); 0346 end 0347 0348 end % End constructor 0349 0350 end 0351 0352 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0353 % Methods (protected) % 0354 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0355 methods (Access = protected) 0356 obj = setGain(obj, val) 0357 obj = setPoles(obj, val) 0358 obj = setZeros(obj, val) 0359 end 0360 0361 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0362 % Methods (static) % 0363 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0364 methods (Static) 0365 0366 varargout = update_struct(varargin); 0367 0368 function out = VEROUT() 0369 out = '$Id: pzmodel.m,v 1.54 2008/08/22 14:17:27 ingo Exp $'; 0370 end 0371 0372 function ii = getInfo(varargin) 0373 ii = utils.helper.generic_getInfo(varargin{:}, 'pzmodel'); 0374 end 0375 0376 function out = SETS() 0377 out = {... 0378 'From XML File', ... 0379 'From MAT File', ... 0380 'From LISO File', ... 0381 'From Repository', ... 0382 'From Poles/Zeros', ... 0383 'From Plist'}; 0384 end 0385 0386 function out = getDefaultPlist(set) 0387 switch set 0388 %--- Pole/zero constructor 0389 case 'From Poles/Zeros' 0390 out = plist('gain', 1, ... 0391 'poles', [], ... 0392 'zeros', [], ... 0393 'name', 'None'); 0394 %--- Repository constructor 0395 case 'From Repository' 0396 out = plist('hostname', 'localhost', 'database', 'ltpda', 'ID', []); 0397 %--- Read from XML file 0398 case 'From XML File' 0399 out = plist('filename', ''); 0400 %--- Read from MAT file 0401 case 'From MAT File' 0402 out = plist('filename', ''); 0403 %--- Create from LISO file 0404 case 'From LISO File' 0405 out = plist('filename', ''); 0406 %--- Create from a plist 0407 case 'From Plist' 0408 out = plist('Plist', []); 0409 otherwise 0410 out = plist(); 0411 end 0412 end % function out = getDefaultPlist(varargin) 0413 0414 end % End static methods 0415 0416 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0417 % Methods (static, private) % 0418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0419 0420 methods (Static, Access=private) 0421 0422 [ao,bo] = abcascade(a1,b1,a2,b2) 0423 0424 end % End static, private methods 0425 0426 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0427 % Methods (public) % 0428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0429 methods 0430 varargout = char(varargin) 0431 varargout = display(varargin) 0432 varargout = string(varargin) 0433 varargout = copy(varargin) 0434 0435 f = getlowerFreq(varargin) 0436 f = getupperFreq(varargin) 0437 f = tomiir(varargin) 0438 f = tomfir(varargin) 0439 varargout = pzm2ab(varargin) 0440 varargout = fngen(varargin) 0441 varargout = resp(varargin) 0442 end 0443 0444 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0445 % Methods (protected) % 0446 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0447 methods (Access = protected) 0448 pzm = fromLISO(pzm, pli) 0449 end 0450 0451 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0452 % Methods (private) % 0453 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0454 methods (Access = private) 0455 % Constructors 0456 varargout = fromPolesAndZeros(varargin) 0457 0458 % Converters 0459 [a,b] = cp2iir(p, fs) 0460 [a,b] = rp2iir(p, fs) 0461 [a,b] = cz2iir(z, fs) 0462 [a,b] = rz2iir(z, fs) 0463 end 0464 0465 end % End classdef 0466