IFFT Matlab 对称 vs Java 数学公地

IFFT Matlab symmetric vs Java math commons

我正在将 matlab 代码翻译成 java,我有一个问题,我不明白 matlab 中的正常 X = ifft(___) 函数与 X = ifft(___,symmetric) 之间的区别。 Matlab Docs 他们写道:

For nearly conjugate symmetric vectors, you can compute the inverse Fourier transform faster by specifying the 'symmetric' option, which also ensures that the output is real.

这意味着 FFT 只是更快?结果是没有虚部的实数。

要在 Java 中使用反向 FFT,我使用 Apache Commons 库。

 FastFourierTransformer  fft = new FastFourierTransformer(DftNormalization.STANDARD);

        X= fft.transform(X, TransformType.INVERSE); //X is a Complex Array

如果我在 Matlab 中使用对称函数,这会给我不同的结果。 在 matlab 中没有对称我有相同的结果。

我的 Iftt 出了什么问题?如何计算与Java对称的ifft?

如果您的 X 是实数,因此您的 Y 是共轭对称的,您可以使用 "symmetric" 选项来更有效地 运行 fft 或 ifft。如果此先决条件不适用,则不应使用 "symmetric" 选项。可能你的 X 不是真的,是吗?