我正在尝试使用MathNet.Numerics's
FFT(快速傅立叶变换)在 2 个音频文件之间进行简单的卷积,但是在 IFFT 之后我得到了一些奇怪的背景声音。
我测试了是卷积还是转换导致了问题,我发现问题已经在 FFT -> IFFT (Inverze FFT) 转换中显示出来。
我的简单 FFT 和 IFFT 代码:
float[] sound; //here are stored my samples
Complex[] complexInput = new Complex[sound.Length];
for (int i = 0; i < complexInput.Length; i++)
{
Complex tmp = new Complex(sound[i],0);
complexInput[i] = tmp;
}
MathNet.Numerics.IntegralTransforms.Fourier.Forward(complexInput);
//do some stuff
MathNet.Numerics.IntegralTransforms.Fourier.Inverse(complexInput);
float[] outSamples = new float[complexInput.Length];
for (int i = 0; i < outSamples.Length; i++)
outSamples[i] = (float)complexInput[i].Real;
在此之后outSamples
,即使我没有在 FFT 和 IFFT 之间做任何事情,它们也会被一些奇怪的背景声音/噪音破坏。
我错过了什么?