w3resource

Perform 2D discrete Fourier Transform using SciPy's fftpack


Write a NumPy program to generate a 2D array and performs a discrete Fourier transform using SciPy's fftpack module

Sample Solution:

Python Code:

# Import necessary libraries
import numpy as np
from scipy.fftpack import fft2

# Generate a 2D NumPy array of random numbers
data = np.random.rand(4, 4)

# Perform a 2D discrete Fourier transform using SciPy's fft2 function
dft_result = fft2(data)

# Print the original array
print("Original 2D array:")
print(data)

# Print the DFT result
print("\nDFT of the 2D array:")
print(dft_result)

Output:

Original 2D array:
[[0.16204087 0.71466796 0.27190299 0.16085316]
 [0.94790095 0.40448638 0.64383355 0.36492436]
 [0.2436009  0.74392168 0.39621449 0.48598625]
 [0.59709283 0.43888981 0.40708137 0.63237158]]

DFT of the 2D array:
[[ 7.61576914-0.j          0.23160316-0.65783047j -0.27643324-0.j
   0.23160316+0.65783047j]
 [-0.56025834-0.28570964j -0.19029233-0.40993533j  0.14851528-0.88941094j
   0.27579526+0.18182345j]
 [-1.25739254-0.j         -0.75655458-0.96566998j -1.78690636-0.j
  -0.75655458+0.96566998j]
 [-0.56025834+0.28570964j  0.27579526-0.18182345j  0.14851528+0.88941094j
  -0.19029233+0.40993533j]]

Explanation:

  • Import necessary libraries:
    • Import NumPy and SciPy's fft2 function from the fftpack module.
  • Generate a 2D NumPy array of random numbers:
    • Create a 4x4 array filled with random numbers between 0 and 1.
  • Perform a 2D discrete Fourier transform:
    • Use SciPy's fft2 function to compute the 2D discrete Fourier transform of the array.
  • Print the original array:
    • Display the original 2D array of random numbers.
  • Display the result of the discrete Fourier transform.

Python-Numpy Code Editor: