matlab快速傅里叶变换代码
时间: 2024-01-03 14:05:31 浏览: 87
快速傅里叶变换matlab代码
以下是Matlab中进行快速傅里叶变换的代码示例:
```matlab
% 读取图像
img = imread('image.jpg');
% 进行二维离散傅里叶变换
fft_img = fft2(img);
将零频率分量移到频谱中心
fft_img_shifted = fftshift(fft_img);
% 计算幅度谱和相位谱
amplitude_spectrum = abs(fft_img_shifted);
phase_spectrum = angle(fft_img_shifted);
% 显示原图像和频谱图像
subplot(2, 2, 1);
imshow(img);
title('原图像');
subplot(2, 2, 2);
imshow(log(1 + amplitude_spectrum), []);
title('幅度谱');
subplot(2, 2, 3);
imshow(phase_spectrum, []);
title('相位谱');
subplot(2, 2, 4);
imshow(ifft2(ifftshift(fft_img_shifted)), []);
title('逆变换');
```
上述代码中,首先读取了一张图像,然后使用`fft2`函数进行二维离散傅里叶变换,再使用`fftshift`函数将零频率分量移到频谱中心。接着,计算了幅度谱和相位谱,并使用`imshow`函数显示原图像和频谱图像。最后,使用`ifft2`函数进行逆变换,将频域图像转换回时域图像,并使用`imshow`函数显示逆变换后的图像。
阅读全文