Digital Signal Analysis and ProcessingUnit 67 min read
Fast Fourier Transform: FFT Algorithms, Properties & Applications
Unit 6 of Digital Signal Analysis and Processing covers the Fast Fourier Transform (FFT), its recursive and iterative algorithms (Radix-2, Radix-4, Split-Radix), computational efficiency, and real-world applications in signal processing, including spectral analysis, filter design, and compression.
Key Concepts and Definitions
Discrete Fourier Transform (DFT) Recap
The Discrete Fourier Transform (DFT) converts a finite-length discrete-time signal of length into its frequency-domain representation :
- Computational Complexity: Direct computation requires complex multiplications and additions, which is inefficient for large .
Fast Fourier Transform (FFT)
The FFT is an algorithm to compute the DFT efficiently by exploiting symmetry and periodicity of the complex exponential (twiddle factors). It reduces the complexity to .
FFT Algorithms
1. Decimation-in-Time (DIT) Radix-2 FFT
The Radix-2 FFT splits the input sequence into even-indexed and odd-indexed subsequences, recursively computes their DFTs, and combines them using twiddle factors.
How it Works
- Divide: Split into and .
- Conquer: Recursively compute and .
- Combine: Use the butterfly operation to merge results: where is the twiddle factor.
Visual: Radix-2 FFT Butterfly Diagram
flowchart LR
A["x[0]"] -->|"+"| B["X_even[0]"]
A -->|"-"| C["X_odd[0]"]
D["x[1]"] -->|"+"| E["X_even[0]"]
D -->|"-"| F["X_odd[0]"]
B -->|"W_N^0"| G["X[0]"]
C -->|"W_N^0"| H["X[N/2]"]
E -->|"W_N^0"| G
F -->|"W_N^0"| HWorked Example: 8-Point Radix-2 FFT
Compute the FFT of .
- First Stage (Split into even/odd):
- Recursive Computation: Repeat until base case (2-point DFT).
- Combine with Twiddle Factors:
- Use for .
Final Output:
2. Decimation-in-Frequency (DIF) Radix-2 FFT
The DIF FFT splits the output sequence into even and odd frequencies, then combines results.
Key Difference from DIT
- DIF computes the DFT of the output first, while DIT computes the DFT of the input.
- The butterfly structure is inverted compared to DIT.
Visual: DIF Butterfly Structure
flowchart LR
A["X[0]"] -->|"+"| B["X_even[0]"]
A -->|"-"| C["X_odd[0]"]
D["X[1]"] -->|"+"| E["X_even[0]"]
D -->|"-"| F["X_odd[0]"]
B -->|"W_N^0"| G["x[0]"]
C -->|"W_N^0"| H["x[N/2]"]
E -->|"W_N^0"| G
F -->|"W_N^0"| H3. Radix-4 and Split-Radix FFT
- Radix-4 FFT: Further reduces computation by splitting into 4 subsequences (requires divisible by 4).
- Split-Radix FFT: Combines Radix-2 and Radix-4 for better efficiency (used in MATLAB’s
fftfunction).
Advantages of Radix-4/Split-Radix
| Algorithm | Multiplications per Stage | Total Multiplications (N=1024) |
|---|---|---|
| Radix-2 | ||
| Radix-4 | ||
| Split-Radix |
Properties of FFT
- Symmetry: (for real inputs).
- Linearity: FFT of .
- Circular Convolution: FFT converts linear convolution into pointwise multiplication in frequency domain.
- Overlap-Add/Overlap-Save: Techniques for efficient convolution using FFT.
Visual: Circular vs. Linear Convolution
flowchart LR
A["Linear Convolution"] -->|"x[n] * h[n]"| B["y[n] = sum(x[m]h[n-m])"]
C["Circular Convolution"] -->|"FFT(x) * FFT(h)"| D["IFFT(X[k]H[k])"]Applications of FFT
In the Real World
eSewa (Nepal):
- Uses FFT for spectral analysis in fraud detection (e.g., identifying unusual transaction patterns in frequency domain).
- Example: Detecting periodic anomalies in payment timestamps via FFT.
Ncell (Nepal):
- Employs FFT in OFDM (Orthogonal Frequency-Division Multiplexing) for 4G/5G signal modulation.
- Worked Example: A 1024-point FFT processes a 10 MHz bandwidth signal into 1024 subcarriers for efficient data transmission.
YouTube (Global):
- Uses FFT for audio compression (e.g., MP3 encoding via perceptual noise shaping).
- Example: FFT identifies frequencies below human hearing threshold (20 Hz–20 kHz) for removal.
Exam Tip
- Derive the FFT Recurrence: Know how to split -point DFT into smaller DFTs (e.g., Radix-2).
- Twiddle Factors: Memorize and its properties (e.g., ).
- Efficiency Comparison: Compare Radix-2, Radix-4, and Split-Radix in terms of multiplications.
- Applications: Link FFT to filter design, spectral analysis, and compression (e.g., MP3, JPEG).
- Common Pitfalls:
- Forgetting zero-padding affects frequency resolution but not spectral content.
- Misapplying circular convolution (use overlap-add/save for linear convolution).
Summary Table: FFT Algorithms
| Algorithm | Input Split | Output Split | Multiplications per Stage | Best for |
|---|---|---|---|---|
| Radix-2 DIT | Even/Odd | None | Powers of 2 | |
| Radix-2 DIF | None | Even/Odd | Powers of 2 | |
| Radix-4 | 4-way | None | Powers of 4 | |
| Split-Radix | Hybrid | Hybrid | Powers of 2 |
Real Picture: FFT Hardware Acceleration
Real Picture: FFT in MATLAB
Real Picture: FFT Chip (Texas Instruments TMS320C6748)
Worked Example: Traffic Noise Analysis (Nepal)
Scenario: Analyze traffic noise in Kathmandu using FFT to identify dominant frequencies.
- Signal Acquisition: Record noise levels at 44.1 kHz for 1 second ( samples).
- FFT Computation: Use 8192-point FFT (zero-padded) for frequency resolution of Hz.
- Result Interpretation:
- Peaks at 50 Hz (engine hum), 100 Hz (tires), and 500 Hz (horns).
- Action: Propose noise barriers tuned to these frequencies.
Key Formulas to Remember
- DFT Definition:
- FFT Recurrence (Radix-2 DIT):
- Circular Convolution Theorem:
- Parseval’s Theorem (Energy Conservation):
Based on the PU BE Computer (PU) syllabus for Digital Signal Analysis and Processing (CMM344), unit 6.
Discussion
Loading…