view C++/api/html/classEar.html @ 610:01986636257a

Second check-in of Alex Brandmeyer's C++ implementation of CARFAC. Addressed style issues and completed implementation of remaining functions. Still needs proper testing of the output stages against the MATLAB version, and runtime functions need improvements in efficiency.
author alexbrandmeyer
date Thu, 16 May 2013 17:33:23 +0000
parents 97976133eb4d
children
line wrap: on
line source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CARFAC C++: Ear Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="icon.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">CARFAC C++
   
   </div>
   <div id="projectbrief">C++ implementation of CARFAC</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classEar.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Ear Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="Ear" -->
<p><code>#include &lt;<a class="el" href="Ear_8H_source.html">Ear.H</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for Ear:</div>
<div class="dyncontent">
<div class="center"><img src="classEar__coll__graph.png" border="0" usemap="#Ear_coll__map" alt="Collaboration graph"/></div>
<map name="Ear_coll__map" id="Ear_coll__map">
<area shape="rect" id="node2" href="classIHC.html" title="IHC" alt="" coords="723,272,768,301"/><area shape="rect" id="node4" href="classEarComponent.html" title="EarComponent\&lt; IHCCoeff, IHCParam, IHCState \&gt;" alt="" coords="339,272,661,301"/><area shape="rect" id="node6" href="classIHCParam.html" title="IHCParam" alt="" coords="153,59,236,88"/><area shape="rect" id="node8" href="classParameters.html" title="Parameters" alt="" coords="8,59,96,88"/><area shape="rect" id="node28" href="classAGCParam.html" title="AGCParam" alt="" coords="151,219,239,248"/><area shape="rect" id="node38" href="classCARParam.html" title="CARParam" alt="" coords="151,5,239,35"/><area shape="rect" id="node10" href="classIHCCoeff.html" title="IHCCoeff" alt="" coords="156,272,233,301"/><area shape="rect" id="node12" href="classCoefficients.html" title="Coefficients" alt="" coords="7,272,97,301"/><area shape="rect" id="node22" href="classAGCCoeff.html" title="AGCCoeff" alt="" coords="153,379,236,408"/><area shape="rect" id="node41" href="classCARCoeff.html" title="CARCoeff" alt="" coords="153,112,236,141"/><area shape="rect" id="node14" href="classIHCState.html" title="IHCState" alt="" coords="156,325,233,355"/><area shape="rect" id="node16" href="classState.html" title="State" alt="" coords="25,325,79,355"/><area shape="rect" id="node25" href="classAGCState.html" title="AGCState" alt="" coords="153,432,236,461"/><area shape="rect" id="node35" href="classCARState.html" title="CARState" alt="" coords="153,165,236,195"/><area shape="rect" id="node18" href="classAGC.html" title="AGC" alt="" coords="720,331,771,360"/><area shape="rect" id="node20" href="classEarComponent.html" title="EarComponent\&lt; AGCCoeff, AGCParam, AGCState \&gt;" alt="" coords="332,348,668,377"/><area shape="rect" id="node31" href="classCAR.html" title="CAR" alt="" coords="720,199,771,228"/><area shape="rect" id="node33" href="classEarComponent.html" title="EarComponent\&lt; CARCoeff, CARParam, CARState \&gt;" alt="" coords="332,139,668,168"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classEar-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a6ffbf5915966ef3e58214bc30b390a55">Ear</a> (<a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a> fs_)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a8ffb11429ea872af900dac31252349a2">Ear</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#ac5734e338464ee157d92fa0e7fe1ae9e">~Ear</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#adf9d9b3c1e85d28dbd6921a06101b12b">design</a> (void)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a8087301947ab7dc0bba049f332d44508">fs</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sample rate.  <a href="#a8087301947ab7dc0bba049f332d44508"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a9cbbd291568ea2756b17311cbe7a0d84">max_channels_per_octave</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">How many channels in each octave.  <a href="#a9cbbd291568ea2756b17311cbe7a0d84"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a9c34579dc3e48bf40cc2a62677d1546e">n_ch</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of channels (in the ear)  <a href="#a9c34579dc3e48bf40cc2a62677d1546e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCAR.html">CAR</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a59243a8664d2c7d8bd3e5153e7f55e78">car</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The cascade of asymmetric resontaors for this ear.  <a href="#a59243a8664d2c7d8bd3e5153e7f55e78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classIHC.html">IHC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#ac11c4afecd6ca8353fa7d2ed4689bbf6">ihc</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The inner hair cell for this ear.  <a href="#ac11c4afecd6ca8353fa7d2ed4689bbf6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classAGC.html">AGC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEar.html#a464fb557a2852865fc29242900ee1306">agc</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The automatic gain control for this ear.  <a href="#a464fb557a2852865fc29242900ee1306"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><dl class="author"><dt><b>Author:</b></dt><dd>{Matt Flax &lt;flatmax@&gt;} </dd></dl>
<dl class="date"><dt><b>Date:</b></dt><dd>2013.02.08</dd></dl>
<p>Class which encapsulates an ear, using the <a class="el" href="classCAR.html">CAR</a>, <a class="el" href="classIHC.html">IHC</a> and <a class="el" href="classAGC.html">AGC</a> classes </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6ffbf5915966ef3e58214bc30b390a55"></a><!-- doxytag: member="Ear::Ear" ref="a6ffbf5915966ef3e58214bc30b390a55" args="(FP_TYPE fs_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEar.html#a6ffbf5915966ef3e58214bc30b390a55">Ear::Ear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>&#160;</td>
          <td class="paramname"><em>fs_</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor specifying the sample rate </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fs_</td><td>The sample rate to use</td></tr>
  </table>
  </dd>
</dl>
<dl class="author"><dt><b>Author:</b></dt><dd>{Matt Flax &lt;flatmax@&gt;} </dd></dl>
<dl class="date"><dt><b>Date:</b></dt><dd>2013.02.08 </dd></dl>

</div>
</div>
<a class="anchor" id="a8ffb11429ea872af900dac31252349a2"></a><!-- doxytag: member="Ear::Ear" ref="a8ffb11429ea872af900dac31252349a2" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEar.html#a6ffbf5915966ef3e58214bc30b390a55">Ear::Ear</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Constructor using the DEFAULT_SAMPLERATE as the sample rate </p>

</div>
</div>
<a class="anchor" id="ac5734e338464ee157d92fa0e7fe1ae9e"></a><!-- doxytag: member="Ear::~Ear" ref="ac5734e338464ee157d92fa0e7fe1ae9e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEar.html#ac5734e338464ee157d92fa0e7fe1ae9e">Ear::~Ear</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adf9d9b3c1e85d28dbd6921a06101b12b"></a><!-- doxytag: member="Ear::design" ref="adf9d9b3c1e85d28dbd6921a06101b12b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEar.html#adf9d9b3c1e85d28dbd6921a06101b12b">Ear::design</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Estimates the number of filter stages and executes the dsign method for each of <a class="el" href="classCAR.html">CAR</a>, <a class="el" href="classAGC.html">AGC</a> and <a class="el" href="classIHC.html">IHC</a> </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a464fb557a2852865fc29242900ee1306"></a><!-- doxytag: member="Ear::agc" ref="a464fb557a2852865fc29242900ee1306" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classAGC.html">AGC</a> <a class="el" href="classEar.html#a464fb557a2852865fc29242900ee1306">Ear::agc</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The automatic gain control for this ear. </p>

</div>
</div>
<a class="anchor" id="a59243a8664d2c7d8bd3e5153e7f55e78"></a><!-- doxytag: member="Ear::car" ref="a59243a8664d2c7d8bd3e5153e7f55e78" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCAR.html">CAR</a> <a class="el" href="classEar.html#a59243a8664d2c7d8bd3e5153e7f55e78">Ear::car</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The cascade of asymmetric resontaors for this ear. </p>

</div>
</div>
<a class="anchor" id="a8087301947ab7dc0bba049f332d44508"></a><!-- doxytag: member="Ear::fs" ref="a8087301947ab7dc0bba049f332d44508" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a> <a class="el" href="classEar.html#a8087301947ab7dc0bba049f332d44508">Ear::fs</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The sample rate. </p>

</div>
</div>
<a class="anchor" id="ac11c4afecd6ca8353fa7d2ed4689bbf6"></a><!-- doxytag: member="Ear::ihc" ref="ac11c4afecd6ca8353fa7d2ed4689bbf6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classIHC.html">IHC</a> <a class="el" href="classEar.html#ac11c4afecd6ca8353fa7d2ed4689bbf6">Ear::ihc</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The inner hair cell for this ear. </p>

</div>
</div>
<a class="anchor" id="a9cbbd291568ea2756b17311cbe7a0d84"></a><!-- doxytag: member="Ear::max_channels_per_octave" ref="a9cbbd291568ea2756b17311cbe7a0d84" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a> <a class="el" href="classEar.html#a9cbbd291568ea2756b17311cbe7a0d84">Ear::max_channels_per_octave</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>How many channels in each octave. </p>

</div>
</div>
<a class="anchor" id="a9c34579dc3e48bf40cc2a62677d1546e"></a><!-- doxytag: member="Ear::n_ch" ref="a9c34579dc3e48bf40cc2a62677d1546e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classEar.html#a9c34579dc3e48bf40cc2a62677d1546e">Ear::n_ch</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The number of channels (in the ear) </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="Ear_8H_source.html">Ear.H</a></li>
<li><a class="el" href="Ear_8C.html">Ear.C</a></li>
</ul>
</div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classEar.html">Ear</a>      </li>

    <li class="footer">Generated on Thu Feb 21 2013 09:31:11 for CARFAC C++ by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>