在做脑波数据分析的时候,免不了需要进行频率域的数据分析,功率谱密度是常用的一种分析方法,在MNE库中有psd算法的实现。开始使用之前推荐个博客,https://zhuanlan.zhihu.com/p/49328001 讲解了什么是PSD。有一点需要注意,PSD通常根据频率分辨率做归一化也就是其分母为采样点数。
本文是以BCI竞赛的数据为例,文章中的数据和代码如下:
这种方法有一个问题就是只有绘制的图像,不能针对相关的数据进行后续处理。实际上mne中还有其他一些细节计算的方法,比如:mne.time_frequency.psd_welch(),mne.time_frequency.psd_multitaper() 等,其在官方的实例中均有体现。这里以用psd_multitaper计算不同频率区间的累加和为例:主要的目的是计算不同事件在不同频率区间的能量和,这里只分析一个通道的结果。
import mne
import numpy as np
import matplotlib.pyplot as plt
from mne.time_frequency import psd_multitaper
mne.set_log_level(False)
# 设置分析频率的区间范围,这里有小数主要是为了和后面小波变换方法做对比(暂时未实现)。
iter_freqs = [
{'name': 'Delta', 'fmin': 0, 'fmax': 3.75},
{'name': 'Theta', 'fmin&#