首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AT91SAM9 ARM处理器Linux用户空间程序的快速傅立叶变换和数学优化

AT91SAM9 ARM处理器Linux用户空间程序的快速傅立叶变换和数学优化
EN

Stack Overflow用户
提问于 2012-03-26 23:14:27
回答 1查看 1.5K关注 0票数 4

我正在为使用Atmel的AT91SAM9G20处理器的嵌入式Linux系统开发C/C++软件。我需要使用Linux用户空间程序使用定点(或浮点)数学快速计算FFT。我知道这里可能需要使用汇编语言来实现,并且在使用gcc编译器进行编译时可能需要额外的-mpcu开关。进行此实现的最佳方式是什么?是否有好的书籍参考或优化的自由/开源软件库可用?

我必须实现一些算法,这些算法也需要较小的FFT长度(即1024点)才能多次应用,我想知道一些库(如kissfft)是否也能同样有效。我也对长的FFT长度感兴趣,所以在下面的答案中建议的FFTW也可以很好地工作。

与这个问题相关的是,我也想知道在ARM9 Linux用户空间程序中整数除法是如何处理的。如果我除以两个整数(如25 / 4),除法是否使用软浮点数?我还需要实现一些繁重的数字运算算法,我想知道在这里使用定点数学是不是比浮点数学更好,以及gcc编译器到底是如何处理这些事情的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 23:17:51

FFTw包含特定于CPU的优化(也可以进行编译时/运行时CPU分析)。

版本3.3.1引入了对ARM霓虹灯扩展的支持

  • http://www.fftw.org/#features

常见问题解答:问题4.2。为什么FFTW这么快?

这是一个复杂的问题,没有简单的答案。事实上,作者也不完全知道答案。除了FFTW中的许多小性能问题外,FFTW速度的主要原因有三个。

  • 快速傅立叶变换使用各种快速傅立叶变换算法和实现风格,可以任意组合以适应机器本身。参见问题4.1“FFTW是如何工作的?”。
  • FFTW使用代码生成器为计算小变换生成高度优化的例程。
  • FFTW使用显式的分而治之的方法来利用内存层次结构。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9874763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档