傅立叶变换MATLAB实现实例
时间: 2024-04-25 11:23:42 浏览: 110
傅立叶变换在MATLAB中可以使用多个函数来实现。其中,fft2函数用于进行二维快速傅立叶正变换,ifft2函数用于进行二维快速傅立叶反变换。fftshift函数可以将傅立叶变换的原点移到中心,ifftshift函数则是fftshift的反变换。另外,real函数可以提取复数的实部,imag函数可以提取复数的虚部。\[1\]
下面是一个MATLAB代码的实例,展示了如何对数字图像进行傅立叶变换和反变换:
```matlab
clc;clear;close all;
% 读取图像
i = imread('lena.bmp');
i = rgb2gray(i); % 将真彩色图像转换为灰度图像
i = im2double(i); % 将数据类型转换为double,数值范围变为\[0,1\]
% 进行快速傅立叶变换
i1 = fft2(i);
% 将傅立叶变换进行象限转换,即将中心移到零点
i2 = fftshift(i1);
% 求傅立叶变换结果的模,即傅立叶频谱
i3 = abs(i2);
% 将傅立叶变换结果映射到较小的正数
i4 = log(i3+1);
% 将变换的象限转换回去,即将中心复位
i5 = ifftshift(i2);
% 进行快速傅立叶反变换
i6 = ifft2(i5);
% 显示结果图像
subplot(131);imshow(i);title('原图');
subplot(132);imshow(i4,\[\]);title('傅立叶变换频谱');
subplot(133);imshow(i6);title('傅立叶逆变换图像');
```
另外,下面是另一个MATLAB代码的实例,展示了如何对图像进行傅立叶变换和反变换:
```matlab
% 读取图像
R = imread("img/test2.png");
% 将图片变为灰度图像
I = rgb2gray(R);
% 进行傅立叶变换
J = fft2(I);
% 图像平移
L = fftshift(J);
% 平移回来
M = ifftshift(L);
% 傅立叶反变换
M = ifft2(M);
% 显示结果图像
figure;
subplot(121); imshow(I); title('原图');
subplot(122); imshow(uint8(M)); title('反变换');
```
这些代码示例演示了如何使用MATLAB实现傅立叶变换和反变换,并显示结果图像。你可以根据自己的需要进行修改和调整。
#### 引用[.reference_title]
- *1* *2* [傅里叶变换的相关实验——matlab实现](https://blog.csdn.net/xcz8023/article/details/126413641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [图像傅里叶变换的MATLAB实现](https://blog.csdn.net/qq_45735233/article/details/112755443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文