本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

ifft

快速傅里叶逆变换

说明

示例

X = ifft(Y) 使用快速傅里叶变换算法计算 Y 的逆离散傅里叶变换XY 的大小相同。

  • 如果 Y 是向量,则 ifft(Y) 返回该向量的逆变换。

  • 如果 Y 是矩阵,则 ifft(Y) 返回该矩阵每一列的逆变换。

  • 如果 Y 是多维数组,则 ifft(Y) 将大小不等于 1 的第一个维度上的值视为向量,并返回每个向量的逆变换。

示例

X = ifft(Y,n) 通过用尾随零填充 Y 以达到长度 n,返回 Yn 点傅里叶逆变换。

示例

X = ifft(Y,n,dim) 返回沿维度 dim 的傅里叶逆变换。例如,如果 Y 是矩阵,则 ifft(Y,n,2) 返回每一行的 n 点逆变换。

示例

X = ifft(___,symflag) 指定 Y 的对称性。例如,ifft(Y,'symmetric')Y 视为共轭对称。

示例

全部折叠

时空采样数据与频率采样数据间的傅里叶变换及其逆变换。

创建一个向量并计算其傅里叶变换。

X = [1 2 3 4 5];
Y = fft(X)
Y = 1×5 complex

  15.0000 + 0.0000i  -2.5000 + 3.4410i  -2.5000 + 0.8123i  -2.5000 - 0.8123i  -2.5000 - 3.4410i

计算 Y 的逆变换,结果与原始向量 X 相同。

ifft(Y)
ans = 1×5

     1     2     3     4     5

ifft 函数允许您控制变换的大小。

创建一个随机的 3×5 矩阵,并计算每一行的 8 点傅里叶逆变换。每一行结果的长度均为 8。

Y = rand(3,5);
n = 8;
X = ifft(Y,n,2);
size(X)
ans = 1×2

     3     8

对于接近共轭对称的向量,通过指定 'symmetric' 选项,可以更快地计算傅里叶逆变换,还可以确保输出为实数。当计算引入舍入误差时,可能会出现接近共轭对称数据。

创建一个接近共轭对称的向量 Y,并计算其傅里叶逆变换。然后计算逆变换并指定 'symmetric' 选项,这样可以消除接近 0 的虚部。

Y = [1 2:4+eps(4) 4:-1:2]
Y = 1×7

    1.0000    2.0000    3.0000    4.0000    4.0000    3.0000    2.0000

X = ifft(Y)
X = 1×7 complex

   2.7143 + 0.0000i  -0.7213 + 0.0000i  -0.0440 - 0.0000i  -0.0919 + 0.0000i  -0.0919 - 0.0000i  -0.0440 + 0.0000i  -0.7213 - 0.0000i

Xsym = ifft(Y,'symmetric')
Xsym = 1×7

    2.7143   -0.7213   -0.0440   -0.0919   -0.0919   -0.0440   -0.7213

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。如果 Y 的类型为 single,则 ifft 本身以单精度进行计算,X 的类型也是 single。否则,Xdouble 类型返回。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
复数支持:

逆变换长度,指定为 [] 或非负整数标量。通过指定比 Y 的长度更大的变换长度来用零填充 Y,可以提高 ifft 的性能。长度通常指定为 2 的幂或小质数的乘积。如果 n 小于信号的长度,则 ifft 忽略第 n 个条目之后的其余信号值,并返回截断后的结果。如果 n 为 0,则 ifft 返回空矩阵。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

沿其运算的维度,指定为正整数标量。默认情况下,dim 是大小不等于 1 的第一个数组维度。例如,假设有一个矩阵 Y

  • ifft(Y,[],1) 返回每一列的傅里叶逆变换。

  • ifft(Y,[],2) 返回每一行的傅里叶逆变换。

数据类型: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

对称类型,指定为 'nonsymmetric''symmetric'。当 Y 由于舍入误差而导致不完全共轭对称时,ifft(Y,'symmetric') 会将 Y 视为共轭对称。有关共轭对称的详细信息,请参阅算法

详细信息

全部折叠

向量的离散傅里叶变换

Y = fft(X)X = ifft(Y) 分别实现傅里叶变换和傅里叶逆变换。对于长度为 nXY,这些变换定义如下:

Y(k)=j=1nX(j)Wn(j1)(k1)X(j)=1nk=1nY(k)Wn(j1)(k1),

其中

Wn=e(2πi)/n

为 n 次单位根之一。

算法

  • ifft 函数测试 Y 中的向量是否共轭对称。当向量 v 等于 conj(v([1,end:-1:2])) 时,就是一个共轭对称向量。如果 Y 中的向量共轭对称,则逆变换的计算速度更快,并且输出为实数。

扩展功能

另请参阅

| | | |

在 R2006a 之前推出