view C++/api/html/AGCParam_8H_source.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++: AGCParam.H Source File</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><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><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="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#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('AGCParam_8H.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">AGCParam.H</div>  </div>
</div><!--header-->
<div class="contents">
<a href="AGCParam_8H.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Copyright 2013 Matt R. Flax &lt;flatmax\@&gt; All Rights Reserved.</span>
<a name="l00002"></a>00002 <span class="comment">// Author Matt Flax &lt;flatmax@&gt;</span>
<a name="l00003"></a>00003 <span class="comment">//</span>
<a name="l00004"></a>00004 <span class="comment">// This C++ file is part of an implementation of Lyon&#39;s cochlear model:</span>
<a name="l00005"></a>00005 <span class="comment">// &quot;Cascade of Asymmetric Resonators with Fast-Acting Compression&quot;</span>
<a name="l00006"></a>00006 <span class="comment">// to supplement Lyon&#39;s upcoming book &quot;Human and Machine Hearing&quot;</span>
<a name="l00007"></a>00007 <span class="comment">//</span>
<a name="l00008"></a>00008 <span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
<a name="l00009"></a>00009 <span class="comment">// you may not use this file except in compliance with the License.</span>
<a name="l00010"></a>00010 <span class="comment">// You may obtain a copy of the License at</span>
<a name="l00011"></a>00011 <span class="comment">//</span>
<a name="l00012"></a>00012 <span class="comment">//     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00013"></a>00013 <span class="comment">//</span>
<a name="l00014"></a>00014 <span class="comment">// Unless required by applicable law or agreed to in writing, software</span>
<a name="l00015"></a>00015 <span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00016"></a>00016 <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00017"></a>00017 <span class="comment">// See the License for the specific language governing permissions and</span>
<a name="l00018"></a>00018 <span class="comment">// limitations under the License.</span>
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef AGCPARAMS_H_</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define AGCPARAMS_H_</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &quot;<a class="code" href="Parameters_8H.html">Parameters.H</a>&quot;</span>
<a name="l00023"></a>00023 
<a name="l00030"></a><a class="code" href="classAGCParam.html">00030</a> <span class="keyword">class </span><a class="code" href="classAGCParam.html">AGCParam</a> : <span class="keyword">public</span> <a class="code" href="classParameters.html">Parameters</a> {
<a name="l00031"></a><a class="code" href="classAGCParam.html#a6cb476c916e99e227ddcfec68be66b3a">00031</a>     <span class="keywordtype">int</span> <a class="code" href="classAGCParam.html#a6cb476c916e99e227ddcfec68be66b3a" title="Stage count.">n_stages</a>; 
<a name="l00032"></a><a class="code" href="classAGCParam.html#ae8073d3c194a9134cf736a564d4774fa">00032</a>     Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; <a class="code" href="classAGCParam.html#ae8073d3c194a9134cf736a564d4774fa" title="seconds">time_constants</a>; 
<a name="l00033"></a><a class="code" href="classAGCParam.html#a6a436005102557783fe4a0d30d3dcc51">00033</a>     <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classAGCParam.html#a6a436005102557783fe4a0d30d3dcc51" title="gain from each stage to next slower stage">AGC_stage_gain</a>; 
<a name="l00034"></a><a class="code" href="classAGCParam.html#ac7fc293748c6e7d59b91998253a68657">00034</a>     Array&lt;int,AGC_STAGE_COUNT, 1&gt; <a class="code" href="classAGCParam.html#ac7fc293748c6e7d59b91998253a68657" title="how often to update the AGC states">decimation</a>; 
<a name="l00035"></a><a class="code" href="classAGCParam.html#adf027a80d6669e72d735fff7d41801d7">00035</a>     Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; <a class="code" href="classAGCParam.html#adf027a80d6669e72d735fff7d41801d7" title="in units of channels">AGC1_scales</a>; 
<a name="l00036"></a><a class="code" href="classAGCParam.html#aca67e2871ee79cc96807d347acd55fe4">00036</a>     Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; <a class="code" href="classAGCParam.html#aca67e2871ee79cc96807d347acd55fe4" title="spread more toward base">AGC2_scales</a>; 
<a name="l00037"></a><a class="code" href="classAGCParam.html#a968c25ad0327d2db3ebd287d661001b4">00037</a>     <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classAGCParam.html#a968c25ad0327d2db3ebd287d661001b4" title="Dick, whats this ?">AGC_mix_coeff</a>; 
<a name="l00038"></a>00038 <span class="keyword">public</span>:
<a name="l00040"></a>00040     <a class="code" href="classAGCParam.html#aa822c90ba8da467c7bf31d85bf9b6f97" title="Constructor with default parameter values.">AGCParam</a>(<span class="keywordtype">int</span> n_stages_=<a class="code" href="CARFACCommon_8H.html#a62f6419e5a391863eb7d30a90462c239" title="The number of cascades in the AGC.">AGC_STAGE_COUNT</a>,
<a name="l00041"></a>00041              Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; time_constants_=Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt;(1., 4., 16., 64.)*0.002,
<a name="l00042"></a>00042              <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> AGC_stage_gain_=2.,
<a name="l00043"></a>00043              Array&lt;int,AGC_STAGE_COUNT, 1&gt; decimation_=Array&lt;int,AGC_STAGE_COUNT, 1&gt;(8, 2, 2, 2),
<a name="l00044"></a>00044              Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; AGC1_scales_=Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt;(1.0, 1.4,  2.0, 2.8),
<a name="l00045"></a>00045              Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt; AGC2_scales_=Array&lt;FP_TYPE, AGC_STAGE_COUNT,1&gt;(1.6, 2.25, 3.2, 4.5),
<a name="l00046"></a>00046              <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> AGC_mix_coeff_=0.5);
<a name="l00047"></a>00047 
<a name="l00048"></a>00048     <span class="keyword">virtual</span> <a class="code" href="classAGCParam.html#a40249c83afc2cffec3c0fe8bb9cb9997">~AGCParam</a>();
<a name="l00049"></a>00049 };
<a name="l00050"></a>00050 
<a name="l00051"></a>00051 <span class="preprocessor">#endif // AGCPARAMS_H_</span>
</pre></div></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="AGCParam_8H.html">AGCParam.H</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>