韦尔奇的方法一直是我计算平均采样时间序列功率谱密度(PSD)的首选算法。我注意到还有许多其他计算PSD的方法。例如,在Matlab中,我看到:


使用Burg方法的PSD
使用协方差方法的PSD
使用周期图的PSD
使用改进的协方差方法的PSD
使用多锥度方法(MTM)的PSD
使用韦尔奇方法的PSD
使用Yule-Walker AR方法的PSD
使用短时傅立叶变换的频谱图
频谱估计

这些各种方法的优点是什么?作为一个实际问题,我什么时候想使用Welch的方法以外的方法?

评论

甚至不是信号处理的新手,但猜测{this}也可能与此有关。我只是用谷歌搜索。

实际上,您不是“计算” PSD,而是“估计” PSD。有很大的不同。

该链接包含上述某些技术的示例:mathworks.com/help/signal/ug/nonparametric-methods.html

#1 楼

我对Multitaper方法不熟悉。就是说,您已经问了很多问题。在攻读MSEE学位时,我完成了涵盖PSD估计的整个课程。该课程涵盖了您列出的所有内容(Multitaper方法除外)以及子空间方法。即使仅涵盖一些主要思想,这些思想也有许多方法。

对于初学者,功率谱密度估计有两种主要方法:非参数方法和参数方法。时间。与参数模型相比,它们通常具有较少的计算复杂性。该组中的方法进一步分为两类:周期图和相关图。周期图有时也称为直接方法,因为它们会导致数据的直接转换。这些包括样品光谱,Bartlett方法,Welch方法和Daniell周期图。相关图有时被称为间接方法,因为它们利用了Wiener-Khinchin定理。因此,这些方法基于对自相关序列的某种估计进行傅立叶变换。由于与较高阶滞后相关的大量方差(由于相关中使用了少量数据样本),因此使用了窗口。 Blackman-Tukey方法概括了相关图方法。参数方法通常在计算功率谱密度估计值之前采用某种信号模型。因此,假设提前知道信号的一些知识。参数化方法主要有两类:自回归方法和子空间方法。

自回归方法假定可以将信号建模为由白噪声序列驱动的自回归滤波器(例如IIR滤波器)的输出。因此,所有这些方法都试图求解IIR系数,从而容易地计算出最终的功率谱密度。但是,必须确定模型顺序(或抽头数)。如果模型阶数太小,频谱将高度平滑,并且缺乏分辨率。如果模型阶数太高,则来自大量极点的虚假峰开始出现。如果可以通过模型'p'的AR处理对信号进行建模,则信号驱动的> = p阶滤波器的输出将产生白噪声。有数百种用于模型订单选择的指标。请注意,这些方法对于高至中等SNR窄带信号非常有用。前者是因为该模型在很大的噪声下崩溃了,因此可以更好地建模为ARMA流程。后者归因于所得模型的傅立叶变换中来自极点的所得频谱的脉冲性质。 AR方法基于线性预测,这是用来在已知值之外推断信号的方法。结果,它们没有旁瓣,也不需要开窗。

子空间方法将信号分解为信号子空间和噪声子空间。利用两个子空间之间的正交性可以形成伪谱,在伪谱中窄带分量上可能出现大的峰值。这些方法在低SNR环境中效果很好,但是在计算上非常昂贵。它们可以分为两类:噪声子空间方法和信号子空间方法。这两种类别都可以通过以下两种方式之一使用:自相关矩阵的特征值分解或数据矩阵的奇异值分解。

噪声子空间方法尝试求解1个或多个噪声子空间特征向量。然后,噪声子空间和信号子空间之间的正交性在所得频谱估计的分母中产生零,从而导致真实信号分量处出现较大的值或尖峰。必须确定/估计离散正弦波的数量或信号子空间的等级,或者提前知道。

信号子空间方法试图在频谱估计之前丢弃噪声子空间,从而改善了SNR。降秩自相关矩阵仅由确定为属于信号子空间的特征向量组成(再次是模型阶数问题),并且降阶秩矩阵可用于其他任何一种方法。现在,我将尝试快速介绍您的列表:


