view m-toolbox/html_help/help/ug/sigproc_lcohere.html @ 42:f90d4f666cc7 database-connection-manager

Cleanup
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Mon, 05 Dec 2011 18:04:34 +0100
parents f0afece42f48
children
line wrap: on
line source

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">

<html lang="en">
<head>
  <meta name="generator" content=
  "HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org">
  <meta http-equiv="Content-Type" content=
  "text/html; charset=us-ascii">

  <title>Log-scale cross coherence density estimates (LTPDA Toolbox)</title>
  <link rel="stylesheet" href="docstyle.css" type="text/css">
  <meta name="generator" content="DocBook XSL Stylesheets V1.52.2">
  <meta name="description" content=
  "Presents an overview of the features, system requirements, and starting the toolbox.">
  </head>

<body>
  <a name="top_of_page" id="top_of_page"></a>

  <p style="font-size:1px;">&nbsp;</p>

  <table class="nav" summary="Navigation aid" border="0" width=
  "100%" cellpadding="0" cellspacing="0">
    <tr>
      <td valign="baseline"><b>LTPDA Toolbox</b></td><td><a href="../helptoc.html">contents</a></td>

      <td valign="baseline" align="right"><a href=
      "sigproc_lcpsd.html"><img src="b_prev.gif" border="0" align=
      "bottom" alt="Log-scale cross-spectral density estimates"></a>&nbsp;&nbsp;&nbsp;<a href=
      "sigproc_ltfe.html"><img src="b_next.gif" border="0" align=
      "bottom" alt="Log-scale transfer function estimates"></a></td>
    </tr>
  </table>

  <h1 class="title"><a name="f3-12899" id="f3-12899"></a>Log-scale cross coherence density estimates</h1>
  <hr>
  
  <p>
	<h2>Description</h2>
<p>
  The LTPDA method <a href="matlab:doc('ao/lcohere')">ao/lcohere</a> estimates the coherence function of time-series
  signals, included in the input <tt>ao</tt>s following the LPSD algorithm <a href="#references">[1]</a>. Spectral density estimates are not 
  evaluated at frequencies which are linear multiples of the minimum frequency resolution <tt>1/T</tt>, where <tt>T</tt> 
  is the window lenght, but on a logarithmic scale. The algorithm takes care of calculating the frequencies at which to evaluate
  the spectral estimate, aiming at minimizing the uncertainty in the estimate itself, and to recalculate a suitable
  window length for each frequency bin.
  </p>
  <p> 
  Data are windowed prior to the estimation of the spectrum, by multiplying
  it with a <a href="specwin.html">spectral window object</a>, and can be detrended by polinomial of time in order to reduce the impact
  of the border discontinuities. Detrending is performed on each individual window.
  The user can choose the quantity being given in output among ASD (amplitude spectral density),
  PSD (power spectral density), AS (amplitude spectrum), and PS (power spectrum).
  </p>
  <br>
<h2>Syntax</h2>
</p>
<div class="fragment"><pre>
    <br>    b = lcohere(a1,a2,pl)
  </pre>
</div>
<p>  <tt>a1</tt> and <tt>a2</tt> are the 2 <tt>ao</tt>s containing the input time series to be evaluated, <tt>b</tt> is the output object and <tt>pl</tt> is an optional parameter list.
 
  <h2>Parameters</h2>
  <p>The parameter list <tt>pl</tt> includes the following parameters:</p> 
 <ul>
  <li> <tt>'Kdes'</tt> - desired number of averages   [default: 100]</li>
  <li> <tt>'Jdes'</tt> - number of spectral frequencies to compute [default: 1000]</li>
  <li> <tt>'Lmin'</tt> - minimum segment length [default: 0]</li>
  <li> <tt>'Win'</tt> - the window to be applied to the data to remove the 
    discontinuities at edges of segments. [default: taken from user prefs].<br>
    The window is described by a string with its name and, only in the case of Kaiser window,
  the additional parameter <tt>'psll'</tt>. <br>For instance: plist('Win', 'Kaiser', 'psll', 200).  </li>
  <li> <tt>'Olap'</tt> - segment percent overlap [default: -1, (taken from window function)] </li>
  <li> <tt>'Order'</tt> - order of segment detrending <ul>
      <li>      -1 - no detrending  </li>
      <li>       0 - subtract mean [default] </li>
      <li>       1 - subtract linear fit </li>
      <li>       N - subtract fit of polynomial, order N  </li> </ul> </li>
