Home > classes > @zero > resp.m

resp

PURPOSE ^

RESP returns the complex response of the zero object.

SYNOPSIS ^

function [f,r] = resp(varargin)

DESCRIPTION ^

 RESP returns the complex response of the zero object.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: RESP returns the complex response of the zero object.

 CALL:        [f,r] = resp(p, f);          % compute response for vector f
              [f,r] = resp(p, f1, f2, nf); % compute response from f1 to f2
                                           % in nf steps.
              [f,r] = resp(p, pl);         % compute response from parameter list.

 PARAMETERS:  'f'  - a vector of frequencies to evaluate at
            or
              'f1'    - start frequency
              'f2'    - stop frequency
              'nf'    - number of evaluation frequencies
              'scale' - spacing of frequencies: 'lin' or 'log'

 VERSION:     $Id: resp.m,v 1.3 2007/07/18 13:58:45 ingo Exp $

 HISTORY:     03-04-2007 Hewitson
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [f,r] = resp(varargin)
0002 % RESP returns the complex response of the zero object.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: RESP returns the complex response of the zero object.
0007 %
0008 % CALL:        [f,r] = resp(p, f);          % compute response for vector f
0009 %              [f,r] = resp(p, f1, f2, nf); % compute response from f1 to f2
0010 %                                           % in nf steps.
0011 %              [f,r] = resp(p, pl);         % compute response from parameter list.
0012 %
0013 % PARAMETERS:  'f'  - a vector of frequencies to evaluate at
0014 %            or
0015 %              'f1'    - start frequency
0016 %              'f2'    - stop frequency
0017 %              'nf'    - number of evaluation frequencies
0018 %              'scale' - spacing of frequencies: 'lin' or 'log'
0019 %
0020 % VERSION:     $Id: resp.m,v 1.3 2007/07/18 13:58:45 ingo Exp $
0021 %
0022 % HISTORY:     03-04-2007 Hewitson
0023 %                 Creation
0024 %
0025 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0026 
0027 if nargin < 1
0028   error('### incorrect number of inputs.')
0029 end
0030 
0031 % look at inputs
0032 p = varargin{1};
0033 if ~isa(p, 'zero')
0034   error('### first argument should be a zero object.');
0035 end
0036 % Now look at the zero
0037 f0 = get(p, 'f');
0038 Q  = get(p, 'q');
0039 
0040 % check inputs
0041 if nargin == 1
0042 
0043   f = linspace(f0/10, 10*f0, 1000);
0044 
0045 elseif nargin == 2
0046   if isa(varargin{2}, 'plist')
0047     pl = varargin{2};
0048     f  = find(pl, 'f');
0049     f1 = find(pl, 'f1');
0050     f2 = find(pl, 'f2');
0051     nf = find(pl, 'nf');
0052     scale = find(pl, 'scale');
0053 
0054     if ~isempty(f)
0055       % nothing
0056     elseif ~isempty(f1) && ~isempty(f2) && ~isempty(nf)
0057       if isempty(scale) || strcmp(scale, 'lin')
0058         f = linspace(f1, f2, nf);
0059       elseif strcmp(scale, 'log')
0060         f = logspace(f1, f2, nf);
0061       else
0062         error('### unknown scale option for zero response.');
0063       end
0064     else
0065       error('### unknown parameter list for zero response.');
0066     end
0067 
0068   else
0069     f = varargin{2};
0070   end
0071 elseif nargin == 4
0072   f1 = varargin{2};
0073   f2 = varargin{3};
0074   nf = varargin{4};
0075   f  = linspace(f1, f2, nf);
0076 else
0077   error('### incorrect number of inputs.');
0078 end
0079 
0080 
0081 if Q>0.5
0082   re = 1 - (f.^2./f0^2);
0083   im = f ./ (f0*Q);
0084   r = complex(re, im);
0085 else
0086   re = 1;
0087   im = f./f0;
0088   r = complex(re, im);
0089 end
0090 
0091 
0092 
0093 % END

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003