Home -> Java -> Fast Fourier Transform  (new version)

(Discrete) Fast Fourier Transform (dFFT)

Note: This web page has moved to http://www.mathcs.org/java/programs/FFT/
       Please update your links accordingly ...

FFT of Arbitrary Function

This applet lets you enter an arbitrary function and decompose it into its Fourier coefficients. Check that:

  • Any function (almost) can be represented as a Fourier series
  • More Fourier coefficients result in a better approximation by the Fourier series
  • Functions with sharp corners need a lot of Fourier coefficient for a good approximation and have oscillating Fourier representation.

For more information about the mathematics of Discrete Fourier Analysis, check out [c12-0] [c12.1] [c12.2] [c12.3] [c12.4] [c12.5] Also, check the FFT Homework (includes basic FFT method to compute Fourier Coefficients).

FFT of "Bit Pattern"

This applet illustrates what happens when trying to send bits representing a character (coded as the 8-bit ASCI code) though a wire that includes a "low-pass" filter, i.e. frequencies above a certain point are filtered out.

Start the applet and press any key. The key is converted into its ASCII code, then into a bit pattern corresponding to that ASCII code. Then a "signal" representing that bit pattern is generated and "send" through a wire that may include a "low-pass" filter. The signal will be distorted. The more frequencies are filtered out, the harder it becomes to reconstruct the signal. 

For more information, check this FFT Homework or this homework (includes basic FFT method to compute Fourier Coefficients) and compare with "Computer Networks", Andrew S. Tanenbaum,3rd Edition, published by Prentice Hall. For the mathematics, check [c12-0] [c12.1] [c12.2] [c12.3] [c12.4] [c12.5]