You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/main/group__MFCCF16.html

971 lines
54 KiB
HTML

<!-- HTML header for doxygen 1.9.2-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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=11"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CMSIS-DSP: MFCC F16</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="footer.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="$extra_stylesheet" rel="stylesheet" type="text/css" />
<link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
<link href="version.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../version.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 55px;">
<td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
<td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
<div id="projectname">CMSIS-DSP
&#160;<span id="projectnumber"><script type="text/javascript">
<!--
writeHeader.call(this);
writeVersionDropdown(this);
//-->
</script>
</span>
</div>
<div id="projectbrief">CMSIS DSP Software Library</div>
</td>
<!--END !PROJECT_NAME-->
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
<li class="current"><a href="modules.html"><span>&#160;API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
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.svg" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__MFCCF16.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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 class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">MFCC F16<div class="ingroups"><a class="el" href="group__groupTransforms.html">Transform Functions</a> &raquo; <a class="el" href="group__MFCC.html">MFCC</a></div></div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0b817baf579405c6765d5e3e2360cc2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#ga0b817baf579405c6765d5e3e2360cc2e">arm_mfcc_f16</a> (const <a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, float16_t *pSrc, float16_t *pDst, float16_t *pTmp)</td></tr>
<tr class="memdesc:ga0b817baf579405c6765d5e3e2360cc2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">MFCC F16. <a href="group__MFCCF16.html#ga0b817baf579405c6765d5e3e2360cc2e">More...</a><br /></td></tr>
<tr class="separator:ga0b817baf579405c6765d5e3e2360cc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6a307eafd0bb6534369d239e76ef766"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gae6a307eafd0bb6534369d239e76ef766">arm_mfcc_init_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t fftLen, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gae6a307eafd0bb6534369d239e76ef766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic initialization of the MFCC F16 instance structure. <a href="group__MFCCF16.html#gae6a307eafd0bb6534369d239e76ef766">More...</a><br /></td></tr>
<tr class="separator:gae6a307eafd0bb6534369d239e76ef766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4ce8687295e19ef91acda3eef32a9bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gab4ce8687295e19ef91acda3eef32a9bb">arm_mfcc_init_32_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gab4ce8687295e19ef91acda3eef32a9bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 32 samples MFCC. <a href="group__MFCCF16.html#gab4ce8687295e19ef91acda3eef32a9bb">More...</a><br /></td></tr>
<tr class="separator:gab4ce8687295e19ef91acda3eef32a9bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88e209e61eb60797428547dca05d1c23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#ga88e209e61eb60797428547dca05d1c23">arm_mfcc_init_64_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:ga88e209e61eb60797428547dca05d1c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 64 samples MFCC. <a href="group__MFCCF16.html#ga88e209e61eb60797428547dca05d1c23">More...</a><br /></td></tr>
<tr class="separator:ga88e209e61eb60797428547dca05d1c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb303d4371873b338c003bc3b28618ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gacb303d4371873b338c003bc3b28618ed">arm_mfcc_init_128_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gacb303d4371873b338c003bc3b28618ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 128 samples MFCC. <a href="group__MFCCF16.html#gacb303d4371873b338c003bc3b28618ed">More...</a><br /></td></tr>
<tr class="separator:gacb303d4371873b338c003bc3b28618ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa1973c0b2f573afca2bb250f7142e1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gafa1973c0b2f573afca2bb250f7142e1b">arm_mfcc_init_256_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gafa1973c0b2f573afca2bb250f7142e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 256 samples MFCC. <a href="group__MFCCF16.html#gafa1973c0b2f573afca2bb250f7142e1b">More...</a><br /></td></tr>
<tr class="separator:gafa1973c0b2f573afca2bb250f7142e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafe0cf442a410c8c40592e61332d2692"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gaafe0cf442a410c8c40592e61332d2692">arm_mfcc_init_512_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gaafe0cf442a410c8c40592e61332d2692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 512 samples MFCC. <a href="group__MFCCF16.html#gaafe0cf442a410c8c40592e61332d2692">More...</a><br /></td></tr>
<tr class="separator:gaafe0cf442a410c8c40592e61332d2692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7d50f7c15d2a3816851a43590590a29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#gaa7d50f7c15d2a3816851a43590590a29">arm_mfcc_init_1024_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:gaa7d50f7c15d2a3816851a43590590a29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 1024 samples MFCC. <a href="group__MFCCF16.html#gaa7d50f7c15d2a3816851a43590590a29">More...</a><br /></td></tr>
<tr class="separator:gaa7d50f7c15d2a3816851a43590590a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fc578706fca63a5e293d3a1f993b39b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#ga8fc578706fca63a5e293d3a1f993b39b">arm_mfcc_init_2048_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:ga8fc578706fca63a5e293d3a1f993b39b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 2048 samples MFCC. <a href="group__MFCCF16.html#ga8fc578706fca63a5e293d3a1f993b39b">More...</a><br /></td></tr>
<tr class="separator:ga8fc578706fca63a5e293d3a1f993b39b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5775e7edc5bc8e7d5145e3c0951b3df9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MFCCF16.html#ga5775e7edc5bc8e7d5145e3c0951b3df9">arm_mfcc_init_4096_f16</a> (<a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *S, uint32_t nbMelFilters, uint32_t nbDctOutputs, const float16_t *dctCoefs, const uint32_t *filterPos, const uint32_t *filterLengths, const float16_t *filterCoefs, const float16_t *windowCoefs)</td></tr>
<tr class="memdesc:ga5775e7edc5bc8e7d5145e3c0951b3df9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of the MFCC F16 instance structure for 4096 samples MFCC. <a href="group__MFCCF16.html#ga5775e7edc5bc8e7d5145e3c0951b3df9">More...</a><br /></td></tr>
<tr class="separator:ga5775e7edc5bc8e7d5145e3c0951b3df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga0b817baf579405c6765d5e3e2360cc2e" name="ga0b817baf579405c6765d5e3e2360cc2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b817baf579405c6765d5e3e2360cc2e">&#9670;&nbsp;</a></span>arm_mfcc_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void arm_mfcc_f16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float16_t *&#160;</td>
<td class="paramname"><em>pSrc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float16_t *&#160;</td>
<td class="paramname"><em>pDst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">float16_t *&#160;</td>
<td class="paramname"><em>pTmp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pSrc</td><td>points to the input samples </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pDst</td><td>points to the output MFCC values </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">pTmp</td><td>points to a temporary buffer of complex</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The number of input samples if the FFT length used when initializing the instance data structure.</dd></dl>
<p>The temporary buffer has a 2*fft length size when MFCC is implemented with CFFT. It has length FFT Length + 2 when implemented with RFFT (default implementation).</p>
<p >The source buffer is modified by this function. </p>
</div>
</div>
<a id="gaa7d50f7c15d2a3816851a43590590a29" name="gaa7d50f7c15d2a3816851a43590590a29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa7d50f7c15d2a3816851a43590590a29">&#9670;&nbsp;</a></span>arm_mfcc_init_1024_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_1024_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="gacb303d4371873b338c003bc3b28618ed" name="gacb303d4371873b338c003bc3b28618ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb303d4371873b338c003bc3b28618ed">&#9670;&nbsp;</a></span>arm_mfcc_init_128_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_128_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="ga8fc578706fca63a5e293d3a1f993b39b" name="ga8fc578706fca63a5e293d3a1f993b39b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fc578706fca63a5e293d3a1f993b39b">&#9670;&nbsp;</a></span>arm_mfcc_init_2048_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_2048_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="gafa1973c0b2f573afca2bb250f7142e1b" name="gafa1973c0b2f573afca2bb250f7142e1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa1973c0b2f573afca2bb250f7142e1b">&#9670;&nbsp;</a></span>arm_mfcc_init_256_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_256_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="gab4ce8687295e19ef91acda3eef32a9bb" name="gab4ce8687295e19ef91acda3eef32a9bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab4ce8687295e19ef91acda3eef32a9bb">&#9670;&nbsp;</a></span>arm_mfcc_init_32_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_32_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="ga5775e7edc5bc8e7d5145e3c0951b3df9" name="ga5775e7edc5bc8e7d5145e3c0951b3df9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5775e7edc5bc8e7d5145e3c0951b3df9">&#9670;&nbsp;</a></span>arm_mfcc_init_4096_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_4096_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="gaafe0cf442a410c8c40592e61332d2692" name="gaafe0cf442a410c8c40592e61332d2692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaafe0cf442a410c8c40592e61332d2692">&#9670;&nbsp;</a></span>arm_mfcc_init_512_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_512_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="ga88e209e61eb60797428547dca05d1c23" name="ga88e209e61eb60797428547dca05d1c23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga88e209e61eb60797428547dca05d1c23">&#9670;&nbsp;</a></span>arm_mfcc_init_64_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_64_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays. </p>
</div>
</div>
<a id="gae6a307eafd0bb6534369d239e76ef766" name="gae6a307eafd0bb6534369d239e76ef766"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae6a307eafd0bb6534369d239e76ef766">&#9670;&nbsp;</a></span>arm_mfcc_init_f16()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6">arm_status</a> arm_mfcc_init_f16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__mfcc__instance__f16.html">arm_mfcc_instance_f16</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>fftLen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbMelFilters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>nbDctOutputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>dctCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>filterLengths</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>filterCoefs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const float16_t *&#160;</td>
<td class="paramname"><em>windowCoefs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">S</td><td>points to the mfcc instance structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">fftLen</td><td>fft length </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbMelFilters</td><td>number of Mel filters </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nbDctOutputs</td><td>number of Dct outputs </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dctCoefs</td><td>points to an array of DCT coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterPos</td><td>points of the array of filter positions </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterLengths</td><td>points to the array of filter lengths </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">filterCoefs</td><td>points to the array of filter coefficients </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">windowCoefs</td><td>points to the array of window coefficients</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error status</dd></dl>
<dl class="section user"><dt>Description</dt><dd>The matrix of Mel filter coefficients is sparse. Most of the coefficients are zero. To avoid multiplying the spectrogram by those zeros, the filter is applied only to a given position in the spectrogram and on a given number of FFT bins (the filter length). It is the reason for the arrays filterPos and filterLengths.</dd></dl>
<p>window coefficients can describe (for instance) a Hamming window. The array has the same size as the FFT length.</p>
<p >The folder Scripts is containing a Python script that can be used to generate the filter, dct and window arrays.</p>
<dl class="section user"><dt></dt><dd>This function should be used only if you don't know the FFT sizes that you'll need at build time. The use of this function will prevent the linker from removing the FFT tables that are not needed and the library code size will be bigger than needed.</dd></dl>
<dl class="section user"><dt></dt><dd>If you use CMSIS-DSP as a static library, and if you know the MFCC sizes that you need at build time, then it is better to use the initialization functions defined for each MFCC size. </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">
<script type="text/javascript">
<!--
writeFooter.call(this);
//-->
</script>
</li>
</ul>
</div>
</body>
</html>