view m-toolbox/classes/@pzmodel/respCore.m @ 31:a26669b59d7e
database-connection-manager
Update LTPDAworkbench
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05)
parents
f0afece42f48
children
line source
+ − % RESPCORE returns the complex response of one pzmodel object.
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % DESCRIPTION: RESPCORE returns the complex response of one pzmodel object
+ − % as a data-vector. This function should only be used by the
+ − % resp method of the ltpda_tf class.
+ − %
+ − % CALL: r = respCore(obj, f);
+ − %
+ − % VERSION: $Id: respCore.m,v 1.3 2010/03/15 15:49:53 ingo Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function r = respCore(varargin)
+ −
+ − %%% Get Inputs
+ − obj = varargin{1};
+ − f = varargin{2}; % Row vector
+ −
+ − gain = obj.gain;
+ − poles = obj.poles;
+ − zeros = obj.zeros;
+ − delay = obj.delay;
+ − np = numel(poles);
+ − nz = numel(zeros);
+ −
+ − %%% Compute response
+ − r = gain*ones(size(f));
+ −
+ − for j=1:np
+ − if ~isnan(poles(j).f)
+ − [f, pr] = resp(poles(j),f);
+ − r = r .* pr;
+ − end
+ − end
+ −
+ − for j=1:nz
+ − if ~isnan(zeros(j).f)
+ − [f, zr] = resp(zeros(j),f);
+ − r = r ./zr;
+ − end
+ − end
+ −
+ − r = r .* exp(-2*pi*f*1i*delay); % Row vector
+ −
+ − end
+ −