快速傅里叶变换FFT [我来说两句]

最新 最热

评论列表(评论 8)以下网友评论只代表网友个人观点,不代表本站观点。

2019-01-07 09:25:23 hq1162377655(hq1162377655)
你好,请问有维度是奇数的FFT代码? 谢谢!
回复 支持6
2017-09-20 13:49:45 168371286(168371286)
糖盒love玲珑 于 2016-03-16 10:24:49发布
这段代码 没有错误!!! 变换的时候,数学公式上有个i(虚数单位), 其实也可以用-i,只要正向的变换和返回的时候一致就可以了. 要是想和Matlab中计算的一致, 你自己修改 x(itmp) = ctmp * exp( forback * cmplx( 0.0_DP , e*(j-1),kind=DP ) ) 为 x(itmp) = ctmp * exp( forback * cmplx( 0.0_DP , -e*(j-1),kind=DP ) ) 即可!
请问,二维数组(矩阵)离散傅里叶变换怎么实现?
回复 支持5
2019-07-21 13:45:02 aoeo2jam(aoeo2jam)
乘除法次数太多,居然还有指数运算,计算速度不行,如果作为核心程序大量调用,效率是不行的。
回复 支持3
2015-12-17 08:35:09 vvt(vvt)
Spineless 于 2015-12-14 11:11:32发布
这个代码有误,用序列(1,2,3,4)计算,算出来的结果是[(10,0),(-2,-2),(-2,0),(-2,2)],但是正确答案应该是[(10,0),(-2,2),(-2,0),(-2,-2)]
经验证,此代码与matlab计算结果一致。为:(10,0),(-2,-2),(-2,0),(-2,2)
回复 支持3
2016-03-16 10:24:49 糖盒(糖盒love玲珑)
这段代码 没有错误!!! 变换的时候,数学公式上有个i(虚数单位), 其实也可以用-i,只要正向的变换和返回的时候一致就可以了. 要是想和Matlab中计算的一致, 你自己修改 x(itmp) = ctmp * exp( forback * cmplx( 0.0_DP , e*(j-1),kind=DP ) ) 为 x(itmp) = ctmp * exp( forback * cmplx( 0.0_DP , -e*(j-1),kind=DP ) ) 即可!
回复 支持2
2015-12-14 11:11:32 Spineless(Spineless)
这个代码有误,用序列(1,2,3,4)计算,算出来的结果是[(10,0),(-2,-2),(-2,0),(-2,2)],但是正确答案应该是[(10,0),(-2,2),(-2,0),(-2,-2)]
回复 支持2
2021-12-05 19:03:51 njuxyc(njuxyc)
程序没问题,和mathematica的计算结果一致
回复 支持0
2019-10-12 09:35:16 sysslm(sysslm)
Spineless 于 2015-12-14 11:11:32发布
这个代码有误,用序列(1,2,3,4)计算,算出来的结果是[(10,0),(-2,-2),(-2,0),(-2,2)],但是正确答案应该是[(10,0),(-2,2),(-2,0),(-2,-2)]
第四行FFT_Forward和第五行FFT_Inverse的取值调换一下就对了
回复 支持0
对该文发表评论
我的态度:

    登录 | 注册 需要登陆才可发布评论
请您注意:
  • 自觉遵守:爱国、守法、自律、真实、文明的原则
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
  • 严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 您在本站评论发表的作品,本站有权在网站内保留、转载、引用或者删除
  • 参与本评论即表明您已经阅读并接受上述条款