主要内容

cordicatan2

CORDIC-based四象限逆切

描述

例子

θ= cordicatan2 (y,x)计算的四个象限的反正切yx使用CORDIC算法近似。

θ= cordicatan2 (y,x,硝酸钠)执行硝酸钠迭代算法的。

例子

全部折叠

定义浮点笛卡尔坐标。

y = 0.5;x = -0.5;

使用cordicatan2计算浮点CORDIC的反正切。比较结果反正切计算使用量化

theta_cdat2_float = cordicatan2 (y, x)
theta_cdat2_float = 2.3562
theta_atan2_float =量化(y, x)
theta_atan2_float = 2.3562

定义定点笛卡尔坐标。

y = fi(15) 0.5、1、16日;x = fi(15) -0.5、1、16日;

使用cordicatan2计算定点CORDIC的反正切。比较结果反正切计算使用量化

theta_cdat2_fixpt = cordicatan2 (y, x)
theta_cdat2_fixpt = 2.3562 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13
theta_atan2_fixpt =量化(y, x)
theta_atan2_fixpt = 2.3562 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13

输入参数

全部折叠

笛卡儿y协调,指定为一个标量、向量矩阵,或多维数组。

yx必须是相同的大小。如果它们不是相同的大小,至少一个值必须是一个标量值。yx必须具有相同的数据类型。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数的支持:金宝app是的

笛卡儿x协调,指定为一个标量、向量矩阵,或多维数组。

yx必须是相同的大小。如果它们不是相同的大小,至少一个值必须是一个标量值。yx必须具有相同的数据类型。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数的支持:金宝app是的

CORDIC算法的迭代次数,指定为一个积极,整数值标量。

增加迭代的数量可以产生更精确的结果,但也增加了计算的费用,并增加了延迟。

如果你不指定硝酸钠,或者如果您指定的值太大,该算法使用了一个最大值。定点运算,迭代的最大数量是一个不到的单词长度yx。浮点运算,最大值是52双或单23。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi

输出参数

全部折叠

的反正切值范围(-ππ)弧度,返回为一个标量,矢量、矩阵,或多维数组。

如果yx是浮点数,然后θ有相同的数据类型yx。否则,θ是一个和相同的字长定点数据类型吗yx和best-precision部分长度为(-ππ)范围内。

算法

全部折叠

CORDIC

CORDIC坐标旋转数字计算机的缩写。的吉文斯rotation-based CORDIC算法是一种最hardware-efficient算法可用,因为它只需要迭代shift-add操作(参见参考资料)。CORDIC算法不需要显式的乘数。使用CORDIC,可以计算各种功能如正弦、余弦,反正弦,余弦,反正切,向量大小。您还可以使用这个算法的分裂,平方根,双曲线和对数函数。

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

信号流图

CORDIC引导内核

CORDIC内核的准确性依赖于初始值的选择X,Y,Z。该算法使用以下初始值:

  • X0初始化的X输入值

  • Y0初始化的Y输入值

  • Z0初始化0

fimath传播规则

CORDIC函数丢弃任何地方fimath连接到输入。

CORDIC函数使用他们自己的内部fimath当执行计算:

  • OverflowAction- - - - - -包装

  • RoundingMethod- - - - - -地板上

没有附加的输出fimath

扩展功能

版本历史

介绍了R2011b