我正在把matlab代码翻译成java,而我遇到了一个问题,我不明白在matlab中普通的X = ifft(___)函数与X = ifft(___,symmetric)之间的区别。Matlab 文档他们写:
对于几乎共轭对称向量,您可以通过指定“对称”选项来更快地计算逆傅里叶变换,这也确保了输出是真实的。
这意味着FFT更快?结果是真实的,没有虚部的。
为了在Java中使用逆FFT,我使用阿帕奇公域库。
FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD);
X= fft.transform(X, TransformType.INVERSE); //X is a Complex Array这给了我不同的结果,如果我使用对称的Matlab。在matlab中不对称的情况下,我也得到了同样的结果。
我的Ifft怎么了?如何用Java计算ifft对称性?
发布于 2017-11-06 13:34:02
如果你的X是实的,所以你的Y是共轭对称的,你可以使用“对称”选项来更有效地运行fft或ifft。如果这个前提条件不适用,则不应该使用“对称”选项。可能你的X不是真的,是吗?
https://stackoverflow.com/questions/47134694
复制相似问题