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.
import com.imsl.math.*;
public class ComplexFFTEx1 {
public static void main(String args[]) {
Complex x[] = {
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] = Complex.divide(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.657+13.657i
2 +8i
3 -2.343+5.657i
4 -4+4i
5 -5.657+2.343i
6 -8
7 -13.657-5.657i
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 Java source.