fft_split.m Split the FFT of two real sequences

splits the FFT of a sequence x=x1+i*x2 into the FFTs of the real input sequences x1,x2
Updated 30 Apr 2014

View License

function [X1 X2] = fft_split(X)
x = x1 + 1i*x2;
X = fft(x);
X1 = fft(x1);
X2 = fft(x2);
This operation is useful when the FFTs of two real-valued sequences have to be computed at the same time, on a platform with limited resources, for example a small DSP or FPGA.
This operation can also be useful when the FFT of a real sequence of length 2N shall be computed with only one FFT of length N.

The standard FFT algorithm requires a complex input sequence. If only real input data is available, the simplest approach for computing the FFT is to set the imaginary part of the input sequence to zero, but this wastes computational resources. The more efficient approach, if only a complex FFT algorithm is available, is to form a complex input sequence by taking one half of the input data as the real part of the input sequence and the second half of the input data as the imaginary part of the input sequence. The FFT can then be performed on a sequence of half the length of the input data. The resulting output of the FFT can be split afterwards to obtain the FFT of the original real input data.

The script fft_split_tb.m in the zip file contains a testbench for the function fft_split.m that demonstrates the correct usage.

Implementing Fast Fourier Transform Algorithms of Real-Valued Sequences With the TMS320 DSP Platform
Texas Instruments Application Report SPRA291 - August 2001

Cite As

Patrick Fleischmann (2024). fft_split.m Split the FFT of two real sequences (https://www.mathworks.com/matlabcentral/fileexchange/35410-fft_split-m-split-the-fft-of-two-real-sequences), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2011a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Commented testbench file split_fft_tb.m

Extended description, changed summary

Extended description