CMM344 Digital Signal Analysis and Processing

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

  1. Divide: Split into and .
  2. Conquer: Recursively compute and .
  3. 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"| H

Worked Example: 8-Point Radix-2 FFT

Compute the FFT of .

  1. First Stage (Split into even/odd):
  2. Recursive Computation: Repeat until base case (2-point DFT).
  3. 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"| H

3. 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 fft function).

Advantages of Radix-4/Split-Radix

Algorithm Multiplications per Stage Total Multiplications (N=1024)
Radix-2
Radix-4
Split-Radix

Properties of FFT

  1. Symmetry: (for real inputs).
  2. Linearity: FFT of .
  3. Circular Convolution: FFT converts linear convolution into pointwise multiplication in frequency domain.
  4. 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

  1. 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.
  2. 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.
  3. 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

  1. Derive the FFT Recurrence: Know how to split -point DFT into smaller DFTs (e.g., Radix-2).
  2. Twiddle Factors: Memorize and its properties (e.g., ).
  3. Efficiency Comparison: Compare Radix-2, Radix-4, and Split-Radix in terms of multiplications.
  4. Applications: Link FFT to filter design, spectral analysis, and compression (e.g., MP3, JPEG).
  5. 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.

  1. Signal Acquisition: Record noise levels at 44.1 kHz for 1 second ( samples).
  2. FFT Computation: Use 8192-point FFT (zero-padded) for frequency resolution of Hz.
  3. 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

  1. DFT Definition:
  2. FFT Recurrence (Radix-2 DIT):
  3. Circular Convolution Theorem:
  4. Parseval’s Theorem (Energy Conservation):

Based on the PU BE Computer (PU) syllabus for Digital Signal Analysis and Processing (CMM344), unit 6.

Discussion

Loading…