We will create a signal, transform it, and then shift the signal. In order to shift the frequencies, perform the following steps:
30
points.x = np.linspace(0, 2 * np.pi, 30) wave = np.cos(x)
fft
function.transformed = np.fft.fft(wave)
fftshift
function.shifted = np.fft.fftshift(transformed)
ifftshift
function. This should undo the shift.print np.all((np.fft.ifftshift(shifted) - transformed) < 10 ** -9)
The result is shown as follows:
True
plot(transformed, lw=2) plot(shifted, lw=3) show()
The following screenshot shows the shift in the fast Fourier transform:
We applied the
fftshift
function to a cosine wave. After applying the ifftshift
function, we got our signal back (see fouriershift.py
).
import numpy as np from matplotlib.pyplot import plot, show x = np.linspace(0, 2 * np.pi, 30) wave = np.cos(x) transformed = np.fft.fft(wave) shifted = np.fft.fftshift(transformed) print np.all(np.abs(np.fft.ifftshift(shifted) - transformed) < 10 ** -9) plot(transformed, lw=2) plot(shifted, lw=3) show()