annotate C++/api/html/CAR_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++: CAR.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('CAR_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">CAR.H</div> </div>
flatmax@592 100 </div><!--header-->
flatmax@592 101 <div class="contents">
flatmax@592 102 <a href="CAR_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 CAR_H_</span>
flatmax@592 121 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define CAR_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="EarComponent_8H.html">EarComponent.H</a>&quot;</span> <span class="comment">// includes the various {CAR, IHC, AGC} {Coeff, Param, State} .H files</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="classEar.html">Ear</a>;
flatmax@594 126 <a name="l00025"></a>00025
flatmax@594 127 <a name="l00032"></a><a class="code" href="classCAR.html">00032</a> <span class="keyword">class </span><a class="code" href="classCAR.html">CAR</a> : <span class="keyword">public</span> <a class="code" href="classEarComponent.html">EarComponent</a>&lt;CARCoeff, CARParam, CARState&gt; {
flatmax@594 128 <a name="l00033"></a><a class="code" href="classCAR.html#a27d57f14a604e7a444d12a5818f48994">00033</a> Array&lt;FP_TYPE, Dynamic,1&gt; <a class="code" href="classCAR.html#a27d57f14a604e7a444d12a5818f48994" title="The vector of pole frequencies used in filter design and variable estimation.">pole_freqs</a>;
flatmax@594 129 <a name="l00034"></a>00034
flatmax@594 130 <a name="l00035"></a>00035 <span class="keyword">protected</span>:
flatmax@594 131 <a name="l00036"></a>00036
flatmax@594 132 <a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="classCAR.html#a28852384d3c3fca2cd27fae743053eca">designFilters</a>(<a class="code" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0" title="The floating point type.">FP_TYPE</a> fs, <span class="keywordtype">int</span> n_ch);
flatmax@594 133 <a name="l00041"></a>00041
flatmax@594 134 <a name="l00046"></a>00046 Array&lt;FP_TYPE, Dynamic, 1&gt; <a class="code" href="classCAR.html#a00bed086fc910b91fa8ed1c97af6eca8">stageG</a>(Array&lt;FP_TYPE, Dynamic, 1&gt; &amp;relative_undamping);
flatmax@594 135 <a name="l00047"></a>00047
flatmax@594 136 <a name="l00048"></a>00048 <span class="keyword">public</span>:
flatmax@594 137 <a name="l00049"></a>00049 <a class="code" href="classCAR.html#a7c80d0ba9d83caf4cf129b251e41e65c">CAR</a>();
flatmax@594 138 <a name="l00050"></a>00050 <span class="keyword">virtual</span> <a class="code" href="classCAR.html#ac3174919d88d3be0118fcb0fdab84b56">~CAR</a>();
flatmax@594 139 <a name="l00051"></a>00051
flatmax@594 140 <a name="l00052"></a><a class="code" href="classCAR.html#a38fd42a55b0aa61f4176bba8ace93988">00052</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classEar.html">Ear</a>;
flatmax@594 141 <a name="l00053"></a>00053 };
flatmax@594 142 <a name="l00054"></a>00054
flatmax@594 143 <a name="l00055"></a>00055 <span class="preprocessor">#endif // CAR_H_</span>
flatmax@592 144 </pre></div></div><!-- contents -->
flatmax@592 145 </div>
flatmax@592 146 <!-- window showing the filter options -->
flatmax@592 147 <div id="MSearchSelectWindow"
flatmax@592 148 onmouseover="return searchBox.OnSearchSelectShow()"
flatmax@592 149 onmouseout="return searchBox.OnSearchSelectHide()"
flatmax@592 150 onkeydown="return searchBox.OnSearchSelectKey(event)">
flatmax@594 151 <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 152
flatmax@592 153 <!-- iframe showing the search results (closed by default) -->
flatmax@592 154 <div id="MSearchResultsWindow">
flatmax@592 155 <iframe src="javascript:void(0)" frameborder="0"
flatmax@592 156 name="MSearchResults" id="MSearchResults">
flatmax@592 157 </iframe>
flatmax@592 158 </div>
flatmax@592 159
flatmax@592 160 <div id="nav-path" class="navpath">
flatmax@592 161 <ul>
flatmax@592 162 <li class="navelem"><a class="el" href="CAR_8H.html">CAR.H</a> </li>
flatmax@592 163
flatmax@594 164 <li class="footer">Generated on Thu Feb 21 2013 09:31:11 for CARFAC C++ by
flatmax@592 165 <a href="http://www.doxygen.org/index.html">
flatmax@592 166 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
flatmax@592 167 </ul>
flatmax@592 168 </div>
flatmax@592 169
flatmax@592 170
flatmax@592 171 </body>
flatmax@592 172 </html>