关于FFT的问题

shingyuan 2009-07-07 05:59:02
加精
问题是这样的:考虑一个波形,在一个周期中,等间距的采集点,比如采集256个点..,然后去做FFT,因为FFT要求输入的点列必须是复数点列,所以必须把前面的实数点列变为复数,我采用的办法是:复数的实部就是前面得到的点,虚部统统为0。然后做FFT,结果就出来了,但结果不太对.....可以肯定的是FFT的算法肯定是对的,我用MatLab做,结果是一样的,所以我考虑是不是我把虚部都放零出了错.....请大家帮我看看。

例如:{1,1,1,1,1,1.01,1.01,1.01,1.01,1.01,.......},这个点列的特点是,5个“1”,然后接下去5个“1.01”,然后再5个“1”,这样继续下去,到256个为止...对这个序列,我做FFT后和书上的结果不一样...FFT出的结果也是复数,我考虑这些复数的模,我的结果是:做完变换后,第一项的模是书上算出结果的256倍。后面的项也投不上,我用C和Matlab都算过,就是投不上,不晓得问题出再了哪里,我的考虑就是:虚部都给零,是不是不对....请各位大哥大姐帮帮我
...全文
1058 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehongyue 2011-09-03
  • 打赏
  • 举报
回复
学习学习,楼主辛苦了。
yheysj 2010-11-25
  • 打赏
  • 举报
回复
我有源程序!!
暖处自朝晖 2010-05-19
  • 打赏
  • 举报
回复
你的复数是单精度的还是双精度的,如果是单精度的可能是多级蝶形运算的舍入误差大了
washingtontl 2009-08-05
  • 打赏
  • 举报
回复
学习
超维电脑科技 2009-07-17
  • 打赏
  • 举报
回复
帮顶
lyplovezhym 2009-07-17
  • 打赏
  • 举报
回复
可能楼主没有取模
FFT计算后的结果虚部实部也是分开保存的,想得到正宗的频谱取曲线,要取模
  • 打赏
  • 举报
回复
其实不一定要把虚部为0,可以利用共轭对称性,来做,把点分为两部份,一半做实部,一半做虚部,这样可以减少一半的点....不过貌似复杂度不会变就是了.......具体我也忘记了...

不过跟LZ的错误关系不大,只是给个建议.....
kwovex 2009-07-17
  • 打赏
  • 举报
回复
校习
hadgood 2009-07-16
  • 打赏
  • 举报
回复
学习了,谢谢
bbvs1 2009-07-16
  • 打赏
  • 举报
回复
虚部为什么要为0 (⊙v⊙)嗯?
ZOthello 2009-07-16
  • 打赏
  • 举报
回复
FFT现在都忘光了~
Lyulf 2009-07-16
  • 打赏
  • 举报
回复
占位~~
Bill1212 2009-07-16
  • 打赏
  • 举报
回复
下面是我写的fft,你可以用matlab测试一下。我测试过了,应该没有问题。


function F = MyFFT(f, M)
% 实现一维FFT算法,
% F = MyFFT(f, M),其中f是输入数据,M是f中要处理的数据个数,必须是2的整数次幂
% F 是返回的FFT结果

if M == 1
% 递归结束
F(1) = f(1);
return;
end


% 把数据分离成偶数部分和奇数部分
fe = f(1:2:end);
fo = f(2:2:end);


% 对分离出来的偶数部分和奇数部分的数据分别递归实现FFT
Feven = MyFFT(fe, M/2);
Fodd = MyFFT(fo, M/2);


u = 1:M/2; % 前半部分的数据索引
uk =M/2+1:M; % 后半部分的数据索引

% 将偶数部分和奇数部分的计算结果合并到结果的前后两个部分
F(u) = (Feven + Fodd.* exp(-j.*2.*pi.*(u-1)./M));
F(uk) = (Feven - Fodd.* exp(-j.*2.*pi.*(u-1)./M));

return;

铭清雨霖 2009-07-16
  • 打赏
  • 举报
回复
这是个算法问题啊! 偏要用FFT吗?
grzx2210 2009-07-16
  • 打赏
  • 举报
回复
up
liaoy747 2009-07-16
  • 打赏
  • 举报
回复
输入数据的个数必须是2的n次方才行吧
foxfoxes 2009-07-15
  • 打赏
  • 举报
回复
虚部置0没有错。
wanglihua2119 2009-07-15
  • 打赏
  • 举报
回复
不懂 看看

wwwxxb40000 2009-07-15
  • 打赏
  • 举报
回复

高级问题
bj0629 2009-07-15
  • 打赏
  • 举报
回复
我的同事以前常用这个,顶。现在搞研究的人太少了!
加载更多回复(13)

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