<li><tt>'Type'</tt>  - type of scaling of the coherence function. Choose between:</li>
<ul>
   <li> <tt>'C'</tt> - Complex Coherence Sxy / sqrt(Sxx * Syy) [default ]</li>
      <li> <tt>'MS'</tt> - Magnitude-Squared Coherence (abs(Sxy))^2 / (Sxx * Syy) </li>
  </ul>
</ul>
  The length of the window is set by the value of the parameter <tt>'Nfft'</tt>, so that the window
  is actually rebuilt using only the key features of the window, i.e. the name and, for Kaiser windows, the PSLL.
</p>
<p>
  <table cellspacing="0" class="note" summary="Note" cellpadding="5" border="1">
    <tr width="90%">
      <td>
        If the user doesn't specify the value of a given parameter, the default value is used.
      </td>
    </tr>
  </table>
</p>
<p>
  The function makes magnitude-squadred coherence estimates between the 2 input <tt>ao</tt>s, on a logaritmic frequency scale.
    If passing two identical objects <tt>ai</tt> or linearly combined signals, the output will be 1 at all frequencies.</p>
</pre> </div>
</p>
<h2>Algorithm</h2>
<p>
  The algorithm is implemented according to <a href="#references">[1]</a>. The standard deviation of the mean is computed according to  <a href="#references">[2]</a>: 
</p>
  <div align="center">
  <img src="images/cohere_sigma1.png" >
</div>
where
 <div align="center">
  <img src="images/tfe_sigma2.png" >
</div>
  <br>
<p>
is the coherence function.
In the LPSD algorithm, the first frequencies bins are usually computed using a single segment containing all the data. 
For these bins, the sample variance is set to <tt>Inf</tt>.
</p>
  <h2>Example</h2>
<p>
  Evaluation of the coherence of two time-series represented by: a low frequency sinewave signal superimposed to
  white noise, and a low frequency sinewave signal at the same frequency, phase shifted and with different
  amplitude, superimposed to white noise.
</p>
<div class="fragment"><pre>
    <br>    <span class="comment">% Parameters</span>
    nsecs = 1000;
    fs  = 10;
    x = 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)) + ...
        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));
    x.setYunits(<span class="string">'m'</span>);
    y = 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>,2,<span class="string">'nsecs'</span>,nsecs,<span class="string">'fs'</span>,fs,<span class="string">'phi'</span>,90)) + ...
        4*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));
    y.setYunits(<span class="string">'V'</span>);
    
    <span class="comment">% Compute log coherence</span>
    Cxy = lcohere(x,y,plist(<span class="string">'win'</span>,<span class="string">'Kaiser'</span>,<span class="string">'psll'</span>,200));

    <span class="comment">% Plot</span>
    iplot(Cxy);
  </pre>
</div>

<img src="images/l_cohere_1.png" alt="" border="3">
<br>
<!-- <img src="images/l_cohere_2.png" alt="" border="3">
<br> -->

<h2><a name="references">References</a></h2>

<ol>
 <li> M. Troebs, G. Heinzel, Improved spectrum estimation from digitized time series
on a logarithmic frequency axis, <a href="http://dx.doi.org/10.1016/j.measurement.2005.10.010" ><i>Measurement</i>, Vol. 39 (2006), pp. 120 - 129</a>.  See also the <a href="http://dx.doi.org/10.1016/j.measurement.2008.04.004" >Corrigendum</a>.</li>  
 <li> G.C. Carter, C.H. Knapp, A.H. Nuttall, Estimation of the Magnitude-Squared Coherence Function Via Overlapped Fast Fourier Transform Processing
  , <i>IEEE Trans. on Audio and Electroacoustics</i>, Vol. 21, No. 4 (1973), pp. 337 - 344.</a></li>
</ol>
  </p>

  <br>
  <br>
  <table class="nav" summary="Navigation aid" border="0" width=
  "100%" cellpadding="0" cellspacing="0">
    <tr valign="top">
      <td align="left" width="20"><a href="sigproc_lcpsd.html"><img src=
      "b_prev.gif" border="0" align="bottom" alt=
      "Log-scale cross-spectral density estimates"></a>&nbsp;</td>

      <td align="left">Log-scale cross-spectral density estimates</td>

      <td>&nbsp;</td>

      <td align="right">Log-scale transfer function estimates</td>

      <td align="right" width="20"><a href=
      "sigproc_ltfe.html"><img src="b_next.gif" border="0" align=
      "bottom" alt="Log-scale transfer function estimates"></a></td>
    </tr>
  </table><br>

  <p class="copy">&copy;LTP Team</p>
</body>
</html>