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: