iam将matlab代码翻译成java,我有一个问题,我不理解matlab中普通X = ifft(___)
函数与X = ifft(___,symmetric)
之间的差异。他们写的是Matlab Docs:
对于近似共轭的对称向量,您可以通过指定“对称”选项来更快地计算逆傅立叶变换,这也可以确保输出是真实的。
那意味着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对称?
答案 0 :(得分:1)
如果您的X是真实的,因此您的Y是共轭对称的,您可以使用"对称"选项可以更有效地运行fft或ifft。你不应该使用"对称"如果此前提条件不适用,则选项。可能你的X不是真的,不是吗?