Python实现二维傅里叶变换
时间: 2023-06-04 16:02:09 浏览: 313
您好,我可以回答关于Python实现二维傅里叶变换的问题。二维傅里叶变换是将二维信号分解成若干个基本频率的叠加,具体实现可以使用numpy库中的fft2函数实现。您可以参考以下代码:
import numpy as np
from matplotlib import pyplot as plt
# 生成一个两个圆形的二维信号
x, y = np.meshgrid(np.linspace(-1, 1, 200), np.linspace(-1, 1, 200))
signal = np.zeros_like(x)
r = np.sqrt(x**2 + y**2)
signal[r < 0.5] = 1
signal[(r > 0.6) & (r < 0.7)] = 1
# 求二维傅里叶变换
signal_fft = np.fft.fft2(signal)
# 将频域信号平移
signal_fft_shift = np.fft.fftshift(signal_fft)
# 求频率域信号的幅度谱
amplitude_spectrum = np.abs(signal_fft_shift)
# 绘制频率域信号的幅度谱
plt.imshow(
np.log10(amplitude_spectrum),
cmap='gray',
extent=(-1, 1, -1, 1)
)
plt.xlabel('Frequency (cycles/px)')
plt.ylabel('Frequency (cycles/px)')
plt.show()
希望能够帮到您!
阅读全文