• 将时间序列转成图像——希尔伯特-黄变换方法 Matlab实现


    目录

    1 方法

    2 Matlab代码实现

    3 结果


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

    其他:

    1.时间序列转二维图像方法及其应用研究综述_vm-1215的博客-CSDN博客

    2.将时间序列转成图像——短时傅里叶方法 Matlab实现_vm-1215的博客-CSDN博客

    3.将时间序列转成图像——小波变换方法 Matlab实现_vm-1215的博客-CSDN博客

    1 方法

    前面提到的信号处理方法基本都受到傅里叶理论的影响,不能很好的处理不规则的信号,因此,1998年Norden E. Huang 等人[9]提出经验模态分解方法,并引入Hilbert谱的概念和Hilbert谱分析方法,称为希尔伯特-黄变换(Hilbert-Huang Transform, HHT)。

    希尔伯特-黄变换主要包括两个阶段,分别是经验模态分解(EMD)和Hilbert变换(HT)。经验模态分解流程为:

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

    相较于短时傅里叶变换和小波变换,HHT得到时频图分辨率比较低,具有较好的自适应性。

    2 Matlab代码实现

    1. clc
    2. clear
    3. close all
    4. % load signal.mat
    5. %% 输入数据
    6. % 实验数据
    7. % ts = 0:0.001:0.6;
    8. % fs = 1000;
    9. % x = cos(2*pi*20*ts) + 2*cos(2*pi*100*ts);
    10. % N = length(x);
    11. % 时间检测数据
    12. speed = xlsread('3_1_link6_28_5_30min.csv');
    13. % speed = xlsread('3_1_link1_1_5_30min.csv');
    14. x = speed';
    15. x = (x - min(x)) / (max(x) - min(x));
    16. M = length(x);
    17. fs = 500;
    18. % x = cos(2*pi*20*ts) + 2*cos(2*pi*100*ts);
    19. % fs = 500000000;
    20. % load signal;
    21. % x = signal;
    22. N = length(x);
    23. %% EMD和HT
    24. [imf,residual,info]=emd(x,'Interpolation','pchip','Display',0);
    25. figure()
    26. hht(imf,fs);
    27. % 横轴表示时间、纵轴表示频率,颜色表示能量
    28. [hs, f, t, imfinsf, imfinse] = hht(imf,fs);
    29. % hs——信号的希尔伯特谱(Hilbert Spectrum )
    30. % f——信号的频率向量(Frequency vector of signal)
    31. % t——信号的时间向量(Time vector of signal)
    32. % imfinsf——每个imf的瞬时频率(instantaneous frequency of each imf)
    33. % imfinse——每个imf的瞬时能量(instantaneous energy of each imf)
    34. im = figure(1);

    3 结果

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

  • 相关阅读:
    [RoarCTF 2019]PHPShe
    Sqoop
    从月薪8k到月薪30k,自动化测试究竟该怎样学...
    考研数学|《1800》+《660》精华搭配混合用(经验分享)
    操作系统(一):什么是操作系统
    文档在线预览word、pdf、excel文件转html以实现文档在线预览
    spring的bean初始化策略
    神经网络 深度神经网络,脉冲神经网络原理
    Django 联表查询操作
    51单片机内部外设:实时时钟(SPI)
  • 原文地址:https://blog.csdn.net/weixin_41406486/article/details/127815463