fftshift函数说明


fftshift函数说明

提示:以下是本篇文章正文内容,下面案例可供参考

一、语法

Y = fftshift(X)
Y = fftshift(X,dim)

二、说明

Y = fftshift(X) 通过将零频分量移动到数组中心,重新排列傅里叶变换 X。

  • 如果 X 是向量,则 fftshift 会将 X 的左右两半部分进行交换。
  • 如果 X 是矩阵,则 fftshift 会将 X 的第一象限与第三象限交换,将第二象限与第四象限交换。
  • 如果 X 是多维数组,则 fftshift 会沿每个维度交换 X 的半空间。
    Y = fftshift(X,dim) 沿 X 的维度 dim 执行运算。例如,如果 X 是矩阵,其行表示多个一维变换,则 fftshift(X,2) 会将 X 的每一行的左右两半部分进行交换。

三、示例

平移矩阵中的信号
代码如下(示例):
要处理多个一维信号,可将它们表示为一个矩阵的各行。然后使用维度参数计算傅里叶变换,并平移每一行的零频分量。

创建矩阵 A,其行表示两个一维信号,然后计算每个信号的傅里叶变换。绘制每个信号的功率。

fs = 100;               % sampling frequency
t = 0:(1/fs):(10-1/fs); % time vector
S1 = cos(2*pi*15*t);
S2 = cos(2*pi*30*t);
n = length(S1);
A = [S1; S2];
X = fft(A,[],2);
f = (0:n-1)*(fs/n);     % frequency range
power = abs(X).^2/n;    % power
plot(f,power(1,:),f,power(2,:))

在这里插入图片描述

平移零频分量,然后绘制每个信号以零为中心的功率。

Y = fftshift(X,2);
fshift = (-n/2:n/2-1)*(fs/n); % zero-centered frequency range
powershift = abs(Y).^2/n;     % zero-centered power
plot(fshift,powershift(1,:),fshift,powershift(2,:))

在这里插入图片描述

四、有关距离多普勒(RD)的fftshift的操作步骤

hanWin = hanning(acc);                        
SlowMat = SlowMat .* hanWin';         
DopplerMat= (fft(rSlowMat,[],2));      
DopplerMat = fftshift(rDopplerMat,2);    

操作之前
在这里插入图片描述

操作之后
在这里插入图片描述
注:fftshift函数说明来自Matlab 函数说明文档。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值