0001 function pzm = pzmodel(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 ALGONAME = mfilename;
0021 VERSION = '$Id: pzmodel.html,v 1.1 2007/06/08 14:15:07 hewitson Exp $';
0022
0023 if nargin == 0
0024
0025 gain = 0;
0026 poles = [];
0027 zeros = [];
0028 name = 'pzmodel';
0029
0030 elseif nargin == 1
0031 pl = varargin{1};
0032
0033 if isstruct(pl)
0034 pzm.name = pl.name;
0035 pzm.gain = pl.gain;
0036 pzm.poles = pl.poles;
0037 pzm.zeros = pl.zeros;
0038 pzm = class(pzm, 'pzmodel');
0039 return
0040
0041 else
0042
0043 gain = find(pl, 'gain');
0044 poles = find(pl, 'poles');
0045 zeros = find(pl, 'zeros');
0046 name = find(pl, 'name');
0047 if isempty(name)
0048 name = 'pzmodel';
0049 end
0050 end
0051
0052 elseif nargin >= 3
0053 a = varargin{1};
0054 if isa(a, 'ao')
0055 gain = a.data(1);
0056 else
0057 gain = a;
0058 end
0059 poles = varargin{2};
0060 zeros = varargin{3};
0061 if nargin == 4
0062 name = varargin{4};
0063 else
0064 name = 'pzmodel';
0065 end
0066
0067 else
0068 error('### incorrect number of inputs.');
0069 end
0070
0071
0072 pzm.name = name;
0073 pzm.gain = gain;
0074 pzm.poles = poles;
0075 pzm.zeros = zeros;
0076 pzm = class(pzm, 'pzmodel');
0077
0078
0079