java - IFFT Matlab 对称与 Java 数学公共(public)资源

标签 java matlab fft apache-commons ifft

我正在将 matlab 代码翻译为 java,但我遇到了一个问题,我不明白 matlab 中普通 X = ifft(___) 函数与 X = ifft(___ ,对称) 。 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 中如果没有对称,我会得到相同的结果。

我的 Ifft 有什么问题吗?如何用Java计算ifft对称?

最佳答案

如果您的 X 是实数,因此您的 Y 是共轭对称的,您可以使用“对称”选项更有效地运行 fft 或 ifft。如果此前提条件不适用,则不应使用“对称”选项。也许你的 X 不是真实的,是吗?

关于java - IFFT Matlab 对称与 Java 数学公共(public)资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134694/

相关文章:

java - 如何使用 Spring ClientResponse 使用 Map?

java - 从文本文件中读取值

matlab - 自动将图像和图表与共享 x 轴对齐

matlab - 下标索引必须是实数正整数或逻辑误差与 matlab 中的均值函数

matlab - 通过 cuFFT 在逆 FFT 中缩放

arrays - 使用 Minim 创建音频幅度数组

受设备音量影响的 Android Visualizer FFT/波形?

java - 从 InflaterInputStream 读取并解析结果

java - 如何将画廊 Intent 中的 'open' 更改为 'done' ?

r - 如何找到采样值的索引?