tri*_*can 11 math optimization fpga
我想近似e x函数.
是否可以使用基于样条类型的多种方法来实现?之间即X 1和X 2,然后
y 1 = 1 x + b 1,x 2和x 3之间,
然后
y 2 = a 2 x + b 2
等等
这适用于专用的fpga硬件,而不是通用CPU.因此我需要自己创建这个功能.准确性不是一个问题.此外,我实际上不能提供多个乘法电路和/或多个移位/加法器.另外,我想要比CORDIC功能小得多的东西,实际上尺寸很重要.
Luc*_*cas 24
如此使用公式的策略怎么样?
e x = 2 x/ln(2)
1/ln(2)我意识到这不是一个完整的解决方案,但它只需要一次乘法,并将剩余的问题减少到近似2的分数幂,这应该更容易在硬件中实现.
另外,如果您的应用程序是专业的话,你可以尝试重新获得所有的数字代码,将在你的硬件上运行是在一个碱基ë数字系统和实现浮点硬件基础工作é为好.然后根本不需要转换.
tsk*_*zzy 13
If x是一个整数,你可以e一遍又一遍地自相乘.
如果x不是整数,您可以使用上述方法计算e floor(x),然后乘以一个小的校正项.可以使用多种近似方法容易地计算该校正项.一种这样的方式是这样的:
ë ˚F ≈
1 + f(1 + f/2(1 + f/3(1 + f/4))),其中˚F是x的分数部分
这来自于(优化的)幂级数展开的ë X,这对于小的值非常准确x.如果您需要更高的准确性,只需加入该系列的更多术语.
这个math.stackexchange问题包含一些额外的巧妙答案.
| 归档时间: |
|
| 查看次数: |
21315 次 |
| 最近记录: |