annotate C++/api/html/CARParam_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
rev   line source
flatmax@592 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
flatmax@592 2 <html xmlns="http://www.w3.org/1999/xhtml">
flatmax@592 3 <head>
flatmax@592 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
flatmax@592 5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
flatmax@592 6 <title>CARFAC C++: CARParam.H Source File</title>
flatmax@592 7
flatmax@592 8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
flatmax@592 9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
flatmax@592 10 <link href="navtree.css" rel="stylesheet" type="text/css"/>
flatmax@592 11 <script type="text/javascript" src="jquery.js"></script>
flatmax@592 12 <script type="text/javascript" src="resize.js"></script>
flatmax@592 13 <script type="text/javascript" src="navtree.js"></script>
flatmax@592 14 <script type="text/javascript">
flatmax@592 15 $(document).ready(initResizable);
flatmax@592 16 </script>
flatmax@592 17 <link href="search/search.css" rel="stylesheet" type="text/css"/>
flatmax@592 18 <script type="text/javascript" src="search/search.js"></script>
flatmax@592 19 <script type="text/javascript">
flatmax@592 20 $(document).ready(function() { searchBox.OnSelectItem(0); });
flatmax@592 21 </script>
flatmax@592 22
flatmax@592 23 </head>
flatmax@592 24 <body>
flatmax@592 25 <div id="top"><!-- do not remove this div! -->
flatmax@592 26
flatmax@592 27
flatmax@592 28 <div id="titlearea">
flatmax@592 29 <table cellspacing="0" cellpadding="0">
flatmax@592 30 <tbody>
flatmax@592 31 <tr style="height: 56px;">
flatmax@592 32
flatmax@592 33 <td id="projectlogo"><img alt="Logo" src="icon.png"/></td>
flatmax@592 34
flatmax@592 35
flatmax@592 36 <td style="padding-left: 0.5em;">
flatmax@592 37 <div id="projectname">CARFAC C++
flatmax@592 38
flatmax@592 39 </div>
flatmax@592 40 <div id="projectbrief">C++ implementation of CARFAC</div>
flatmax@592 41 </td>
flatmax@592 42
flatmax@592 43
flatmax@592 44
flatmax@592 45 </tr>
flatmax@592 46 </tbody>
flatmax@592 47 </table>
flatmax@592 48 </div>
flatmax@592 49
flatmax@592 50 <!-- Generated by Doxygen 1.7.6.1 -->
flatmax@592 51 <script type="text/javascript">
flatmax@592 52 var searchBox = new SearchBox("searchBox", "search",false,'Search');
flatmax@592 53 </script>
flatmax@592 54 <div id="navrow1" class="tabs">
flatmax@592 55 <ul class="tablist">
flatmax@592 56 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
flatmax@592 57 <li><a href="annotated.html"><span>Classes</span></a></li>
flatmax@592 58 <li class="current"><a href="files.html"><span>Files</span></a></li>
flatmax@592 59 <li>
flatmax@592 60 <div id="MSearchBox" class="MSearchBoxInactive">
flatmax@592 61 <span class="left">
flatmax@592 62 <img id="MSearchSelect" src="search/mag_sel.png"
flatmax@592 63 onmouseover="return searchBox.OnSearchSelectShow()"
flatmax@592 64 onmouseout="return searchBox.OnSearchSelectHide()"
flatmax@592 65 alt=""/>
flatmax@592 66 <input type="text" id="MSearchField" value="Search" accesskey="S"
flatmax@592 67 onfocus="searchBox.OnSearchFieldFocus(true)"
flatmax@592 68 onblur="searchBox.OnSearchFieldFocus(false)"
flatmax@592 69 onkeyup="searchBox.OnSearchFieldChange(event)"/>
flatmax@592 70 </span><span class="right">
flatmax@592 71 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
flatmax@592 72 </span>
flatmax@592 73 </div>
flatmax@592 74 </li>
flatmax@592 75 </ul>
flatmax@592 76 </div>
flatmax@592 77 <div id="navrow2" class="tabs2">
flatmax@592 78 <ul class="tablist">
flatmax@592 79 <li><a href="files.html"><span>File&#160;List</span></a></li>
flatmax@592 80 <li><a href="globals.html"><span>File&#160;Members</span></a></li>
flatmax@592 81 </ul>
flatmax@592 82 </div>
flatmax@592 83 </div>
flatmax@592 84 <div id="side-nav" class="ui-resizable side-nav-resizable">
flatmax@592 85 <div id="nav-tree">
flatmax@592 86 <div id="nav-tree-contents">
flatmax@592 87 </div>
flatmax@592 88 </div>
flatmax@592 89 <div id="splitbar" style="-moz-user-select:none;"
flatmax@592 90 class="ui-resizable-handle">
flatmax@592 91 </div>
flatmax@592 92 </div>
flatmax@592 93 <script type="text/javascript">
flatmax@592 94 initNavTree('CARParam_8H.html','');
flatmax@592 95 </script>
flatmax@592 96 <div id="doc-content">
flatmax@592 97 <div class="header">
flatmax@592 98 <div class="headertitle">
flatmax@592 99 <div class="title">CARParam.H</div> </div>
flatmax@592 100 </div><!--header-->
flatmax@592 101 <div class="contents">
flatmax@592 102 <a href="CARParam_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>
flatmax@594 103 <a name="l00002"></a>00002 <span class="comment">// Author Matt Flax &lt;flatmax@&gt;</span>
flatmax@592 104 <a name="l00003"></a>00003 <span class="comment">//</span>
flatmax@592 105 <a name="l00004"></a>00004 <span class="comment">// This C++ file is part of an implementation of Lyon&#39;s cochlear model:</span>
flatmax@592 106 <a name="l00005"></a>00005 <span class="comment">// &quot;Cascade of Asymmetric Resonators with Fast-Acting Compression&quot;</span>
flatmax@592 107 <a name="l00006"></a>00006 <span class="comment">// to supplement Lyon&#39;s upcoming book &quot;Human and Machine Hearing&quot;</span>
flatmax@592 108 <a name="l00007"></a>00007 <span class="comment">//</span>
flatmax@592 109 <a name="l00008"></a>00008 <span class="comment">// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
flatmax@592 110 <a name="l00009"></a>00009 <span class="comment">// you may not use this file except in compliance with the License.</span>
flatmax@592 111 <a name="l00010"></a>00010 <span class="comment">// You may obtain a copy of the License at</span>
flatmax@592 112 <a name="l00011"></a>00011 <span class="comment">//</span>
flatmax@592 113 <a name="l00012"></a>00012 <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span>
flatmax@592 114 <a name="l00013"></a>00013 <span class="comment">//</span>
flatmax@592 115 <a name="l00014"></a>00014 <span class="comment">// Unless required by applicable law or agreed to in writing, software</span>
flatmax@592 116 <a name="l00015"></a>00015 <span class="comment">// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
flatmax@592 117 <a name="l00016"></a>00016 <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
flatmax@592 118 <a name="l00017"></a>00017 <span class="comment">// See the License for the specific language governing permissions and</span>
flatmax@592 119 <a name="l00018"></a>00018 <span class="comment">// limitations under the License.</span>
flatmax@592 120 <a name="l00019"></a>00019 <span class="preprocessor">#ifndef CARPARAMS_H_</span>
flatmax@592 121 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define CARPARAMS_H_</span>
flatmax@592 122 <a name="l00021"></a>00021 <span class="preprocessor"></span>
flatmax@592 123 <a name="l00022"></a>00022 <span class="preprocessor">#include &quot;<a class="code" href="Parameters_8H.html">Parameters.H</a>&quot;</span>
flatmax@592 124 <a name="l00023"></a>00023
flatmax@594 125 <a name="l00024"></a>00024 <span class="keyword">class </span><a class="code" href="classCAR.html">CAR</a>; <span class="comment">// required for decleration as a friend</span>
flatmax@594 126 <a name="l00025"></a>00025 <span class="keyword">class </span><a class="code" href="classEar.html">Ear</a>;
flatmax@594 127 <a name="l00026"></a>00026
flatmax@594 128 <a name="l00033"></a><a class="code" href="classCARParam.html">00033</a> <span class="keyword">class </span><a class="code" href="classCARParam.html">CARParam</a> : <span class="keyword">public</span> <a class="code" href="classParameters.html">Parameters</a> {
flatmax@594 129 <a name="l00034"></a><a class="code" href="classCARParam.html#ae11cef3c3e8c19f1e1b6e6557962c600">00034</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#ae11cef3c3e8c19f1e1b6e6557962c600" title="for the velocity nonlinearity">velocity_scale</a>;
flatmax@594 130 <a name="l00035"></a><a class="code" href="classCARParam.html#a275dff2443b1b58affcb9c5081f493eb">00035</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a275dff2443b1b58affcb9c5081f493eb" title="offset gives a quadratic part">v_offset</a>;
flatmax@594 131 <a name="l00036"></a><a class="code" href="classCARParam.html#a1f7a8aa68d475fc85ffbcb9d9daf62ee">00036</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a1f7a8aa68d475fc85ffbcb9d9daf62ee" title="minimum damping factor in mid-freq channels">min_zeta</a>;
flatmax@594 132 <a name="l00037"></a><a class="code" href="classCARParam.html#a976b4d422b852bfa877ad9f47ccdcc86">00037</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a976b4d422b852bfa877ad9f47ccdcc86" title="maximum damping factor in mid-freq channels">max_zeta</a>;
flatmax@594 133 <a name="l00038"></a><a class="code" href="classCARParam.html#aec231a32b03a3c0603900a105ae67aca">00038</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#aec231a32b03a3c0603900a105ae67aca" title="Dick, whats this ?">first_pole_theta</a>;
flatmax@594 134 <a name="l00039"></a><a class="code" href="classCARParam.html#a7b01801df1b6e4c75abeabea9b1bb6ec">00039</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a7b01801df1b6e4c75abeabea9b1bb6ec" title="how far zero is above pole">zero_ratio</a>;
flatmax@594 135 <a name="l00040"></a><a class="code" href="classCARParam.html#a3a34b743bcdbba47a865386d08dd664e">00040</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a3a34b743bcdbba47a865386d08dd664e" title="0 to 1 to compress zeta">high_f_damping_compression</a>;
flatmax@594 136 <a name="l00041"></a><a class="code" href="classCARParam.html#a0fb27aee54d472914e03569ba40512b7">00041</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a0fb27aee54d472914e03569ba40512b7" title="assume G&amp;M&#39;s ERB formula">ERB_per_step</a>;
flatmax@594 137 <a name="l00042"></a><a class="code" href="classCARParam.html#ae30ba07457c2f7d7a9393cb7d2730af4">00042</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#ae30ba07457c2f7d7a9393cb7d2730af4" title="Dick, whats this ?">min_pole_Hz</a>;
flatmax@594 138 <a name="l00043"></a><a class="code" href="classCARParam.html#a2a8d58983bb2562c7bb54d6f571a5265">00043</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a2a8d58983bb2562c7bb54d6f571a5265" title="Greenwood map&#39;s break freq.">ERB_break_freq</a>;
flatmax@594 139 <a name="l00044"></a><a class="code" href="classCARParam.html#a6af2a4247b1a0bb380176787d379418c">00044</a> <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> <a class="code" href="classCARParam.html#a6af2a4247b1a0bb380176787d379418c" title="Glasberg and Moore&#39;s high-cf ratio.">ERB_Q</a>;
flatmax@594 140 <a name="l00045"></a>00045
flatmax@594 141 <a name="l00046"></a>00046 <span class="keyword">public</span>:
flatmax@594 142 <a name="l00047"></a>00047
flatmax@594 143 <a name="l00049"></a>00049 <a class="code" href="classCARParam.html#ae51711029751deb3eb3c5138f046ef8e" title="Constructor with default parameter values.">CARParam</a>(<a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> velocity_scale_=0.1, <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> v_offset_=0.04, <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> min_zeta_=0.10, <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> max_zeta_=0.35,
flatmax@594 144 <a name="l00050"></a>00050 <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> first_pole_theta_=0.85*M_PI, <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> zero_ratio_=sqrt(2.), <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> high_f_damping_compression_=0.5,
flatmax@594 145 <a name="l00051"></a>00051 <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> ERB_per_step_=0.5, <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> min_pole_Hz_=30., <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> ERB_break_freq_=165.3,
flatmax@594 146 <a name="l00052"></a>00052 <a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> ERB_Q_=1000./(24.7*4.37));
flatmax@594 147 <a name="l00053"></a>00053 <span class="keyword">virtual</span> <a class="code" href="classCARParam.html#a96ab5ca0d828c34a84022b214dced443" title="Destructor.">~CARParam</a>();
flatmax@594 148 <a name="l00054"></a>00054
flatmax@594 149 <a name="l00055"></a><a class="code" href="classCARParam.html#a090b35b339c09320d7dae48a06832261">00055</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classCAR.html">CAR</a>;
flatmax@594 150 <a name="l00056"></a><a class="code" href="classCARParam.html#a38fd42a55b0aa61f4176bba8ace93988">00056</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classEar.html">Ear</a>;
flatmax@594 151 <a name="l00057"></a>00057 };
flatmax@594 152 <a name="l00058"></a>00058
flatmax@594 153 <a name="l00059"></a>00059 <span class="preprocessor">#endif // CARPARAMS_H_</span>
flatmax@592 154 </pre></div></div><!-- contents -->
flatmax@592 155 </div>
flatmax@592 156 <!-- window showing the filter options -->
flatmax@592 157 <div id="MSearchSelectWindow"
flatmax@592 158 onmouseover="return searchBox.OnSearchSelectShow()"
flatmax@592 159 onmouseout="return searchBox.OnSearchSelectHide()"
flatmax@592 160 onkeydown="return searchBox.OnSearchSelectKey(event)">
flatmax@594 161 <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>
flatmax@592 162
flatmax@592 163 <!-- iframe showing the search results (closed by default) -->
flatmax@592 164 <div id="MSearchResultsWindow">
flatmax@592 165 <iframe src="javascript:void(0)" frameborder="0"
flatmax@592 166 name="MSearchResults" id="MSearchResults">
flatmax@592 167 </iframe>
flatmax@592 168 </div>
flatmax@592 169
flatmax@592 170 <div id="nav-path" class="navpath">
flatmax@592 171 <ul>
flatmax@592 172 <li class="navelem"><a class="el" href="CARParam_8H.html">CARParam.H</a> </li>
flatmax@592 173
flatmax@594 174 <li class="footer">Generated on Thu Feb 21 2013 09:31:11 for CARFAC C++ by
flatmax@592 175 <a href="http://www.doxygen.org/index.html">
flatmax@592 176 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
flatmax@592 177 </ul>
flatmax@592 178 </div>
flatmax@592 179
flatmax@592 180
flatmax@592 181 </body>
flatmax@592 182 </html>