Fractional Fourier Transform

Definition

While we are already familiar with the ordinary Fourier transform, which is defined by the integral of the product of the original function and a kernel function $e^{-2\pi ix\xi}​$:

\[\hat{f}(\xi)=\mathcal{F}[f(x)]=\int_{-\infty}^\infty f(x)e^{-2\pi ix\xi}dx\]

The Fractional Fourier transform has the similar definition:

\[\hat{f}(\xi)=\mathcal{F}^{\alpha}[f(x)]=\int_{-\infty}^\infty K(\xi,x)f(x)dx\]

\[K(\xi,x)=A_\phi \exp[i\pi(x^2\cot\phi-2x\xi\csc\phi+\xi^2\cot\phi)]\]

\[A_\phi=\frac{\exp(-i\pi\ \mathrm{sgn}(\sin\phi)/4+i\phi/2)}{|\sin\phi|^{1/2}}\]

\[\phi=\frac{\alpha\pi}{2}\]

To compute the α-order Fractional Fourier transform of a signal, you can directly compute using frft function:

FractionalTransforms.frftFunction
frft(signal, α)

By entering the signal and the order, we can obtain the Fractional Fourier transform value.

Example

julia> frft([1,2,3], 0.5)
0.10046461358821344 - 0.25940948097727745im
3.0746001042331557 + 0.19934938154063286im
1.3156643288728376 - 0.9364535656119107im

Features:

The fractional Fourier transform algorithm is $O(N\log N)$ time complexity algorithm.

Algorithm details

Acknowledge:

The Fractional Fourier Transform algorithm is taken from Digital computation of the fractional Fourier transform by H.M. Ozaktas; O. Arikan; M.A. Kutay; G. Bozdagt and Jeffrey C. O'Neill for what he has done in DiscreteTFDs.

Value of α

In FractionalTransforms.jl, α is processed as order, while in some books or papers, α would mean angle, which is order*π/2