问题标签 [fixed-point]
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++ - 为 AT91SAM9 ARM 处理器 Linux 用户空间程序优化 FFT 和数学
我正在使用 Atmel 的 AT91SAM9G20 处理器为嵌入式 Linux 系统开发 C/C++ 软件。我需要使用 Linux 用户空间程序使用定点(或者可能是浮点)数学快速计算 FFT。我知道汇编器可能是实现的方式,并且在使用 gcc 编译器进行编译时可能需要额外的 -mpcu 开关。进行此实施的最佳方法是什么,是否有任何好的书籍参考或优化的 FOSS 库可用?
我必须实现一些算法,这些算法也需要多次应用小的 FFT 长度(即 1024 点),我想知道某些库(例如 Kissfft)是否也能正常工作。我也对长 FFT 长度感兴趣,因此下面的答案中建议的 FFTW 也可以很好地工作。
除了这个问题,我还想知道如何在 ARM9 Linux 用户空间程序中处理整数除法。如果我将两个整数相除(例如 25 / 4),是否使用软浮点数进行除法?我还需要实现一些繁重的数字运算算法,我想知道在这里使用定点是否比浮点数学更好,以及 gcc 编译器如何真正处理事情。
c - 为什么 C99 中不包含定点类型?
值得庆幸的是,complex
类型修饰符被引入到 C99 标准中。我不明白的是为什么决定省略对定点算术的支持(具体来说,支持像 1.15 {signed} 或 0.32 {unsigned} 这样的小数类型),这些类型对于 DSP 编程如此重要?
GCC 是否通过扩展支持这些?
python - 将从文件读取的二进制序列转换为定点数
我正在尝试解析其中包含 ITCH 消息的文件:
http://www.nasdaqtrader.com/Trader.aspx?id=DPSpecs_USEquities#TVITCH ¬ http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NQTV-ITCH-V4_1.pdf ¬
每个价格都表示为一个 32 位定点数,具有 18 个整数部分位和 14 个小数部分位。(6 个整数位,后跟 4 个小数位)
例如
我看过 struct 类,但这仅处理整个字节,因为它用于从二进制编码的 c 结构转换。
我查看了 decimal.Decimal 模块,但您似乎只能使用字符串对其进行实例化,并且假设您已经拥有字符串格式的数字。
c - C 编程中的定点算术
我正在尝试创建一个以高精度存储股票价格的应用程序。目前我正在使用双重这样做。为了节省内存,我可以使用任何其他数据类型吗?我知道这与定点算术有关,但我无法弄清楚。
c++ - Benefits of using fixed-point arithmetic in C++ for devices without FPU
I would like to optimize my C++ code for an ARM device, which lacks a floating point unit. Most of my functions use floats, and I am considering changing them to fixed-point.
Are there real benefits in the case of ARM devices, or are compilers smart enough to do this themselves?
For example, would this be more efficient on an ARM device
than doing
c - C中浮点数的定点运算的位移位
我编写了以下测试代码来检查定点算术和位移。
结果是 2.000000 3.000000 0.000000
为什么最后一个数字是 0?我期待看到 5.000000 我想使用某种定点算法来绕过在图像处理应用程序上使用浮点数。将浮点数组转换为整数的最佳/最简单/最有效的方法是什么?上面的“欺骗编译器”是一种强大的解决方法吗?有什么建议么?
filter - 定点 FIR 滤波器输出大小
我有一个 64 抽头 FIR 滤波器,我无法理解其输出格式。该滤波器已使用(有符号)定点数学实现。在 {B,F} 格式中,其中 B 是字长,F 是小数长度,滤波器输入是 {16,0},系数是 {16,17}。过滤器的核心如下:
for 循环的每次迭代都会产生一个输出,其格式由下式给出:
使用定点算法的规则。由于有 32 次迭代,因此需要在累加器的大小上增加 6 个额外的位以防止溢出。这六位来自使用(MATLAB)公式:
根据本文件。根据我的推理,这应该导致格式为 {39,17} 的输出。那么为什么 MATLAB 将滤波器输出大小报告为 {34,17}?此外,如果我希望过滤器输出与输入的格式相同,我是否认为我需要右移(在 {39,17} 情况下)22 位?
c - 如何在 ARM Cortex-M 上使用 GCC 定点类型扩展?
我正在使用 ARM Cortex-M3 和 Cortex-M4。我想利用 GCC 的定点类型扩展。我正在使用summ-arm-toolchain。以下代码行
抛出以下编译错误:
GCC 真的不支持 Cortex-M3/M4 的定点类型,还是我在这里遗漏了什么?
verilog - 在verilog中实现定点乘法器
我需要设计一个在verilog中计算相关性的系统,我只能使用有限位数的定点计算。所以我需要实现一个定点乘法器,它的位数少于输入的总和(输入的长度和小数位数相同)。
关键是我不能只是将它们正常相乘然后减少位。那么有什么特别的方法可以做到这一点吗?
java - 定点数
在我的 Java 类介绍中,我被困在一个项目上。
我们必须创建一个将数字转换为定点数的代码。我的那部分没问题,但我卡在我们作业的数学部分。我们必须使用 (scalar (float) 方法进行加法、减法、乘法运算,以及使用标量 (float) 方法进行除法。
这是我到目前为止的代码。如果有人能帮助我指出正确的方向来获得第二个数字输出并将这两个数字相加,我将不胜感激。