Main Content

ifftshift

逆零频平移

说明

X = ifftshift(Y) 将进行过零频平移的傅里叶变换 Y 重新排列回原始变换输出的样子。换言之,ifftshift 就是撤消 fftshift 的结果。

  • 如果 Y 是向量,则 ifftshift 会将 Y 的左右两半部分进行交换。

  • 如果 Y 是矩阵,则 ifftshift 会将 Y 的第一象限与第三象限交换,将第二象限与第四象限交换。

  • 如果 Y 是多维数组,则 ifftshift 会沿每个维度交换 Y 的半空间。

示例

X = ifftshift(Y,dim) 沿 Y 的维度 dim 执行运算。例如,如果 Y 是矩阵,其行表示多个一维变换,则 ifftshift(Y,2) 会将 Y 的每一行的左右两半部分进行交换。

示例

示例

全部折叠

您可以使用 fftshiftifftshift 函数交换向量的左右两半部分。

创建包含奇数个元素的向量,然后使用 fftshift 函数交换该向量的左右两侧。

V = [1 2 3 4 5 6 7];
X = fftshift(V)
X = 1×7

     5     6     7     1     2     3     4

使用 ifftshift 函数交换 X 的左右两侧。结果与原始向量 V 相同。

Y = ifftshift(X)
Y = 1×7

     1     2     3     4     5     6     7

调用 fftshift 函数两次并不一定会重新构造原始输入。

fftshift(fftshift(V))
ans = 1×7

     2     3     4     5     6     7     1

重新排列矩阵行,将非负元素平移到左侧。

Y = [-2 -1 0 1 2; 
    -10 -5 0 5 10];
X = ifftshift(Y,2)
X = 2×5

     0     1     2    -2    -1
     0     5    10   -10    -5

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

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

沿其运算的维度,指定为正整数标量。如果未指定任何值,则 ifftshift 沿所有维度进行交换。

  • 以输入矩阵 Yc 为例。运算 ifftshift(Yc,1) 会将 Yc 的每一列的上下两半部分进行交换。

    ifft(Yc,1) column-wise operation

  • 以输入矩阵 Yr 为例。运算 ifftshift(Yr,2) 会将 Yr 的每一行的左右两半部分进行交换。

    ifft(Yr,2) row-wise operation

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

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |