问题标签 [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.
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 范围,然后按比例缩小答案。
math - 右移一个进位保存号码
进位保存算法使用两倍的位数,一个字保存“虚拟和”,一个字保存“虚拟进位”以避免传播进位,这是硬件速度的限制因素。
我有一个系统需要将这些数字除以 2 的幂,但简单地右移两个数字并不适用于所有情况,例如。两个 16 位进位保存数,相加产生 4000,C001 是虚拟和,7FFF 是虚拟进位。
简而言之:您如何将进位保存数除以 2 的幂?(同时保留一个进位保存号码)
java - 使用 BigDecimals 实现 Java CORDIC 的小错误
我用 Java 实现了 CORDIC 算法,在第一次迭代中,我只是在http://en.wikipedia.org/wiki/CORDIC上举了一个例子,然后用 Java 重写了它。
0.32719469679615224417334408526762060
但似乎我的实现确实返回了 sin 和 cos 并带有一个小错误:例如,当计算我的实现的 1/3 的正弦时,
0.3271946967961523696204423482988852
它只正确到小数点后 14 位,而不是定义的 34MathContext.DECIMAL128
所以这些测试失败:
我的实现如下所示:
formatting - 如何打印具有所有可用精度的 Rust 浮点数?
我正在为sin
三角函数实现 CORDIC 算法。为了做到这一点,我需要硬编码/计算一堆反正切值。现在我的函数似乎工作(由 Wolfram Alpha 验证)到打印的精度,但我希望能够打印我的所有 32 位精度f32
。我该怎么做?
rust - Rust 中的舍入错误试图为 sin 函数创建 CORDIC 表
我试图以这个c实现为例来实现CORDIC方法rust
,但是在生成表时我遇到了舍入错误问题。这是我的代码和结果。
这给了我下表,注意第一个和最后一个值以查看最大的错误。
为什么我会收到这些(四舍五入?)错误,我该如何解决?
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?
提前致谢
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 角度?
math - 为什么我们使用 CORDIC 增益?
我正在研究cordic。我发现了cordic的收获。K=0.607XXX。
根据 CORDIC,K_i = cos(tan^-1(2^i))。
据我所知,K 接近 0.607xxx。当我要去无穷大时
这个值是从所有 K 乘法中得出的。
我理解每个 k 存在的原因。但我很好奇它在哪里使用?为什么我们使用这个值 K=0.607xx?