今天这篇文章纯情绪化,说说最近做的一个东西;首先是深刻的感受到,其实信号链设计是确定的,不确定的是各种杂散参数和接口问题,也就是说没有办法在设计之初就考虑齐全或者没有办法量化建模的这些。
采集一个单通道的脑电,方便一点的现在就是“TGAM”了,估计不少人用过:

一般我们说的就是这个东西
因为使用方便,接线,连串口就行(这个之后再说):

讲究一点的会设计一个底板

实际上还有一个版本就是单纯的一个芯片
但是现在也不知道去哪里获取这个,感觉只有淘宝这种大出货量的才能搞,而且这个公司居然还在运营,但是是处于一种偷偷摸摸的更新文档的状态。

不清楚
这东西最早期模组设计约在 2009 年 趋于成熟并正式投入商业应用。
成名之战:2009 年,玩具巨头美泰(Mattel)基于该模块推出了著名的 MindFlex 意念玩具;同年,星球大战衍生玩具 Star Wars Force Trainer 面世。这两款产品让 TGAM 一举成名,MindFlex 甚至被《时代》杂志评为“史上100款最佳玩具”之一。
独立终端发布:基于 TGAM 模组,神念科技于 2010–2011 年 推出了风靡创客圈的 MindWave(脑立方)脑电波耳机终端,全面进军消费和教育市场。
后面就没气了,但是现在主要作为原始设备制造商开展业务,与行业合作伙伴、开发商和研究机构合作,将技术部署到他们自己的产品和系统中。

波特率不知道是多少
如果是原版的,我没话可说,但是现在淘宝很多都是修改版的,这个地方不是确定的,而且这个东西的资料实在是太鸡儿少了!什么都没有,这个资料保密程度应该是 FBI 天天在抓人吧?

必要时候拿示波器看

通过算一个 bit 的宽度
知道是 57600 的波特率,比较有意思一点是,如果是 9600 的波特率话,可以发送一些指令来切换波特率,但是就这次有效,下次上电按照硬件跳线。
另外这个引脚是单纯的三电极,还有屏蔽线的接口:

在这里
比较方便的用法是使用耳夹:

一开始使用的是双面的

属于干电极的一种
Tips:原版的芯片,这个电极支持的很好,问题就处在这里,淘宝二次 Layout销售的版本这样的电极,接在上面就一堆噪声!!!

这种带屏蔽线的不得行
不理解,按说这个信号是更加好的。

shield 的作用就是让一些干扰信号和主要信号的电压差最小
这样中间的电容层就不会充电。

emmm,这是这几天做的电极一角
我有一种推测,就是淘宝改版的板子,肯定做了什么影响信号的修改,可能是板级的,一些器件,Layout,甚至是内部一些寄存器。

幅值马上打满
应该是 REF 这个地方的问题,我也不知道为啥,可能是皮肤太油了,有极化电压,有时候使用酒精擦拭皮肤改善一些。(频繁报这个 51 的 PoorSignal)
在 NeuroSky 的应用笔记 NS0304:Definitions and Interpretation of Poor Quality Value,解释 ThinkGear/TGAM 里面的 Poor Quality / Poor Signal 值到底代表什么;如果单纯看解码值会把 PoorSignal 理解成“信号越大越好、越小越差”,但Poor Quality 是一个标志位组合值。

写了一个上位机测试
(当然还有不少毛刺,但是显示 good,这就是好信号,才能解码出注意力这些值)
也就是说,芯片内部会检查 EEG 原始信号的几个质量特征,如果某个特征不合格,就把对应的“故障标志”加到 Poor Quality 数值里。
像:

