hcharlie 发表于 2016-7-9 10:39

lebronze 发表于 2016-7-8 22:36
多谢回复,我这两天看了一下张明的代码。
他相当于使用多组基的fft来做,但是问题是它的代码是C++的,我 ...

如果检查N不等于2的整数幂,可以用DFT来做,但不是FFT的速度了,速度慢了几十几百倍,你不在意就好。

sd 发表于 2016-7-11 08:47

hcharlie 发表于 2016-7-9 10:39
如果检查N不等于2的整数幂,可以用DFT来做,但不是FFT的速度了,速度慢了几十几百倍,你不在意就好。

会慢那么多!!!????

lebronze 发表于 2016-7-11 09:42

hcharlie 发表于 2016-7-9 10:39
如果检查N不等于2的整数幂,可以用DFT来做,但不是FFT的速度了,速度慢了几十几百倍,你不在意就好。

亲测,慢了上百倍。。。。我查了很多方法,现在也只有混合基FFT,和直接DFT的方法适用于非2的整数幂点信号的FFT。DFT的确很慢,但是混合基没有找到C代码,自己编写又真的太复杂了。
不知您有没有什么好方法

Generation 发表于 2016-7-11 11:24

lebronze 发表于 2016-7-8 22:36
多谢回复,我这两天看了一下张明的代码。
他相当于使用多组基的fft来做,但是问题是它的代码是C++的,我 ...

我有个同学就把matlab程序改为c++的了他说学习起来还不算太难

sd 发表于 2016-7-11 11:25

sd 发表于 2016-7-11 08:47
会慢那么多!!!????

哇!差这么多!真是学习了。

lebronze 发表于 2016-7-11 14:01

Generation 发表于 2016-7-11 11:24
我有个同学就把matlab程序改为c++的了他说学习起来还不算太难

问题是我现在找不到matlab里的fft.m文件,他好像用.p封装起来了。。。
麻烦你能不能问下你同学matlab里fft实现的代码在哪个文件里啊?我找到了好改一改

Generation 发表于 2016-7-11 14:42

lebronze 发表于 2016-7-11 14:01
问题是我现在找不到matlab里的fft.m文件,他好像用.p封装起来了。。。
麻烦你能不能问下你同学matlab里f ...

那要是p文件就没招了

lebronze 发表于 2016-7-11 15:07

Generation 发表于 2016-7-11 14:42
那要是p文件就没招了

啊?你不是说你同学用C++实现过吗?他是怎么做的啊

Generation 发表于 2016-7-11 16:26

lebronze 发表于 2016-7-11 15:07
啊?你不是说你同学用C++实现过吗?他是怎么做的啊

他不是做这个是改别的程序

impulse 发表于 2016-7-11 22:47

lebronze 发表于 2016-7-5 22:58
多谢回复,不过我这边是要搞嵌入式开发,FFT,IFFT只能自己写,不能调用库

http://blog.csdn.net/syrchina/article/details/22713337
我没有试验,你可以试试

Agoni 发表于 2016-7-12 08:29

impulse 发表于 2016-7-11 22:47
http://blog.csdn.net/syrchina/article/details/22713337
我没有试验,你可以试试

这是什么????

ZH----过客 发表于 2016-7-12 11:18

lebronze 发表于 2016-7-6 15:17
多谢各位的热心回复,很感动。
不过2的整数幂的fft我也会做,现在的问题是如果信号长度是任意的,可能不是 ...

如果你想完成任意长度的数据是很难实现的,Matlab中关于这段代码从来不显示。我常用的方法就是加零数据延长到2的整数次幂。你也可以试一下,效果还可以!!!

缱绻 发表于 2016-7-12 11:21

可以参考 胡广书著《数字信号处理理论、算法与实现》的10.4节、11.2.1节

lebronze 发表于 2016-7-12 14:56

本帖最后由 lebronze 于 2016-7-12 15:02 编辑

多谢
我也尝试过将任意点数信号补零或者截断到2的整数幂,结果做FFT后发现相位会有变化。如下图:原始信号fft结果(长度7169):
截断后信号fft结果(长度4096):
补零后fft结果(长度8192):   
信号频谱的相位还是变化了

impulse 发表于 2016-7-12 15:37

Agoni 发表于 2016-7-12 08:29
这是什么????

FFTW算法在DSP核心板上的编译。
页: 1 [2] 3
查看完整版本: 长度随机的信号FFT如何实现