Fourier tutorial

July 2011. This tutorial project is now in abeyance. It may be revived in the future, but only if I can find some sound motivation.


This tutorial is about the use of Fourier series, as applied to the area of time series analysis. It is largely qualitative and should help users to examine results critically, and to report results clearly. This tutorial is not intended for implementors of Fourier methods (who should already know it all). Nor does it deal with 2D or higher-dimensional Fourier applications, for example spatial transforms, for which users should search for Multidimensional Fourier. Nor is it theoretical — the mathematically-minded should search using terms like Fourier transform or Harmonic analysis.

This tutorial is divided into several parts, designed to lead the reader gently from the core idea of signal decomposition, through to the common applications of Fourier series. The pages are:

  1. Preface: some important terms and distinctions
  2. Decomposition: the idea of signal decomposition
  3. Fourier series: formal Fourier series decomposition
  4. Golden rules: some important constraints
  5. Spectra (1): relation between Fourier and power spectra
  6. Spectra (2): tricks and traps in spectral estimation
  7. Fourier filtering: using Fourier series for filtering
  8. Other applications: other application of Fourier series

Doing is part of learning, and for this reason the tutorial contains several Java-based applets. These applets are interactive, and thereby serve to reinforce the accompanying text. Indeed, the applets are possibly the main value of this tutorial, over the many fine books on this topic. See Java applets for more about the applets.

Most people will find the later tutorial pages of most relevance, but I do recommend looking at the earlier pages too.

Java applets

Applets are a neat way to allow serious programs to be run anywhere. The browser not only renders HTML , but can hand control of a rectangle within the page to an applet — a program written in Java — which can then use the rectangle for buttons, text, plots, etc. The combination of a fully-featured user interface and the portable, powerful Java language means that users anywhere (and with any browser and operating system) can run substantial programs conveniently.

The downside of applets is that users (or their SysAdmins) must install a Java plugin for their browser. Plugins are browser-specific and operating system-specific. (For instance a Java plugin for AMD64s became available only in 2009!) Added to this annoyance is the matter of versions: browsers, operating systems and Java itself are constantly evolving, and mismatches may cause applets to fail. Fortunately it is easy to tell if a Java plugin is installed for your browser: a large gray area where you expect the applet to be is one sign, and another is from looking under Help / About Plug-ins (for Mozilla browsers); browse for about:plugins (for Mozilla and Firefox), Tools / Manage Add-ons (for IE). It should be clear whether the Java plugin is installed, and which versions of Java are supported. (The applets here require Java version 1.2 support.) There are various schemes in place to install the Java plugin semi-automatically, and if all else fails your SysAdmin will be able to do it.

In case of intractable problems with applets, and as a last resort, you may email me with the following information about your software and its configuration:

There should be a box just above this line, and it should be filled with software configuration information. If it isn't then you either have JavaScript disabled, or we have a JavaScript incompatibility — which is a completely independent issue from that of Java plugin incompatibility. They are different languages, and have different implementations. In case of Java applet failure compounded by JavaScript failure, just start by telling me your browser and operating system versions, and we will take it from there.


Validate HTML CSS Last changed 2011-06-30 Chris Rennie