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/v1.11.0/group__inv__clarke.html

263 lines
14 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: Vector Inverse Clarke Transform</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__inv__clarke.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">Vector Inverse Clarke Transform<div class="ingroups"><a class="el" href="group__groupController.html">Controller 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:gaab8fd932728ad10f97655476c4431e84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__inv__clarke.html#gaab8fd932728ad10f97655476c4431e84">arm_inv_clarke_f32</a> (<a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> Ialpha, <a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> Ibeta, <a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> *pIa, <a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> *pIb)</td></tr>
<tr class="memdesc:gaab8fd932728ad10f97655476c4431e84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Floating-point Inverse Clarke transform. <a href="group__inv__clarke.html#gaab8fd932728ad10f97655476c4431e84">More...</a><br /></td></tr>
<tr class="separator:gaab8fd932728ad10f97655476c4431e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb552c3e9e4ce1738d4609206a4c282b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__inv__clarke.html#gacb552c3e9e4ce1738d4609206a4c282b">arm_inv_clarke_q31</a> (<a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> Ialpha, <a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> Ibeta, <a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *pIa, <a class="el" href="arm__math__types_8h.html#adc89a3547f5324b7b3b95adec3806bc0">q31_t</a> *pIb)</td></tr>
<tr class="memdesc:gacb552c3e9e4ce1738d4609206a4c282b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse Clarke transform for Q31 version. <a href="group__inv__clarke.html#gacb552c3e9e4ce1738d4609206a4c282b">More...</a><br /></td></tr>
<tr class="separator:gacb552c3e9e4ce1738d4609206a4c282b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p >Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous stator phases.</p>
<p >The function operates on a single sample of data and each call to the function returns the processed output. The library provides separate functions for Q31 and floating-point data types. </p><dl class="section user"><dt>Algorithm</dt><dd><div class="image">
<img src="clarkeInvFormula.gif" alt=""/>
</div>
where <code>pIa</code> and <code>pIb</code> are the instantaneous stator phases and <code>Ialpha</code> and <code>Ibeta</code> are the two coordinates of time invariant vector. </dd></dl>
<dl class="section user"><dt>Fixed-Point Behavior</dt><dd>Care must be taken when using the Q31 version of the Clarke transform. In particular, the overflow and saturation behavior of the accumulator used must be considered. Refer to the function specific documentation below for usage guidelines. </dd></dl>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaab8fd932728ad10f97655476c4431e84" name="gaab8fd932728ad10f97655476c4431e84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab8fd932728ad10f97655476c4431e84">&#9670;&nbsp;</a></span>arm_inv_clarke_f32()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void arm_inv_clarke_f32 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a>&#160;</td>
<td class="paramname"><em>Ialpha</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a>&#160;</td>
<td class="paramname"><em>Ibeta</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> *&#160;</td>
<td class="paramname"><em>pIa</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="arm__math__types_8h.html#a4611b605e45ab401f02cab15c5e38715">float32_t</a> *&#160;</td>
<td class="paramname"><em>pIb</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">Ialpha</td><td>input two-phase orthogonal vector axis alpha </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">Ibeta</td><td>input two-phase orthogonal vector axis beta </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pIa</td><td>points to output three-phase coordinate <code>a</code> </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pIb</td><td>points to output three-phase coordinate <code>b</code> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="gacb552c3e9e4ce1738d4609206a4c282b" name="gacb552c3e9e4ce1738d4609206a4c282b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb552c3e9e4ce1738d4609206a4c282b">&#9670;&nbsp;</a></span>arm_inv_clarke_q31()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void arm_inv_clarke_q31 </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>Ialpha</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>Ibeta</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>pIa</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>pIb</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">Ialpha</td><td>input two-phase orthogonal vector axis alpha </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">Ibeta</td><td>input two-phase orthogonal vector axis beta </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pIa</td><td>points to output three-phase coordinate <code>a</code> </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pIb</td><td>points to output three-phase coordinate <code>b</code> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section user"><dt>Scaling and Overflow Behavior</dt><dd>The function is implemented using an internal 32-bit accumulator. The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format. There is saturation on the subtraction, hence there is no risk of overflow. </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>