MagicPlot Manual

Plotting and nonlinear fitting software

User Tools

Site Tools


fft

Table of Contents

Fast Fourier Transform (FFT) (Pro edition only)

Open Table or Figure or Plot with initial data and use Processing → Fast Fourier Transform menu item to perform FFT.

Fast Fourier transform algorithm computes discrete Fourier transform exactly and is used to considerably speed up the calculations.
Note that FFT is not an approximate method of calculation.

Parameters

Sampling Interval Sampling interval of original data Δt is used to compute the data in resulting sampling column. MagicPlot calculates sampling interval as a difference between second and first values in Sampling column. You can set sampling interval manually in Sampling Interval field.
Note that using of discrete Fourier transform implies that the samples in your original data are equally spaced in time/frequency, i.e. the sampling interval is constant. If the sampling interval is varying or real and/or imaginary data contains empty cells in the middle, the result of discrete Fourier transform will be incorrect.
Real,
Imaginary
Columns with real and imaginary components of data.
If your data is purely real, select <none> imaginary item
Forward /
Inverse
Transform direction (here Inverse also equals to Backward)
1/N in forward transform Divide forward transform result by number of points N (see formulas table). If your original data is real, you may want to additionally multiply the result by 2 to get the true amplitudes of real signal. Also referred as Normalize in some other applications.
Center zero frequency If selected, after forward Fourier transform the two parts of spectrum will be rearranged so that the lower frequency components are in the center; the opposite rearrangement of spectrum will be done before inverse transform if any. Also referred as Shift FFT in some other applications.

Algorithm

MagicPlot uses the algorithm of FFT that does not necessarily require the number of points N to be an integer power of 2, though in such a case evaluation is faster. MagicPlot uses jfftpack library (a Java version of fftpack).

Discrete Fourier Transform Formulas

By default MagicPlot uses 'electrical engineering' convention to set the sign of the exponential phase factor of FFT: forward transform is computed using factor -1. Most scientific applications use factor -1 in forward transform as MagicPlot does by default. But note that the sign of exponential phase factor in Numerical Receipts in C, 2nd edition, p. 503 and in MATLAB package in forward transform is +1.

Factor −1 (Default)
1/N in forward
transform
Forward Transform
(Signal→Spectrum)
Inverse Transform
(Spectrum→Signal)
Checked
(Default)
C_n = 1/N sum{k=1}{N}{c_k e^{−2 pi i k n {/} N}} c_n = sum{k=1}{N}{C_k e^{2 pi i k n {/} N}}
Unchecked C_n = sum{k=1}{N}{c_k e^{−2 pi i k n {/} N}} c_n = 1/N sum{k=1}{N}{C_k e^{2 pi i k n {/} N}}


Factor +1 (Scientific)
1/N in forward
transform
Forward Transform
(Signal→Spectrum)
Inverse Transform
(Spectrum→Signal)
Checked
(Default)
C_n = 1/N sum{k=1}{N}{c_k e^{2 pi i k n {/} N}} c_n = sum{k=1}{N}{C_k e^{−2 pi i k n {/} N}}
Unchecked C_n = sum{k=1}{N}{c_k e^{2 pi i k n {/} N}} c_n = 1/N sum{k=1}{N}{C_k e^{−2 pi i k n {/} N}}

Here cn are complex signal components and Cn are complex spectrum components, n = 1…N. The only difference is in the sign of exponential phase factor and 1/N multiplier.

Note: if you expect to get the original data when doing an inverse FFT of forward FFT, set the 1/N in Forward Transform, Center Zero Frequency and Factor options the same for forward and inverse transforms.

Amplitude and Phase Columns Formulas

A_n = sqrt{{Re_n}^2 + {Im_n}^2},~~ phi_n = atan2(Im_n,~ Re_n)

Because of using atan2 function the phase is unwrapped and is in range (−ππ]. The result of atan2(y, x) is similar to calculating the arc tangent of y/x, except that the signs of both arguments are used to determine the quadrant of the result.

Sampling Column Formulas

Sampling column contains frequency samples if forward transform is performed and time samples in case of inverse transform.

Center zero
frequency
Formula Sampling Column Values
Unchecked f_n={n−1}/{N Delta t} 0,~ 1/{N Delta t},~ 2/{N Delta t},~ ... ~{N−1}/{N Delta t}
Checked f_n={n−1−{N{/}2}}/{N Delta t} {−{N{/}2}/{N Delta t}},~ ...~ 0,~ ... ~{N{/}2−1}/{N Delta t}

Here Δt is given sampling interval of initial data (time for FFT and frequency for IFFT), n = 1…N.

Missing Values in the Original Data

Fourier transform implies that the original samples are uniformly distributed in time (for forward transform) or frequency (for inverse transform).

  • Missing values in the middle or in beginning of original data columns are treated as zeros, the result of Fourier transform may be incorrect.
  • Missing values in the end of the column are ignored.

See Also

fft.txt · Last modified: Sun Nov 8 12:21:24 2015 (external edit)