声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2203|回复: 8

[FFT] 如何提高fft的运算速度

[复制链接]
发表于 2009-7-9 08:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我按照一般信号处理书上的fft基2蝶型算法编写了一个c++函数,经调试证明结果是对的,和matlab计算结果相符,但速度比较慢,算8192个点大概需要1s时间,实际fft计算中,需要对多段数据fft后进行平均,一般对一个信号进行fft处理,需要计算多次,那么这个运算速度就不能忍受了。而商业软件的计算速度明显快很多。请教有什么方法提高fft的效率?
回复
分享到:

使用道具 举报

发表于 2009-7-9 12:30 | 显示全部楼层
应该有很多快速fft变换方法吧,分裂基,基4等等...
发表于 2009-7-9 12:39 | 显示全部楼层
基4的就要比基2的快,不过要求是4的n次幂,范围要小些
发表于 2009-7-9 15:06 | 显示全部楼层

回复 楼主 hyl2323 的帖子

你编的程序肯定有问题,比如sin,cos的算法用函数肯定太慢,按现在的电脑速度应在1 ms以内。

评分

1

查看全部评分

 楼主| 发表于 2009-7-9 15:35 | 显示全部楼层
同意ls,我再仔细看看程序,里面的pow函数估计很耗时间,还有排序什么的。还有就是缩短每次运算序列的长度,分段平均。但分段的长度受频率分辨率的影响。搞定了来回贴。
发表于 2009-7-9 16:32 | 显示全部楼层
FFT有很多标准程序,查书或网上查均可。
发表于 2009-7-10 07:18 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-19 11:13 编辑
原帖由 hyl2323 于 2009-7-9 15:35 发表
同意ls,我再仔细看看程序,里面的pow函数估计很耗时间,还有排序什么的。还有就是缩短每次运算序列的长度,分段平均。但分段的长度受频率分辨率的影响。搞定了来回贴。

FFT要用到pow函数?如果是2的整数幂,那运算就太容易了,用整数移位(左移)即可。
 楼主| 发表于 2009-7-10 08:35 | 显示全部楼层
问题发现了,不是fft函数的运算速度慢,而是读取文件耗用了较长的时间。我读取了一个7M大小的ascii数据文件。我习惯用ascii来存储数据,可以用记事本打开查看,看来要试试二进制存储格式,有人知道通用数据文件uff的数据格式么?
 楼主| 发表于 2009-7-13 08:38 | 显示全部楼层
经调试发现,二进制数据读取果然速度比ascii快不少。现在统一输入文件格式为uff58b。不过还是没商业软件快,看来专业软件还是要技高一筹阿。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-3-29 19:56 , Processed in 0.124026 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表