MATLAB——Hilbert-Huang Transform (HHT)

  MATLAB hht

  语法使用如下:

hs = hht(imf, fs)
[hs, f, t] = hht(imf, fs)
[hs, f, t, imfinsf, imfinse] = hht(___)
[___] = hht(___,Name,Value)
hht(___)
hht(___,freqlocation)

  输入参数:

imf——本征莫泰函数 (intrinsic mode function):
emd / eemd等分解方法用于将复杂信号分解并简化为执行希尔伯特谱分析所需的有限数量的固有模式函数。
hht将imf中的每一列视为内在模式函数

fs——采样频率(sampling frequency):
采样频率或采样率是每单位时间的采样数
如果未提供fs,则使用2π的归一化频率来计算希尔伯特谱

  输出参数:

hs——信号的希尔伯特谱(Hilbert Spectrum )
信号的希尔伯特谱,以稀疏阵列的形式返回。 使用hs可以进行时频分析并识别信号中的局部特征。

f——信号的频率向量(Frequency vector of signal)
信号的频率向量,以数组的形式返回。
f = f_low:FrequencyResolution:f_high

t——信号的时间向量
hht使用频率向量f和时间向量t来创建希尔伯特谱图。

imfinsf——每个imf的瞬时频率(instantaneous frequency of each imf)

imfinse——每个imf的瞬时能量(instantaneous energy of each imf)

  算法概述:

  1. emd / eemd等分解方法将信号x分解为有限数量的固有模式函数imf;

  2. 对于每一个imf分量, x i x_i xi,hht执行以下步骤:

    a. 利用希尔伯特变换计算 x i x_i xi的解析信号: z i ( t ) = x i ( t ) + j H { x i ( t ) } z_i(t)=x_i(t)+jH\{x_i(t)\} zi(t)=xi(t)+jH{xi(t)},其中 H { x i ( t ) } H\{x_i(t)\} H{xi(t)} x i x_i xi的希尔伯特变换;
    b. 利用欧拉公式将解析信号表达为: z i ( t ) = a i ( t ) e j θ i ( t ) z_i(t)=a_i(t)e^{j\theta_i(t)} zi(t)=ai(t)ejθi(t),其中 a i ( t ) a_i(t) ai(t)为瞬时幅值, θ i ( t ) \theta_i(t) θi(t)为瞬时相位;
    c. 计算瞬时能量: ∣ a i ( t ) 2 ∣ |a_i(t)^2| ai(t)2,和瞬时频率: ω i = d θ i ( t ) / d t \omega_i=d\theta_i(t)/dt ωi=dθi(t)/dt;
    d. 将瞬时能量返回给Imfinse,将瞬时频率返回给imfinsf

  3. 如果没有返回值,hht将信号的能量绘制为时间和频率的函数,颜色与幅度成比例。

你可能感兴趣的:(MATLAB,Hilbert-Huang,Transform,EMD,MATLAB)