[置顶] 连续信号希尔伯特变换

华电北风吹
日期:2015-04-27

一、希尔伯特变换定义
对于实值函数 f(t),t(,) ,它的希尔伯特变换 f^(t) 定义为 f(t) 1πt 的卷积。即

f^(t)=H[f(t)]=f(τ)π(tτ)dτ=f(t)1πt

二、希尔伯特变换与傅立叶变换
F(f)=F[f(t)] 表示对 f(t) 进行傅立叶变换, F^(f)=F[f^(t)] 表示对 f^(t) 进行傅立叶变换, B(f)=F[1/πt] 表示对 1/πt 进行傅立叶变换.
由傅立叶变换的性质可得

B(f)=F[1/πt]=j×sgn(f)={j,f>0j,f<0={ejπ2,f>0ejπ2,f<0=ejπ2sgn(f)

F^(f)=B(f)×F(f)=[j×sgn(f)]×F(f)

可以看出 B(f) 是一个 π2 的相移系统,即希尔伯特变换等效于 ±π2 的相移,对正频率产生 π2 的相移,对负频率产生 π2 的相移,或者说,在时域信号中每一频率成分移位1/4波长。因此,希尔伯特变换又称为90度移相器。

三、解析信号
为进一步理解希尔伯特变换的意义,引入解析信号函数 Z(t)=f(t)+jf^(t) 。根据欧拉公式也可以写成 Z(t)=A(t)ejϕ(t) 。其中, A(t) 称为希尔伯特变换的包络; ϕ(t) 称为瞬时响应信号。
希尔伯特变换包络 A(t) 的定义为

A(t)=f2(t)+f^2(t)

相位定义为
ϕ(t)=arctan[f^(t)f(t)]

瞬时频率的定义为
f=12πdϕ(t)dt

四、利用原始信号求解希尔伯特变换
1、求解原始信号 f(t) 的傅立叶变换 F(f)
2、计算解析信号 Z(t) 的傅立叶变换 Z(f)

Z(f)=F(f)+jF^(f)=[1+sgn(f)]F(f)=B1(f)F(f)

其中 B1(f)={2,f>00,f<0 ,可以发现解析信号 Z(t) 的一个特性,他的频谱具有单边性。
3、对 Z(f) 进行逆傅立叶变换得到 Z(t) ,取虚部得到 f^(t)
Z(t)=F1[Z(f)]=f(t)+jf^(t),f^(t)=Im[Z(t)]

五、结论
 结合附件求解PSI代码的话,可以看出matlab内部的hilbert函数实际求解的是解析信号 ,想要得到Hilbert变换的话还需要取虚部操作。
 至于瞬时相位的话实际上是解析信号在该点的辐角,所以是该点希尔伯特变换除以该点原始信号的反正切。至于辐角为什么可以表示该点的瞬时相位可以参考例子 x(t)=a(t)cos(2πf0t+ϕ(t)) ,其中 a(t) 可以描述震荡振幅变化,被称作信号的包络, θ(t)=2πf0t+ϕ(t) 反映了信号相位的瞬时变化。这样就可以类似理解瞬时相位为什么用辐角表示了。

附件—MATLAB代码求解相位同步性

function [result]=PSI(x1,x2)
% Calculate phase synchronization index in functional connectivity analysis

x1h=imag(hilbert(x1));
x2h=imag(hilbert(x2));
f1=atan(x1h./x1);
f2=atan(x2h./x2);
f=f1-f2;
result=abs(mean(exp(1i*f)));
end

参考资料:
http://wenku.baidu.com/view/9aa65710580216fc700afd57.html?from=search
http://wenku.baidu.com/view/5836cf0fbb68a98271fefad5.html

你可能感兴趣的:([置顶] 连续信号希尔伯特变换)