Hilbert2是一款基于MATLAB开发的工具箱,采用希尔伯特变换技术,能够高效地从带限信号中准确提取瞬时包络和频率信息。
HILBERT2 函数通过希尔伯特变换从带限信号中提取瞬时包络和频率。[ENV FREQ] = HILBERT2(X,FS) 对于向量 X 返回其瞬时包络和频率的估计值,假设 X 是以 FS 指定速率(单位为 Hz)采样的带限信号。若未指定 FS,则函数默认使用 1Hz 的采样率。如果输入参数 X 是矩阵形式,HILBERT2 将沿矩阵列进行操作。
对于复数输入的处理方法是只考虑其实部:X=real(X)。该函数返回与 X 相关的复杂分析信号的幅值 (ENV) 和频率变化率 (FREQ),有关此技术及所用公式的理论解释,请参见文献 Ktonas & Papp (1980) 从真实信号中提取瞬时包络和相位。《Signal Processing》2:373-385。
请务必对结果进行可视化,因为在估计波形边缘的瞬时包络和频率时,该技术可能产生失真现象。
示例代码:
Fs = 500;
T = 10;
% 创建信号
t = (0:(1/Fs)*(T-1));
x = cos(2*pi*5*t) + cos(2*pi*3.75*t);
[env, freq] = hilbert2(x,Fs);