基于MATLAB的脑电信号(EEG)自动分类系统
项目介绍
本项目是一个集成的MATLAB工具箱,旨在提供从原始脑电信号(EEG)到分类结论的全自动化处理流程。系统实现了信号预处理、多维度特征提取、机器学习分类以及性能定量分析。该工具适用于医疗辅助诊断、脑机接口(BCI)算法原型设计以及注意力/情绪状态监控等研究场景。
功能特性
- 合成信号仿真:内置EEG仿真引擎,能够模拟生成包含Alpha节律(10Hz)和Beta节律(22Hz)的8通道脑电数据,并添加了50Hz工频干扰和高幅值眼电伪影。
- 鲁棒的预处理工作流:集成了陷波滤波、带通滤波以及基于奇异值分解(SVD)的伪影分离技术,有效提升信号信噪比。
- 混合特征提取架构:同步提取空间域(CSP)、频域(PSD)和时频域(DWT)特征,构建高维特征空间。
- 高级模型训练:采用径向基函数(RBF)核的支持向量机(SVM)进行非线性分类,支持自动化的数据标准化处理。
- 可视化评估报表:自动生成包含时域对比图、功率谱分析图、混淆矩阵及核心性能指标的综合报表。
系统逻辑实现说明
- 模拟数据生成逻辑
系统初始化8通道、采样率250Hz的信号。通过正弦函数模拟不同类别的特征频率:类别1侧重Alpha波,类别2侧重Beta波。同时,利用随机高斯噪声作为背景,并嵌入50Hz工频分量和基于高斯脉冲的眼电伪影。
- 多级预处理流程
- 陷波滤波:使用IIR陷波器精准剔除50Hz电力线干扰。
- 带通滤波:使用4阶巴特沃斯滤波器保留1-40Hz的核心脑电频段。
- 伪影去除:通过SVD分解将多通道信号投影至分量空间,识别并削弱具有最大能量权重的首个分量(模拟眼动伪影),随后重构信号。
- 特征工程细节
- 共空间模式 (CSP):通过求解两类数据的广义特征值问题,设计空间滤波器,使两类信号投影后的方差差异最大化,提取其对数方差作为特征。
- 功率谱密度 (PSD):利用周期图法计算特定频段(Alpha: 8-13Hz, Beta: 14-30Hz)的能量分布。
- 离散小波变换 (DWT):应用Daubechies 4 (db4) 小波进行3层分解,提取不同尺度下的细节系数能量。
- 分类与评估逻辑
- 使用Holdout方法将数据划分为训练集(80%)与测试集(20%)。
- 对组合后的特征向量进行Z-Score标准化处理。
- 训练SVM分类器,并在测试集上预测。计算准确率(Accuracy)、精确度(Precision)和召回率(Recall)。
关键函数与算法分析
- calculate_csp:该算法核心在于计算两类任务的平均协方差矩阵,通过联合对角化找到最佳投影矩阵 $W$。
- extract_freq_features:应用
periodogram 函数对各通道信号进行频谱估计,并按频率区间进行数值积分获取频带功率。 - extract_wavelet_features:通过
wavedec 执行多尺度分解,利用 detcoef 获取细节分量的L2范数,表征不同频率细粒度的突变特征。 - fitcsvm:调用MATLAB机器学习工具箱函数,配置RBF核函数以处理高维特征空间的非线性决策边界。
使用方法
- 确保MATLAB安装了“信号处理工具箱”(Signal Processing Toolbox)和“统计与机器学习工具箱”(Statistics and Machine Learning Toolbox)。
- 在控制台直接运行主程序脚本。
- 系统将通过命令行输出“正在提取特征”、“训练模型”等进度信息。
- 运行结束后,将自动弹出分类性能报表窗口。
系统要求
- 软件环境:MATLAB R2020a 或更高版本。
- 硬件环境:建议内存8GB以上,以支持多通道大规模矩阵运算。