PSD特征提取EEG并可视化代码
时间: 2023-07-10 07:32:56 浏览: 239
以下是使用Python进行PSD特征提取和可视化的示例代码:
```
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 加载EEG数据
data = np.loadtxt('EEG_data.txt')
# 定义采样率和频段范围
fs = 250 # 采样率
f_range = [0.5, 30] # 需要分析的频段范围
# 对每个通道进行PSD特征提取
psd = []
for i in range(data.shape[1]):
f, p = signal.welch(data[:, i], fs=fs, nperseg=fs*2)
# 取出指定频段的PSD
f_mask = np.logical_and(f >= f_range[0], f <= f_range[1])
psd.append(p[f_mask])
# 将PSD特征提取结果转换为numpy数组
psd = np.array(psd)
# 可视化展示
fig, ax = plt.subplots(figsize=(10, 6))
ax.imshow(psd.T, cmap='jet', origin='lower', aspect='auto', interpolation='nearest')
ax.set_xlabel('Channels')
ax.set_ylabel('Frequency Bands (Hz)')
plt.show()
```
这段代码使用了SciPy库中的`signal.welch`函数进行PSD特征提取,将提取结果可视化展示出来。需要注意的是,这段代码仅仅是一个简单的示例,如果您需要进行更深入的分析和处理,可能需要使用更为复杂的方法和技术。
阅读全文