希尔伯特频谱算法Hilbert-Huang spectral analysis(matlab代码)

前段时间磕盐接触到了希尔伯特频谱,它是一种信号分解方法,1998年提出来的,主旨是把复杂信号分解为简单信号的加权和,就像傅里叶变换小波变换一样,但是他和傅里叶变换等方法的区别是他是纯粹时间域的分解,但是每个子信号却可以表示不同的频率成分,于是可以得到像小波变换那样的时频平面,但是这个方法明显比小波分解冷门的多,而且在我的实验结果里确实远远远远弱于小波分解,不过也算是自己辛苦几天看论文和写代码的成果,特此记录,如果后面有人用到这个,可以快速入门

文献链接:The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis

伪代码,我读论文总结出来的,主要就是经验模式分解EMD和希尔伯特变换两步
在这里插入图片描述
伪代码的latex 代码

\begin{algorithm}
	\caption{Hilbert-Huang spectral analysis \cite{Branch1998}}
	\label{hhsa}
	\begin{algorithmic}[1] 
		\Require The original signal vector $\boldsymbol x$.
		\Ensure  The Hilbert-Huang Spectrum, i.e. an energy-time-frequency distribution of $\boldsymbol x$. 
		\Function{EMD}{$\boldsymbol x, SegLen, ResidueThreshold, SD_T$}		
		\State $\boldsymbol{IMF} \gets \boldsymbol 0$
		\State $i \gets 0$
		\State $ N \gets length(\boldsymbol{x}) / SegLen$
		\State $residue \gets \infty$
		\While {$residue > ResidueThreshold$}
		\State $i \gets i+1$	
		\State $\boldsymbol{x_i} \gets \boldsymbol{x}-\sum_i \boldsymbol{IMF}$
		\State $SD \gets \infty$
		\While{$SD > SD_T$}	
		\For {$j=1 \to j=N$}	
		\State $\boldsymbol{seg_{ij}} \gets \boldsymbol{x_i}[(1+(j-1)*SegLen) : (j*SegL
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值