主要内容

希尔伯特

使用Hilbert变换的离散时间分析信号

描述

例子

x=希尔伯特(XR.返回分析信号,x,来自真实数据序列,XR..如果XR.是一个矩阵,然后希尔伯特找到每一列对应的解析信号。

例子

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

例子

全部收缩

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

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

虚构的部分x是希尔伯特的转变XR.,真实的部分是XR.本身。

imx = imag(x)
imx =1×41 -1 -1 1
rex = real(x)
雷克斯=1×41 2 3 4

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

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

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

产生由具有频率203,721和1001Hz的三个正弦曲线组成的序列。将序列以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])传说('真实的''假想') 标题('希尔伯特功能'

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

计算原始序列和分析信号的功率谱密度的WELCH估计。将序列划分为汉明窗口,非长度的部分,长度为256.确认分析信号在负频率下没有功率。

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

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

使用designfilt功能设计一个60阶希尔伯特变压器FIR滤波器。指定过渡宽度为400hz。想象滤波器的频率响应。

fo = 60;d = designfilt ('hilbertfir'“FilterOrder”佛,...'transitionwidth',400,“SampleRate”,fs);Freqz(D,1024,FS)

图Filter可视化工具 - 幅度响应(DB)和阶段响应包含UIMEnu类型uitoolbar的轴和其他对象。具有标题幅度响应(DB)和相位响应的轴包含类型线的对象。

对正弦序列进行滤波以逼近解析信号的虚部。

hb =过滤器(d, x);

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

grd = fo / 2;y2 = x(1:end-grd)+ 1j * hb(grd + 1:结束);t2 = t(1:end-grd);绘图(T2,Real(Y2),T2,Imag(Y2))XLIM([0.01 0.03])图例('真实的''假想') 标题(数字滤波器的

图中包含一个轴。带有Title FIR滤波器的轴包含2个类型的物体。这些物体代表真实的和虚构的。

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

pwelch([Y; [Y2 Zeros(1,Grd)]]。',256,0,[],FS,“中心”)传说('希尔伯特'数字滤波器的

图中包含一个轴。标题为“功率谱密度”的坐标轴包含两个类型线对象。这些对象代表终止终端终端滤波器。

输入参数

全部收缩

输入信号,用实值向量或矩阵表示。如果XR.那是复杂的,然后希尔伯特忽略它的虚部。

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

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

数据类型:|双倍的

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

数据类型:|双倍的

输出参数

全部收缩

分析信号,作为向量或矩阵返回。

更多关于

全部收缩

分析信号

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

分析信号xxr+jx有一个真实的部分,xr,这是原始数据,虚部,x,其中包含Hilbert变换。虚部是具有90°相移的原始实际序列的版本。因此,凸丝转变为余弦,相反,余弦被转化为田间。Hilbert转换系列具有与原始序列相同的幅度和频率内容。变换包括相信息,其取决于原始阶段。

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

参考[1]描述了用于最小相位重建的Kolmogorov方法,涉及采用时间序列的光谱密度的对数的Hilbert变换。工具箱功能RCEP.执行此重建。

算法

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

希尔伯特使用四步算法:

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

  2. 创建一个向量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滤波器。

参考文献

Claerbout, Jon F。地球物理资料处理基础及其在石油勘探中的应用.英国牛津:布莱克威尔,1985年。

通过FFT计算离散时间解析信号IEEE®信号处理中的事务.第47卷,1999,第2600-2603页。

[3] Oppenheim,Alan V.,Ronald W. Schafer和John R. Buck。离散时间信号处理.第二次。上部鞍河,NJ:Prentice Hall,1999。

扩展功能

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

另请参阅

||

在R2006A之前介绍