文章目录
- 前言
- 一、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