使用Burg方法的PSD:Burg方法利用Levinson递归与Yule-Walker方法略有不同,因为它通过使前向和后向线性预测误差的平均值最小来估计反射系数。这导致前向和后向线性预测误差的部分相关系数的谐波均值。像所有自回归方法一样,它产生非常高分辨率的估计值,因为它使用线性预测将信号外推到其已知数据记录之外。这有效地消除了所有旁瓣现象。对于短数据记录,它优于YW方法,并且由于加权因子被划分,因此消除了在利用有偏和无偏自相关估计之间的权衡。一个缺点是它可能表现出谱线分裂。此外,它还具有所有AR方法都存在的相同问题。也就是说,低到中等的SNR严重降低了性能,因为它不再由AR过程而是由ARMA过程正确地建模。很少使用ARMA方法,因为它们通常会导致关于移动平均参数的非线性方程组。
使用协方差方法的PSD:协方差方法是最小二乘法的一种特殊情况,其中窗口部分线性预测误差的一部分被丢弃。这具有优于Burg方法的性能,但是与YW方法不同,要求解的矩阵逆一般不是Hermitian Toeplitz,而是两个Toeplitz矩阵的乘积。因此,Levinson递归不能用于求解系数。另外,不能保证通过这种方法生成的滤波器是稳定的。但是,对于光谱估计而言,这是一件好事,会导致正弦波含量的峰值很大。
使用周期图的PSD:这是最差的估计值之一,是Welch方法的特例,它具有单个段,矩形或三角形窗口(取决于使用的是自相关估计,有偏或无偏),并且没有重叠。但是,它是计算上“最便宜的”之一。使用改进的协方差方法的PSD:在协方差方法和Burg方法上均得到了改进。可以将其与Burg方法进行比较,其中Burg方法仅相对于反射系数使平均向前/向后线性预测误差最小,而MC方法相对于所有AR系数将其最小化。此外,它不会受到谱线分裂的影响,并且比以前列出的方法失真小得多。另外,尽管不能保证稳定的IIR滤波器,但其晶格滤波器实现是稳定的。与其他两种方法相比,它对计算的要求更高。
使用Welch方法的PSD:Welch方法通过解决真正的PSD公式中缺少整体平均的问题,改进了周期图。它通过使用重叠和窗口化来概括Barlett的方法,以为伪集合平均提供更多的PSD“样本”。根据应用,它可以是一种便宜,有效的方法。但是,如果您遇到正弦波间隔很近的情况,则AR方法可能更适合。但是,它不需要像AR方法那样估算模型顺序,因此,如果对先验频谱知之甚少,那么这可能是一个很好的起点。
使用Yule-Walker AR方法的PSD:这是特例最小二乘法的方法,其中利用了完整的误差残差。与协方差方法相比,这会导致性能下降,但可以使用Levinson递归有效地解决。也称为自相关方法。
使用短时傅立叶变换的频谱图:现在您正在跨入另一个域。这用于时变光谱。即,其频谱随时间变化。这打开了另一整个蠕虫罐,并且时频分析的方法与您列出的方法一样多。这肯定是最便宜的,这就是为什么它如此频繁使用的原因。光谱估计:这不是一种方法,而是其余文章的统称。有时,周期图被称为“样本频谱”或“舒斯特周期图”,前者可能就是您所指的。 MUSIC和Pisarenko谐波分解等方法。这些将信号分解为信号和噪声子空间,并利用噪声子空间和信号子空间特征向量之间的正交性产生伪频谱。与AR方法非常相似,您可能无法获得“真实的” PSD估计值,因为最有可能功率不守恒,并且频谱分量之间的幅度是相对的。但是,这完全取决于您的应用程序。

干杯

评论


$ \ begingroup $
感谢您的出色回答!您能否添加一些有关参数方法和非参数方法之间差异的介绍性注释?而且,将密切相关或彼此衍生的方法进行分组可能更清楚,即周期图⊆Bartlett方法⊆Welch方法。
$ \ endgroup $
– nibot
2012年4月23日在9:20

$ \ begingroup $
当然。我刚刚添加了简介和一些类别。
$ \ endgroup $
–布莱恩(Bryan)
2012年4月23日14:31在

$ \ begingroup $
欢迎。感谢您提供如此详细的答案。
$ \ endgroup $
–Jason R
2012年4月24日在12:51

$ \ begingroup $
如果您可以更详细地了解优点/缺点,而不是如何计算每个优点/缺点,则可以使我们更好地了解如何为特定应用选择一个。
$ \ endgroup $
–网络人
2012年10月16日14:14

$ \ begingroup $
如果您阅读了回复,我已经做到了。而且,对于实际的实现,如何计算每个都是很大的优点/缺点。其中一些在计算上非常有效,但效果却不佳。它们中的一些性能很好,但是非常复杂,很难在低功耗目标上实现。
$ \ endgroup $
–布莱恩(Bryan)
2012年10月27日15:53

#2 楼

我想添加到第一篇文章未涵盖的唯一类别中。多锥度法是类似于周期图法的用于计算功率谱的非参数法。在这种方法中,通过对数据加窗并计算傅立叶变换(取结果的大小并对其求平方)来计算功率谱。多锥方法平均每个周期用不同窗口计算的预定周期图数。此方法之所以有效,是因为所选窗口具有两个数学属性。首先,窗口是正交的。这意味着每个周期图都是不相关的,因此对多个周期图进行平均得出的估计值方差比仅使用一个锥度要小。其次,对于固定的信号长度,窗口在频域中具有最佳的集中度。这意味着这些窗口在泄漏方面表现最佳。

在matlab中,可以使用函数dpss调用窗口函数。除了使用最佳窗口外,还推导了一种算法,根据它们会增加多少功率谱估计量的泄漏,对不同的周期图进行加权。该算法产生一组数据自适应权重。在Matlab中,可以通过创建一个带有'adaptive'作为combind选项的Spectrum.mtm对象来获得具有一组数据自适应权重的频谱估计。

关于非参数方法,MT该方法可以说是估计固定时间序列功率谱的最佳方法。

评论


$ \ begingroup $
查看帖子的最后一句话,您总是希望对Welch方法使用MT计算。
$ \ endgroup $
–ncRubert
2012年10月15日下午6:05