Home > classes > @zero > zero.m

zero

PURPOSE ^

ZERO construct a pole object.

SYNOPSIS ^

function p = zero(varargin)

DESCRIPTION ^

 ZERO construct a pole object.
 
 usage: z = zero(f);      - frequency (Hz)
        z = zero(f,q);    - frequency (Hz), Q
        z = zero(c);      - complex number
        z = zero(pl);     - plist()
 
 Parameters:
   'f'  - frequency
   'q'  - Q
   'ri' - complex value
 
 M Hewitson 02-04-07

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function p = zero(varargin)
0002 
0003 % ZERO construct a pole object.
0004 %
0005 % usage: z = zero(f);      - frequency (Hz)
0006 %        z = zero(f,q);    - frequency (Hz), Q
0007 %        z = zero(c);      - complex number
0008 %        z = zero(pl);     - plist()
0009 %
0010 % Parameters:
0011 %   'f'  - frequency
0012 %   'q'  - Q
0013 %   'ri' - complex value
0014 %
0015 % M Hewitson 02-04-07
0016 %
0017 
0018 ALGONAME = mfilename;
0019 VERSION  = '$Id: zero.html,v 1.1 2007/06/08 14:15:09 hewitson Exp $';
0020 
0021 if nargin == 1
0022   % value or plist or copy
0023   if isnumeric(varargin{1})
0024     if isreal(varargin{1})
0025       p.name    = 'real zero';
0026       p.f       = varargin{1};
0027       p.q       = -1;
0028       p.ri      = p.f;
0029       p.version = VERSION;
0030       p         = class(p, 'zero');
0031     else
0032       p.name     = 'complex zero';
0033       [p.f, p.q] = pri2fq(varargin{1});
0034       p.ri      = [varargin{1} conj(varargin{1})];
0035       p.version = VERSION;
0036       p         = class(p, 'zero');
0037     end
0038   elseif isstruct(varargin{1})
0039     
0040     p = class(varargin{1}, 'zero');
0041     
0042   elseif isa(varargin{1}, 'plist')
0043     
0044     p = zeroFromPlist(varargin{1}, VERSION);
0045     
0046   elseif isa(varargin{1}, 'zero')
0047     p = varargin{1};
0048   else
0049     error('### unknown constructor method for zero class.');
0050   end
0051   
0052 else
0053   if isnumeric(varargin{1}) && isnumeric(varargin{2})
0054     p.name    = 'complex zero';
0055     p.f       = varargin{1};
0056     p.q       = varargin{2};
0057     p.ri      = pfq2ri(p.f, p.q);
0058     p.version = VERSION;
0059     p         = class(p, 'zero');
0060     
0061   else
0062     error('### unknown constructor method for zero class.');
0063   end
0064     
0065 end
0066 
0067 %--------------------------------------------------------------------------
0068 % construct a pole from plist
0069 %
0070 function p = zeroFromPlist(pl, VERSION) 
0071 
0072 f  = find(pl, 'f');
0073 q  = find(pl, 'q');
0074 ri = find(pl, 'ri');
0075 
0076 
0077 if ~isempty(f)
0078   if ~isempty(q)
0079     % complex zero
0080     p.name    = 'complex zero';
0081     p.f       = f;
0082     p.q       = q;
0083     p.ri      = pfq2ri(p.f, p.q);
0084     p.version = VERSION;
0085     p         = class(p, 'zero');
0086     
0087   else
0088     % real zero
0089     p.name    = 'real zero';
0090     p.f       = f;
0091     p.q       = -1;
0092     p.ri      = p.f;
0093     p.version = VERSION;
0094     p         = class(p, 'zero');
0095     
0096   end
0097 elseif ~isempty(ri)
0098   % complex zero
0099   p.name    = 'complex zero';
0100   [p.f, p.q] = pri2fq(ri);
0101   p.ri      = ri;
0102   p.version = VERSION;
0103   p         = class(p, 'zero');
0104   
0105 else
0106   error('### unknown constructor method for zero class.');
0107 end
0108 
0109 
0110 
0111 % END

Generated on Fri 08-Jun-2007 16:09:11 by m2html © 2003