16接口脑电信号按时域提取特征用于分类的python代码
时间: 2023-08-15 07:06:02 浏览: 159
以下是一个示例的Python代码,用于提取脑电信号的时域特征并用于分类:
```python
import numpy as np
from scipy.signal import butter, lfilter
from scipy.stats import kurtosis, skew
def extract_time_domain_features(signal):
# 平均值
mean = np.mean(signal)
# 方差
variance = np.var(signal)
# 峰度
kurt = kurtosis(signal)
# 偏度
skewness = skew(signal)
# 返回提取的特征向量
features = [mean, variance, kurt, skewness]
return features
# 示例使用
# 假设有一个脑电信号数据,存储在一个一维数组中
eeg_signal = np.array([0.1, 0.2, 0.3, 0.4, 0.5])
# 使用带通滤波器滤波(可根据需要自定义滤波器参数)
lowcut = 0.5 # 低频截止频率
highcut = 30.0 # 高频截止频率
fs = 100.0 # 采样率
# 滤波器设计
nyquist = 0.5 * fs
low = lowcut / nyquist
high = highcut / nyquist
b, a = butter(4, [low, high], btype='band')
filtered_signal = lfilter(b, a, eeg_signal)
# 提取时域特征
features = extract_time_domain_features(filtered_signal)
# 打印特征向量
print(features)
```
请注意,此代码仅提供了一种常见的方法来提取脑电信号的时域特征。根据具体的需求和数据类型,您可能需要根据情况进行调整和修改。
阅读全文