hilbert¶
概要¶
应用 Hilbert 变换
语法¶
HILBERT
说明¶
一个实序列 \(f(t)\) 的 Hilbert 变换定义为
其中星号表示卷积。
由于 \(\frac{1}{\pi t}\) 的 Fourier 变换为 \(-i sgn(\omega)=-e^{i\pi/2} sgn(\omega)\),因而对一个信号做 Hilbert 变换可以理解为先将信号做 Fourier 变换,然后乘以 \(-e^{i\pi/2} sgn(\omega)\),再做反 Fourier 变换。即 Hilbert 变换的一个重要性质是对信号产生 \(\frac{\pi}{2}\) 的相移1。
该命令通过将原始信号与一个201点 FIR 滤波器进行时间域卷积以实现 Hilbert 变换。此 FIR 滤波器是通过对理想 Hilbert 变换的脉冲响应加 Hanning 窗获得的。在频率域,每个频率处的振幅响应为1,相位为90度。Hilbert 变换后的结果将替代内存中的原始信号。
需要注意的是,此操作在零频和 Nyquist 频率附近的小区域内是不精确的。若要对很低频率的数据进行 Hilbert 变换(比如长周期面波),则需要先对信号进行减采样。由于该变换是在时间域完成的,所以计算时在原地使用重叠储存算法,其对于文件长度没有限制。
理论上,Hilbert 变换可以从振幅谱的对数中计算最小延迟相位,本质上 Hilbert 变换是一个非带限的低通滤波器,因而本命令中的 Hilbert 变换无法用于计算最小延迟相位。
SAC 提供了 Hilbert 变换的函数库,可以直接在 C 或 Fortran 程序中调用,详情参考 调用 libsac 库 一节。
头段变量¶
depmin、depmax、depmen
- 1
本段内容不够严谨,正负号可能有误,其中的细节也被省略,因而仅供参考。