Example: Fast Fourier Transform
The Fourier coefficients of a periodic sequence are computed. The coefficients are then used to reproduce the periodic sequence.
using System;
using Imsl.Math;
public class FFTEx1
{
public static void Main(String[] args)
{
double[] x = new double[]{1, 2, 3, 4, 5, 6, 7, 8};
FFT fft = new FFT(x.Length);
double[] y = fft.Forward(x);
double[] z = fft.Backward(y);
for (int i = 0; i < x.Length; i++)
{
z[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
1 2
2 3
3 4
4 5
5 6
6 7
7 8
y
0
0 36
1 -4
2 9.65685424949238
3 -4
4 4
5 -4
6 1.65685424949238
7 -4
z
0
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
Link to C# source.