Pages

Fourier Transform Miscellanea

The Fourier Transform in Circular Symmetries

The Bessel equation of the first-kind, zero order is defined as
    J0(a)=12π02πeiacos(θϕ)dθ
We thus define the Fourier Transform
    G0(ρ,ϕ)=G0(ρ)=2π0rg(r)J0(2πrρ)dρ
and its inverse transform
    g(r)=2π0ρG0(ρ)J0(2πrρ)dρ
  

Discretizing the Fourier Transform

Discretizing the Fourier Transform allows us to use the Fast Fourier Transform (FFT) to quickly acquire the Fourier Transform of a continuous function in Python.

Discretize time and frequency
    t=mΔt+t0ω=kΔωΔtΔω=2πN
where m,kZ and N is the number of samples. Using the definition of the Fourier Transform
    F(ω)=12πeiωtf(t)dt
we can substitute the previously defined quantities to get
    F(kΔω)12πm=1NΔtf(t0+mΔt)eikΔω(t0+mΔt)=12πΔteit0kΔωm=1Ne2πimkNf(t0+mΔt)
Now notice that, in the final result, the constant phase factor is being multiplied by the discrete Fourier Transform (DFT) on the right. We may now use the FFT to calculate the DFT, keeping in mind that we must multiply by the phase factor to get an approximation of the continuous Fourier Transform.

We can define the inverse transform in exactly the same way
    ω=nΔω+ω0t=lΔtΔtΔω=2πN
where n,lZ and N is defined as before. Now the inverse transform is
    f(t)=12πeiωtF(ω)dtf(lΔt)12πm=1NΔωF(ω0+nΔω)eilΔt(ω0+nΔω)=12πΔωeiω0lΔtm=1Ne2πinlNF(ω0+nΔω)

Python Code

This code works well for messing around with Fourier Transforms.
import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack

# Number of samplepoints
N = 600
# sample spacing
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
yf = scipy.fftpack.fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)

fig, ax = plt.subplots()
ax.plot(xf, 2.0/N * np.abs(yf[:N//2]))
plt.show()

Friedel's Law

Given a real function, its Fourier transform F(k)=f(x)eikxdx has the following properties. 
  • F(k)=F(k)
  • |F(k)|2=|F(k)|2
  • The phase of F, however, is antisymmetric: ϕ(k)=ϕ(k)
Centrosymmetric points (k,k) are called Friedel or Bijvoet pairs.