MATLAB 帮助中心
二维快速傅里叶变换
Y = fft2(X)
Y = fft2(X,m,n)
Y = fft2(X) 使用快速傅里叶变换算法返回矩阵 X 的二维傅里叶变换,这等同于计算 fft(fft(X).').'。
X
fft(fft(X).').'
当 X 是多维数组时,fft2 计算 X 的每个子数组的前两个维度上的二维傅里叶变换,该子数组可被视为维度高于 2 的二维矩阵。例如,如果 X 是 m×n×1×2 数组,则 Y(:,:,1,1) = fft2(X(:,:,1,1)) 且 Y(:,:,1,2) = fft2(X(:,:,1,2))。输出 Y 的大小与 X 相同。
fft2
m
n
1
2
Y(:,:,1,1) = fft2(X(:,:,1,1))
Y(:,:,1,2) = fft2(X(:,:,1,2))
Y
示例
Y = fft2(X,m,n) 将截断 X 或用尾随零填充 X,以便在计算变换之前形成 m×n 矩阵。如果 X 是矩阵,则 Y 是 m×n 矩阵。如果 X 是一个多维数组,fft2 将根据 m 和 n 决定 X 的前两个维度的形状。
全部折叠
二维傅里叶变换对处理二维信号和其他二维数据(如图像)很有用。
创建并绘制具有重复块的二维数据。
P = peaks(20); X = repmat(P,[5 10]); imagesc(X)
计算数据的二维傅里叶变换。将零频分量移动到输出的中心,并绘制生成的 100×200 矩阵,它与 X 的大小相同。
Y = fft2(X); imagesc(abs(fftshift(Y)))
用零填充 X 以计算 128×256 变换。
Y = fft2(X,2^nextpow2(100),2^nextpow2(200)); imagesc(abs(fftshift(Y)));
输入数组,指定为矩阵或多维数组。如果 X 的类型为 single,则 fft2 本身以单精度进行计算,Y 的类型也是 single。否则,Y 以 double 类型返回。
single
double
数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical 复数支持: 是
int8
int16
int32
uint8
uint16
uint32
logical
变换行数,指定为正整数标量。
数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
变换列数,指定为正整数标量。
以下公式定义 m×n 矩阵 X 的离散傅里叶变换 Y:
Yp+1,q+1=∑j=0m−1∑k=0n−1ωmjpωnkqXj+1,k+1
ωm 和 ωn 是复单位根:
ωm=e−2πi/mωn=e−2πi/n
i 是虚数单位。p 和 j 是值范围从 0 到 m–1 的索引,q 和 k 是值范围从 0 到 n–1 的索引。此公式将 X 和 Y 的索引平移 1 位,以反映 MATLAB® 中的矩阵索引。
全部展开
用法说明和限制:
对于 MEX 输出,MATLAB Coder™ 使用 MATLAB 用于 FFT 算法的库。对于独立的 C/C++ 代码,默认情况下,代码生成器生成用于 FFT 算法的代码,而不是生成 FFT 库调用。要生成对安装的特定 FFTW 库的调用,请提供 FFT 库回调类。有关 FFT 库回调类的详细信息,请参阅 coder.fftw.StandaloneFFTW3Interface (MATLAB Coder)。
coder.fftw.StandaloneFFTW3Interface
对于 MATLAB Function 模块的仿真,仿真软件使用 MATLAB 用于 FFT 算法的库。对于 C/C++ 代码生成,默认情况下,代码生成器生成用于 FFT 算法的代码,而不是生成 FFT 库调用。要生成对安装的特定 FFTW 库的调用,请提供 FFT 库回调类。有关 FFT 库回调类的详细信息,请参阅 coder.fftw.StandaloneFFTW3Interface (MATLAB Coder)。
使用代码替换库 (CRL),您可以生成在 ARM® Cortex®-A 处理器(带 Neon 扩展)上运行的优化代码。要生成此优化代码,您必须安装 Embedded Coder® Support Package for ARM Cortex-A Processors (Embedded Coder)。为 ARM Cortex-A 生成的代码使用 Ne10 库。有关详细信息,请参阅 Ne10 Conditions for MATLAB Functions to Support ARM Cortex-A Processors (Embedded Coder)。
使用代码替换库 (CRL),您可以生成在 ARM Cortex-M 处理器上运行的优化代码。要生成此优化代码,您必须安装 Embedded Coder Support Package for ARM Cortex-M Processors (Embedded Coder)。为 ARM Cortex-M 生成的代码使用 CMSIS 库。有关详细信息,请参阅 CMSIS Conditions for MATLAB Functions to Support ARM Cortex-M Processors (Embedded Coder)。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
fft2 函数支持 GPU 数组输入,但有以下用法说明和限制:
即使所有虚部都为零,输出 Y 也始终为复数。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2006a 之前推出
fft | fftn | fftw | ifft2
fft
fftn
fftw
ifft2
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处