diff m-toolbox/html_help/help/ug/specwin_using_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/specwin_using_content.html	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,78 @@
+<p>
+  Spectral windows are typically used in spectral analysis algorithms. In all LTPDA spectral analysis 
+  functions, spectral windows are specified as parameters in an input parameter list. The following
+  example shows the use of <tt>ao/psd</tt> to estimate an Amplitude Spectral Density of
+  the time-series captured in the input AO, <tt>a</tt>. The help for <a href="matlab:doc('ao/ao/psd')">ao/lpsd</a>
+  reveals that the required parameter for setting the window function is <tt>'Win'</tt>.
+</p>	
+<div class="fragment"><pre>
+    <br>    <span class="comment">% Parameters</span> 
+    nsecs = 1000;
+    fs = 10;
+    
+    <span class="comment">% Create input AOs</span>
+    x1 = ao(plist( <span class="string">'waveform'</span>, <span class="string">'sine wave'</span>, <span class="string">'f'</span>,0.1, <span class="string">'A'</span>,1, <span class="string">'nsecs'</span>,nsecs, <span class="string">'fs'</span>,fs));
+    x2 = ao(plist( <span class="string">'waveform'</span>, <span class="string">'noise'</span>, <span class="string">'type'</span>, <span class="string">'normal'</span>, <span class="string">'nsecs'</span>,nsecs, <span class="string">'fs'</span>,fs));
+       
+    <span class="comment">% Add both</span>
+    x = x1 + x2;
+    
+    <span class="comment">% Compute psd with Blackman-Harris window</span>
+    z = psd(x,plist(<span class="string">'win'</span>,<span class="string">'BH92'</span>));
+        
+    <span class="comment">% Plot</span>
+    iplot(z);
+</pre></div>
+<p>
+  In this case, the size of the spectral window (number of samples) may not match the length
+  of the segments in the spectral estimation. The <tt>psd</tt> algorithm then 
+  recomputes the window using the input design but for the correct length of window function.
+</p>
+
+<img src="images/specwin_using1.png" >
+
+<h2>Selecting the Peak Side-Lobe level (psll) with Kaiser's window</h2>
+<p>
+  The <a href="specwin_description.html">table</a> in the previous section shows how each standard spectral window is defined by the 
+  Peak Side-Lobe level (<tt>psll</tt>). However, Kaiser's window allows the user to define the <tt>psll</tt> of the window.
+</p> 
+<p>
+  The following example shows the importance of selecting a suitable <tt>psll</tt> according to each application. The example creates 
+  1/f noise (in fact, noise generated 
+  by a pole-zero model with a pole at low frequencies) and computes the Amplitude Spectrum Density (ASD) with three different <tt>psll</tt> 
+  values. The ASD with the lowest value shows a bias at high frequencies compared with the response of the pzmodel used to generate 
+  the data (in black). This effect is due to the power added by the high order lobes of the window. The ASD with the highet value of the
+  <tt>psll</tt> adds a feature at low frequencies because the main lobe of the window is too wide. Only the 
+  middle value gives an estimation of the ASD without adding window related features.   
+</p> 
+
+<div class="fragment"><pre>
+    <br>    <span class="comment">% Parameters</span>
+    nsecs = 10000;
+    fs = 1;
+    
+    <span class="comment">% Create pzmodel with a low frequency pole</span>
+    pzm = pzmodel(1e5,[1e-7,0.1],[]);
+    
+    <span class="comment">% Build (nearly) 1/f noise</span>
+    x = ao(plist(<span class="string">'pzmodel'</span>,pzm, <span class="string">'nsecs'</span>,nsecs, <span class="string">'fs'</span>,fs));
+    
+    <span class="comment">% Compute psd with Blackman-Harris window</span>
+    z1 = psd(x,plist(<span class="string">'scale'</span>,<span class="string">'ASD'</span>,<span class="string">'win'</span>,<span class="string">'Kaiser'</span>,<span class="string">'psll'</span>,50));
+    z1.setName(<span class="string">'psll = 50'</span>);
+    z2 = psd(x,plist('scale',<span class="string">'ASD'</span>,<span class="string">'win'</span>,<span class="string">'Kaiser'</span>,<span class="string">'psll'</span>,100));
+    z2.setName(<span class="string">'psll = 100'</span>);
+    z3 = psd(x,plist(<span class="string">'scale'</span>,<span class="string">'ASD'</span>,<span class="string">'win'</span>,<span class="string">'Kaiser'</span>,<span class="string">'psll'</span>,1000));
+    z3.setName(<span class="string">'psll = 1000'</span>);
+    
+    <span class="comment">% Plot</span>
+    r = resp(pzm,plist(<span class="string">'f1'</span>,1e-4,<span class="string">'f2'</span>,1));
+    r.setName(<span class="string">'response'</span>)
+    r.setPlotinfo(plist(<span class="string">'color'</span>,<span class="string">'k'</span>))
+    iplot(z1,z2,z3,abs(r));
+</pre></div>
+
+<img src="images/specwin_using2.png" >
+
+
+