MATLAB希尔伯特黄变换HHT

这两天在学习希尔伯特黄变换,也就是HHT,趁着学习的劲赶紧整理整理,用的是MATLAB进行编程,所用到的工具箱便是EMD工具箱,链接如下,请自行下载。

 

希尔伯特黄变换HHT_HHT-电信代码类资源-CSDN下载

首先先介绍下matlab中经验模态分解所用到的函数emd。

imf = emd(x)
imf = emd(x,...,'option_name',option_value,...)
imf = emd(x,opts)
[imf,ort,nb_iterations] = emd(...)

做仿真的时候只是简单的对信号做一个模态分解,因此只用到了第一种方法,imf=emd(x),这其中若x为实向量,则计算经验模态,若x为复向量,则计算二维经验模式。对于x为实向量的情况下,得到的是1-n个imf(内部模态函数),在加上一个剩余项。

在得到IMF后,可以直接作图,也可以利用工具箱中的函数emd_visu作图,可以得到模态分解结果以及两种方向相反的重构信号过程,该函数的用法为

emd_visu(x,t,imf)

其中,x为原信号,t为时间序列,imf为上一步得到的结果,该函数可得三个图,第一个为emd图,后两个为信号重构过程,分别为f2c、c2f。

clear;close all;clc

N=1024;
fs=1024;
t=(0:N-1)/fs;
f1=70;f2=120;
x=cos(2*pi*f1*t)+2*cos(2*pi*f2*t);
imf=emd(x);         %经验模态分解
emd_visu(x,t,imf)   %作图

所得结果如下

第一个图所表示便是emd的过程了,7个imf加一个剩余项rn,后两张图就是原信号的重构过程了,我们知道在HHT中,有这么一个关系,x=\sum imf+rn,而c2f图和f2c图的区别就是,c2f从imf7往imf1方向重构原信号,而f2c则是从imf1往imf7方向进行的。

在emd结束后,便可以开始画HHT谱图了,此处我结合这两天查看的资料,给出两个所用到的函数用法的简单表述,如下:

[A,f,t] = hhspectrum(imf)

用于计算HHT谱,imf为前面所得结果,A为每个imf的瞬时振幅,f、tt分别为对应的瞬时频率和时间序列。

[im,tt,ff] = toimage(A,f,t,splx,sply)

其中A,f,t与hhspecturm函数的相关定义一致,splx、sply则分别对应输出im的列数和行数,splx一般与t的长度一致;
im为频谱的二维图像,tt为时间序列号(此处划重点,是“序列号”,而不是“序列”,也就是需要除以总长度得到时间序列),ff的注释解释为 “centers of the frequency bins”(频率门的中心值?)。

下面直接给出程序和结果。

[A,f,tt] = hhspectrum(imf(1:end-1,:));
[im,tt,ff] = toimage(A,f,tt,length(tt));
figure;
set(gcf,'Color','w');
imagesc(tt/N,[0,0.5*fs],im);
set(gca,'YDir','normal')
colormap('jet');colorbar;
xlabel('时间(s)');
ylabel('频率(Hz)');
axis([0 1 0 200]);title('HHT谱') ;

  • 29
    点赞
  • 302
    收藏
    觉得还不错? 一键收藏
  • 40
    评论
希尔伯特黄变换(Hilbert-Huang Transform,简称HHT)是一种非平稳信号分析方法,主要用于挖掘信号的局部频率和振幅变化。该方法由黄其煜教授在1998年提出,被认为是一种有潜力的信号分析方法。HHT结合了希尔伯特变换和经验模态分解(Empirical Mode Decomposition,简称EMD)两个步骤。 首先,使用EMD将原始信号分解成一系列固有模函数(Intrinsic Mode Functions,简称IMF),每个IMF表达了不同的振动模式。这种分解方式根据信号本身的非线性和非平稳性特征,使得信号的能量分布在各个IMF中,IMF可以看做是信号中的局部振动模式。 其次,对每个IMF进行希尔伯特变换,得到每个IMF的实部和虚部。希尔伯特变换是一种数学变换,将信号从时域转换到复频域,实部代表信号的原始振幅,虚部则代表相位信息。通过对每个IMF的实部和虚部进行处理,可以得到信号的瞬时频率和振幅。 最后,通过将每个IMF的瞬时频率和振幅叠加,可以重构出原始信号的频谱图。HHT能够对非平稳信号进行较为准确的频率分析,尤其适用于具有瞬态和非线性特征的信号处理。 总的来说,希尔伯特黄变换是一种非平稳信号分析方法,通过EMD和希尔伯特变换两个步骤,可以将信号分解为多个局部振动模式,并计算出每个模式的瞬时频率和振幅。该方法在信号处理、振动分析等领域具有广泛的应用价值。
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值