主要内容

cordiccart2pol

基于cordic的笛卡尔到极坐标转换的近似

语法

[theta,r] = cordiccart2pol(x,y)
[theta,r] = cordiccart2pol(x,y, niters)
[theta,r] = cordiccart2pol(x,y, niters,'ScaleOutput',b)
[theta,r] = cordiccart2pol(x,y, 'ScaleOutput',b)

描述

(θ,r)= cordiccart2pol (xy使用CORDIC算法近似,返回极坐标,角度θ和半径r,即笛卡尔坐标,x而且y

(θ,r)= cordiccart2pol (xy硝酸钠执行硝酸钠算法的迭代。

(θ,r)= cordiccart2pol (xy硝酸钠,“ScaleOutput”,b)的布尔值,指定迭代次数和b,是否缩放r由逆CORDIC增益值输出。

(θ,r)= cordiccart2pol (xy,“ScaleOutput”,b)尺度的r输出的逆CORDIC增益值,取决于布尔值b

输入参数

x, y

x, y为笛卡尔坐标。x而且y必须是一样的尺寸。如果大小不同,则至少有一个值必须是标量值。这两个x而且y必须具有相同的数据类型。

硝酸钠

硝酸钠为CORDIC算法执行的迭代次数。这个参数是可选的。当指定时,硝酸钠必须为正整数标量。如果您没有指定硝酸钠,或者如果指定的值太大,则算法使用最大值。对于定点运算,最大迭代次数为字长r或者比的字长少1θ,以较小者为准。对于浮点运算,最大值为52 (double)或23 (single)。增加迭代次数可以产生更准确的结果,但也会增加计算费用并增加延迟。

名称-值参数

的可选逗号分隔对名称,值参数,的名字参数名称和价值对应的值。的名字必须出现在单引号内().

ScaleOutput

ScaleOutput是一个布尔值,指定是否按逆CORDIC增益因子缩放输出。这个参数是可选的。如果你设置ScaleOutput真正的1,输出值乘以一个常数,这会引起额外的计算。如果你设置ScaleOutput0时,输出未缩放。

默认值:真正的

输出参数

θ

θ包含极坐标角度值,其范围为[-pi, pi]弧度。如果x而且y是浮点数吗θ数据类型与x而且y.否则,θ是与字长相同的定点数据类型吗x而且y并且在[-pi, pi]范围内具有最佳精度分数长度。

r

r包含极坐标半径大小值。r是实值,可以是标量值或具有相同的维度θ如果输入x, y都是定点值,r也是固定点(并且总是带符号,具有二进制点缩放)。这两个x, y输入值必须具有相同的数据类型。如果输入是带符号的,则的字长r是输入字长+ 2。如果输入是无符号的,则r是输入字长+ 3。的分数长度r总是和的分数长度相等x, y输入。

例子

将定点笛卡尔坐标转换为极坐标。

[thPos,r]=cordiccart2pol(sfi([0.75:-0.25:-1.0],16,15),sfi(0.5,16,15)) thPos = 0.5881 0.7854 1.1072 1.5708 2.0344 2.3562 2.5535 2.6780 DataTypeMode:定点:二进制点缩放signdness: Signed WordLength: 16 FractionLength: 13 r = 0.9014 0.7071 0.5591 0.5000 0.5591 0.7071 0.9014 1.1180 DataTypeMode:定点:二进制点缩放signdness: Signed WordLength: 18 FractionLength: 15 [thNeg,r]=…cordiccart2pol(sfi([0.75:-0.25:-1.0],16,15),sfi(-0.5,16,15)) thNeg = -0.5881 -0.7854 -1.1072 -1.5708 -2.0344 -2.3562 -2.5535 -2.6780 DataTypeMode:定点:二进制点缩放signdness: Signed WordLength: 16 FractionLength: 13 r = 0.9014 0.7071 0.5591 0.5000 0.5591 0.7071 0.9014 1.1180 DataTypeMode:定点:二进制点缩放signdness: Signed WordLength: 18 FractionLength: 15

更多关于

全部折叠

CORDIC

CORDIC是坐标旋转数字计算机的首字母缩写。基于Givens旋转的CORDIC算法是目前硬件效率最高的算法之一,因为它只需要迭代的shift-add操作(参见参考文献)。CORDIC算法消除了显式乘法器的需要。使用CORDIC,您可以计算各种函数,如正弦,余弦,弧正弦,弧余弦,弧正切和矢量大小。您还可以将此算法用于除函数、平方根函数、双曲函数和对数函数。

增加CORDIC迭代次数可以产生更准确的结果,但这样做会增加计算费用并增加延迟。

更多关于

算法

全部折叠

信号流图

CORDIC矢量内核

CORDIC内核的准确性取决于对初始值的选择XY,Z.该算法使用以下初始值:

x 0 初始化为 x 输入值 y 0 初始化为 y 输入值 z 0 初始化为 0

fimath传播规则

CORDIC函数丢弃任何局部fimath连接到输入端。

CORDIC函数使用它们自己的内部fimath计算时:

  • OverflowAction- - - - - -包装

  • RoundingMethod- - - - - -地板上

输出没有附加fimath

扩展功能

版本历史

在R2011b中引入