【时间序列】PSD功率谱密度简介-不要告诉别人

功率谱密度(Power Spectral Density, PSD)是一种信号分析方法,分析时间序列时,可利用PSD将时域信号转换到频域,直观的观察变动/方差(Variations)(能量)与频率的函数关系。通俗的说,PSD显示了在哪些频率数据变化/波动/方差大,对于进一步分析可能很有用。

在分析如脑电(EEG),证券市场等场景的时间序列时,ARMA等方法要求数据平稳的要求过于理想化而难以实用,因此衍生出一些其他的方法,比如PSD、时频分析、GARCH和基于混沌的方法等,本文先讨论PSD,其他方法再另文讨论。

如果想了解时序数据中振荡信号的频率和幅度,PSD是非常有用的工具。如:工厂有许多装有电机的机器,可通过检测不必要的振动来了解设备运转的情况。查看PSD的振动频率与能量的关系,来定位问题机器的线索。

即使数据不包含任何纯振荡信号,PSD仍然有用。例如,如果通过查看某冰淇淋店的销售数据的PSD,可粗略估算夏季销售高峰。PSD可在时间序列分析的早期阶段获得对数据的“感觉”,其形式与简单的时间序列图很类似,只要将时间序列视为频率的函数而非时间的函数即可。

脑电波EEG的PSD显示绝大部分能量集中在4HZ以下,说明被测试者处于深度睡眠状态,来源: https://raphaelvallat.com/bandpower.html

首先,把名字的来源解释清楚,什么是Power,Spectral和Density?哪里来的功率?摆的是什么谱?哪里来的密度?难道是上物理课?

电学中,功率(Power) P=UI=UUR=U2RP =UI=U\frac{U}{R}=\frac{U^{2}}{R} ,电阻 RR 是个常数,故 P∝U2P\propto U^{2}(电流也是一样)。时间序列中,可将数据的变动/方差想象成交流电压的正弦波动,变动/方差(电压)的平方即为功率Power,对应PSD的纵轴。

光谱和电磁波谱:可见光的频率只是电磁波的很小一部分

谱(Spectral)就是频率谱,就是将频率从低到高排列,类似与光谱和电磁波谱,对应PSD的横轴。

PSD的单位是每个频率(宽度)的能量(方差),可通过对特定频率范围内的PSD积分来获得该频率范围内的能量。这点与概率密度函数(PDF)非常相似,也就是“密度”的来源。

下面是以EEG的C3和C4电极的时序数据为例,将其转化为PSD。

EEG C3 C4电极的时间序列数据
fig, ax = plt.subplots(1,2, figsize=(16, 10)) F,PSD = signal.welch(df[“C3”], 64, nperseg =20000 ) ax[0].plot(F, PSD) ax[0].set(xlabel=frequency, ylabel=Power,title=C3 PSD) ax[0].grid() F,PSD = signal.welch(df[“C4”], 64, nperseg =20000 ) ax[1].set(xlabel=frequency, ylabel=Power,title=C4 PSD) ax[1].grid() ax[1].plot(F, PSD) plt.show()
EEG C3 C4电极数据 PSD分析

显然,绝大部分能量都聚集在10HZ以下(Delta 波段),这意味着:被测试人员很可能处于NERM睡眠的第3阶段,也称慢波睡眠阶段( slow-wave sleep, SWS)。

功率谱密度(PSD)是用于分析随机振动的最常用工具。隐藏在时间序列图中的共振和谐波在PSD图中原形毕露,因此,生成PSD通常是检查和分析随机波形的第一步。

题图:年度太阳黑子PSD,一个高峰在略小于0.1处(1/11),这对应这太阳黑子爆发的11年周期。来源:Power Spectral Density with NMath – CenterSpace

延伸阅读

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容