目录

1. 经验模态分解:

2. 希尔伯特变换:

3. 方法缺陷:

4. MATLAB(2018rb版本)实现和探讨

##边际谱


【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】

希尔伯特黄变换(Hilbert-Huang)包括两部分工作,分别是经验模态分解(EMD)和希尔伯特变换(HT)。

1. 经验模态分解:

  1. 找到信号x(t)的极大值和极小值,通过三次样条拟合得到上、下包络线,计算其均值得m1(t).
  2. 得到第一个分量   , 检擦其是否满足模态分量的条件: ①   得极大值点与过0点数量相差不超过1个;②  的上、下包络线均值恒为0。如不满足,重复操作1、2直至得到满足模态函数(IMF)条件的模态分量 .
  3. 原始信号减去第一个模态分量,得到信号  , 将  当成新的“原始信号”,重复以上操作,直至筛选条件              小于预设值时,经验模态分解结束。这样原始信号便分成若干经验模态分量和一个残余信号:   

2. 希尔伯特变换:

对每个IMF ci(t)求其Hilbert变换: ; 根据

可以求得相应IMF的瞬时频率和瞬时幅值,可将原始信号表示成      ,在经过nEMD分解后,残余信号常熟或单调函数,对信号提取没有实质影响,故舍去。

3. 方法缺陷:

信号的端点不可能同时处于极大值或极小值,因此,上、下包络在数据序列两端会发散,且这种发散会随着运算的进行而逐渐向内,从而使得整个数据序列受到影响。EMD分解存在的端点效应,目前有端点镜像方法、多项式拟合法、极值延拓法、平行延拓法等进行改善。

4. MATLAB(2018rb版本)实现和探讨

#代码详见下面网址

使用两个信号叠加作为分析对象

经验模态分解后得到的imf分量分布:

这是希尔伯特黄变换后得到的频谱图:

##其实对比时频谱图和imf分量图就可以发现,时频谱图是imf图加上能量分布而已,如下:

##边际谱

时频谱图已经出来,下面可根据边际谱求解公式求解边际谱。如下:

这个公式是固定ω不变,对t积分。定积分在离散中可以近似分解为多个长方形的面积和。在离散信号中,H(ω,t)是时频谱矩阵H(ω,k),长方形的长为第k个数据对应的H(ω,k),宽为时间间隔,即(采样频率的倒数),因此积分公式可改为如下公式:

因此,边际谱本来可以用一行代码搞定:

bjp = sum(hs,2)*1/fs

但问题来了,由自带函数HHT得到hs的数据顺序是错的。时频谱矩阵相当于把时频谱行方向用频率切割,列方向用时刻切割,得出多个小方块,每一个方块对应的频率用中心频率表示,对应的时刻则记录数据的时刻,小方块里的数据则表示该时刻,该频率的能量值(振幅的平方)。

hs是个稀疏矩阵,只记录非零的位置,和该位置对应的能量。但在这里,两者的顺序不同,hs记录的位置按以下方向记录:

然而对应的能量数据,是按得到的imfinse矩阵的顺序排列,两者不相匹配。因此,得到的hs矩阵是一个错误的时频谱矩阵,不能直接用来计算边际谱。

那么,接下来的工作只能根据得到的imf分量每一时刻的瞬时频率和瞬时能量来获得时频谱矩阵。

其实关键步骤是把每一个瞬时频率对应的小方格确定就可以了,然后把每一个小方格内的所有分量的能量累加即可:

时频矩阵大小和hs一样,最大频率为采样频率的一半。

确定中心频率向量

每一个瞬时频率所在的小方格

然后把k<=0的剔除,再累加,就可以得到时频谱矩阵,然后计算得到边际谱,如下图所示:

以下是最新代码且包含相关报告,点此链接下载:

说明:代码受到用户很高的褒赞,很荣幸,但请别忘记【点赞】+【收藏】,了解其内核并写代码不易,希望理解!

如果有其他问题可评论,会不定时根据问题进行更新

A资源说明.rar - 蓝奏云

A资源-HHT.rar - 蓝奏云

