如何使用 python 计算 eeg 信号的功率带?

信息处理 Python 脑电图 scipy
2022-02-22 14:50:36

所以我有一个 eeg 信号(edf 格式),它有 25 个通道和 248832 个条目,采样频率为 512Hz。我必须计算频带: – Delta:0.1-4Hz – Theta:4-8Hz – Alpha:8-12Hz – Sigma:12-16Hz – Beta:16-36Hz – Gamma:>36Hz 并相应地绘制它们。我正在将 Python 与 scipy、numpy 等一起使用,我应该得到这样的结果:

在此处输入图像描述

有没有人有任何要点/想法/教程可以帮助我计算波段然后得到这样的图(可能是直方图)?谢谢!

1个回答

这是一些可以解决您的问题的代码:

from scipy.io import loadmat
import scipy
import numpy as np
from pylab import *
import matplotlib.pyplot as plt

eeg = loadmat("mydata.mat");
eeg1=eeg['eeg1'][0]    
fs = eeg['fs'][0][0]
fft1 = scipy.fft(eeg1)
f = np.linspace (0,fs,len(eeg1), endpoint=False)
plt.figure(1)
plt.plot (f, abs (fft1))
plt.title ('Magnitude spectrum of the signal')
plt.xlabel ('Frequency (Hz)')
show()

您还可以查看此其他链接:

http://forrestbao.blogspot.pt/2009/10/eeg-signal-processing-in-python-and.html