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__RealFFTQ31.html

865 lines
53 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: Real FFT Q31 Functions</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__RealFFTQ31.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">Real FFT Q31 Functions<div class="ingroups"><a class="el" href="group__groupTransforms.html">Transform Functions</a> &raquo; <a class="el" href="group__RealFFT.html">Real FFT Functions</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:gaf6d2c128e4e49bc76c37e15991c77eed"><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__RealFFTQ31.html#gaf6d2c128e4e49bc76c37e15991c77eed">arm_rfft_init_8192_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:gaf6d2c128e4e49bc76c37e15991c77eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 8192 pt Q31 real FFT. <a href="group__RealFFTQ31.html#gaf6d2c128e4e49bc76c37e15991c77eed">More...</a><br /></td></tr>
<tr class="separator:gaf6d2c128e4e49bc76c37e15991c77eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad09eea74ba8d40aa47a09b26734d1410"><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__RealFFTQ31.html#gad09eea74ba8d40aa47a09b26734d1410">arm_rfft_init_4096_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:gad09eea74ba8d40aa47a09b26734d1410"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 4096 pt Q31 real FFT. <a href="group__RealFFTQ31.html#gad09eea74ba8d40aa47a09b26734d1410">More...</a><br /></td></tr>
<tr class="separator:gad09eea74ba8d40aa47a09b26734d1410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93d497a99e5bbd58742f5578d07ac8bf"><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__RealFFTQ31.html#ga93d497a99e5bbd58742f5578d07ac8bf">arm_rfft_init_2048_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga93d497a99e5bbd58742f5578d07ac8bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 2048 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga93d497a99e5bbd58742f5578d07ac8bf">More...</a><br /></td></tr>
<tr class="separator:ga93d497a99e5bbd58742f5578d07ac8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9511ff87e5f8efd5d2b4929d29c4e019"><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__RealFFTQ31.html#ga9511ff87e5f8efd5d2b4929d29c4e019">arm_rfft_init_1024_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga9511ff87e5f8efd5d2b4929d29c4e019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 1024 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga9511ff87e5f8efd5d2b4929d29c4e019">More...</a><br /></td></tr>
<tr class="separator:ga9511ff87e5f8efd5d2b4929d29c4e019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga440e811ab01829da4c6d7e296ff69d60"><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__RealFFTQ31.html#ga440e811ab01829da4c6d7e296ff69d60">arm_rfft_init_512_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga440e811ab01829da4c6d7e296ff69d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 512 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga440e811ab01829da4c6d7e296ff69d60">More...</a><br /></td></tr>
<tr class="separator:ga440e811ab01829da4c6d7e296ff69d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga647651c54b03b137458438bfcf4c7ddf"><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__RealFFTQ31.html#ga647651c54b03b137458438bfcf4c7ddf">arm_rfft_init_256_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga647651c54b03b137458438bfcf4c7ddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 256 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga647651c54b03b137458438bfcf4c7ddf">More...</a><br /></td></tr>
<tr class="separator:ga647651c54b03b137458438bfcf4c7ddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a8ec40492b9a704dba79612e4143c83"><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__RealFFTQ31.html#ga8a8ec40492b9a704dba79612e4143c83">arm_rfft_init_128_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga8a8ec40492b9a704dba79612e4143c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 128 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga8a8ec40492b9a704dba79612e4143c83">More...</a><br /></td></tr>
<tr class="separator:ga8a8ec40492b9a704dba79612e4143c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2eb6bed920931a032b4c3407671fb50c"><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__RealFFTQ31.html#ga2eb6bed920931a032b4c3407671fb50c">arm_rfft_init_64_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga2eb6bed920931a032b4c3407671fb50c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 64 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga2eb6bed920931a032b4c3407671fb50c">More...</a><br /></td></tr>
<tr class="separator:ga2eb6bed920931a032b4c3407671fb50c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga291e79451a88a422dec24b7492cc7df7"><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__RealFFTQ31.html#ga291e79451a88a422dec24b7492cc7df7">arm_rfft_init_32_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga291e79451a88a422dec24b7492cc7df7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization function for the 32 pt Q31 real FFT. <a href="group__RealFFTQ31.html#ga291e79451a88a422dec24b7492cc7df7">More...</a><br /></td></tr>
<tr class="separator:ga291e79451a88a422dec24b7492cc7df7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5abde938abbe72e95c5bab080eb33c45"><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__RealFFTQ31.html#ga5abde938abbe72e95c5bab080eb33c45">arm_rfft_init_q31</a> (<a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)</td></tr>
<tr class="memdesc:ga5abde938abbe72e95c5bab080eb33c45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic initialization function for the Q31 RFFT/RIFFT. <a href="group__RealFFTQ31.html#ga5abde938abbe72e95c5bab080eb33c45">More...</a><br /></td></tr>
<tr class="separator:ga5abde938abbe72e95c5bab080eb33c45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabaeab5646aeea9844e6d42ca8c73fe3a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RealFFTQ31.html#gabaeab5646aeea9844e6d42ca8c73fe3a">arm_rfft_q31</a> (const <a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *S, <a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *pSrc, <a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *pDst)</td></tr>
<tr class="memdesc:gabaeab5646aeea9844e6d42ca8c73fe3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processing function for the Q31 RFFT/RIFFT. <a href="group__RealFFTQ31.html#gabaeab5646aeea9844e6d42ca8c73fe3a">More...</a><br /></td></tr>
<tr class="separator:gabaeab5646aeea9844e6d42ca8c73fe3a"><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="ga9511ff87e5f8efd5d2b4929d29c4e019" name="ga9511ff87e5f8efd5d2b4929d29c4e019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9511ff87e5f8efd5d2b4929d29c4e019">&#9670;&nbsp;</a></span>arm_rfft_init_1024_q31()</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_rfft_init_1024_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga8a8ec40492b9a704dba79612e4143c83" name="ga8a8ec40492b9a704dba79612e4143c83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a8ec40492b9a704dba79612e4143c83">&#9670;&nbsp;</a></span>arm_rfft_init_128_q31()</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_rfft_init_128_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga93d497a99e5bbd58742f5578d07ac8bf" name="ga93d497a99e5bbd58742f5578d07ac8bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93d497a99e5bbd58742f5578d07ac8bf">&#9670;&nbsp;</a></span>arm_rfft_init_2048_q31()</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_rfft_init_2048_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga647651c54b03b137458438bfcf4c7ddf" name="ga647651c54b03b137458438bfcf4c7ddf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga647651c54b03b137458438bfcf4c7ddf">&#9670;&nbsp;</a></span>arm_rfft_init_256_q31()</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_rfft_init_256_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga291e79451a88a422dec24b7492cc7df7" name="ga291e79451a88a422dec24b7492cc7df7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga291e79451a88a422dec24b7492cc7df7">&#9670;&nbsp;</a></span>arm_rfft_init_32_q31()</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_rfft_init_32_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="gad09eea74ba8d40aa47a09b26734d1410" name="gad09eea74ba8d40aa47a09b26734d1410"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad09eea74ba8d40aa47a09b26734d1410">&#9670;&nbsp;</a></span>arm_rfft_init_4096_q31()</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_rfft_init_4096_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga440e811ab01829da4c6d7e296ff69d60" name="ga440e811ab01829da4c6d7e296ff69d60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga440e811ab01829da4c6d7e296ff69d60">&#9670;&nbsp;</a></span>arm_rfft_init_512_q31()</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_rfft_init_512_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga2eb6bed920931a032b4c3407671fb50c" name="ga2eb6bed920931a032b4c3407671fb50c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2eb6bed920931a032b4c3407671fb50c">&#9670;&nbsp;</a></span>arm_rfft_init_64_q31()</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_rfft_init_64_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="gaf6d2c128e4e49bc76c37e15991c77eed" name="gaf6d2c128e4e49bc76c37e15991c77eed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6d2c128e4e49bc76c37e15991c77eed">&#9670;&nbsp;</a></span>arm_rfft_init_8192_q31()</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_rfft_init_8192_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table. </dd></dl>
</div>
</div>
<a id="ga5abde938abbe72e95c5bab080eb33c45" name="ga5abde938abbe72e95c5bab080eb33c45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5abde938abbe72e95c5bab080eb33c45">&#9670;&nbsp;</a></span>arm_rfft_init_q31()</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_rfft_init_q31 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</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>fftLenReal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>ifftFlagR</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitReverseFlag</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,out]</td><td class="paramname">S</td><td>points to an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">fftLenReal</td><td>length of the FFT </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ifftFlagR</td><td>flag that selects transform direction<ul>
<li>value = 0: forward transform</li>
<li>value = 1: inverse transform </li>
</ul>
</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">bitReverseFlag</td><td>flag that enables / disables bit reversal of output<ul>
<li>value = 0: disables bit reversal of output</li>
<li>value = 1: enables bit reversal of output </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>execution status<ul>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a9f8b2a10bd827fb4600e77d455902eb0">ARM_MATH_SUCCESS</a> : Operation successful</li>
<li><a class="el" href="arm__math__types_8h.html#a5e459c6409dfcd2927bb8a57491d7cf6a74897e18d4b8f62b12a7d8a01dd2bb35">ARM_MATH_ARGUMENT_ERROR</a> : <code>fftLenReal</code> is not a supported length</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Details</dt><dd>The parameter <code>fftLenReal</code> specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. </dd></dl>
<dl class="section user"><dt></dt><dd>The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. </dd></dl>
<dl class="section user"><dt></dt><dd>This function also initializes Twiddle factor table.</dd></dl>
<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 FFT sizes that you need at build time, then it is better to use the initialization functions defined for each FFT size. </dd></dl>
</div>
</div>
<a id="gabaeab5646aeea9844e6d42ca8c73fe3a" name="gabaeab5646aeea9844e6d42ca8c73fe3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabaeab5646aeea9844e6d42ca8c73fe3a">&#9670;&nbsp;</a></span>arm_rfft_q31()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void arm_rfft_q31 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structarm__rfft__instance__q31.html">arm_rfft_instance_q31</a> *&#160;</td>
<td class="paramname"><em>S</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *&#160;</td>
<td class="paramname"><em>pSrc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *&#160;</td>
<td class="paramname"><em>pDst</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 an instance of the Q31 RFFT/RIFFT structure </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pSrc</td><td>points to input buffer (Source buffer is modified by this function) </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pDst</td><td>points to output buffer </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section user"><dt>Input an output formats</dt><dd>Internally input is downscaled by 2 for every stage to avoid saturations inside CFFT/CIFFT process. Hence the output format is different for different RFFT sizes. The input and output formats for different RFFT sizes and number of bits to upscale are mentioned in the tables below for RFFT and RIFFT: </dd></dl>
<dl class="section user"><dt>Input and Output formats for RFFT Q31</dt><dd></dd></dl>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadRight">RFFT Size </th><th class="markdownTableHeadRight">Input Format </th><th class="markdownTableHeadRight">Output Format </th><th class="markdownTableHeadRight">Number of bits to upscale </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">32 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">6.26 </td><td class="markdownTableBodyRight">5 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">64 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">7.25 </td><td class="markdownTableBodyRight">6 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">128 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">8.24 </td><td class="markdownTableBodyRight">7 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">256 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">9.23 </td><td class="markdownTableBodyRight">8 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">512 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">10.22 </td><td class="markdownTableBodyRight">9 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">1024 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">11.21 </td><td class="markdownTableBodyRight">10 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">2048 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">12.20 </td><td class="markdownTableBodyRight">11 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">4096 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">13.19 </td><td class="markdownTableBodyRight">12 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">8192 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">14.18 </td><td class="markdownTableBodyRight">13 </td></tr>
</table>
<dl class="section user"><dt>Input and Output formats for RIFFT Q31</dt><dd></dd></dl>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadRight">RIFFT Size </th><th class="markdownTableHeadRight">Input Format </th><th class="markdownTableHeadRight">Output Format </th><th class="markdownTableHeadRight">Number of bits to upscale </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">32 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">6.26 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">64 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">7.25 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">128 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">8.24 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">256 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">9.23 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">512 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">10.22 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">1024 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">11.21 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">2048 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">12.20 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyRight">4096 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">13.19 </td><td class="markdownTableBodyRight">0 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyRight">8192 </td><td class="markdownTableBodyRight">1.31 </td><td class="markdownTableBodyRight">14.18 </td><td class="markdownTableBodyRight">0 </td></tr>
</table>
<dl class="section user"><dt></dt><dd>If the input buffer is of length N (fftLenReal), the output buffer must have length 2N since it is containing the conjugate part (except for MVE version where N+2 is enough). The input buffer is modified by this function. </dd></dl>
<dl class="section user"><dt></dt><dd>For the RIFFT, the source buffer must have length N+2 since the Nyquist frequency value is needed but conjugate part is ignored. It is not using the packing trick of the float version. </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>