希尔伯特黄变换(Hilbert-Huang)原理、HHT求时频谱、边际谱,及MATLAB(2018rb)实现相关推荐

  1. MATLAB希尔伯特黄变换HHT

    这两天在学习希尔伯特黄变换,也就是HHT,趁着学习的劲赶紧整理整理,用的是MATLAB进行编程,所用到的工具箱便是EMD工具箱,链接如下,请自行下载. 希尔伯特黄变换HHT_HHT-电信代码类资源-C ...

  2. 希尔伯特-黄变换(HHT)的前世今生——一个从瞬时频率讲起的故事

    一.来自小X的疑问 从前有一个国家,叫做实国(一维国度),里边有个叫小X的小人儿. 小X是一根线段,他每天最爱做的事情就是跳舞. 因为小X的舞姿十分稳定,同伴们都说他的头部跳出了频率为1hz的正弦曲线 ...

  3. 经验模式分解(EMD)及希尔伯特-黄变换(HHT)简介及matlab实现

    本文介绍过程涉及到两个链接工具包,可以自己网上搜索下载,以下提供了网盘下载的地址,因为作者主要做语音方面工作,所以后面的说明主要以说话人识别为例.(链接:https://pan.baidu.com/s ...

  4. 信号处理:希尔伯特黄变换

    目录: 目录: 前言 简介 基本原理 经验模态分解 希尔伯特变换 特点 (1)HHT能分析非线性非平稳信号. (2)HHT具有完全自适应性. (3)HHT不受Heisenberg测不准原理制约--适合 ...

  5. 【信号处理】Matlab实现希尔伯特-黄变换

    1 内容介绍 1998年,Norden E. Huang(黄锷:中国台湾海洋学家)等人提出了经验模态分解方法,并引入了Hilbert谱的概念和Hilbert谱分析的方法,美国国家航空和宇航局(NASA ...

  6. 量化择时:基于经验模态分解的希尔伯特-黄变换(二)算法

    量化择时:基于经验模态分解的希尔伯特-黄变换 part2部分是算法的介绍,抛开代码部分,其实就是所有人都能看得懂字面解释 Part2算法 在了解了基础的数理知识和学习了将实信号转换为复信号的处理方法之 ...

  7. 希尔伯特黄变换python实现

    希尔伯特变换可以从: https://zhuanlan.zhihu.com/p/128092836 https://www.cnblogs.com/hdu-zsk/p/4799470.html 等博客 ...

  8. matlab柯西主值积分,希尔伯特-黄变换基本概念

    摘自<机械故障诊断理论与方法> 希尔伯特-黄变换(Hilbert-Huang Transform)是由N.E.Huang等人与1998年提出的一种非线性.非平稳信号的分析处理方法.这种方法 ...

  9. 毕设-希尔伯特-黄变换(特征提取)

    人物简介 希尔伯特:公认的数学界"无冕之王",1943年去世于瑞士苏黎世.除此之外,自不必过多介绍. 黄锷:1937年出生于湖北省:1975年进入NASA(美国国家宇航局):美国国 ...

最新文章

  1. 数据结构(1)有序表查找
  2. php拓展板块 按需开启,php如何按需加载方式来增加程序的灵活度
  3. 他们翻遍用AI检测新冠的论文,一篇临床可用的也没有?!
  4. ABAP更改程序的请求包操作
  5. java download oracle,Oracle Java Products Download
  6. 汇编语言 利用ASCII以及AND OR进行字符串大小写转换
  7. 学习LD_PRELOAD之摘抄
  8. JSP PO VO BO DTO POJO DAO解释
  9. 印刷 计算机控制系统,陶瓷印刷计算机直接制版控制系统设计与实现
  10. FragmentPagerAdapter.notifyDataSetChanged()不能更新问题?
  11. 5.Django 数据库多表查询
  12. 无线网络dns服务器被劫持,dns劫持,教您dns被劫持了怎么解决
  13. DAY 5 综合练习 - 学籍注册小程序 棋牌游戏发牌程序
  14. 总结使用SnakeYAML解析与序列化YAML相关
  15. 《程序员修炼之道-从小工到专家》读后感
  16. HTML制作简单的页面
  17. 在腾讯的八年,我的职业思考
  18. 响应式onresize监听窗口大小
  19. 那些有趣的网站系列(四)
  20. 综合算法03—FrankWolfe_BPR配流算法

热门文章

  1. Spark 生态系统组件
  2. java程序购买_JAVA(二) ——购买商品简单程序
  3. 多因素分析模型解决方法_选择模型方法的8个决定因素
  4. Linux clock子系统【3】-i2c控制器打开时钟的流程分析(devm_clk_get)(consumer侧)
  5. 小程序进阶-emoji表情
  6. Win10沙盒功能,系统自带免费免安装
  7. 已知二叉树先序序列和中序序列,求后序序列
  8. js 对日期的计算,加减天数
  9. BIG DATA 神奇的大数据 - Hadoop(Linux)环境搭建与部署
  10. python For 循环 三种遍历方式