我正在使用 Atmel 的 AT91SAM9G20 处理器为嵌入式 Linux 系统开发 C/C++ 软件。我需要使用 Linux 用户空间程序使用定点(或者可能是浮点)数学快速计算 FFT。我知道汇编器可能是实现的方式,并且在使用 gcc 编译器进行编译时可能需要额外的 -mpcu 开关。进行此实施的最佳方法是什么,是否有任何好的书籍参考或优化的 FOSS 库可用?
我必须实现一些算法,这些算法也需要多次应用小的 FFT 长度(即 1024 点),我想知道某些库(例如 Kissfft)是否也能正常工作。我也对长 FFT 长度感兴趣,因此下面的答案中建议的 FFTW 也可以很好地工作。
除了这个问题,我还想知道如何在 ARM9 Linux 用户空间程序中处理整数除法。如果我将两个整数相除(例如 25 / 4),是否使用软浮点数进行除法?我还需要实现一些繁重的数字运算算法,我想知道在这里使用定点是否比浮点数学更好,以及 gcc 编译器如何真正处理事情。