Module frft

Module frft 

Source
Expand description

Fractional Fourier Transform module

The Fractional Fourier Transform (FrFT) is a generalization of the standard Fourier transform, allowing for transformation at arbitrary angles in the time-frequency plane. It provides a continuous transformation between the time and frequency domains.

§Mathematical Definition

The continuous Fractional Fourier Transform of order α for a signal f(t) is defined as:

F_α(u) = ∫ f(t) K_α(t, u) dt

where K_α(t, u) is the transformation kernel:

K_α(t, u) = √(1-j cot(α)) * exp(j π (t² cot(α) - 2tu csc(α) + u² cot(α)))

§Special Cases

  • α = 0: Identity transform (returns the input signal)
  • α = 1: Standard Fourier transform
  • α = 2: Time reversal (f(t) → f(-t))
  • α = 3: Inverse Fourier transform
  • α = 4: Identity transform (cycles back to original)

§Implementation

This implementation uses an efficient algorithm based on the FFT, with special handling for the cases where α is close to 0, 1, 2, or 3.

§Numerical Stability

Important: The current implementation has known numerical stability issues, particularly with the additivity property. See FRFT_NUMERICAL_ISSUES.md for detailed information about these limitations and proposed solutions.

Functions§

frft
Computes the Fractional Fourier Transform of order alpha.
frft_bandwidth_saturated_simd
Bandwidth-saturated SIMD implementation of Fractional Fourier Transform
frft_complex
Special implementation for Complex64 input to avoid conversion issues.
frft_dft
Computes the Fractional Fourier Transform using DFT eigenvector decomposition
frft_near_special_case_bandwidth_saturated_simd
Bandwidth-saturated SIMD implementation of near special case handling
frft_stable
Computes the Fractional Fourier Transform using the Ozaktas-Kutay algorithm
frft_stable_bandwidth_saturated_simd
High-performance stable FrFT with bandwidth-saturated SIMD optimizations