matlab使用杂谈5-fftshift函数的使用

  • fftshift基本使用
    • 主要作用:将零频分量移到频谱中心
  • 简单示例
  • 一般使用场合

fftshift基本使用

主要作用:将零频分量移到频谱中心

基本语法:
Y = fftshift(X)
Y = fftshift(X,dim)

X-输入数组,可以是向量、矩阵或多维数组,支持复数
dim - 沿其计算的维度

说明:
如果X是向量,则fftshift会将X的左右两半部分进行交换
如果X是矩阵,则fftshift会将X的第一象限与第三象限交换,将第二象限与第四象限交换
如果X是多维数组,则fftshift会沿每个维度减缓X的半空间

简单示例

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

Initial = [1 2 3 4 5 6 7]
fftshift(Initial)
% 结果
ans = 5 6 7 1 2 3 4

一般使用场合

fftshift从名字上就能看出,主要是配合傅里叶变换使用
所以fftshift在分析信号的频率分量时十分有用,可以将零频分量移动到中心

下面沿用官网的一个实例:

创建信号S、计算其傅里叶变换,然后绘制功率曲线

fs = 100; % 频率
t = 0:(1/fs):(10-1/fs); % 时间分量
S = cos(2*pi*15*t); % 信号
n = length(S);
X = fft(S); 对信号进行傅里叶变换
f = (0:n-1)*(fs/n) % 频率范围
power = abs(X).^2/n; % 信号的振幅
plot(f,power)

如图所示

此时信号分量是从0-100的,不符合信号分析时的分布规则,因此需要利用fftshift将零频分量移动到中心

Y = fftshift(X,2)
fshift = (-n/2:n/2-1)*(fs/n);
powershift = abs(Y).^2/n;
plot(fshift,powershift);


以上主要是fftshift函数的使用了,一般来说咱们在利用matlab分析信号或者图像信息时,大概率会需要用到这个功能

傅里叶变换的详细讲解可以参照另外两篇博客:
https://blog.csdn.net/haoaoweitt/article/details/83012477
https://blog.csdn.net/lihe4151021/article/details/89675567

matlab使用杂谈5-fftshift函数的使用相关推荐

  1. matlab常用函数通俗解释(fft2和fftshift函数设置问题等)

    本文是作者在自己使用matlab过程中,针对用到的函数,试图用自己的理解去通俗解释这个函数用途的过程,如有错误,欢迎留言交流. 1. peaks函数 生成由峰峰值组成的矩阵,峰峰值由peaks函数的内 ...

  2. matlab使用杂谈4-偏微分方程求解之pdede函数使用

    matlab使用杂谈4-偏微分方程求解之pdede函数使用 偏微分方程 求解偏微分方程的数值方法 Matlab解偏微分方程 pdepe()函数 pdepe函数使用示例 PDE方程求解格式 PDE方程初 ...

  3. matlab函数fftshift,matlab中fft算法_matlab中fftshift函数_matlab中fft函数的用法(2)

    plot([0 : PointNum/2 - 1], x1(1:PointNum/2)); grid on subplot(3,1,2); % [REX IMX] am = sqrt(abs(REX. ...

  4. matlab fftshift函数编写

    %我的fftshift函数 function re=myfftshift(a) [m,n]=size(a); m1=ceil(m/2);%向上取整 n1=ceil(n/2); %左右半边进行交换 te ...

  5. ndims matlab,MATLAB的size(),length(),ndims()函数

    MATLAB的size(),length(),ndims()函数 (2010-08-07 19:41:00) 标签: size() length() ndims() 杂谈 size(a)表示矩阵每个维 ...

  6. 在matlab中怎么限定值域,matlab中如何限定wgn函数的值域

    tianzz 产生高斯白噪声信号 信号参数:时宽5s. MATLAB程序: fs=100; T=5; n=round(T*fs);%采样点个数 t=linspace(0,T,n); y=wgn(1,n ...

  7. Matlab中画图以及plot函数及legend函数详解

    Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析Matlab中plot函数及legend函数详解 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1, ...

  8. matlab repmate,MATLAB中“repmat”与“cat”函数的用法

    MATLAB中"repmat"与"cat"函数的用法 1. repmat函数 >> z=repmat(5,2,3) z = 5 5 5 5 5 5 ...

  9. matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

最新文章

  1. 老板居然让我用Java造假数据
  2. 值对于int32太大或太小怎么解决_深孔加工10种常见问题及解决措施,条条都是宝贝!...
  3. 国科大高级人工智能8-归结原理和horn子句
  4. 【Flink】Flink报错 Could not forward element to next operator
  5. linux debian 8.3 发布时间,Robolinux 8.3 发布下载,基于 Debian 的 Linux 发行
  6. python编程基础之六
  7. 视频转换器怎么用?迅捷视频转换器图文操作教程分享
  8. 电视html转vga没有声音,解决传统VGA接口无声音输出的设备的制作方法
  9. imu使用与卡尔曼融合定位
  10. odoo异常:Expected singleton: res.users()
  11. nao机器人国际比赛程序 python编写
  12. Golang四舍五入保留两位小数
  13. 【蓝桥杯集训100题】scratch绘制蜘蛛网 蓝桥杯scratch比赛专项预测编程题 模拟练习题第05题
  14. python中算法定义_Python入门进阶笔记--04Python中表示“组”的概念与定义
  15. Wyn BI的机会在哪里:越靠近消费者的行业,比如零售、文娱和金融,信息化投入越大 ZT...
  16. html文档成品,html 成品代码
  17. 工业互联网加速制造业数字化转型
  18. QT :-1: error: LNK1168: 无法打开 xxx.exe 进行写入
  19. Problem--82A--Codeforces--Double Cola
  20. 高效备考CISAW认证考试

热门文章

  1. Windows不显示图片缩略图,显示图标的解决方法
  2. 华为ModelArts(声音分类与文本分类项目的创建及使用)
  3. JS实现下落的树叶特效
  4. 浏览器-清理页面中js的缓存
  5. 程序自动修复相关工作总结
  6. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100怎么设置
  7. 物联网大咖华山论剑,MVP学院打造高端成长营
  8. vue3实现电子实时时钟(动态时钟)
  9. 涨知识!原来华为手机摄像头还有这些高级玩法,学会轻松提高工作效率
  10. python文本信息对比