Python脑电波绘制
时间: 2024-12-05 14:13:14 浏览: 8
在Python中绘制脑电波(EEG)数据通常涉及以下几个步骤:
1. **数据获取**:首先需要获取脑电波数据,这些数据通常来自脑电波传感器或脑电波采集设备。
2. **数据预处理**:包括滤波、去噪等步骤,以确保数据的质量。
3. **数据可视化**:使用Python的绘图库(如Matplotlib、Seaborn或Plotly)将处理后的数据可视化。
以下是一个简单的示例,展示如何使用Python绘制脑电波数据:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt
# 生成示例脑电波数据
fs = 256 # 采样频率
t = np.arange(0, 10, 1/fs) # 时间向量
freq = 10 # 信号频率
signal = np.sin(2 * np.pi * freq * t) + 0.5 * np.random.normal(size=t.shape)
# 定义带通滤波器
def butter_bandpass(lowcut, highcut, fs, order=5):
nyq = 0.5 * fs
low = lowcut / nyq
high = highcut / nyq
b, a = butter(order, [low, high], btype='band')
return b, a
def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter_bandpass(lowcut, highcut, fs, order=order)
y = filtfilt(b, a, data)
return y
# 应用滤波器
lowcut = 0.5
highcut = 50.0
filtered_signal = butter_bandpass_filter(signal, lowcut, highcut, fs, order=6)
# 绘制原始信号和滤波后的信号
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, signal)
plt.title('原始脑电波信号')
plt.xlabel('时间 [秒]')
plt.ylabel('幅度')
plt.subplot(2, 1, 2)
plt.plot(t, filtered_signal, color='orange')
plt.title('滤波后的脑电波信号')
plt.xlabel('时间 [秒]')
plt.ylabel('幅度')
plt.tight_layout()
plt.show()
```
### 代码说明:
1. **数据生成**:生成一个包含噪声的正弦波作为示例脑电波数据。
2. **滤波器定义**:使用Butterworth滤波器进行带通滤波,滤除不需要的频率成分。
3. **数据可视化**:使用Matplotlib绘制原始信号和滤波后的信号。
阅读全文