主要内容

希尔伯特

利用希尔伯特变换的离散时间解析信号

描述

例子

x=希尔伯特(xr返回分析信号,x,从一个真实的数据序列,xr.如果xr是一个矩阵希尔伯特求每一列对应的解析信号。

例子

x=希尔伯特(xrn使用一个n-点快速傅里叶变换(FFT)来计算希尔伯特变换。输入数据被零填充或截断为长度n,如适当。

例子

全部折叠

定义一个序列并计算其分析信号使用希尔伯特

Xr = [1 2 3 4];x =希尔伯特(xr)
x =1×4复杂1.0000 + 1.0000i 2.000 - 1.0000i 3.0000 - 1.0000i 4.0000 + 1.0000i

虚部x希尔伯特变换是什么xr,实部为xr本身。

imx =图像放大(x)
imx =1×41 -1 -1 1
雷克斯现实(x) =
雷克斯=1×41 2 3 4

离散傅里叶变换(DFT)的后半部分x是零。(在本例中,转换的后半部分就是最后一个元素。)的DC和Nyquist元fft (x)纯粹是真实的。

dft = fft (x)
dft =1×4复杂10.0000 + 0.00000 i -4.0000 + 4.0000i -2.000 + 0.00000 i

希尔伯特函数为有限数据块找到精确的分析信号。您也可以通过使用有限脉冲响应(FIR)希尔伯特变压器滤波器来计算虚部的近似来生成解析信号。

产生一个序列由三个频率为203,721,1001 Hz的正弦波组成。序列以10khz采样约1秒。使用希尔伯特函数来计算分析信号。在0.01秒到0.03秒之间绘制。

fs = 1 e4;t = 0:1 / fs: 1;x = 2.5 + cos(2 *π* 203 * t) +罪(2 *π* 721 * t) + cos(2 *π* 1001 * t);y =希尔伯特(x);情节(t,真正的(y), t,图像放大(y) xlim([0.01 - 0.03])传说(“真实”的“虚”)标题(“希尔伯特函数”

图中包含一个坐标轴。标题为希尔伯特函数的轴包含两个类型为line的对象。这些物体代表真实的,虚构的。

计算原始序列和解析信号的功率谱密度Welch估计值。将序列划分为长度为256的汉明窗非重叠段。验证分析信号在负频率无功率。

pwelch ((x, y)。256年,0,[],fs,“中心”)传说(“原始”希尔伯特的

图中包含一个坐标轴。标题为功率谱密度的轴包含2个类型线对象。这些东西代表原始,希尔伯特。

使用designfilt函数设计60阶Hilbert变压器FIR滤波器。指定400 Hz的过渡宽度。可视化过滤器的频率响应。

fo = 60;d = designfilt (“hilbertfir”“FilterOrder”佛,...“TransitionWidth”, 400,“SampleRate”fs);freqz (d、1024 fs)

图过滤器可视化工具-幅度响应(dB)和相位响应包含一个轴和其他类型的uitoolbar, uimenu对象。标题为“幅度响应(dB)”和“相位响应”的轴包含一个类型线对象。

滤波正弦序列以近似解析信号的虚部。

hb =过滤器(d, x);

滤波器的群延迟,接地的,等于过滤阶数的二分之一。补偿这个延迟。删除第一个接地的虚部和最后的样本接地的实部和时间向量的样本。在0.01秒到0.03秒之间绘制结果。

研磨= fo / 2;Y2 = x(1:end-grd) + 1j*hb(grd+1:end);t2 = t (1: end-grd);图(t2,real(y2),t2, image (y2)) xlim([0.01 0.03])“真实”的“虚”)标题(数字滤波器的

图中包含一个坐标轴。标题为FIR Filter的轴包含2个类型为line的对象。这些物体代表真实的,虚构的。

估计近似分析信号的功率谱密度(PSD)并将其与其进行比较希尔伯特结果。

pwelch ([y; [y2 0(研磨)]]。”,256年,0,[],fs,“中心”)传说(希尔伯特的数字滤波器的

图中包含一个坐标轴。标题为功率谱密度的轴包含2个类型线对象。这些对象代表希尔伯特FIR滤波器。

输入参数

全部折叠

输入信号,指定为实值向量或矩阵。如果xr很复杂,希尔伯特忽略虚部。

例子:罪(2 *π* (0:15)/ 16)指定正弦信号的一个周期。

例子:罪(2 *π*(0:15)”。/ 8 [16])指定双通道正弦信号。

数据类型:|

DFT长度,指定为一个正整数标量。

数据类型:|

输出参数

全部折叠

分析信号,以向量或矩阵的形式返回。

更多关于

全部折叠

分析信号

希尔伯特返回一个复杂的螺旋序列,有时称为分析信号,从一个真实的数据序列。

分析信号xxr+jx有实部,xr,这是原始数据,也是虚部,x,它包含希尔伯特变换。虚部是原始实序列的一个版本,相移为90°。因此,正弦变换为余弦,反过来,余弦变换为正弦。希尔伯特变换序列与原始序列具有相同的振幅和频率含量。转换包含依赖于原始阶段的阶段信息。

希尔伯特变换在计算时间序列的瞬时属性,特别是幅值和频率方面很有用。瞬时振幅是复希尔伯特变换的振幅;瞬时频率是瞬时相位角的时间变化率。对于纯正弦波,瞬时振幅和频率是恒定的。然而,瞬时相位是一个锯齿,反映了局部相位角在一个周期内如何线性变化。对于混合的正弦波,属性是短期的,或局部的,不超过两到三个点的平均值。看到希尔伯特变换与瞬时频率为例子。

参考[1]描述了最小相位重构的Kolmogorov方法,该方法涉及对时间序列的谱密度的对数进行希尔伯特变换。工具箱函数rceps执行此重建。

算法

序列的分析信号xr有一个单侧傅里叶变换.也就是说,当频率为负时,变换消失。为了近似解析信号,希尔伯特计算输入序列的FFT,将负频率对应的FFT系数替换为零,并计算结果的逆FFT。

希尔伯特使用四步算法:

  1. 计算输入序列的FFT,将结果存储在一个向量中x

  2. 创建一个向量h的元素h(我)的值:

    • 1= 1,(n / 2) + 1

    • 2= 2, 3,…,(n / 2)

    • 为0(n / 2) + 2,……,n

  3. 计算元素明智的产品xh

  4. 计算在步骤3中获得的序列的反FFT并返回第一个n结果的元素。

该算法首次被引入[2].该技术假设输入信号,x,是一个有限的数据块。这个假设允许函数去除光谱中的冗余x完全正确。基于FIR滤波的方法只能近似分析信号,但它们的优点是对数据进行连续运算。看到单边带调幅另一个用FIR滤波器计算的Hilbert变换的例子。

参考

乔·F·克莱布特地球物理数据处理基础及其在石油勘探中的应用.英国牛津:布莱克威尔,1985。

[2] Marple, S. L.《通过FFT计算离散时间解析信号》。IEEE®信号处理汇刊.1999年第47卷,第2600-2603页。

Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck。离散时间信号处理.第二版。上鞍河,新泽西:普伦提斯霍尔,1999。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

另请参阅

||

之前介绍过的R2006a