主要内容

fftshift

将零频率分量移至频谱中心

描述

例子

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

  • 如果X是向量吗fftshift左右两边互换X

  • 如果X是矩阵吗fftshift的第一象限互换X第三象限,第二象限第四象限。

  • 如果X那么是多维数组吗fftshift交换的半空间X沿着每个维度。

例子

Y = fftshift(X昏暗的沿着维度操作昏暗的X.例如,如果X是一个矩阵,它的行表示多个一维变换,那么fftshift (X, 2)交换每一行的一半X

例子

全部折叠

交换行向量的左右半部分。如果一个向量有奇数个元素,那么中间的元素就被认为是这个向量左半边的一部分。

Xeven = [1 2 3 4 5 6];fftshift (Xeven)
ans =1×64 5 6 1 2 3
Xodd = [1 2 3 4 5 6 7];fftshift (Xodd)
ans =1×75 6 7 1 2 3 4

在分析信号的频率分量时,将零频率分量移到中心是有帮助的。

创建一个信号年代,计算其傅里叶变换,并绘制幂函数。

Fs = 100;%采样频率T = 0:(1/fs):(10-1/fs);%时间向量S = cos(2* *15*t);n =长度(S);X = fft(S);F = (0:n-1)*(fs/n);%频率范围幂= abs(X).^2/n;%的权力情节(f、电力)

图中包含一个轴对象。axis对象包含一个line类型的对象。

平移零频率分量,绘制以零为中心的功率。

Y = fftshift(X);Fshift = (-n/2:n/2)*(fs/n);%以零为中心的频率范围powershift = abs(Y).^2/n;%零中心功率情节(fshift powershift技术)

图中包含一个轴对象。axis对象包含一个line类型的对象。

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

创建一个矩阵一个它的行表示两个一维信号,并计算每个信号的傅里叶变换。画出每个信号的功率。

Fs = 100;%采样频率T = 0:(1/fs):(10-1/fs);%时间向量S1 = cos(2* *15*t);S2 = cos(2* *30*t);n = length(S1);A = [s1;S2);X = fft(A,[],2);F = (0:n-1)*(fs/n);%频率范围幂= abs(X).^2/n;%的权力情节(f、电力(1:),f,权力(2:))

图中包含一个轴对象。axis对象包含2个line类型的对象。

平移零频率分量,并绘制每个信号的零中心功率。

Y = fftshift(X,2);Fshift = (-n/2:n/2)*(fs/n);%以零为中心的频率范围powershift = abs(Y).^2/n;%零中心功率情节(fshift powershift技术(1:),fshift, powershift技术(2:))

图中包含一个轴对象。axis对象包含2个line类型的对象。

输入参数

全部折叠

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑
复数支持:金宝app是的

操作的维度,指定为正整数标量。如果未指定值,则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之前介绍

另请参阅

||||