C–14
Appendix C
FFT Algorithms
A summary of the algorithms used in the oscilloscope's
FFT computation is given here in the form of seven steps:
1. If the maximum number of points is smaller than the source
number of points, the source waveform data are decimated
prior to the FFT. These decimated data extend over the full
length of the source waveform. The resulting sampling
interval and the actual transform size selected provide the
frequency scale factor in a 1–2–5 sequence.
2. The data are multiplied by the selected window function.
3. FFT is computed, using a fast implementation of the DFT
(Discrete Fourier Transform):
X
N
x W
n k
nk
k
k N
= ×
=
= −
∑
1
0
1
,
where: x
k
is a complex array whose real part is the modified
source time domain waveform, and whose imaginary part is
0; X
n
is the resulting complex frequency-domain waveform;
; and N is the number of points in x
k
and X
n
.
The generalized FFT algorithm, as implemented here, works
on N, which need not be a power of 2.
4. The resulting complex vector X
n
is divided by the coherent
gain of the window function, in order to compensate for the
loss of the signal energy due to windowing. This
compensation provides accurate amplitude values for
isolated spectrum peaks.
5. The real part of X
n
is symmetric around the Nyquist
frequency, i.e.
R
n
= R
N-n
,
while the imaginary part is asymmetric, i.e.
I
n
= –I
N-n
.