问题标签 [cordic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1262 浏览

java - 我的 CORDIC 算法有什么问题?

改编自CORDIC 上的 Wikipedia 页面的Java :

我刚刚测试了cos PI这样的代码:

出于某种原因,它给了我-0.0而不是-1.

0 投票
3 回答
3378 浏览

c++ - CORDIC 平方根

我一直在查看双曲线旋转模式下的 CORDIC 算法以找到变量的平方根。我不确定我的初始变量应该是什么 (x0, y0, z0) 才能找到平方根。我已经阅读了一些论文,指出要找到 sqrt(a),对于 x0、y0 和 z0,初始值应分别设置为 a+1、a-1、0。其他人说应该是a+0.25,a-0.25,0。我对此感到非常困惑

任何人都可以帮忙吗?

编辑* 除了补偿 3j+1 次重复外,CORDIC 还需要在 n = 4、13、40 等实例中执行两次循环,...我已经更新了我的代码以弥补这一点,但它仍然不起作用。我在矢量模式下使用双曲线旋转,该变量d应基于 y 的符号

编辑* 结果表明,在计算较大的平方根值时,CORDIC 可能会失败,因此您必须将尝试查找平方根的数字标准化为 0.5 到 2 范围,然后按比例缩小答案。

0 投票
2 回答
328 浏览

math - 右移一个进位保存号码

进位保存算法使用两倍的位数,一个字保存“虚拟和”,一个字保存“虚拟进位”以避免传播进位,这是硬件速度的限制因素。

我有一个系统需要将这些数字除以 2 的幂,但简单地右移两个数字并不适用于所有情况,例如。两个 16 位进位保存数,相加产生 4000,C001 是虚拟和,7FFF 是虚拟进位。

简而言之:您如何将进位保存数除以 2 的幂?(同时保留一个进位保存号码)

0 投票
1 回答
422 浏览

java - 使用 BigDecimals 实现 Java CORDIC 的小错误

我用 Java 实现了 CORDIC 算法,在第一次迭代中,我只是在http://en.wikipedia.org/wiki/CORDIC上举了一个例子,然后用 Java 重写了它。

0.32719469679615224417334408526762060但似乎我的实现确实返回了 sin 和 cos 并带有一个小错误:例如,当计算我的实现的 1/3 的正弦时, 0.3271946967961523696204423482988852它只正确到小数点后 14 位,而不是定义的 34MathContext.DECIMAL128

所以这些测试失败:

我的实现如下所示:

0 投票
4 回答
12350 浏览

formatting - 如何打印具有所有可用精度的 Rust 浮点数?

我正在为sin三角函数实现 CORDIC 算法。为了做到这一点,我需要硬编码/计算一堆反正切值。现在我的函数似乎工作(由 Wolfram Alpha 验证)到打印的精度,但我希望能够打印我的所有 32 位精度f32。我该怎么做?

0 投票
1 回答
217 浏览

rust - Rust 中的舍入错误试图为 sin 函数创建 CORDIC 表

我试图以这个c实现为例来实现CORDIC方法rust但是在生成表时我遇到了舍入错误问题。这是我的代码和结果。

这给了我下表,注意第一个和最后一个值以查看最大的错误。

为什么我会收到这些(四舍五入?)错误,我该如何解决?

0 投票
2 回答
1618 浏览

vhdl - arctan函数与cordic与vhdl

我想用 VHDL 设计 arctan 函数以用于解调器设计。我需要一个除法和 arctan 功能块。我有两个信号,假设来自 previos 块的 sin(alpha) 和 cos(alpha)。我想使用除法 [sin(alpha)/cos(alpha) = tan(alpha)] 然后使用 arctan 函数来检索 alpha。我发现使用cordic algortihm 可以做到这一点,但有点困惑。您有任何建议,文档或某事。如何在 vhdl 中使用 cordic 设计除法和 arctan?

提前致谢

0 投票
1 回答
219 浏览

math - 我们如何使用cordic转tanh(x+1)/tanh(x)?

我们如何使用cordic来

我不知道如何将cordic应用于上述功能。

换句话说,在上述函数的哪一点上,我们可以应用cordic?

0 投票
2 回答
1083 浏览

math - 如何摆脱 CORDIC 的比例因子

来自 CORDIC K_i = cos(tan^-1(2^i)),. 据我所知,K 已接近0.607xxx。我该如何接近0.607xxx

这是否意味着我可以使用0.607xxx而不是cos(tan^-1(2^I))?我从这篇文章中引用。

我正在尝试实现双曲 tanh 函数。到目前为止,我理解(6)方程。我不确定如何制作 K 以及如何使用它?

更新 :

我想知道总缩放概念在哪里应用以获得正弦,余弦角。这里有一些例子,我设置指定的角度是20。我想知道正弦,余弦角。过程如下。

ndxy 角 K 反正切值

0 1 0.7071 0.7071 0.7854 0.7071 0.785398

……

10 -1 0.9395 0.3426 0.3497 1 0.000976

我们可以得到如果指定的角度是20 degree(0.3491) 那么我们得到sine (20) = 0.9395 Cos(20) = 0.3497

完毕。

concept(0.607)但我仍然对总缩放适用于哪里感到好奇?在哪里使用总缩放concept(0.607 )来获得 sin, cos 角度?

0 投票
1 回答
505 浏览

math - 为什么我们使用 CORDIC 增益?

我正在研究cordic。我发现了cordic的收获。K=0.607XXX。

根据 CORDIC,K_i = cos(tan^-1(2^i))。

据我所知,K 接近 0.607xxx。当我要去无穷大时

这个值是从所有 K 乘法中得出的。

我理解每个 k 存在的原因。但我很好奇它在哪里使用?为什么我们使用这个值 K=0.607xx?