我想计算一个功率频谱,其中频率以对数间隔分布。
在韦尔奇(Welch)的方法中,要在所得功率谱的频率分辨率和平均值(即结果误差)之间进行权衡。我希望这种权衡是动态的,即对低频点进行较少的平均值计算,以便在低频下获得更好的分辨率。
有标准的方法吗?
我想一种方法是首先pwelch
以非常高的分辨率(较低的平均数)进行处理,然后使用对数合并重新合并结果频谱。
我想计算一个功率频谱,其中频率以对数间隔分布。
在韦尔奇(Welch)的方法中,要在所得功率谱的频率分辨率和平均值(即结果误差)之间进行权衡。我希望这种权衡是动态的,即对低频点进行较少的平均值计算,以便在低频下获得更好的分辨率。
有标准的方法吗?
我想一种方法是首先pwelch
以非常高的分辨率(较低的平均数)进行处理,然后使用对数合并重新合并结果频谱。
Answers:
我找到了一篇论文,直接解决了这个问题:
本文的前几幅图很好地说明了该算法解决的问题,并且参考文献中包含其他方法的有用参考书目(恒定Q变换,回火傅立叶变换,调查文章等)。
他们的方法不是重新组合现有基于FFT的功率谱估计的输出,而是仅在感兴趣的(对数间隔)频率上计算离散傅立叶变换。对于要估计的每个频率,它们基本上实现了韦尔奇算法,但是具有为每个频率专门选择的变换长度(因此还有平均次数)。每个频点的计算使用整个时间序列,但分段方式不同。结果具有令人满意的性质,即分辨率(箱宽)是频率的平滑函数,并且可以将结果校准为功率谱密度或功率谱。
Matlab实现在这里:https : //github.com/tobin/lpsd
披露:本文的作者与我位于同一机构。