基2fft算法代码演示
时间: 2024-07-12 21:00:47 浏览: 82
基2快速傅里叶变换(FFT)算法是一种高效计算离散信号频域表示的重要工具,特别是在数字信号处理中广泛应用。它是快速傅立叶变换家族的一部分,利用了数学中的复数和周期性质来加速计算。以下是一个简单的Python代码演示,使用numpy库来实现基本的二维实数数组的基2FFT:
```python
import numpy as np
def fft_2d(image):
# 将输入图像转换为复数数组并调整形状
complex_image = np.fft.ifftshift(image, axes=(-2, -1)) * np.exp(-2j * np.pi * np.arange(image.shape[-2], dtype=np.complex64)[:, None] * np.arange(image.shape[-1], dtype=np.complex64)[None, :])
# 进行二维FFT
fourier_transform = np.fft.fft2(complex_image)
return fourier_transform
# 示例用法
# 假设有一个2D实数数组 `image` 作为输入
input_array = np.random.rand(512, 512) # 生成一个512x512的随机图像
fft_result = fft_2d(input_array)
# 获取实际的频谱数据
freq_domain_data = np.abs(fft_result)
# 只展示前几行和列进行查看
print("First few elements of the frequency domain data:")
print(freq_domain_data[:5, :5])
```
这个代码首先将输入图像转换为复数形式,然后应用二维傅立叶变换。得到的结果是一个复数数组,通常会对绝对值取模来获得频率强度分布。
阅读全文