Wavelet analysis is becoming ever more popular in plasma and fusion research, though the methods have been known and applied in other fields (such as image processing and the monitoring of electrical power systems) for some time. In 2006 the following paper detailed a method for separating a time signal into its coherent and noise components,
Basically, if your experimental data is noisy and that noise contribution is Gaussian, then this method can remove that noise component and leave the rest of the signal for further analysis. This is more than simple filtering, however, because the method leaves the time behavior of the coherent signal intact. This routine separates out the Gaussian part of the signal from the rest.
There are a lot of wavelet resources out there and I am not expert enough to provide a tutorial on the subject. I have written a basic IDL function of the Farge Method. If you are interested in obtaining this routine, then you can download it as follows.
- Download Link: fargeMethod.pro
- This is a plain text file.
This document describes the implementation of the routines included in the file fargeMethod.pro for decomposing signals into their coherent and noise components. Two functions are provided:
- SIGS → generates test signals for immediate passing to the code
- WVINT → performs the wavelet decomposition to separate the input into coherent and noise components
This example uses the command line interface of IDL. The source code is commented to provide more information about the method and a description of any function arguments seen in this example. Compile the functions,
Generate the test signals with a noise amplitude of 0.2 (no particular reason for choosing this amplitude),
The test signals are shown in figures 1 and 2. The amplitude of the noise signal is controlled by the argument to SIGS. The signal that will be passed to the decomposition routine is shown in figure 3.
The input signal is generated by adding the signals shown above.
Perform the decomposition on the test signal,
Figure 4 displays the result. This plot can be generated by use of the following commands (the first line plots the coherent component),
IDL> oplot, w.noi
Comparisons between the input signal components and the wavelet result are shown in figures 5 and 6.
This routine uses the basic wavelet functionality available in IDL. The options for wavelet basis are different from that used in the referenced paper. Furthermore, since I am still experimenting with different wavelet bases I have not finalized the frequency array calculation. The frequency array is important for people who are interested in the statistical analysis of the separate components and it is not necessary to make the rest of the routine work.
As always, this routine is not guaranteed and you use it at your own risk.