annotate C++/api/html/classCAR.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 Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
flatmax@592 58 <li><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="annotated.html"><span>Class&#160;List</span></a></li>
flatmax@592 80 <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
flatmax@592 81 <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
flatmax@592 82 <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
flatmax@592 83 </ul>
flatmax@592 84 </div>
flatmax@592 85 </div>
flatmax@592 86 <div id="side-nav" class="ui-resizable side-nav-resizable">
flatmax@592 87 <div id="nav-tree">
flatmax@592 88 <div id="nav-tree-contents">
flatmax@592 89 </div>
flatmax@592 90 </div>
flatmax@592 91 <div id="splitbar" style="-moz-user-select:none;"
flatmax@592 92 class="ui-resizable-handle">
flatmax@592 93 </div>
flatmax@592 94 </div>
flatmax@592 95 <script type="text/javascript">
flatmax@592 96 initNavTree('classCAR.html','');
flatmax@592 97 </script>
flatmax@592 98 <div id="doc-content">
flatmax@592 99 <div class="header">
flatmax@592 100 <div class="summary">
flatmax@594 101 <a href="#pub-methods">Public Member Functions</a> &#124;
flatmax@594 102 <a href="#pro-methods">Protected Member Functions</a> &#124;
flatmax@594 103 <a href="#pri-attribs">Private Attributes</a> &#124;
flatmax@594 104 <a href="#friends">Friends</a> </div>
flatmax@592 105 <div class="headertitle">
flatmax@592 106 <div class="title">CAR Class Reference</div> </div>
flatmax@592 107 </div><!--header-->
flatmax@592 108 <div class="contents">
flatmax@592 109 <!-- doxytag: class="CAR" --><!-- doxytag: inherits="EarComponent&lt; CARCoeff, CARParam, CARState &gt;" -->
flatmax@592 110 <p><code>#include &lt;<a class="el" href="CAR_8H_source.html">CAR.H</a>&gt;</code></p>
flatmax@592 111 <div class="dynheader">
flatmax@592 112 Inheritance diagram for CAR:</div>
flatmax@592 113 <div class="dyncontent">
flatmax@592 114 <div class="center"><img src="classCAR__inherit__graph.png" border="0" usemap="#CAR_inherit__map" alt="Inheritance graph"/></div>
flatmax@592 115 <map name="CAR_inherit__map" id="CAR_inherit__map">
flatmax@592 116 <area shape="rect" id="node2" href="classEarComponent.html" title="EarComponent\&lt; CARCoeff, CARParam, CARState \&gt;" alt="" coords="5,5,341,35"/></map>
flatmax@592 117 <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
flatmax@592 118 <div class="dynheader">
flatmax@592 119 Collaboration diagram for CAR:</div>
flatmax@592 120 <div class="dyncontent">
flatmax@592 121 <div class="center"><img src="classCAR__coll__graph.png" border="0" usemap="#CAR_coll__map" alt="Collaboration graph"/></div>
flatmax@592 122 <map name="CAR_coll__map" id="CAR_coll__map">
flatmax@592 123 <area shape="rect" id="node2" href="classEarComponent.html" title="EarComponent\&lt; CARCoeff, CARParam, CARState \&gt;" alt="" coords="5,181,341,211"/><area shape="rect" id="node4" href="classCARState.html" title="CARState" alt="" coords="23,85,105,115"/><area shape="rect" id="node6" href="classState.html" title="State" alt="" coords="37,5,91,35"/><area shape="rect" id="node8" href="classCARParam.html" title="CARParam" alt="" coords="129,85,217,115"/><area shape="rect" id="node10" href="classParameters.html" title="Parameters" alt="" coords="128,5,216,35"/><area shape="rect" id="node12" href="classCARCoeff.html" title="CARCoeff" alt="" coords="243,85,325,115"/><area shape="rect" id="node14" href="classCoefficients.html" title="Coefficients" alt="" coords="240,5,331,35"/></map>
flatmax@592 124 <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
flatmax@592 125
flatmax@592 126 <p><a href="classCAR-members.html">List of all members.</a></p>
flatmax@592 127 <table class="memberdecls">
flatmax@592 128 <tr><td colspan="2"><h2><a name="pub-methods"></a>
flatmax@592 129 Public Member Functions</h2></td></tr>
flatmax@592 130 <tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#a7c80d0ba9d83caf4cf129b251e41e65c">CAR</a> ()</td></tr>
flatmax@592 131 <tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#ac3174919d88d3be0118fcb0fdab84b56">~CAR</a> ()</td></tr>
flatmax@594 132 <tr><td colspan="2"><h2><a name="pro-methods"></a>
flatmax@594 133 Protected Member Functions</h2></td></tr>
flatmax@594 134 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#a28852384d3c3fca2cd27fae743053eca">designFilters</a> (<a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a> fs, int n_ch)</td></tr>
flatmax@594 135 <tr><td class="memItemLeft" align="right" valign="top">Array&lt; <a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#a00bed086fc910b91fa8ed1c97af6eca8">stageG</a> (Array&lt; <a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic, 1 &gt; &amp;relative_undamping)</td></tr>
flatmax@594 136 <tr><td colspan="2"><h2><a name="pri-attribs"></a>
flatmax@594 137 Private Attributes</h2></td></tr>
flatmax@594 138 <tr><td class="memItemLeft" align="right" valign="top">Array&lt; <a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#a27d57f14a604e7a444d12a5818f48994">pole_freqs</a></td></tr>
flatmax@594 139 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The vector of pole frequencies used in filter design and variable estimation. <a href="#a27d57f14a604e7a444d12a5818f48994"></a><br/></td></tr>
flatmax@594 140 <tr><td colspan="2"><h2><a name="friends"></a>
flatmax@594 141 Friends</h2></td></tr>
flatmax@594 142 <tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAR.html#a38fd42a55b0aa61f4176bba8ace93988">Ear</a></td></tr>
flatmax@592 143 </table>
flatmax@592 144 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
flatmax@592 145 <div class="textblock"><dl class="author"><dt><b>Author:</b></dt><dd>{Matt Flax &lt;flatmax@&gt;} </dd></dl>
flatmax@592 146 <dl class="date"><dt><b>Date:</b></dt><dd>2013.02.08</dd></dl>
flatmax@592 147 <p>Cascade of asymmetric resonators (<a class="el" href="classCAR.html">CAR</a>). </p>
flatmax@592 148 </div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
flatmax@592 149 <a class="anchor" id="a7c80d0ba9d83caf4cf129b251e41e65c"></a><!-- doxytag: member="CAR::CAR" ref="a7c80d0ba9d83caf4cf129b251e41e65c" args="()" -->
flatmax@592 150 <div class="memitem">
flatmax@592 151 <div class="memproto">
flatmax@592 152 <table class="memname">
flatmax@592 153 <tr>
flatmax@592 154 <td class="memname"><a class="el" href="classCAR.html#a7c80d0ba9d83caf4cf129b251e41e65c">CAR::CAR</a> </td>
flatmax@592 155 <td>(</td>
flatmax@592 156 <td class="paramname"></td><td>)</td>
flatmax@592 157 <td></td>
flatmax@592 158 </tr>
flatmax@592 159 </table>
flatmax@592 160 </div>
flatmax@592 161 <div class="memdoc">
flatmax@592 162 <dl class="author"><dt><b>Author:</b></dt><dd>{Matt Flax &lt;flatmax@&gt;} </dd></dl>
flatmax@592 163 <dl class="date"><dt><b>Date:</b></dt><dd>2013.02.08 </dd></dl>
flatmax@592 164
flatmax@592 165 </div>
flatmax@592 166 </div>
flatmax@592 167 <a class="anchor" id="ac3174919d88d3be0118fcb0fdab84b56"></a><!-- doxytag: member="CAR::~CAR" ref="ac3174919d88d3be0118fcb0fdab84b56" args="()" -->
flatmax@592 168 <div class="memitem">
flatmax@592 169 <div class="memproto">
flatmax@592 170 <table class="memname">
flatmax@592 171 <tr>
flatmax@592 172 <td class="memname"><a class="el" href="classCAR.html#ac3174919d88d3be0118fcb0fdab84b56">CAR::~CAR</a> </td>
flatmax@592 173 <td>(</td>
flatmax@592 174 <td class="paramname"></td><td>)</td>
flatmax@592 175 <td><code> [virtual]</code></td>
flatmax@592 176 </tr>
flatmax@592 177 </table>
flatmax@592 178 </div>
flatmax@592 179 <div class="memdoc">
flatmax@592 180
flatmax@592 181 </div>
flatmax@592 182 </div>
flatmax@594 183 <hr/><h2>Member Function Documentation</h2>
flatmax@594 184 <a class="anchor" id="a28852384d3c3fca2cd27fae743053eca"></a><!-- doxytag: member="CAR::designFilters" ref="a28852384d3c3fca2cd27fae743053eca" args="(FP_TYPE fs, int n_ch)" -->
flatmax@594 185 <div class="memitem">
flatmax@594 186 <div class="memproto">
flatmax@594 187 <table class="memname">
flatmax@594 188 <tr>
flatmax@594 189 <td class="memname">void <a class="el" href="classCAR.html#a28852384d3c3fca2cd27fae743053eca">CAR::designFilters</a> </td>
flatmax@594 190 <td>(</td>
flatmax@594 191 <td class="paramtype"><a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>&#160;</td>
flatmax@594 192 <td class="paramname"><em>fs</em>, </td>
flatmax@594 193 </tr>
flatmax@594 194 <tr>
flatmax@594 195 <td class="paramkey"></td>
flatmax@594 196 <td></td>
flatmax@594 197 <td class="paramtype">int&#160;</td>
flatmax@594 198 <td class="paramname"><em>n_ch</em>&#160;</td>
flatmax@594 199 </tr>
flatmax@594 200 <tr>
flatmax@594 201 <td></td>
flatmax@594 202 <td>)</td>
flatmax@594 203 <td></td><td><code> [protected]</code></td>
flatmax@594 204 </tr>
flatmax@594 205 </table>
flatmax@594 206 </div>
flatmax@594 207 <div class="memdoc">
flatmax@594 208 <p>Method to design the auditory filter coefficients </p>
flatmax@594 209 <dl class="params"><dt><b>Parameters:</b></dt><dd>
flatmax@594 210 <table class="params">
flatmax@594 211 <tr><td class="paramname">fs</td><td>The sample rate in Hz </td></tr>
flatmax@594 212 </table>
flatmax@594 213 </dd>
flatmax@594 214 </dl>
flatmax@594 215
flatmax@594 216 </div>
flatmax@594 217 </div>
flatmax@594 218 <a class="anchor" id="a00bed086fc910b91fa8ed1c97af6eca8"></a><!-- doxytag: member="CAR::stageG" ref="a00bed086fc910b91fa8ed1c97af6eca8" args="(Array&lt; FP_TYPE, Dynamic, 1 &gt; &amp;relative_undamping)" -->
flatmax@594 219 <div class="memitem">
flatmax@594 220 <div class="memproto">
flatmax@594 221 <table class="memname">
flatmax@594 222 <tr>
flatmax@594 223 <td class="memname">Array&lt; <a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic, 1 &gt; <a class="el" href="classCAR.html#a00bed086fc910b91fa8ed1c97af6eca8">CAR::stageG</a> </td>
flatmax@594 224 <td>(</td>
flatmax@594 225 <td class="paramtype">Array&lt; <a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic, 1 &gt; &amp;&#160;</td>
flatmax@594 226 <td class="paramname"><em>relative_undamping</em></td><td>)</td>
flatmax@594 227 <td><code> [protected]</code></td>
flatmax@594 228 </tr>
flatmax@594 229 </table>
flatmax@594 230 </div>
flatmax@594 231 <div class="memdoc">
flatmax@594 232 <p>Return the stage gain g needed to get unity gain at DC </p>
flatmax@594 233 <dl class="params"><dt><b>Parameters:</b></dt><dd>
flatmax@594 234 <table class="params">
flatmax@594 235 <tr><td class="paramname">relative_undamping</td><td>Dick whats this ? </td></tr>
flatmax@594 236 </table>
flatmax@594 237 </dd>
flatmax@594 238 </dl>
flatmax@594 239 <dl class="return"><dt><b>Returns:</b></dt><dd>The stage gain required to obtain 0 dB at DC. </dd></dl>
flatmax@594 240
flatmax@594 241 </div>
flatmax@594 242 </div>
flatmax@594 243 <hr/><h2>Friends And Related Function Documentation</h2>
flatmax@594 244 <a class="anchor" id="a38fd42a55b0aa61f4176bba8ace93988"></a><!-- doxytag: member="CAR::Ear" ref="a38fd42a55b0aa61f4176bba8ace93988" args="" -->
flatmax@594 245 <div class="memitem">
flatmax@594 246 <div class="memproto">
flatmax@594 247 <table class="memname">
flatmax@594 248 <tr>
flatmax@594 249 <td class="memname">friend class <a class="el" href="classEar.html">Ear</a><code> [friend]</code></td>
flatmax@594 250 </tr>
flatmax@594 251 </table>
flatmax@594 252 </div>
flatmax@594 253 <div class="memdoc">
flatmax@594 254
flatmax@594 255 </div>
flatmax@594 256 </div>
flatmax@594 257 <hr/><h2>Member Data Documentation</h2>
flatmax@594 258 <a class="anchor" id="a27d57f14a604e7a444d12a5818f48994"></a><!-- doxytag: member="CAR::pole_freqs" ref="a27d57f14a604e7a444d12a5818f48994" args="" -->
flatmax@594 259 <div class="memitem">
flatmax@594 260 <div class="memproto">
flatmax@594 261 <table class="memname">
flatmax@594 262 <tr>
flatmax@594 263 <td class="memname">Array&lt;<a class="el" href="CARFACCommon_8H.html#af081989b61cc5b60e85ad3d01e4af4f0">FP_TYPE</a>, Dynamic,1&gt; <a class="el" href="classCAR.html#a27d57f14a604e7a444d12a5818f48994">CAR::pole_freqs</a><code> [private]</code></td>
flatmax@594 264 </tr>
flatmax@594 265 </table>
flatmax@594 266 </div>
flatmax@594 267 <div class="memdoc">
flatmax@594 268
flatmax@594 269 <p>The vector of pole frequencies used in filter design and variable estimation. </p>
flatmax@594 270
flatmax@594 271 </div>
flatmax@594 272 </div>
flatmax@592 273 <hr/>The documentation for this class was generated from the following files:<ul>
flatmax@592 274 <li><a class="el" href="CAR_8H_source.html">CAR.H</a></li>
flatmax@592 275 <li><a class="el" href="CAR_8C.html">CAR.C</a></li>
flatmax@592 276 </ul>
flatmax@592 277 </div><!-- contents -->
flatmax@592 278 </div>
flatmax@592 279 <!-- window showing the filter options -->
flatmax@592 280 <div id="MSearchSelectWindow"
flatmax@592 281 onmouseover="return searchBox.OnSearchSelectShow()"
flatmax@592 282 onmouseout="return searchBox.OnSearchSelectHide()"
flatmax@592 283 onkeydown="return searchBox.OnSearchSelectKey(event)">
flatmax@594 284 <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 285
flatmax@592 286 <!-- iframe showing the search results (closed by default) -->
flatmax@592 287 <div id="MSearchResultsWindow">
flatmax@592 288 <iframe src="javascript:void(0)" frameborder="0"
flatmax@592 289 name="MSearchResults" id="MSearchResults">
flatmax@592 290 </iframe>
flatmax@592 291 </div>
flatmax@592 292
flatmax@592 293 <div id="nav-path" class="navpath">
flatmax@592 294 <ul>
flatmax@592 295 <li class="navelem"><a class="el" href="classCAR.html">CAR</a> </li>
flatmax@592 296
flatmax@594 297 <li class="footer">Generated on Thu Feb 21 2013 09:31:11 for CARFAC C++ by
flatmax@592 298 <a href="http://www.doxygen.org/index.html">
flatmax@592 299 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
flatmax@592 300 </ul>
flatmax@592 301 </div>
flatmax@592 302
flatmax@592 303
flatmax@592 304 </body>
flatmax@592 305 </html>