Computes the Fourier transform of the input sequence X. You can use this VI to perform an FFT on an array of complex numeric representations. Details
![]() |
X is the complex valued input signal. |
![]() |
FFT {X} is the FFT of the input signal. |
![]() |
error returns any error or warning from the VI. Refer to Signal Processing Error Codes for more information about these conditions. |
If Y represents the complex output sequence, then
Y = F{X}
You can use the Complex FFT VI to perform the following operations when X has one of the complex LabVIEW and LabVIEW Datalogging and Supervisory Control (DSC) module data types:
The Complex FFT VI first analyzes the input data, and based on this analysis, the VI calculates the Fourier transform of the data by executing one of the preceding options. All these routines take advantage of the concurrent processing capabilities of the CPU and FPU.
When the number of samples in the input sequence X is a valid power of 2,
,
for m = 1, 2, 3, 23,
where n is the number of samples. The Complex FFT VI computes the fast Fourier transform by applying an optimized split-radix algorithm. This algorithm implements a number of short FFT/DFT routines with a minimum number of arithmetical operations and using inline code. The general idea is to factor the length n, into factors that are efficiently handled by these routines. The largest complex FFT the VI can compute is
When the number of samples in the input sequence X is not a valid power of 2,
for m = 1, 2, 3, 23,
where n is the number of samples, the Complex FFT VI computes the discrete Fourier transform by using an efficient DFT algorithm. The largest complex DFT that can be computed is
Let Y be the complex output sequence and n be the number of samples in it. You can show that
,
which means you can interpret the element of Y as the
element of the sequence, if it could be physically realized, which represents the FFT value corresponding to frequency I
f.
If n is even, let k = n/2. The following table shows the format of the complex output sequence.
Array Element | Corresponding Frequency |
---|---|
![]() | DC component |
![]() | ![]() |
![]() | 2![]() |
![]() | 3![]() |
. . . | . . . |
![]() | (k-2)![]() |
![]() | (k-1)![]() |
![]() | Nyquist Frequency |
![]() | -(k-1)![]() |
![]() | -(k-2)![]() |
. . . | . . . |
![]() | -3![]() |
![]() | -2![]() |
![]() | -![]() |
If n is odd, let k = (n-1)/2. The following table shows the format of the complex output sequence Y.
Array Element | Corresponding Frequency |
---|---|
![]() | DC component |
![]() | ![]() |
![]() | 2![]() |
![]() | 3![]() |
. . . | . . . |
![]() | (k-1)![]() |
![]() | k![]() |
![]() | -k![]() |
![]() | -(k-1)![]() |
. . . | . . . |
![]() | -3![]() |
![]() | -2![]() |
![]() | -![]() |
The following illustration represents the preceding table.
This format is an accepted standard in digital signal processing applications. It is convenient because it simplifies performing the inverse transform to obtain the final, processed result.