Example: Complex FFT
The Fourier coefficients of a complex periodic sequence are computed. Then the coefficients are used to try to reproduce the periodic sequence.
using System;
using Imsl.Math;
public class ComplexFFTEx1
{
public static void Main(String[] args)
{
Complex[] x = new Complex[]{
new Complex(1, 8), new Complex(2, 7), new Complex(3, 6),
new Complex(4, 5), new Complex(5, 4), new Complex(6, 3),
new Complex(7, 2), new Complex(8, 1)
};
ComplexFFT fft = new ComplexFFT(x.Length);
Complex[] y = fft.Forward(x);
Complex[] z = fft.Backward(y);
for (int i = 0; i < x.Length; i++)
{
z[i] /= x.Length;
}
new PrintMatrix("x").Print(x);
new PrintMatrix("y").Print(y);
new PrintMatrix("z").Print(z);
}
}
Output
x
0
0 1+8i
1 2+7i
2 3+6i
3 4+5i
4 5+4i
5 6+3i
6 7+2i
7 8+1i
y
0
0 36+36i
1 5.65685424949238+13.6568542494924i
2 +8i
3 -2.34314575050762+5.65685424949238i
4 -4+4i
5 -5.65685424949238+2.34314575050762i
6 -8
7 -13.6568542494924-5.65685424949238i
z
0
0 1+8i
1 2+7i
2 3+6i
3 4+5i
4 5+4i
5 6+3i
6 7+2i
7 8+1i
Link to C# source.