Mercurial > hg > ltpda
diff m-toolbox/html_help/help/ug/pzmodel_model_content.html @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/html_help/help/ug/pzmodel_model_content.html Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,124 @@ + + <p> + Poles and zeros can be combined together to create a pole/zero model. In addition to a list of poles + and zeros, a gain factor and a delay can be specified such that the resulting model is of the form: + </p> + <br> + <div align="center"> + <img src="images/pzmodel_tf_eqn.png" alt="Pole/zero model TF" border="3"> + </div> + <br> + <p> + The following sections introduce how to produce and use pole/zero models in the LTPDA environment. + <ul> + <li><a href="#direct">Direct form</a></li> + <li><a href="#plist">Creating from a <tt>plist</tt></a></li> + <li><a href="#resp">Computing the response of the model</a></li> + </ul> + </p> + + + <h2><a name="direct">Direct form</a></h2> + + The following code fragment creates a pole/zero model consisting of 2 poles and 2 zeros with a gain + factor of 10 and a 10ms delay: + <div class="fragment"><pre> + >> pzm = pzmodel(10, {[1 2], 3}, {5, 10}, 0.01) +---- pzmodel 1 ---- + name: None + gain: 10 + delay: 0.01 + iunits: [] + ounits: [] +pole 001: (f=1 Hz,Q=2) +pole 002: (f=3 Hz,Q=NaN) +zero 001: (f=5 Hz,Q=NaN) +zero 002: (f=10 Hz,Q=NaN) +------------------- + </pre></div> + <p> + Notice, you can also pass arrays of <tt>pz</tt> objects to the <tt>pzmodel</tt> constructor, but this + should rarely be necessary. + </p> + + <h2><a name="plist">Creating from a <tt>plist</tt></a></h2> + + <p> + You can also create a <tt>pzmodel</tt> by passing a parameter list. The following example shows + this + </p> + + <div class="fragment"><pre> + >> pl = plist(<span class="string">'name'</span>, <span class="string">'test model'</span>, ... + <span class="string">'gain'</span>, 10, ... + <span class="string">'poles'</span>, {[1 2], 3}, ... + <span class="string">'zeros'</span>, {5, 10}, ... + <span class="string">'delay'</span>, 0.01, ... + <span class="string">'iunits'</span>, 'm', ... + <span class="string">'ounits'</span>, 'V^2'); + >> pzm = pzmodel(pl) + ---- pzmodel 1 ---- + name: test model + gain: 10 + delay: 0.01 + iunits: [m] + ounits: [V^2] +pole 001: (f=1 Hz,Q=2) +pole 002: (f=3 Hz,Q=NaN) +zero 001: (f=5 Hz,Q=NaN) +zero 002: (f=10 Hz,Q=NaN) +------------------- + </pre></div> + <p> + Here we also specified the input units of the transfer function ('iunits') and the + output units, ('ounits'). In this case, the model represents a transfer function + from metres to Volts squared. + </p> + + <h2><a name="resp">Computing the response of the model</a></h2> + + <p> + The frequency response of the model can generated using the <tt>resp</tt> method of the + <tt>pzmodel</tt> class. To compute the response of the model created above: + </p> + <div class="fragment"><pre> + >> resp(pzm) + </pre></div> + <p> + Since no output was specified, this command produces the following plot: + <img src="images/pzmodel_resp.png" alt="Pole/zero model resp" border="3" width="600"> + </p> + <p> + You can also specify the frequency band over which to compute the response by passing a <tt>plist</tt> + to the <tt>resp</tt> method, as follows: + </p> + <div class="fragment"><pre> + >> rpl = plist(<span class="string">'f1'</span>, 0.1, ... + <span class="string">'f2'</span>, 1000, ... + <span class="string">'nf'</span>, 10000); + >> a = resp(pzm, rpl) + ----------- ao 01: resp(test model) ----------- + + name: resp(test model) +description: + data: (0.1,10.0668830776529-i*0.605439551995965) (0.100092155051679,10.067006787497-i*0.606014805088671) (0.100184395028894,10.0671307268392-i*0.606590636924472) (0.100276720009908,10.0672548961078-i*0.607167048174596) (0.100369130073055,10.0673792957318-i*0.607744039511284) ... + ----------- fsdata 01 ----------- + + fs: NaN + x: [1 10000], double + y: [1 10000], double + xunits: [Hz] + yunits: [V^(2)][m^(-1)] + t0: 1970-01-01 00:00:00.000 + navs: NaN + --------------------------------- + + hist: pzmodel / resp / $Id: pzmodel_model_content.html,v 1.5 2009/02/24 09:44:39 miquel Exp $ + mfilename: +mdlfilename: +----------------------------------------------- + </pre></div> + <p> + In this case, the response is returned as an Analysis Object containing <tt>fsdata</tt>. You can now + plot the AO using the <tt>iplot</tt> function. + </p>