函数 > 变换和滤波器 > 数据的离散傅立叶变换
数据的离散傅立叶变换
dft(A), idft(Z) - 返回复数值矢量或矩阵的正/逆傅立叶变换。
如果 dft 的输入是长度为 r 的矢量 V,则︰
dft(V) 的输出是长度为 r 的矢量 Z
idft(Z) 的输出是长度为 r 的矢量。
如果 dft 的输入是有 r 行和 c 列的矩阵 M,则︰
dft(M) 的输出是有 r 行和 c 列的矩阵 P
idft(P) 的输出是有 r 行和 c 列的矩阵。
dftr(B), idftr(Z) - 返回实数值矢量或矩阵的正/逆傅立叶变换。
如果 dftr 的输入是长度为 r 的矢量 V,则︰
dftr(V) 的输出是长度为 Z 的矢量 L,其中 L=floor(r/2)+1Z 的各个元素与 dft(V) 输出的前 L 个元素完全相同。
idftr(Z) 的输出是长度为 r=2(L-1) 的矢量。
如果 dftr 的输入是有 r 行和 c 列的矩阵 M,则︰
dftr(M) 的输出是有 P 行和 r 列的矩阵 L,其中 L=floor(c/2)+1P 的各个元素与 dft(M) 输出的前 L 列完全相同。
idftr(P) 的输出是有 r 行和 c=2(L-1) 列的矩阵。
自变量
A 为任意大小的复数值矢量或矩阵。
B 为实值矢量或矩阵。忽略所有虚数部分。如果 B 是矢量,则行数必须是 2 的倍数。如果 B 是矩阵,则列数必须是 2 的倍数。
对于 AB,数据必须具有兼容的单位
矢量的傅立叶变换
如果 A 是一个大小为 m 的矢量,则矢量 A 的一维 (1D) 正变换的第 u 个元素由 Zu 给出,如下所示:
其中:
m 为行号,而 u 则定义为:
i 为虚数单位,而 wm 则定义为:
计算以上定义中的 Z 等同于将 dft 函数应用于矢量 A
如果 Z 是一个大小为 m 的矢量,则矢量 Z 的一维 (1D) 逆变换的第 u 个元素由 Au 给出,如下所示:
其中:
muwm 已在上文进行了定义。
计算以上定义中的 A 等同于将 idft 函数应用于矢量 Z
矩阵的傅立叶变换
如果 A 是一个大小为 mxn 的矩阵,则矩阵 A 的二维 (2D) 正变换的第 (u,v) 个元素由 Zu,v 给出,如下所示:
其中:
muwm 已在上文进行了定义。
n 为列号,而 v 则定义为:
i 为虚数单位,而 wn 则定义为:
计算以上定义中的 Z 等同于将 dft 函数应用于矩阵 A
如果 Z 是一个大小为 mxn 的矩阵,则矩阵 A 的二维 (2D) 逆变换的第 (u,v) 个元素由 Au,v 给出,如下所示:
其中:
mnuvwmwn 已在上文进行了定义。
计算以上定义中的 A 等同于将 idft 函数应用于矩阵 Z
附加信息
当矢量行数和矩阵列数为 2 的幂时,傅里叶函数运行更快。
dft/idft 函数取代已弃用 cfft/icfftCFFT/ICFFT 函数的功能,并具有显著性能改进,尤其对于较大的数据集和大小非 2 的幂的情况。
dftr/idftr 函数取代已弃用 fft/ifftFFT/IFFT 函数的功能。
函数 dftr 作用于长度为偶数的实矢量和具有偶数列的矩阵。
函数 fft/FFT 仅作用于长度为 2 的幂的实矢量。
函数 ifft/IFFT 仅为输入矢量长度的一半加一,或者为 2k-1+1,其中 k 为大于 1 的整数。另一半是第一部分的反向共轭,必须手动重新构建这一半。函数 dft/idft 返回完整的结果。
在缩放因子和指数符号方面,函数 dft/idft 不同于已弃用的 fft/ifftFFT/IFFTcfft/icfftCFFT/ICFFT
对于正变换,差异为:
dft/dftr
fft/cfft
FFT/CFFT
缩放因子
1
指数符号
负数
正数
负数
对于逆变换,差异为:
idft/idftr
ifft/icfft
IFFT/ICFFT
缩放因子
1
指数符号
正数
负数
正数
当针对仅作用于矢量 (1D 情况) 的函数计算缩放因子时,假定 n=1
这对您有帮助吗?