diff --git a/src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs b/src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs index 43c6a0d3..a6d56b18 100644 --- a/src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs +++ b/src/Numerics/Providers/FourierTransform/ManagedFourierTransformProvider.cs @@ -115,6 +115,11 @@ namespace MathNet.Numerics.Providers.FourierTransform samples[n] = data[data.Length/2].Real; samples[n+1] = 0d; } + else + { + samples[n-1] = data[data.Length / 2].Real; + samples[n] = data[data.Length / 2].Imaginary; + } } public void BackwardReal(double[] spectrum, int n, FourierTransformScaling scaling) @@ -132,6 +137,11 @@ namespace MathNet.Numerics.Providers.FourierTransform { data[data.Length/2] = new Complex(spectrum[n], 0d); } + else + { + data[data.Length/2] = new Complex(spectrum[n-1], spectrum[n]); + data[data.Length/2 + 1] = data[data.Length/2].Conjugate(); + } Backward(data, scaling);