其中每个 Flag 代表一种信号问题,文档给出的 Poor Quality 标志如下:
标志值 | 含义 | 解释 |
|---|---|---|
25 | Signal Flatness | 信号过平,EEG 成分不足 |
26 | Signal Excessiveness | 信号过强/噪声过大 |
27 | Power Ratio | 频域功率比例异常,常见于周期性环境噪声 |
29 | Off-Head Detection | 检测到设备没有正确佩戴,或者没戴在头上 |
所以,比如:
表示同时触发了:
也就是信号既表现出“有效 EEG 缺失”,又表现出“噪声/运动干扰过强”;也就是我现在报错的原因。
根据文档的四个基础标志,可以列出完整组合:
Poor Quality 值 | 触发的问题 |
|---|---|
0 | 信号质量正常 |
25 | Signal Flatness |
26 | Signal Excessiveness |
27 | Power Ratio |
29 | Off-Head |
51 | 25 + 26 |
52 | 25 + 27 |
53 | 26 + 27 |
54 | 25 + 29 |
55 | 26 + 29 |
56 | 27 + 29 |
78 | 25 + 26 + 27 |
80 | 25 + 26 + 29 |
81 | 25 + 27 + 29 |
82 | 26 + 27 + 29 |
107 | 25 + 26 + 27 + 29 |
200 | 特殊状态:连续 4 秒 Off-Head 后输出 |
这里要注意:200 不是 25、26、27、29 的组合结果,而是 NeuroSky 单独定义的特殊状态;文档明确说,只有在连续 4 秒 off-head 之后,Poor Quality 才会变成 200。
采集到的数据里面是否缺少 EEG 成分;通俗说,就是信号太“平”、太不像真实脑电;可能原因:电极接触不好;前端输入接近悬空;信号被夹死、饱和后失去有效变化;剧烈运动导致前端进入异常状态;电极没有很好贴住皮肤。
这个标志检查的是信号里面是否有过多噪声或过强干扰;常见原因:面部肌电 EMG 太强;眨眼、咬牙、皱眉;头戴设备晃动;电极接触不稳定;线缆或模块受到运动扰动,像是:
信号里东西太多,但很多不是 EEG
现象 | 解释 |
|---|---|
PoorSignal = 0 | 信号质量好,可以信任 eSense |
PoorSignal = 25/26/27/29 | 触发某一类质量问题 |
PoorSignal = 51、52、53 等 | 多种问题叠加 |
PoorSignal 包含 29 | 可能未正确佩戴 |
PoorSignal = 200 | 连续 off-head 后的特殊状态 |
PoorSignal 非 0 时 Attention/Meditation 不更新 | eSense 可能只是冻结值 |
PoorSignal > 50 连续 7 秒 | eSense 重置 |
Off-head 连续 4 秒 | eSense 重置,PoorSignal 输出 200 |
首先我觉得这个现象不奇怪,符合这个价格-消费级 EEG 前端的特性:因为TGAM 本来就是为短线、干电极、三电极接触设计的,没有为长屏蔽线、湿电极、标准 ECG 导联设计的。(但是我不理解的是,为什么之前的电极是成功使用的;然后他们也加了屏蔽线,不知道想干嘛)。从上面图里的波形看,不像正常 ECG,更像是 输入前端在周期性饱和/跳变,或者电极接触、电缆连接、屏蔽连接方式导致的伪迹。尤其 RAW 值大量打到接近 +2000/-2000 附近,像 TGAM 的有效 raw 范围边界附近反复冲击。
可能我把屏蔽层、人体、电极金属片、模块 GND 混在一起,手工处理屏蔽线没有搞干净,有屏边线的线接触到了电极,这个很有可能,下次把胶打上。
还有淘宝上的这类 TGAM 板子很多是拆机/兼容/二次封装,不一定保留了原版 TGAM 的屏蔽布线和机械结构。
Signal Flatness+Signal Excessiveness,上面说了这个,Flatness 表示检测到 EEG 信号缺乏或异常,常见于严重运动导致饱和;Excessiveness 表示噪声过多,常见于 EMG、运动或头戴设备移动。
为什么带屏蔽线反而可能更差?这和“屏蔽线一定更好”的直觉相反,但在这种高阻生物电前端很常见。
屏蔽层可能漏线了;总之电极端的屏蔽层要绝缘,不能碰到人体,也不能碰到电极金属片:比如啊,屏蔽层接到电极金属片,屏蔽层接到人体,屏蔽层接到模块电源 GND,EEG Shield 和 EEG 芯线短路,Reference Shield 和 REF 芯线短路,EEG Shield 和 Reference Shield 混接,这些都会让 TGAM 前端输入阻抗、共模状态和噪声环境发生巨大变化。(你最好没给我在 Layout 的时候在里面把这些东西连起来,调死你爹我了)
干电极的接触阻抗本来就高;屏蔽线一加,信号芯线和屏蔽层之间会形成电容;可以粗略看成:
人体电极信号源
↓
干电极接触阻抗 Ze
↓
TGAM 输入
↓
对屏蔽层/地的寄生电容 Cc
寄生电容的阻抗是:

