(41)MATLAB中fftshift函数与ifftshift函数的用法

文章目录

  • 前言
  • 一、MATLAB代码


前言

在使用MATLAB画信号以0为中心的双边频谱时,在进行OFDM调制解调时,都会用到fftshift函数与ifftshift函数。本文介绍这两个函数的用法。


一、MATLAB代码

代码如下:

%% fftshift的功能:交换行向量的左右两半部分
% 交换行向量的左右两半部分。如果一个向量的元素数为奇数,则中间的元素被视为属于向量的左半部分。

% (1)如果一个行向量包含偶数个元素,则交换向量的左右两半部分。
Xeven = [1 2 3 4 5 6];
fftshift(Xeven)
% ans =
% 
%      4     5     6     1     2     3

% (2)如果一个行向量包含奇数个元素,则中间的元素被视为属于向量的左半部分。
Xodd = [1 2 3 4 5 6 7];
fftshift(Xodd)
% ans =
% 
%      5     6     7     1     2     3     4


%% ifftshift的功能:交换行向量的左右两半部分
% 交换行向量的左右两半部分。如果一个向量的元素数为奇数,则中间的元素被视为属于向量的左半部分。

% (1)如果一个行向量包含偶数个元素,则交换向量的左右两半部分。
Xeven = [1 2 3 4 5 6];
ifftshift(Xeven)
% ans =
% 
%      4     5     6     1     2     3

% (2)如果一个行向量包含奇数个元素,则中间的元素被视为属于向量的右半部分。
Xodd = [1 2 3 4 5 6 7];
ifftshift(Xodd)
% ans =
% 
%      4     5     6     7     1     2     3

%% 连续调用
% 对于包含奇数个元素的向量,连续调用fftshift函数两次不能得到原始序列。
fftshift(fftshift(Xodd))
% ans =
% 
%      2     3     4     5     6     7     1

% 对于包含奇数个元素的向量,连续调用fftshift函数与ifftshift函数将得到原始序列。
ifftshift(fftshift(Xodd))
% ans =
% 
%      1     2     3     4     5     6     7

上一篇:华为云成功牵头立项智能化开发工具IEEE国际标准


下一篇:matlab处理语音信号