Time for action – shifting frequencies
We will create a signal, transform it, and then shift the signal. In order to shift the frequencies, perform the following steps:
Create a cosine wave with
30
points.x = np.linspace(0, 2 * np.pi, 30) wave = np.cos(x)
Transform the cosine wave with the
fft
function.transformed = np.fft.fft(wave)
Shift the signal with the
fftshift
function.shifted = np.fft.fftshift(transformed)
Reverse the shift with the
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 the signal and transform it with Matplotlib.
plot(transformed, lw=2) plot(shifted, lw=3) show()
The following screenshot shows the shift in the fast Fourier transform:
What just happened?
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...