Test controller, FFT View popup

FFTView

This popup can be used to analyse the table data for frequencies, it will use a fast fourier transformation (FFT). This page can only be used when the table contains data.
Because most meters samples at a few Hz, this FFT analyser will mostly be useful for frequencies below 1Hz.

Contents
    Generally about FFT
    Chart
    Control line
    Notes
    Scripting
Main page



Generally about FFT

Fourier transformation is a way to extract frequency contents from sampled values or with other words change from time view to frequency view. The originally math to do a Fourier transformation was fairly slow, but later on some optimised algorithms was found. They are called Fast Fourier transformation or FFT (The slow version is also called DFT).
Generally there are two issues when using FFT: Both of these issues shows up as amplitude variations (That can be fairly large) and a match being more than one frequency wide. To improve the result a windowing functions is usually used, this will not eliminate the issues, but make the result more consistent (What is improved depends on the windowing function).
WHen the sample contains exactly one cycle it is possible to calculate the frequency, but for real data it is usually required to have multiple cycles for a good result (due to the above issues).
5cycles
5cyclesNone 5cyclesBlackman

About 5 full cycles, both None and Blackman is fairly good, but Blackman is slightly better on amplitude (Correct amplitude is 3.54).

5xcycles
5xcyclesNone 5xcyclesBlackman

More of a partial cycle, None is low on amplitude and Blackman is stays closer to correct value.

5xcyclesNoise 5xcyclesBlackmanNoise

FFT can pull data out of a noise filled signal (This is the same sinus as above, but with noise).



Chart

PeakMarkers

The 3 largest peaks will be marked with frequency and amplitude.

Cursor

Clicking in the chart will enable the cursor that will show frequency and amplitude for its position. Click again to disable.
The cursor will jump between points and if "Snap to peak" (in popup menu) is checked it will jump between peaks.

Menu

Right clicking will show the menu where it is possible to zoom in/out/all, all the zoom selections will adjust the two "freq" boxes on the control line.
The copy function will copy the chart to the clipboard using the #1 image resolution.
Harmonics will open a text window listing up to 100 frequencies with the largest peak, they will be sorted according to amplitude.
Snap to peak will move the cursor to next peak to the right, this makes it easier to get the exact peak value.



Control line

ChannelSelect

Select the channel to analyse, this can be any data column from the table, but not time or index columns.

FrequencySelect

When the two fields are empty the analyse will check and display the full possible range for the supplied samples. By using the zoom functions or typing in frequencies in these fields the range can be limited, this makes it easier to separate the different frequencies.

ScaleSelect

Both amplitude (Y) and frequency (X) scale can select between a couple of possibilities.
For amplitude (Y) it is rms, rms on a logarithmic scale, peak and peak on logarithmic scale, dBV (1V reference) and dBu (0.775V reference, this is also 1mW in 600ohm).
For frequency (X) it is Hz, /minutes, /hours, /day in either linear or logarithmic format. When using linear there is a DC level at 0Hz. The /minutes and /hours scales the reading by 60 or 3600, for /days it is 24*3600.

WindowSelect

Selects the windowing function to use for improving the result. Blackman and FlatTop will give the most precise amplitude results.
The "none" is sometimes called "boxcar"

SaveFile

Save the current chart to a file, it is possible to select resolution.



Notes

The FFT can handle up to half a million samples on a fast computer (A x86 PC). If there is more samples the data is resampled before the FFT.

Imported date can be analysed, but to get correct frequencies there must be a "time" column with values in seconds (may contain decimals).



Scripting

This popup can be controlled with:

#SHOWPOPUPSYSTEM FFTView {x y {w h}}
#FFTView curveName {minFreq maxFreq {options...}}
#CLOSEALL