Time for action – calculating the Fourier transform

First, we will create a signal to transform. Calculate the Fourier transform with the following steps:

  1. Create a cosine wave with 30 points as follows:
    x =  np.linspace(0, 2 * np.pi, 30)
    wave = np.cos(x)
  2. Transform the cosine wave with the fft() function:
    transformed = np.fft.fft(wave)
  3. Apply the inverse transform with the ifft() function. It should approximately return the original signal. Check with the following line:
    print(np.all(np.abs(np.fft.ifft(transformed) - wave) < 10 ** -9))

    The result appears as follows:

    True
    
  4. Plot the transformed signal with matplotlib:
    plt.plot(transformed)
    plt.title('Transformed cosine')
    plt.xlabel('Frequency')
    plt.ylabel('Amplitude')
    plt.grid()
    plt.show()

    The following resulting diagram shows the FFT result:

    Time for action – calculating the Fourier transform

What just happened?

We applied the fft() function to a cosine wave. After applying the ifft() function, we got our signal back (see fourier.py):

from __future__ import print_function
import numpy as np
import matplotlib.pyplot as plt


x =  np.linspace(0, 2 * np.pi, 30)
wave = np.cos(x)
transformed = np.fft.fft(wave)
print(np.all(np.abs(np.fft.ifft(transformed) - wave) < 10 ** -9))

plt.plot(transformed)
plt.title('Transformed cosine')
plt.xlabel('Frequency')
plt.ylabel('Amplitude')
plt.grid()
plt.show()
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset