FFTSHIFT.

将零频分量转移到频谱中心

描述

例子

Y = fftshift (X重新排列傅里叶变换X通过将零频分量转移到阵列的中心。

  • 如果X是一个矢量,然后FFTSHIFT.换掉左半部分X

  • 如果X是矩阵吗FFTSHIFT.交换第一个象限X与第三,第二象限与第四个。

  • 如果X是多维数组吗FFTSHIFT.掉期的半空间X沿着每个维度。

例子

Y = fftshift (X暗淡沿着维度操作暗淡X。例如,如果X是矩阵,其行代表多个1-D变换,然后FFTSHIFT(X,2)换成每行的一半X

例子

全部收缩

交换行向量的左侧和右半端。如果矢量具有奇数元素,则中间元素被认为是向量的左半部分的一部分。

Xeven = [1 2 3 4 5 6];fftshift (Xeven)
ans =.1×6.4 5 6 1 2 3
XODD = [1 2 3 4 5 6 7];FFTSHIFT(XODD)
ans =.1×7.5 6 7 1 2 3 4

在分析信号的频率分量时,将零频分量转换到中心有助于。

创建一个信号S.,计算其傅立叶变换,并绘制电源。

FS = 100;% 采样频率t = 0:(1 / FS):( 10-1 / FS);%的时间向量s = cos(2 * pi * 15 * t);n =长度;x = fft;f =(0:n-1)*(fs / n);%频率范围power = abs(x)。^ 2 / n;%力量绘图(F,POWER)

移动零频分量并绘制零居中的电源。

y = fftshift(x);fshift =(-n / 2:n / 2-1)*(fs / n);%零中心频率范围powershift = abs(y)。^ 2 / n;% zero-centered权力情节(FShift,PowerShift)

您可以通过将多个一维信号表示为矩阵中的行来处理它们。然后使用维数参数来计算傅里叶变换并移动每一行的零频分量。

创建一个矩阵一种其行代表了两个1-D信号,并计算每个信号的傅里叶变换。为每个信号绘制电源。

FS = 100;% 采样频率t = 0:(1 / FS):( 10-1 / FS);%的时间向量s1 = cos(2 * pi * 15 * t);s2 = cos(2 * pi * 30 * t);n =长度(S1);a = [s1;S2];X = FFT(A,[],2);f =(0:n-1)*(fs / n);%频率范围power = abs(x)。^ 2 / n;% 力量绘图(f,power(1,:),f,power(2,:))

换零频率分量,并绘制每个信号的零居中力。

y = fftshift(x,2);fshift =(-n / 2:n / 2-1)*(fs / n);%零中心频率范围powershift = abs(y)。^ 2 / n;% zero-centered权力情节(FShift,PowerShift(1,:),Fshift,PowerShift(2,:))

输入参数

全部收缩

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

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64|逻辑
复数支持:万博1manbetx是的

维度运行,指定为正整数标量。如果没有指定值,则FFTSHIFT.在所有维度上交换。

  • 考虑输入矩阵XC.。操作FFTSHIFT(XC,1)绕每列的一半XC.

  • 考虑一个矩阵XR.。操作FFTSHIFT(XR,2)绕每行的一半XR.

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32|UINT64|逻辑

扩展能力

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

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

也可以看看

||||

之前介绍过的R2006a