高阶谱的定义与由来

随机过程可用它的各阶矩来完整描述。

与矩一样,可用累积量从时域来描述随机过程的统计特性;
亦可用高阶谱(包括功率谱)从频域来描述随机过程的统计特性。

在这里插入图片描述

1. 二阶谱

Ali Mohammad Alqudah等人的研究已证明,现代数字信号处理领域中的高阶谱分析方法提取出的特征明显优于短时傅里叶变换、小波变换等低阶特征提取方法的结果。

此外,高阶谱方法中的二阶谱法使用最为广泛,它可以很好地抑制信号中的相位关系,检测与量化非高斯信号的相位耦合,常被用于非平稳的医学信号,如EEG、ECG、EMG。

因此,我们采用二阶谱分析法来进行特征提取。换言之,就是该分析法适用于心音信号,并且在特征提取的过程中,尽可能多保留信号中的有用特征,降低噪声。

二阶谱分析法可用如下公示表示:

在这里插入图片描述
在这里插入图片描述

由公式我们不难看出,生成的二阶谱是一个二维矩阵(256 × 256 )。于是,我们根据此矩阵分别绘制其等高线图(256 × 256 ×3 )与热力图(256 × 256 ×3 ),加上原本的二阶谱,共生成了3种特征。

代码参考

https://github.com/trichter/polycoherence

2. 双谱

2.1 双谱的定义

由于三阶矩与三阶累积量相同,故三阶谱(也称双谱)定义为三阶矩函数(或称三阶自相关函数)的二重傅里叶变换。

高阶谱中的三阶谱(亦称双谱),阶数最低,处理方法也最简单,含有功率谱中所没有的相位信息,是高阶谱研究中的“热点”。

相对来说,对三阶谱理论和方法的研究比较深入,应用也比较广泛;对于比三阶更高的高阶谱,其理论和方法的研究还不够成熟,亦未发现它们的特殊用途。因此常用的是三阶谱(双谱)估计问题。

2.2 双谱的实现

实际应用中,只能由有限观测数据来得到三阶谱(双谱)的估计。双谱估计通常有经典法与参量模型法两种。

  1. 谱的经典估计法:由双谱定义知道,双谱为三阶矩函数(或称三阶自相关函数)的二重傅里叶变换。
    先将已知长度的观测数据序列分段,将分段数据作均值为零的预处理,对各段数据作三阶累积量或三阶矩估计,求所有各段三阶累积量或三阶矩估计的均值,最后形成双谱估计。
    可以证明,经典法双谱估计是渐近无偏的与一致的。这种估计方法的优点是容易实现,可以使用快速傅里叶变换(FFT)算法,对于比较长的观测数据是一种好的估计方法,但其方差一般比较大,另外它在双谱域内分辨率受到限制。
  1. 双谱估计的模型参量法:该法是将已知有限长非正态分布的数据序列,通过三阶累积量(或三阶矩〉估计序列确定AR、MA或ARMA模型参量,然后求双谱估计。双谱估计的模型定阶问题是目前有待研究解决的问题,在功率谱估计的模型参量法中应用的各种定阶准则并不适用于双谱估计模型参量法。实例表明,双谱估计的模型参量法的分辨率性能远优于经典法估计的结果。

3. scipy 中的stft

3.1 输入参数

1.fs:表示时序信号的采样频域
2.nperseg:表示单个时间段的长度选择,类似于时间窗的概念,对应滑窗概念里的窗长。
3.noverlap:与前一个时间窗的相重合的时间点的长度,类似于滑窗的概念,其实就是相当于是:
 Gap = nperseg - noverlap
4.nfft:是计算离散傅里叶变换的点数。  nfft越大,频域的分辨率就越高(分辨率=fs/nfft),但离瞬时频率就越远;noverlap影响时间轴的分辨率,越接近nfft,分辨率越高,相应的冗余就越多,计算量越大,但计算机只要能承受,问题不大。
5.boundary:扩展参数

boundary:str或None,可选
指定输入信号是否在两端扩展,以及如何生成新值,以使第一个窗口段在第一个输入点上居中。 这具有当所采用的窗函数从零开始时能够重建第一输入点的益处。 有效选项是[‘偶数’,‘奇数’,‘常数’,‘零’,无]。 对于零填充扩展,默认为“零”。即 对于nperseg = 3,[1,2,3,4]扩展为[0,1,2,3,4,0]。

填充:bool,可选
理解:这个参数的意思是说,默认参数是’zero’,就是说为了能够让数据的第一个点能够在傅里叶变换时能够处在第一个窗的中间位置,会在第一个位置的前方补0,对称的也会在末尾处相应位置补上0。如果nperseg参数选择等于原始数据的长度,那将会在开始和结尾分别不上约等于0.5倍原始数据长度的0参数,所以才会出现你选择nperseg参数选择等于原始数据的长度,原理上来说应该只有针对一个时间的返回值,但是实际上还是会出现3个时间点返回值,这样就可以解释的通了。经过实际验证,当选择默认值时最中间一列的数值和boundary选择None时的结果一致,也就是说当boundary选择None,且nperseg参数选择等于原始数据的长度时即相当于没有进行窗的滑动,只针对本体做了傅里叶变换。

3.2 输出参数

Sxx:表示最终输出的频域分析的结果,
每一行代表在某一频率下所有时间窗的结果,
每一列对应的是某一个时间窗下的所有频率的结果。
f:表示输出对应的的频率。对应Sxx的每一行。
t:表示输出对应的时间段。对应Sxx的每一列。

猜你喜欢

转载自blog.csdn.net/chumingqian/article/details/125275303