matlab中2维fft函数
时间: 2025-01-03 19:41:41 浏览: 5
### MATLAB 中的二维快速傅里叶变换
在 MATLAB 中,`fft2` 函数用于执行二维离散傅立叶变换 (DFT)[^1]。此函数适用于矩阵输入并返回相同大小的结果矩阵。
#### 函数语法
基本调用形式如下:
```matlab
Y = fft2(X);
```
其中 `X` 是要转换的数据矩阵,而 `Y` 则是经过二维 FFT 处理后的结果矩阵。
对于更精确控制零填充尺寸的情况可以指定额外参数:
```matlab
Y = fft2(X,m,n); % m 行 n 列
```
这会先通过补零使 X 达到至少 m×n 的规模再做变换.
#### 使用实例
下面给出几个具体的例子来展示如何应用该命令:
创建一个简单的图像样本数据集,并对其进行处理:
```matlab
% 创建测试图案
f = zeros(30,30);
f(5:24,13:17) = 1;
f(13:17,5:24) = 1;
% 执行二维 FFT 变换
F = fft2(f);
% 显示原始图形及其频谱图
subplot(1,2,1), imshow(f), title('Original Image')
subplot(1,2,2), imshow(log(abs(fftshift(F))),[]), colormap(jet)
title('Magnitude Spectrum after FFT2')
colorbar
```
上述代码片段展示了怎样构建一幅黑白方格状图片作为输入信号源;接着利用 `fft2()` 对其实施正向傅氏变化操作得到频率域表示 F;最后借助于 `imshow()`, `log()`, 和 `abs()` 来可视化原空间域内的对象以及对应的幅度谱分布情况.
阅读全文