基于STM32的脑电信号采集系统设计:从模拟前端到数字滤波

发布时间:2026/8/19 6:01:17
基于STM32的脑电信号采集系统设计:从模拟前端到数字滤波 1. 项目概述当STM32遇上脑电波最近在捣鼓一些生物信号采集的项目发现脑电图EEG这个领域对硬件的要求其实挺有意思的。传统的EEG设备要么是大型的医疗仪器要么是价格不菲的科研套件对于想入门做点小实验、验证想法的开发者或者学生来说门槛不低。于是我就琢磨能不能用我们手边更常见、更便宜的硬件比如一块STM32开发板来搭建一个简易的、可用的EEG信号采集前端呢这个想法催生了“MicroBCI”这个项目——一个基于STM32 NUCLEO-WB55开发板的微型脑机接口原型。EEG信号本质上是大脑皮层神经元群电活动在头皮表面的综合反映。它的幅度非常微弱通常在微伏μV级别并且淹没在各种强大的噪声中比如50/60Hz的工频干扰、肌电EMG伪迹、眼电EOG伪迹等。因此一个EEG采集系统的核心挑战在于如何从噪声的海洋里捞出那一点点有用的“脑电信号”。这需要前端放大器具备极高的输入阻抗、极高的共模抑制比CMRR、极低的噪声以及合理的带宽通常为0.5Hz到100Hz左右。STM32 NUCLEO-WB55这块板子吸引我的地方在于它集成了一个STM32WB55RG微控制器和一颗STM32L552ZE。当然对于我们这个项目核心是前者。STM32WB55RG拥有丰富的模拟和数字外设尤其是它的ADC和运算放大器为我们构建信号链提供了可能。虽然它内置的运放和ADC性能远不及专业的生物电放大器芯片如TI的ADS1299系列但正是这种“用通用器件挑战专业领域”的约束让项目充满了实践和学习的乐趣。我们不是要做出医疗级设备而是要理解EEG采集的每一个环节并用手头的工具实现一个能观察到α波闭眼放松时出现的8-13Hz节律等基本节律的原型系统。这个项目适合对嵌入式系统、模拟电路和信号处理感兴趣的开发者。你将亲自动手从电极连接、模拟前端设计、ADC采样一直做到简单的数字滤波和数据显示完整地走通一个生物信号采集系统的全链路。你会发现原来我们的大脑活动真的可以通过自己搭建的电路“看”到。2. 系统整体设计与核心思路拆解2.1 为什么选择NUCLEO-WB55在开始画电路图之前得先说说选型。市面上STM32开发板众多为什么偏偏是NUCLEO-WB55这主要基于它几个独特的优势恰好契合了我们MicroBCI项目的需求。首先双核架构与低功耗特性。STM32WB55RG包含一个Cortex-M4应用内核和一个Cortex-M0无线内核。对于EEG采集M4内核强大的计算能力足以运行实时数字滤波算法如IIR滤波器甚至进行简单的特征提取。而M0内核可以独立处理蓝牙BLE通信这意味着我们可以将采集到的脑电数据无线传输到PC或手机端进行显示和分析摆脱线缆的束缚这本身就是脑机接口一个很重要的方向——便携与无线化。同时STM32WB系列优秀的低功耗特性对于未来设计电池供电的可穿戴式原型至关重要。其次内置的模拟资源。STM32WB55RG包含了最多4个运算放大器OPAMP和多个12位ADC。虽然这些运放不是精密仪放但其参数如增益带宽积、输入失调电压对于放大微伏级信号来说确实捉襟见肘。但我们的设计思路不是“硬刚”而是“巧用”。我们可以利用多级放大的思想第一级使用外部超低噪声、高输入阻抗的JFET或CMOS运放构成仪表放大器完成初始的、高质量的放大和共模抑制STM32内置的运放则可以作为第二级增益级或滤波电路的一部分充分利用芯片资源简化外部电路。最后生态与成本。NUCLEO系列开发板价格亲民生态完善有丰富的HAL库和CubeMX配置工具支持能极大降低开发门槛。基于这些考虑NUCLEO-WB55成为了一个平衡性能、功能、学习成本和未来扩展性的不错起点。2.2 MicroBCI系统架构总览我们的MicroBCI系统可以分为三个主要部分模拟前端AFE、数字处理核心和数据输出接口。整个信号流的逻辑是这样的信号拾取通过贴在头皮上的电极通常是Ag/AgCl湿电极拾取微弱的差分脑电信号比如Cz和Mastoid参考点之间的电压差。模拟调理前置放大与保护信号首先进入一个高输入阻抗、高CMRR的仪表放大器INA。这一级非常关键它要抑制共模干扰如工频噪声并对微弱的差分信号进行初步放大例如增益G1100。输入端通常需要加入保护电路和射频抑制电路。高通滤波消除因电极-皮肤接触产生的直流偏移电压和极低频漂移。一个简单的一阶RC高通滤波器截止频率设在0.5Hz左右。后级放大与低通滤波将信号进一步放大到STM32 ADC的最佳输入范围例如0-3.3V。同时一个抗混叠低通滤波器截止频率~100Hz必须在此级实现以限制信号带宽防止高频噪声在ADC采样时混叠到有效频带内。右腿驱动RLD这是一个提升系统共模抑制能力的关键技术。通过一个反馈放大器将共模噪声的反相信号注入到被试者的右腿或身体其他参考点主动抵消掉从身体引入的共模干扰可以将系统的整体CMRR再提升20-40dB。数字化与处理STM32的ADC以一定的采样率如250Hz或500Hz对调理后的模拟信号进行采样。采样后的数字信号首先进行数字滤波如50Hz陷波去除工频干扰带通滤波提取特定频段然后可以通过串口UART或有线传输或者通过内置的BLE协议栈无线发送出去。数据可视化与分析在PC端例如使用Python的PyQtGraph或Matplotlib或手机端例如使用MIT App Inventor或React Native开发的App接收数据并进行实时绘图、存储和简单的频谱分析FFT。这个架构中模拟前端的设计是成败的关键也是本项目的难点和精华所在。3. 硬件电路设计与核心细节解析3.1 仪表放大器信号链的守门员仪表放大器INA是我们的第一道也是最重要的一道防线。它的核心任务是放大微弱的差分信号同时强力抑制出现在两个输入端的相同噪声共模信号。注意绝对不要试图用STM32内置的运放直接作为第一级放大它们的输入阻抗不够高会衰减信号噪声系数大输入失调电压也高直接连接电极会导致信号被淹没。这里我选择使用三运放仪表放大器结构并选用合适的低噪声、低偏置电流运放。例如第一级的两个运放可以选用TI的OPA2333CMOS超低偏置电流高输入阻抗第二级差分运放可以选用OPA2333或类似型号。设计要点与计算增益设置三运放INA的差分增益公式为G_diff (1 2R1/Rg) * (R3/R2)。通常我们将第一级增益设置得较高以压制后级噪声第二级增益为1即R3R2。假设我们希望第一级增益为100选择R110kΩ则根据公式100 1 2*10k/Rg可以解出Rg ≈ 202Ω。我们可以使用一个200Ω的固定电阻和一个100Ω的可调电位器串联用于微调增益和平衡。共模抑制比CMRRINA的CMRR主要取决于四个匹配电阻R1和R2的匹配精度。务必使用0.1%或更高精度的金属膜电阻。电阻的失配会直接导致共模信号被转换成差模信号从而污染输出。CMRR的计算公式约为CMRR (dB) ≈ 20 * log10(G_diff / (ΔR/R))其中ΔR/R是电阻的相对误差。如果电阻匹配度为0.1%那么理论CMRR约为60dB这对于EEG来说还不够因此我们还需要右腿驱动电路来辅助提升。输入保护与滤波在每个输入端到地之间需要并联一个高值电阻例如10MΩ为输入偏置电流提供通路。同时串联一个小的电阻如1kΩ并并联一个TVS二极管或背对背稳压管用于防止静电放电ESD损坏昂贵的运放。在输入端还应加入一个小电容如10pF到地构成一阶低通滤波滤除射频干扰。3.2 滤波电路与抗混叠设计EEG信号的有效频率范围很窄因此滤波电路的设计目标明确让0.5-100Hz的信号无失真通过同时尽可能抑制带外噪声。高通滤波HPF用于去除直流偏移和超低频漂移。一个简单的一阶RC高通滤波器足矣。截止频率f_c 1/(2πRC)。设f_c0.5Hz若取C1uF则R1/(2π*0.5*1e-6) ≈ 318kΩ。可以使用330kΩ的标准电阻。这部分电路放在第一级放大之后第二级放大之前。低通滤波LPF与抗混叠这是为ADC采样服务的关键电路。根据奈奎斯特定理采样频率必须大于信号最高频率的两倍。我们设定信号最高频率为100Hz那么采样率至少需要200Hz。为了留有余地并更好地抑制混叠我们通常将采样率设为信号最高频率的5-10倍即500Hz到1kHz。同时需要在ADC之前设置一个抗混叠滤波器其截止频率应略高于信号最高频率如120Hz但远低于采样频率的一半奈奎斯特频率以锐利地衰减高于奈奎斯特频率的噪声。 一个二阶萨伦-凯Sallen-Key低通滤波器是常见选择。其设计比一阶滤波器更复杂但滚降特性更好。我们可以使用在线滤波器设计工具或根据公式计算电阻电容值。例如设计一个截止频率为120Hz的巴特沃斯二阶低通滤波器。巴特沃斯滤波器的参数表提供了归一化值。选择C1C2 0.01uF根据公式计算R1和R2。最终这个滤波器应该放在信号链的最后一级紧挨着ADC的输入引脚。3.3 右腿驱动RLD电路原理与实现右腿驱动是EEG/ECG采集中的一项经典技术用于主动提升系统的共模抑制能力。其原理并不复杂仪表放大器会输出一个与其输入共模电压成比例的共模信号。我们通过一个反相放大器增益为 -1 或更小将这个共模信号放大并反馈到被试者的身体通常通过一个电极连接到右小腿。这个反馈信号与从电源和环境耦合到身体的原始共模噪声相位相反从而在身体这个“节点”上相互抵消。电路实现从仪表放大器的参考端如果有或者通过两个等值电阻从INA的两个输出端取中点得到共模信号。将该信号送入一个由运放构成的反相比例放大器增益设为-G_rld通常G_rld在0.1到1之间不宜过大以防振荡。放大器的输出通过一个较大的限流电阻例如100kΩ-1MΩ连接到“右腿驱动”电极。这个电阻至关重要它是安全隔离电阻即使电路出现故障也能将注入身体的电流限制在绝对安全的微安级别。实操心得RLD电路的效果立竿见影。在未开启RLD时示波器上可能看到强烈的50Hz工频干扰。开启RLD并适当调整反馈增益后50Hz干扰的幅度通常会显著下降。反馈增益G_rld需要仔细调整。增益太小抵消效果不足增益太大可能引起环路振荡反而引入新的噪声。最佳点通常是通过观察输出信号中50Hz成分最小来确定的。安全第一RLD电极与身体的连接必须可靠并且前端电路必须由电池或具有医疗级隔离的电源供电确保电气安全。3.4 STM32 ADC配置与DMA传输模拟信号经过调理后送入STM32的ADC进行数字化。这里我们追求稳定和高效的采样。配置要点ADC分辨率与对齐STM32WB55的ADC是12位的。对于动态范围大约为几百微伏到几毫伏的EEG信号经过前端放大到0-3.3V后12位分辨率LSB约为0.8mV可能略显不足但作为原型验证完全可以接受。ADC结果设置为右对齐。采样率设置使用定时器TIM触发ADC采样是最佳实践这样可以获得精确且稳定的采样间隔。假设系统时钟为64MHz我们使用TIM2产生一个更新事件UEV。若需要500Hz采样率则采样周期为2ms。定时器的预分频器PSC和自动重载值ARR需要配合计算。例如设置定时器时钟为1MHzPSC63则每个计数为1us。要产生2ms的周期ARR应设置为2000-1。DMA传输为了不占用CPU资源并确保不丢失采样点必须使用DMA将ADC转换结果直接搬运到内存中的缓冲区Buffer。配置DMA为循环模式Circular从ADC数据寄存器DR到数组。这样ADC一旦转换完成DMA就自动搬运数据缓冲区满了之后自动从头开始形成一个连续的数据流。双缓冲机制这是实现实时处理的关键技巧。我们分配两个大小相同的缓冲区BufferA和BufferB。DMA正在向BufferA写数据时CPU可以处理已经写满的BufferB中的数据如进行数字滤波。当BufferA写满DMA会自动切换到BufferB通过DMA的双缓冲模式或半传输/传输完成中断手动切换而CPU则开始处理BufferA。如此交替实现无缝实时处理。CubeMX配置步骤简述在Analog中启用ADC1选择一个通道如IN1。在Parameter Settings中设置Resolution为12位Scan Conversion Mode为Disable单通道Continuous Conversion Mode为Disable由外部触发DMA Continuous Requests为Enable。在DMA Settings中添加DMA请求模式设为Circular数据宽度都为Half Word。在Timers中配置一个定时器如TIM2设置其时钟源和PSC、ARR值以产生所需频率的触发输出。最后在System CoreNVIC中使能ADC和DMA的中断如果需要。4. 嵌入式软件与信号处理实现4.1 基于CMSIS-DSP的实时数字滤波ADC采集到的是包含噪声的原始数据。我们需要在STM32上实现实时数字滤波提取有用的EEG频段。ARM的CMSIS-DSP库为Cortex-M系列提供了高度优化的数字信号处理函数是我们不二的选择。滤波策略陷波滤波器Notch Filter首要任务是去除强大的50Hz或60Hz取决于地区工频干扰。一个二阶IIR陷波滤波器效果很好。其传递函数需要根据陷波频率和带宽来设计。我们可以使用MATLAB、PythonSciPy的iirnotch函数来设计滤波器系数然后将系数b0, b1, b2, a1, a2应用到CMSIS-DSP的arm_biquad_cascade_df1_f32函数中。带通滤波器Bandpass Filter用于提取我们感兴趣的EEG节律如Delta波0.5-4Hz、Theta波4-8Hz、Alpha波8-13Hz、Beta波13-30Hz。同样可以使用一个带宽较宽的带通滤波器如0.5-40Hz先滤出主要成分或者分别设计多个带通滤波器进行并行分析。IIR滤波器如巴特沃斯、切比雪夫因其计算效率高而常用于嵌入式实时处理。CMSIS-DSP使用流程启用库在CubeMX的Software PacksSTMicroelectronics.X-CUBE-ALGOBUILD中启用CMSIS DSP或者手动在Keil/IAR中添加库文件和头文件路径。定义滤波器实例和状态数组#include “arm_math.h” #define NUM_SAMPLES 256 // 每次处理的点数 static float32_t inputBuffer[NUM_SAMPLES]; static float32_t outputBuffer[NUM_SAMPLES]; static float32_t notchState[4]; // 二阶IIR需要4个状态变量 arm_biquad_casd_df1_inst_f32 notchFilter;初始化和应用滤波器// 假设已经计算好系数 float32_t notchCoeffs[5] {b0, b1, b2, a1, a2}; arm_biquad_cascade_df1_init_f32(¬chFilter, 1, notchCoeffs, notchState); // 在DMA缓冲区满的中断里或主循环中处理数据 arm_biquad_cascade_df1_f32(¬chFilter, inputBuffer, outputBuffer, NUM_SAMPLES);处理后的数据outputBuffer中就是经过陷波滤波后的数据可以继续送入带通滤波器链或者直接发送出去。实操心得IIR滤波器的相位是非线性的可能会扭曲信号的时域形状。如果关心事件相关电位ERP的潜伏期可能需要使用线性相位的FIR滤波器但FIR的计算量更大。对于观察节律性活动如Alpha波IIR滤波器完全够用。务必注意滤波器的稳定性确保极点都在单位圆内。4.2 BLE数据透传与协议设计利用STM32WB55的双核优势我们可以让M0内核专门负责BLE通信实现无线数据传输。ST提供了完整的BLE协议栈STM32_WPAN和丰富的例程。服务与特征设计 我们创建一个自定义的GATT服务Service例如分配一个128位的UUID如12345678-1234-5678-9abc-def012345678。在该服务下定义两个特征CharacteristicEEG数据特征属性为Notify通知。当M4内核有新的滤波后数据准备好时通过进程间通信IPC通知M0内核M0则将数据通过这个特征通知Notify给已连接的中央设备如手机。数据可以打包成固定的格式例如每包包含一个时间戳和若干个采样点。控制命令特征属性为Write。用于从手机端向设备发送控制命令例如开始/停止采样、调整采样率、选择滤波器等。M4与M0的通信IPC STM32WB使用共享内存SRAM2和硬件信号量HSEM来实现双核通信。ST的库STM32_WPAN中提供了TLThread Library和IPC相关的API。基本流程是M4核将数据写入共享内存的一个特定缓冲区。M4核释放一个硬件信号量通知M0核数据已就绪。M0核在后台任务中等待并获取该信号量然后从共享内存读取数据通过BLE发送。M0核处理完后释放信号量。配置与开发使用STM32CubeMX初始化项目时务必选择“STM32WB55RG”并启用“Wireless”下的“BLE”协议栈。在Project Manager中代码生成选项要选择“Copy all used libraries into the project folder”。生成的代码框架会包含两个独立的工程目录一个用于M4STM32_WB55RG_Nucleo一个用于M0STM32_WB55RG_Nucleo_Applications_BLE。我们需要在两个工程中分别编写代码。参考ST提供的BLE_DataThroughput或BLE_p2pServer例程来修改自定义服务和特征并实现IPC数据交换。4.3 上位机软件与数据可视化一个直观的上位机软件能让我们的EEG信号“活”起来。这里介绍一个使用PythonPyQt5 PyQtGraph快速搭建的方案。核心组件PyQt5用于构建图形用户界面GUI。PyQtGraph一个基于PyQt的强大的科学绘图库性能远超Matplotlib非常适合实时数据流绘图。PySerial用于通过串口接收数据如果使用有线连接。Bleak一个跨平台的Python BLE客户端库用于无线连接如果使用BLE。基本流程连接设备启动软件扫描并连接STM32WB55的BLE设备或选择对应的串口。数据解析根据下位机定义的协议从接收到的字节流中解析出一个个有效的采样点通常是int16或float32类型。实时绘图使用PyQtGraph的PlotWidget。我们将数据点添加到一个“环形缓冲区”例如一个deque或numpy数组并定期例如每收到100个点更新绘图曲线。PyQtGraph的setData()方法效率很高。信号处理与显示可以在上位机进行更复杂的处理比如实时FFT计算并绘制频谱图或者计算不同频段的功率并显示为柱状图。一个简单的PyQtGraph绘图示例import pyqtgraph as pg from pyqtgraph.Qt import QtCore, QtGui import numpy as np app QtGui.QApplication([]) win pg.GraphicsLayoutWidget(showTrue) plot win.addPlot(title“EEG Signal”) curve plot.plot(pen‘y’) data np.zeros(1000) # 环形缓冲区 ptr 0 def update(): global data, ptr, curve # 这里模拟或从串口/BLE获取一个新数据点 new_value new_value np.random.randn() # 替换为真实数据 data[ptr] new_value ptr 1 if ptr data.shape[0]: ptr 0 curve.setData(np.roll(data, -ptr)) # 滚动数据以实现动态效果 timer QtCore.QTimer() timer.timeout.connect(update) timer.start(20) # 每20ms更新一次即50Hz刷新率 QtGui.QApplication.instance().exec_()5. 系统调试、问题排查与优化实录5.1 常见噪声来源与抑制方法调试EEG前端就是一场与噪声的战争。以下是我在实践中遇到的主要噪声及其对策噪声类型表现特征可能原因排查与抑制方法50/60Hz工频干扰在时域波形上表现为稳定的、幅度较大的正弦波在频谱上有一个尖锐的峰。电源线、照明设备、电脑屏幕等的电磁辐射通过空间耦合或电源地线引入。1.启用并优化RLD电路这是最有效的手段。2. 使用电池供电切断工频地环路。3. 将电路板置于金属屏蔽盒中。4. 确保所有信号线使用双绞线或屏蔽线屏蔽层单点接地。5. 在软件中加入数字陷波滤波器。高频噪声/毛刺波形上出现不规则的尖峰。开关电源噪声、数字电路MCU、时钟的串扰、射频干扰。1. 模拟部分和数字部分的电源用磁珠或电感隔离。2. 在运放电源引脚就近放置0.1uF和10uF的退耦电容。3. 优化PCB布局模拟走线远离数字走线、时钟线。4. 在信号路径上加入前述的射频滤波电容10pF级。基线漂移信号的直流电平缓慢变化。电极-皮肤界面不稳定、出汗、身体移动、放大器输入偏置电流变化。1. 确保电极与皮肤接触良好使用导电膏。2. 电路前端加入高通滤波器如0.5Hz。3. 选用低输入偏置电流的运放如CMOS、JFET输入型。肌电EMG伪迹不规则的高频、高幅度爆发信号。面部、颈部、头皮肌肉的收缩。1. 这是生理伪迹难以从硬件完全消除。2. 指导被试者保持放松避免眨眼、咬牙、皱眉。3. 在软件中可通过带通滤波限制在0.5-40Hz削弱其影响。量化噪声与ADC噪声信号上有细密的“台阶”感或本底噪声过高。ADC分辨率不足、ADC参考电压噪声、PCB布局不良导致噪声耦合到ADC输入。1. 确保模拟地AGND干净ADC参考电压引脚VREF用高质量电容滤波。2. 对ADC采样结果进行软件过采样和平均以提高有效分辨率。3. 如果可能使用外部独立基准电压源。5.2 硬件调试步骤与技巧分级调试电源先行不要一次性焊接完所有电路。先焊接电源部分用万用表和示波器检查各路电压是否准确、纹波是否在可接受范围例如模拟电源纹波 1mVpp。静态工作点测试不接输入电极将输入端短路到地通过一个电阻模拟电极阻抗如10kΩ。用万用表测量各级运放的输出端电压。理想情况下它们应该稳定在电源中点如1.65V。如果输出饱和到电源轨检查反馈网络、运放供电、是否存在虚焊。注入测试信号使用函数发生器产生一个频率在EEG范围内如10Hz、幅度很小如100μVpp的正弦波通过一个分压网络例如用1MΩ和100Ω电阻分压将1Vpp信号衰减到100μVpp注入到输入端。用示波器观察各级放大器的输出波形验证增益是否与设计相符波形是否失真。连接人体测试这是最后一步。确保所有安全措施到位电池供电、RLD限流电阻。让被试者安静闭眼坐好观察输出信号。你应该能看到低频的漂移和一些噪声。让被试者反复睁眼、闭眼在闭眼放松时段可能在枕叶区O1, O2电极观察到Alpha节律的幅度增强——在时域上表现为波幅增大、波形更规则在频谱上8-13Hz能量升高。这是一个激动人心的时刻它证明你的系统真的捕捉到了脑电活动5.3 软件调试与性能优化验证ADC采样首先不连接模拟前端将ADC输入引脚通过一个电位器接到3.3V和GND编写一个简单的程序读取ADC值并通过串口打印。旋转电位器观察打印的值是否线性变化。这可以排除ADC配置和DMA传输的基本问题。数据流验证将模拟前端输出的信号可以先用地线信号接入ADC。在STM32程序中将DMA缓冲区中的数据不经任何处理直接通过串口以二进制或文本格式发送到PC。用串口助手接收并保存为文件然后用Python或MATLAB读取并绘图。看看波形是否与示波器上的一致是否有规律的跳变或缺失检查DMA缓冲区管理逻辑。滤波器验证在软件中实现滤波器后可以构造一个测试信号数组如包含50Hz和10Hz的正弦波在MCU上运行滤波算法再将结果发送到PC与理论计算结果或MATLAB的filter函数输出对比确保滤波器系数和实现正确。BLE吞吐量测试STM32WB的BLE吞吐量有限理论最高约80kbps实际受协议开销影响会更低。计算你的数据率采样率 * 通道数 * 每个采样点的字节数。例如500Hz * 1通道 * 4字节(float32) 2kB/s 16kbps这在BLE的能力范围内。如果数据率过高需要考虑降低采样率、减少通道数或使用压缩算法如差分编码。优化CPU使用率使用SysTick或定时器中断来监控CPU使用率。确保在完成所有处理滤波、通信后仍有足够的空闲时间。如果CPU负载过高考虑优化算法将浮点运算改为定点运算CMSIS-DSP也提供定点库、降低滤波器的阶数、或者提高处理数据的块大小减少函数调用开销。这个基于STM32 NUCLEO-WB55的MicroBCI项目从硬件焊接到软件调试每一步都充满了挑战和发现的乐趣。它不仅仅是一个数据采集系统更是一个理解生物电信号特性、模拟电路设计、嵌入式实时系统和无线通信的绝佳实践平台。当你第一次从自己搭建的电路和编写的代码中清晰地看到那随着眼睛开闭而起伏的Alpha节律时所有的努力都变得无比值得。这只是一个起点在此基础上你可以增加更多通道尝试更复杂的信号处理算法如共空间模式CSP用于想象运动分类或者将其集成到一个更小巧的可穿戴设备中探索脑机接口的更多可能性。