从EOG脑电数据 区分不同频率脑电波给出python代码
以下是使用Python代码从EOG脑电数据中区分不同频率脑电波的示例:
import numpy as np
import matplotlib.pyplot as plt
# 生成示例EOG脑电数据
sampling_rate = 1000 # 采样率为1000Hz
duration = 2 # 数据持续时间为2秒
t = np.linspace(0, duration, int(sampling_rate*duration), endpoint=False)
eog_data = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*20*t) + np.sin(2*np.pi*30*t) # 含有10Hz、20Hz和30Hz的脑电波
# 进行频谱分析
fft = np.fft.fft(eog_data) # 对数据进行傅里叶变换
freqs = np.fft.fftfreq(len(eog_data), 1/sampling_rate) # 获取频率轴上的频率值
# 绘制频谱图
plt.plot(freqs[:len(freqs)//2], np.abs(fft)[:len(freqs)//2]) # 只绘制正频率部分
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power')
plt.title('EOG Spectrum')
plt.show()
在这个示例中,我们首先生成了一个包含三个频率分别为10Hz、20Hz和30Hz的EOG脑电数据。然后,使用np.fft.fft()函数对这些数据进行傅里叶变换,得到频域上的复数结果。最后,使用np.fft.fftfreq()函数获取对应的频率值,并将频率和幅度绘制为频谱图。
请注意,这只是一个简单的示例,实际应用中可能需要对数据进行预处理、滤波等操作,以及更详细的频谱分析
原文地址: https://www.cveoy.top/t/topic/hZcK 著作权归作者所有。请勿转载和采集!