比如 50 Hz 下:
C = 100 pF → Zc ≈ 31.8 MΩ C = 1 nF → Zc ≈ 3.18 MΩ
干电极接触阻抗可能本来就到 MΩ 量级;如果屏蔽线长、线材电容大、屏蔽层接法不对,这个电容就会明显改变输入状态;尤其当屏蔽层被接到普通 GND,而不是 TGAM 的对应 Shield 节点时,它相当于给 EEG/REF 输入并了一个到地的电容通道;短线时看不明显,长线或接触差时就会很明显。
发现“只有一个连接线,不带屏蔽线”时,等效上就是:电极 → 短导线 → TGAM 输入;虽然抗干扰差一点,但结构简单,寄生路径少。
带屏蔽线后变成:
电极 → 芯线 → TGAM 输入
↘ 电容/漏电/屏蔽层/人体/GND
如果屏蔽层处理不对,就可能比不屏蔽更差;屏蔽线只有在连接方式正确、线长合理、屏蔽层不碰人体、不引入漏电时才有好处。
干电极一动,接触阻抗会突变,捕捉到了电极-皮肤摩擦电,接触阻抗变化,人体工频共模变化,肌电,线缆晃动;这些伪迹幅度可以远大于 EEG/ECG。

这是没有屏蔽的干电极参数,测到的是:
通道 | Rs | Q | D | Xs | 频率 |
|---|---|---|---|---|---|
EEG | 16.128 Ω | 0.045 | 9.999 | 0.72 Ω | 1 kHz |
REF | 16.606 Ω | 0.041 | 9.999 | 0.68 Ω | 1 kHz |
GND | 17.020 Ω | 0.028 | 9.999 | 0.50 Ω | 1 kHz |
三根电极线整体表现非常接近,都是低阻、强电阻性连接。
电桥现在显示的是串联等效模型:

Rs:串联等效电阻 Xs:串联等效电抗 Q :品质因数 D :损耗因数 θ :阻抗相角
对串联模型:

以 EEG 为例:

这和屏幕上的Q = 0.045吻合。
相角:

EEG:

显示:θ = 2.554°,也对得上。
这三个电极连接主要是电阻性;电抗成分很小;不是明显电容性、也不是明显电感性;三根线的电气连接状态比较一致。
大概来说目前三根普通电极线的导通没有大问题;接屏蔽后 PoorSignal 变差,主要问题大概率不是电极线本体;只是屏蔽层的连接方式、寄生电容、漏电路径或机械结构改变了 TGAM 输入状态。
干电极输入阻抗很高,屏蔽线会引入芯线到屏蔽层的电容:

在 50 Hz 时,如果屏蔽电容是 100 pF:

如果是 1 nF:

对于普通电路,几 MΩ 可能很大;但对干电极生物电前端来说,这已经可能影响输入偏置和共模状态;如果屏蔽层接错,比如接到了普通 GND、碰到了电极、碰到了皮肤,就会让 TGAM 的高阻输入被额外加载。
(如果我的手工活没有错,那就是这个板子里面的屏蔽线接的有问题)
因为信号很小,我发现焊点一点要干净,如果不干净也信号不好,其次就是后面热熔胶固定也不能接触焊点,也有问题,我实验下来使用酒精擦皮肤,然后用 3M 的绝缘胶带粘着不错:

就是有点过敏

再看这个理解又深刻不少
接下来会写不少关于电极相关的内容,我发现现在设计东西的成败全在这些不可控的东西上,真是让人头大;另外我看一些博主天天写什么生物电信号,什么有源电极乱七八糟,一看就没测到过信号,这东西干扰多的很,人麻了。。。