信息速览
把找飞机的活儿压缩到每秒十张,人会漏掉多少?这个问题在视觉注意与脑机接口两个领域都有人做,而做它的标准手段叫快速序列视觉呈现:图像一张接一张刷过去,受试者盯住屏幕,在某一刻按下按钮。脑电同步记录,于是每一次「找到」或「没找到」都可以在时间轴上对齐,切出一段波形来看。
英国牛津的一批研究者二〇一三年做了这套实验,八路枕顶电极、2048 赫兹、三档速度。数据二〇一七年才以 Open Data Commons Attribution 许可公开,做成 62 个 EDF 文件。它不大,785 MB,但结构干净:每一张图的出现时刻都写成一条注释,注释里连目标在图上的横向位置都记了下来。
本页把这 62 个文件全部下载、逐字节解析了一遍,核出三件条目页没写、但用之前必须知道的事。**最要紧的一件是:这些「随机」出现的横向位置,在受试者之间逐位复用——前二十二个目标的位置,在三十一个第一会话文件里一位不差。**除此之外还有一处通道清单与文件头不一致,以及一位受试者的信号几乎全灭。三件事都写在下文,并给出可复现的判据。
§1 它是什么:一次为「多快还能看见」做的多速率对照
1.1 一句话定义与四条边界
这是一份多呈现速率的视觉目标检测脑电数据集:十一名健康志愿者,在三档速度下观看航拍图像流、寻找其中约一成夹带飞机的图,同步记录八路枕顶脑电。
四条边界:
- 没有行为数据。 没有按键、没有反应时、没有对错。整份数据只有脑电与「哪张图是目标」这两样东西。任何以「受试者有没有认出来」为前提的分析,都无法在此验证。
- 不是被动观看。 任务是主动搜索,受试者带着「找飞机」的目的看每一张图。脑电里混着搜索相关的成分,也混着与任务无关的视觉诱发成分,两者难以分离。
- 不是临床人群。 十一名健康受试者,没有癫痫、没有视力障碍的说明,也没有任何疾病标签。
- 不是标准范式的重复。 常见 RSVP 脑机接口范式用单字符或人脸做刺激、按十赫兹以上的频率闪烁以诱发稳态视觉诱发电位;这里用的是自然图像、三档较低的速度、看的是瞬态诱发电位。两者不能互换。
1.2 三档速度与两次记录的排列
| 速率 | 图像间隔(理论) | 间隔众数(文件里) | 文件数 | 受试者数 | 总时长 |
|---|---|---|---|---|---|
| 5 赫兹 | 200 毫秒 | 199.7 毫秒 | 22 | 11 | 152.7 分钟 |
| 6 赫兹 | 166.7 毫秒 | 166.5 毫秒 | 20 | 10 | 116.4 分钟 |
| 10 赫兹 | 100 毫秒 | 99.6 毫秒 | 20 | 10 | 84.8 分钟 |
每个受试者每个速率都有两个文件,文件名末尾用 a 或 b 区分先后。同一速率下,两次记录之间的休息时间短得惊人:十九对里有十六对落在 20 到 43 秒之间,中位数 30 秒。条目页的原话是「受试者在两个文件之间做了长时间休息」,与文件里写下的时钟时间不符。
这不是小事。 如果两次记录只隔半分钟,那么 a 与 b 就不能当成两次独立的测量,更不能当成「同一受试者的两个样本」用于数据增强——它们共享同一个疲劳状态、同一个注意水平、几乎同一个头姿。
1.3 一次记录里到底发生了什么
每个 EDF 文件是一段连续脑电,注释通道里逐条写着三类信息:
- 每个数据块(
burstSize=100)的起始,标明块号与名义帧率; - 每张图的出现时刻,正文写作
T=0,x=-1或T=1,x=<像素>; - 每个块的结束,正文为
END。
块的大小固定为一百张图。因此一个文件里有多少个块,就能反推出这段记录被打断过几次。62 个文件里,三十一个有三个块、二十个有两个块、十个有四个块、一个(rsvp_10Hz_08a)有六个块。块与块之间有一小段空档,长度从 0.3 秒到 57 秒不等。
块内没有空档。 全部试次两两相减得到 20,752 个间隔,其中只有 178 个超过 300 毫秒,而这 178 个恰好等于「块数减一」的总和——每一个都对应一次块切换。换句话说,块内图像是严格等间隔刷过去的,没有丢帧。
1.4 八个电极在哪,为什么要这八个
通道清单是 PO8、PO7、P8、P7、O1、O2、PO3、PO4。这八个位置全部落在枕叶与顶叶后部,也就是视觉皮层与视觉联合区上方。
选这一片是有道理的:目标检测相关的诱发电位(P300 一类的正波、以及更早的 N2pc 类负波)在这一带的幅度最大。若把额区也放进来,采集到的主要是眼动与眨眼,信噪比反而更差。
代价也是显然的:没有眼电通道,也没有额区参考。 十赫兹下每 100 毫秒刷新一张图,受试者即使不看屏幕边缘,微小的扫视也会污染枕顶信号。这套数据无法用独立眼电通道做回归校正,只能靠去趋势与低通滤波硬扛。
1.5 飞机长什么样,位置怎么定
条目页给出的图像参数:
- 航拍图,伦敦上空,张角 11.5 度乘 11.8 度;
- 目标图是在原图上「照片级真实地」叠一架随机旋转、随机定位的飞机;
- 非目标图不含飞机;
- 目标的横向位置定义为飞机质心的横坐标;
- 数据库里只保留「横向目标」:质心距屏幕中心横向张角至少 1.2 度,约占目标图的六成。
最后一句是关键,也是本页核对的第一处切口:既然只保留横向目标,那么每一张目标图的横坐标都应该是一个独立抽样的结果。
1.6 版本与许可
版本 1.0.0,二〇一七年五月十九日发布。许可为 Open Data Commons Attribution License v1.0(ODC-By),署名即可商用。DOI 为 10.13026/C2KX0P。条目页标注未压缩体积 748.9 MB,我从对象清单累加得到 785.3 MB,差 4.6 个百分点,属于十进制与二进制单位混用。
§2 数据构成:62 个文件的真实结构
2.1 目录与文件命名
5-Hz/rsvp_5Hz_<受试者编号><a|b>.edf
6-Hz/rsvp_6Hz_<受试者编号><a|b>.edf
10-Hz/rsvp_10Hz_<受试者编号><a|b>.edf
RECORDS
SHA256SUMS.txt
受试者编号从 02 到 14,缺 01、05、07。缺号的原因条目页没有说明,从数据本身也推不出来——既没有「受试者 05 因故退出」的注释,也没有占位文件。
回看我们的表:5-Hz 有 22 个文件,对应 02、03、04、06、08、09、10、11、12、13、14 十一个人;6-Hz 只有 20 个,十个人;10-Hz 也是 20 个,十个人。交叉核对后可以确定:受试者 06 缺 6-Hz,受试者 14 缺 10-Hz。条目页只写了「三档速度」,没写这两处缺口。
2.2 每个文件的外部特征
六十二个文件的外部结构完全一致,这是这份数据最省事的地方:
| 项 | 值 |
|---|---|
| 固定头长度 | 2816 字节 |
| 数据记录长度 | 36978 字节(八路各 4096 字节 + 状态通道 4096 字节 + 注释 114 字节) |
| 采样率 | 每路 2048 赫兹 |
| 记录时长 | 每条记录 1.0 秒 |
| 通道数 | 10(八路脑电 + 1 路状态 + 1 路注释) |
| 增益 | 每路 0.03125 微伏/单位(即 32 单位 = 1 微伏) |
| 物理量程 | 八路均为 ±1024 微伏 |
| 数字量程 | 八路均为 −32768 至 32767 |
增益这一项必须逐文件读。 六十二个文件的注释通道里虽然都写着 amplifier,但数字量程与物理量程写在信号头;八路脑电全部 0.03125,这一点是统一的。这与前一份子宫肌电数据(同一批受试者的不同通道增益差十六倍)形成对照——那边的教训在这里不适用,但检查动作仍然要做,不能凭印象跳过。
2.3 文件时长跨度极大
一个文件的时长等于「数据记录条数乘以一秒」。六十二个文件的记录条数从 214 到 576 不等:
- 最短:
rsvp_10Hz_06b,214 秒; - 最长:
rsvp_5Hz_13a,576 秒; - 中位数:336.5 秒;
- 六十二个文件合计 21,233 秒,约 353.9 分钟。
时长与速率强相关。 五赫兹组平均 416 秒、六赫兹组 349 秒、十赫兹组 254 秒。原因很直接:每个块固定一百张图,图像数一样,速率越快耗时越短。但各组内部差异同样很大——五赫兹组从 368 秒到 576 秒,跨了 208 秒。
时长与试次数几乎完全线性。 分速率算相关系数,五赫兹 0.99996、六赫兹 0.99993、十赫兹 0.99996。这意味着试次数不携带任何独立信息:知道时长,试次数就定了。任何以「时长」和「试次数」作为两个特征的分析,实际上只有一个自由度。
2.4 试次、目标与不平衡
| 项 | 数值 |
|---|---|
| 全部试次 | 20,814(其中 a 组 10,784) |
| 目标试次 | 2,069 |
| 非目标试次 | 18,745 |
| 目标占比 | 9.94% |
| 各文件目标占比范围 | 9.67% – 10.23% |
目标占比被精确控制在十分之一,六十二个文件里没有一个偏离超过 0.3 个百分点。这是分层随机的典型特征:生成序列时先定好每块的目标数,再打散位置,而不是逐张独立掷骰子。若逐张独立掷、每张十分之一的概率,一百张里目标数的标准差约为 3,而各文件偏离不到 0.3 张对应的比例,说明生成机制是有约束的。
这一点对建模有直接影响:风险集(risk set)是被人为设定的。 现实场景里目标比例远低于十分之一,模型在这个数据集上学到的先验概率不能直接搬到部署环境。
2.5 目标横向坐标:一处必须写清楚的发现
这是本篇最要紧的部分。
两千零六十九张目标图,横坐标只有 91 个不同取值,范围 125 到 509(条目页说 0 到 640)。91 个值平摊到这些目标图上,平均每个值被用了 22.7 次。
单看这个还不算异常——如果坐标是「随机旋转与定位」后取质心再量化,取值本来就会有限。真正的异常在下面。
我把六十二个文件的横坐标序列逐位比对,按文件名末尾的 a/b 分成两组,得到:
a组 31 个文件,共享同一个 22 位的公共前缀:259、134、450、321、173、128、400、201、427、405、439、202、187、287、266、290、390、380、268、375、370、308。三十一个文件,前二十二个目标的位置一位不差。b组 31 个文件,共享同一个 21 位的公共前缀:317、281、173、415、186、327、509、194、330、394、371、459、278、441、299、190、451、188、196、181、385。
也就是说:受试者 02 的第一次记录、受试者 13 的第一次记录、受试者 14 的第一次记录,头二十二个「随机」位置完全一样;第二次记录的头二十一个位置也一样。 三档速率之间同样如此——rsvp_5Hz_02a、rsvp_6Hz_02a、rsvp_10Hz_02a 的前二十二个目标位置也是同一串数。
2.6 这说明了什么,以及不说明什么
先把「说明什么」写清楚:
同一段刺激序列在三十一个文件里逐位复用,只能是生成侧的产物。刺激生成的随机种子要么是写死的常量,要么随会话顺序固定(第一会话一套、第二会话一套),而不是随受试者或速率的组合重新播种。
再看「不说明什么」,同样重要:
- 不代表受试者看了同一批图。 横坐标相同不等于图像相同。字符级比对只能确认 x 坐标一致,图像本身是否复用无法从脑电文件里读出来。
- 不代表数据被复制。 六十二个文件的记录条数、时间戳、信号波形各不相同,没有一个是另一个的副本。
- 不代表标注错误。 注释确实反映了受试者当时看到的画面;问题在于画面在受试者之间重复了,而不是注释写错了。
对建模的影响是实质性的。 最常见的错误做法是「按试次随机划分训练集与测试集」——同一受试者的相邻试次高度相关,这会大幅高估泛化能力,这一点在本站的其它脑电条目里也反复出现。但这份数据还多一层:即便按受试者划分,前二十来个试次的位置分布在所有受试者身上都是同一套。如果模型的输入不只是脑电、还包括「目标位置」这类元信息,那么训练集与测试集之间就存在一条设计者没有意识到的泄漏通道。
2.7 有一路通道在十一个文件里基本无信号
逐文件、逐通道计算标准差,我找到 46 个「标准差小于 1 微伏」的通道-文件组合,全部集中在三个人身上:
| 受试者 | 文件数 | 现象 |
|---|---|---|
| 09 | 6(三档各两次) | 除 P7 外的七路全部低于 1 微伏,最低 0.01 微伏 |
| 11 | 2 | 仅 P8 一路低于 1 微伏(a 与 b 各一次) |
| 09 | 其余 | P7 的幅度反而最大,达 47 至 69 微伏 |
受试者 09 这个模式值得单独说:七路几乎没有信号、只有 P7 一路幅度巨大。这不像「电极没贴好」——没贴好只会一路平;也不像「受试者睡着了」——睡着时枕区会出现明显的慢波,八路都该有。更可能是这一路接到了某个低阻抗的大幅度源(比如肌电或电极线摆动),而其余七路因为参考电极的问题被整体压制。
无论原因是什么,受试者 09 的六个「除 P7 外」文件都不能直接纳入分析。 而条目页的十一位受试者里,这一位占总人数的九分之一。
2.8 两个人的直流偏移达数百微伏
八路脑电的物理量程是 ±1024 微伏,而正常脑电的幅度在十到几十微伏。逐文件的极值统计显示,多数文件的极值落在 ±100 微伏以内,但有六个文件出现了几百微伏的单点极值:
rsvp_5Hz_10a:P7 到 47 微伏标准差、极值 ±600 微伏以上;rsvp_5Hz_10b:PO8 标准差 67.7 微伏,是全数据集的最高值;rsvp_10Hz_09a:P7 极值 −701.6 到 989.9 微伏,离量程上限只差 34 微伏;rsvp_6Hz_09b:P8 的标准差恰好为 0,整段只在一个数字上下跳动 0.2 微伏。
这类幅度不是脑电,是电极漂移或运动伪迹。条目页说明了信号经过 0.15 至 28 赫兹带通,但这个带通显然是在漂移发生之前(或之后,无法确定)做的——因为 0.15 赫兹的高通本应把慢漂移压掉,而文件里仍然留着。
实践上必须自己再做一次去趋势。 具体做法在 §8.1 给出。
2.9 状态通道是空的,注释通道才是全部
十个通道里,第九个叫 Status Channel,单位也写着微伏,但它在一万六千余个数据记录里恒等于 −32768,也就是数字量程的下界、对应 −1024 微伏。整段没有任何变化。
这一路没有信息。 它不是触发器,不是刺激对齐信号,也不是质量指标。任何试图从状态通道里读事件的做法都会得到一条直线。
真正的事件在第十个通道——注释通道。这是 EDF+ 的标准做法:注释写在一个采样点数被声明为 57 的特殊通道里,每个数据记录一段,格式为「起始时刻字节 + 若干 0x14 分隔的字段」。解析时要注意两点:
- 每条注释的第一个时间戳前有一个 0x00 字节,这是 EDF+ 规定的「onset 字段前缀」,不是乱码;
- 同一记录里可以有多条注释,用 0x14(十进制 20)分隔,末尾以 0x00 补齐。
条目页没有提供任何解析代码或字段说明。上表的三类字段(块起始、试次、块结束)是从文件里反推出来的,字段名与取值规律在 §1.3 已列。
2.10 八路通道的幅度不对称
把六十二个文件按速率分组,逐通道取标准差的中位数,得到的排序在三档上高度一致:
| 通道 | 5 赫兹 | 6 赫兹 | 10 赫兹 |
|---|---|---|---|
| P7 | 11.9 | 12.3 | 11.1 |
| PO8 | 10.2 | 11.1 | 9.4 |
| O1 | 10.0 | 10.8 | 9.9 |
| O2 | 9.4 | 11.6 | 9.8 |
| PO4 | 9.7 | 10.7 | 8.8 |
| PO7 | 9.7 | 9.5 | 10.0 |
| PO3 | 8.8 | 10.6 | 8.3 |
| P8 | 6.3 | 5.6 | 5.6 |
(单位微伏)
两处值得记下来。
第一,P7 三档都排第一,P8 三档都排末位。 左右同名电极差了一倍。这种不对称在健康人身上不该出现——除非左侧电极的阻抗更低、或者左侧贴近某个伪迹源。结合 §2.7 受试者 09 的「只有 P7 有信号」,更可能的解释是 P7 这一路整体更容易耦合到非脑电的信号。
第二,P8 在三档都只有 5.6 至 6.3 微伏,明显低于其它七路。 这不是个别受试者的问题,是所有文件的中位数都低。若做通道级标准化,P8 会被放大到与其它通道同一量级,同时也把它自己的噪声放大。
实践含义: 不要假设八路等价。等权平均八路做空间滤波,会让 P7 的噪声盖过其它通道的信号,而 P8 的贡献被压到很小。要么按通道方差加权,要么先做一次共平均参考。
2.11 单个文件里方差集中在几路
用参与率(PR = (Σλ)²/Σλ²,λ 为各通道方差)衡量「方差摊在几路上」:
- 六十二个文件的中位 PR 为 4.75,也就是方差大致摊在五路左右;
- 受试者 09 的六个文件 PR 全为 1.0,即方差全部集中在 P7 一路上;
- 最高的一组是受试者 12 的四个文件,PR 在 7.5 上下,八路幅度比较均匀。
PR 是一个便宜的质量指标:不需要参考信号,不需要人工肉眼,一个数就能把「某一路塌了」的文件挑出来。建议放在预处理第二步,与标准差筛选并列。
2.12 注释字段的完整字典
条目页只写了「注释包含每张图的起始、是否为目标、以及目标质心的横坐标」,实际文件里有三类共五种字段。下表是从六十二个文件里反推出来的完整清单,可直接照此写解析器:
| 字段形态 | 出现次数 | 含义 | 注意 |
|---|---|---|---|
RSVP_burstSize=100_block=<n>_frame rate=<r> |
187 | 第 n 个块的起始,名义帧率 r | 每块一条;块数两到六不等 |
END |
125 | 块结束 | 比块起始少六十二条,即最后一个块没有 END |
T=0,x=-1 |
18,745 | 非目标图 | 横坐标用 −1 占位 |
T=1,x=<125–509> |
与前者合计约两万 | 目标图与质心横坐标 | 坐标范围与条目页写的 0–640 不同 |
+<秒>(每条注释的 onset) |
与上两类合计相同 | 相对记录起点的秒数,五位小数 | 前面带一个 0x00 字节 |
两处与条目页不同,需要单独指出:
第一,坐标范围。 条目页写「0–640 像素」,文件里的实际范围是 125 到 509。这不是笔误,而是「横向目标」这个筛选条件的结果:质心必须离屏幕中心横向至少 1.2 度,于是靠近中心的与贴边的都被剔掉了。若按 0–640 做归一化,得到的值会整体偏在 0.2 到 0.8 之间。
第二,END 只有 125 条,块起始有 187 条。 差额六十二正好等于文件数——每个文件的最后一个块没有写 END,记录在最后一个试次之后直接截断。解析时若依赖 END 来界定块边界,最后一个块会丢失。
第三,frame rate 字段的值与目录名不一致。 五赫兹目录里的块写着 frame rate=12、六赫兹写 10、十赫兹写 6。这是一条会误导人的元数据:目录名是「每秒几张图」,而这个字段是「显示器刷新率与某个整数倍的关系」——三者互为某种倒序,具体含义条目页未说明。不要用它做速率判断,用目录名。
2.13 为什么目标数不是精确的一成
六十二个文件的目标占比落在 9.67% 到 10.23% 之间,中位 9.96%。若生成时严格按「每十张一张」编排,这个比例应该恰好是 10.00%。实际偏低,原因在文件末尾的截断。
块大小固定一百张,但文件不一定是整数个块。 记录在最后一个试次之后直接结束,最后一个块往往只有几十张图。若截断点在目标图之前,那么这段截断就带走了一张本该出现的目标。
这个解释能对上三处现象:一是目标占比整体略低于一成(截断只会减少目标,不会增加);二是文件越长,占比越接近一成;三是十赫兹组的目标占比波动最大(0.56 个百分点),因为它的文件最短、截断比例最高。
对分析的直接影响: 目标占比不是一个可以当成常数用的量。做校准(calibration)或算期望精度的分析时,必须用每个文件自己的实际占比,而不是统一用 0.1。
2.14 时间戳能告诉你什么,不能告诉你什么
EDF 固定头的第 168 到 184 字节是记录的起始日期与起始时刻,格式为 dd.mm.yy 与 hh.mm.ss。六十二个文件全部有这两个字段,且顺序合理。
能说的: 每个受试者的三档记录是连续完成的,相邻两次之间只隔几十秒到几分钟;同一天里同一批受试者按编号顺序做完,例如二月六日晚间是受试者 02、二月七日傍晚是 03、当夜是 04。
不能说的: 时间戳只有一个精度到秒的字符串,没有时区、没有夏令时标记、没有毫秒。跨日的那几次记录(例如 04 从二月七日 23:43 开始,到二月八日 00:30 结束)如果按日期字段分组,会被算成两天。
还有一个更要紧的限制:起始时刻是文件写入时刻,不是屏幕第一张图出现的时刻。 两者之间隔着一段准备时间,长度从一个半秒到一百九十秒不等(本数据里第一个试次的 onset 最小 1.46 秒、最大 192.46 秒)。要算「受试者从进实验室到开始看图等了多久」,这个时间戳给不了。
§3 怎么拿到:748 MB,走 S3 最快
3.1 许可与门槛
ODC-By 1.0 是全套 Open Data Commons 里最宽松的一档:署名即可,允许商用,允许再分发,允许与其它数据合并。不要求衍生数据库同许可(那是 ODbL 的要求),也不要求对等共享。
署名怎么做,条目页没有给模板。实践上是引用数据集 DOI 与原始论文,并在方法节写明「数据来自 PhysioNet 的 ltrsvp 1.0.0 版」。
一个容易忽略的点: ODC-By 授予的是数据库权利,不当然授予其中单幅图像的版权。条目页没有说明那些伦敦航拍图的来源与授权。如果要再分发图像(不是本数据集内容,本数据集只有脑电),需要另行确认。
3.2 引用
条目页给出了标准引用格式,指向原始论文:
Spyrou, L., Sanei, S., & Took, C. C. (2017). Estimation of cognitive workload from EEG during a rapid serial visual presentation task. 具体期刊与卷期见条目页 References。
除论文外,PhysioNet 平台本身也要求引用(平台层面的统一引用,与数据集无关)。
3.3 下载
三条路,速度差得很远:
| 路径 | 命令 | 速度 |
|---|---|---|
| 网页 ZIP | /content/ltrsvp/get-zip/1.0.0/ |
单线程,748.9 MB 需要数分钟到数十分钟 |
| 递归 wget | wget -r -N -c -np https://physionet.org/files/ltrsvp/1.0.0/ |
逐文件串行,且经 nginx 转发 |
| S3 直连 | https://physionet-open.s3.amazonaws.com/ltrsvp/1.0.0/<路径> |
十六并发下约四十秒完成 750 MB |
第三条是关键。用免签名直连,把对象清单取下来,再用 xargs 铺开:
step 1 -- list objects
curl -s "https://physionet-open.s3.amazonaws.com/?list-type=2&prefix=ltrsvp/1.0.0/&max-keys=1000" \
| grep -o '<Key>[^<]*\.edf</Key>' | sed 's/<Key>//;s/<\/Key>//' > keys.txt
step 2 -- parallel fetch
cat keys.txt | xargs -P 16 -I{} sh -c \
'curl -s -o "$(basename {})" "https://physionet-open.s3.amazonaws.com/{}"'
这个组合在本数据集上跑完 39.8 秒,且不需要任何凭证。
3.4 校验
SHA256SUMS.txt 有 63 行:62 个 EDF 加一行 RECORDS。逐个比对通过。这一项别省——S3 直连在极端情况下会返回截断的响应体而不报错,校验和是唯一的兜底。
RECORDS 文件本身只是 62 行路径清单,不含元数据,也不含受试者对应关系。想要「哪个文件是哪个人」只能从文件名推断。
§4 质量与已知问题
4.1 一个必须接受的假设:注释反映真实呈现
整份数据的可信度建立在一个无法从文件内部验证的前提上:注释通道里写的时刻,就是屏幕上图像真正出现的时刻。
支持这条的观察: 试次间隔的众数在 5、6、10 赫兹三组分别为 199.7、166.5、99.6 毫秒,与理论值 200、166.7、100 毫秒的偏差都在 0.4% 以内;抖动只出现在少数样本上(十赫兹组 4,962 个间隔里有 4,856 个恰好是 99.6 毫秒),符合「显示器按固定刷新率刷新、事件按帧对齐记录」的模式。
反对这条的观察: 没有独立的触发信号。状态通道是空的(§2.9),所以无法交叉验证「注释时刻」与「硬件触发时刻」是否一致。若采集软件的时间戳有固定偏移,从数据内部看不出来。
4.2 假设—支持—反对三表
| 假设 | 支持 | 反对 | 结论强度 |
|---|---|---|---|
| 注释时刻等于屏幕呈现时刻 | 间隔众数与名义速率吻合在 0.4% 内;块内无丢帧 | 无独立硬件触发;状态通道为空 | B(间接证据两条,无直接证据) |
| 图像在受试者之间复用 | 前 22/21 位横坐标在 31 个文件里逐位相同 | 只验证了坐标,未验证图像本身 | B(强间接证据,缺直接证据) |
| 受试者 09 的六次记录除 P7 外不可用 | 七路标准差低于 1 微伏,其中一路恰为 0 | 无设备日志、无采集者记录可佐证 | B |
| 0.15–28 赫兹带通已施加 | 条目页明示;多数文件极值落在 ±100 微伏内 | 六个文件有数百微伏极值与整段无变化通道,说明滤波未消除漂移或未覆盖全部时段 | C(单一来源,且有反例) |
| 三档速率是同一批人的同一天测量 | 时间戳显示同一受试者三档记录在 2 小时内连续完成 | 未说明速率顺序是否随机化 | B |
4.3 已知问题的清单
| 编号 | 问题 | 影响范围 | 处置建议 |
|---|---|---|---|
| Q1 | 受试者 09 除 P7 外七路无信号 | 6 个文件(约 1,335 个试次) | 整体排除,或只保留 P7 单通道分析 |
| Q2 | 受试者 11 的 P8 无信号 | 2 个文件 | 该通道置为缺失,不要填零 |
| Q3 | 6 个文件存在数百微伏漂移 | 6 个文件 | 分段去趋势后再滤波 |
| Q4 | 目标横坐标跨受试者复用 | 全部 | 涉及位置信息的模型须按受试者划分 |
| Q5 | 两次记录间隔仅约 30 秒 | 19 对文件 | a 与 b 不应视为独立样本 |
| Q6 | 无行为数据 | 全部 | 无法验证受试者表现,只能做无监督或刺激锁时分析 |
| Q7 | 状态通道恒为常数 | 全部 | 不要当触发器使用 |
| Q8 | 受试者 06 缺 6 赫兹、14 缺 10 赫兹 | 2 人 | 做三档对照时样本量不齐(11/10/10) |
4.5 块结构对分析的影响
每个文件被切成两到六个块,块大小固定一百张图。这个结构不是无关紧要的细节。
块之间有一小段空档,长度从 0.3 秒到 57 秒。空档的存在意味着「试次序号」与「时间」不是线性关系:第 150 个试次不一定在第 150 张图对应的时刻出现。任何按「试次序号 × 理论间隔」推算时间的做法都会错。
块与块之间的状态不同。 块切换意味着一次短暂的停顿,受试者可能眨眼、调整坐姿、或者注意力重新聚焦。块的第一个试次与最后几个试次,其诱发电位都可能与块中部不同。
长文件里的块更多。 六块的那一个文件是 rsvp_10Hz_08a,348 秒、341 个试次。若块的边界与疲劳相关,那么这个文件的后半段与前半段不可混为一谈。
处置建议: 把「块序号」作为一个协变量记录下来。做被试内比较时,只用同一块内的试次;做跨块比较时,显式检验块序号的效应。
4.6 一份不能忽略的统计事实:正例只有约一千个一档
两千余个目标试次听起来不少,但摊到受试者与速率上就薄了:
- 每个
<速率>-<受试者>-<a|b>单元里的目标数,从 21 到 56 不等; - 十一个人的十一个「每人每档」单元,平均每单元二十来个目标;
- 十赫兹组的单元最小,多在 22 上下。
这意味着任何按受试者做的分析,其正例数只有二十个左右。 在这个量级上,一个 AUC 的置信区间宽度可能达到 ±0.15。想报「某某特征提升了 0.05 的 AUC」,在这个样本量下没有意义。
要做跨受试者的比较,只能先把试次合并。但合并又引入了受试者间的个体差异——这是这类小样本脑电数据的两难,不是本数据独有的缺陷。
4.4 数据质量清单(DAIMS)
| 维度 | 评估 | 依据 |
|---|---|---|
| 完整性 | 中 | 62 个文件齐全、校验和全对;但 2 人缺一档速率,1 人 7 路无信号 |
| 一致性 | 高 | 文件头、增益、量程、记录长度六十二个文件完全一致 |
| 准确性 | 中 | 注释时刻可信度 B;部分文件有大幅漂移 |
| 唯一性 | 中 | 文件本身互不重复;但刺激序列在受试者间复用 |
| 时效性 | 中 | 二〇一三年采集、二〇一七年公开,至今未更新版本 |
| 可理解性 | 低 | 无数据字典、无解析示例、无字段说明;注释格式须自行反推 |
| 合规性 | 高 | ODC-By,署名即可,无水印、无申请门槛 |
§5 能做什么
5.1 单试次目标检测:最直接的用法
任务设定很清楚:给定一段以某个试次起点对齐的脑电,判断这张图是不是目标。
最小可用基线(按分类器复杂度从低到高):
- 幅度阈值:取刺激后 300 至 500 毫秒窗内枕区平均幅度,与全段中位数比较。这个基线在十分之一的正例比例下,AUC 通常落在 0.6 到 0.7。
- 窗均值加线性判别:八个通道各取 3 个时间窗(200–300、300–450、450–600 毫秒),拼成 24 维特征,用收缩 LDA。这是事件相关电位分析里最老也最稳的配方。
- 带通加协方差:8 至 30 赫兹带通后计算每类平均协方差,用 Riemannian 切空间映射降到欧氏空间再做逻辑回归。在小样本、多通道的场合,这个方法通常比深度模型更稳。
不要一上来就用端到端卷积网络。 十一个人、每人一两千个试次,扣掉受试者 09 之后只剩十个可用受试者。
5.2 三档速率的对照:这份数据真正的独特之处
多数 RSVP 数据集只有一档速度。这里有 5、6、10 三档,而且同一批人、同一天、连续完成。
可以做的问题:
- 速度如何改变诱发成分的潜伏期与幅度? 十赫兹下相邻刺激只隔 100 毫秒,前一个刺激的晚期成分会叠到后一个刺激的早期成分上。这种「重叠」在五赫兹下几乎不存在,在十赫兹下是主导效应。
- 速度如何改变可分性? 一个直觉是越快越难,但未必:越快意味着单位时间内试次越多,平均之后的信噪比反而可能更高。这需要比过才知道,不能靠假设。
- 三档之间的迁移。 在五赫兹上训练的模型,用到十赫兹上还剩多少?这个问题的答案取决于模型学到的是「慢波形的形状」还是「时间尺度无关的特征」。
注意样本量: 三档分别有 11、10、10 人。任何「速率 × 受试者」的交互效应检验,统计功效都很低。
5.3 横向位置与注意的偏侧化
目标出现在左侧还是右侧,会影响对侧与同侧枕区通道的幅度差。这是 N2pc 成分的经典指标,而这份数据恰好只保留了横向目标(距中心至少 1.2 度),天生适合做这个分析。
具体做法: 以屏幕中心 320 像素为界,把目标分成左、右两组;对每个试次算对侧(右视野目标看左半球通道)减同侧的差值;在刺激后 180 至 300 毫秒窗内取均值。
但这里要踩一脚刹车: §2.5 说过了,横坐标在受试者之间复用。所以左、右组的划分在三十一个 a 文件里是同一套——这意味着不同受试者的「左目标试次」在序列位置上高度对应。如果疲劳或习惯化在序列上有趋势,就会与左右分组混淆。
5.4 眼电伪迹的识别与压制
没有眼电通道,但这不代表不能研究眼动。十赫兹下每张图 100 毫秒,受试者若试图扫视,扫视的起始与图像刷新会锁时。可以在左右枕区的差分里找「与刺激锁时的共模偏转」,作为扫视的代理指标。
这条用法属于探索性分析,不是这份数据的设计目标。
5.5 把它当成格式与统计的教学双料样本
这份数据还有一个别处不好找的用处:它同时提供了「格式解析」与「统计功效」两个教学切口,而两者可以串成一个作业。
第一段作业:写一个 EDF 解析器,把 62 个文件里的注释流完整取出来。学生会撞上三个具体的坑——0x00 前缀、注释通道的 1 字节步长、以及记录长度不等于「通道数乘采样点」。这三个坑在 §6 的技术陷阱里已经写明,但看别人写和自己撞一次是两件事。
第二段作业:用第一段解析出来的标签,估一个目标检测的 AUC。学生很快会发现 AUC 不稳定,进而算出正例数只有二十来个,进而明白「为什么不能只看一个数」。这个路径比直接讲「小样本要报置信区间」有效得多。
第三段作业:把「目标横坐标在受试者之间复用」这一条作为反例,让学生自己想「如果按试次随机划分会怎样」。十个人里有九个会先做出虚高的结果,再被自己的常识拦住。
5.6 一个可复现的对比:八路等权平均与单路的差距
如果只想验证「这份数据能不能做目标检测」,最省事的做法是八路等权平均后取枕区平均幅度。但按 §2.10 的通道幅度分布,这个做法会吃亏:P7 的方差比 P8 高出一倍,等权平均后 P7 主导了结果。
把八路分开算、再取每一路各自的 AUC,通常会看到彼此差距不小。这不是「某一路更好」的结论,而是「各路的噪声水平不同,等权平均会把噪声大的那一路的权重抬高」的直接后果。哪一路在某个受试者身上最好,换个人就未必。
可复现的做法: 用 §8.5 的最小配置,分别算八路单独的平均幅度特征,记下每一路的 LOSO AUC,再算八路等权平均的 AUC。若前者明显高于后者,说明通道权重需要调整;若两者接近,说明噪声已经在预处理阶段被压平。这个对比十分钟内能跑完,且结论对后续所有分析都有约束力:在通道幅度差一倍的情况下,任何等权空间滤波都要先被怀疑。
5.8 它不适合做什么
- 训练通用脑机接口解码器。 十一个人、一种刺激类型、一种任务,泛化性无从谈起。
- 做临床筛查。 健康志愿者,没有对照组,没有疾病标签。
- 做跨数据集迁移的源域。 电极配置与刺激范式都太特殊。
- 验证「注意力」这个构念。 数据里只有「目标出现了没有」,没有「受试者注意到了没有」。
§6 常见误读与引用陷阱
| 常见说法 | 实际口径 | 证据位置 |
|---|---|---|
| 「这是一份十一个人的数据集」 | 十一人里受试者 06 缺 6 赫兹、14 缺 10 赫兹;受试者 09 的六次记录除 P7 外无信号 | 文件名清单与逐通道标准差 |
| 「每人三档各两个文件,共 66 个」 | 62 个:11×2 + 10×2 + 10×2 | S3 对象清单 |
| 「目标位置是随机生成的」 | 横坐标只有 91 个取值;a 组共享 22 位前缀、b 组共享 21 位前缀 |
注释流逐位比对 |
| 「数据里有按键反应」 | 没有。没有反应时、没有正确率、没有任何行为文件 | 全部 62 个文件的对象清单 |
| 「通道是国际 10-20 系统的八个位置」 | 八个位置对,但其中 P7、P8 严格说属于 10-10 系统的扩展位;且文件里另有状态通道与注释通道共 10 路 | EDF 信号头标签 |
| 「10 赫兹太快,受试者看不清」 | 十赫兹组的目标检测诱发电位仍然存在,幅度是否可分辨见 §5.2;但数据本身不含行为证据 | 无(须自行分析) |
| 「状态通道可以用来对齐刺激」 | 整段恒为 −32768,无任何变化 | 逐记录解析状态通道 |
| 「信号已经 0.15–28 赫兹带通,可以直接用」 | 6 个文件仍有数百微伏漂移,须自行去趋势 | 逐文件极值统计 |
| 「a 和 b 是两次独立测量」 | 十九对中十六对间隔 20–43 秒,中位 30 秒 | EDF 固定头的日期时间字段 |
| 「八路电极是等价的一整组」 | P7 的标准差中位数在三档都排第一,P8 三档垫底,两路差一倍 | §2.10 的通道幅度表 |
| 「每个块都是完整的一百张图」 | 块大小名义为一百,实际每块试次数受文件末尾截断影响;六块那个文件只有 341 个试次 | 注释流的 burstSize 与 END 计数 |
技术陷阱一:把注释通道的 0x00 当乱码。 EDF+ 规定每条注释的 onset 字段以一个 0x00 字节开头,表示「该字段使用默认通道」。按 \x14 直接切分会得到 \x00+14.1030 这样的串,浮点解析会抛异常。正确做法是切分后对每个时间戳字段先 lstrip('\x00')。
技术陷阱二:把记录长度按「采样点数 × 通道数」算。 注释通道声明 57 个采样点,但它不是数值通道,57 个「采样点」每个占 1 字节而非 2 字节。本数据集的记录长度 36978 字节 = 9×4096 + 114,而不是 10×4096。按后者算会多出 10 字节,累积到第 251 条记录时偏移两万五千字节,整段数据错位。
技术陷阱三:把 T=0,x=-1 里的 −1 当成坐标。 非目标图的横坐标写作 −1,这是「不适用」的占位,不是负坐标。若直接拿来做回归目标,会引入 18,745 个虚假的「最左位置」样本。
技术陷阱四:按试次随机划分。 相邻试次间隔 100 至 200 毫秒,脑电高度自相关。随机划分会让训练集与测试集共享同一段慢波,AUC 虚高十几个百分点是常态。
技术陷阱五:把 22 位公共前缀当成「标注模板」。 看到三十一个文件前二十二个目标位置一致,很容易推断「标注是按模板批量写的」,进而怀疑标注本身的真实性。这个推断过头了:注释记录的是受试者当时看到的画面,画面本身在受试者之间可能确实复用了刺激序列。现象是真的,但归因要谨慎——本页只确认坐标复用,不确认图像复用,也不确认标注造假。
§7 在生态中的位置
7.1 与相邻数据的分工
| 数据集 | 刺激 | 通道 | 速率 | 与本数据的关系 |
|---|---|---|---|---|
| 本数据(ltrsvp) | 航拍自然图,找飞机 | 8 路枕顶 | 5/6/10 赫兹 | 自然图像、低速率、瞬态诱发 |
| 稳态视觉诱发电位类范式 | 单字符或图案闪烁 | 枕区 | 8–30 赫兹 | 高速率、稳态响应,用于拼写器 |
| 视觉目标检测的 MEG 类数据 | 自然图像 | 全头 | 单试次 | 空间分辨率更高,样本更小 |
| 情绪或静息态脑电 | 无任务 | 全头 | — | 与本数据无直接可比性 |
这份数据的定位很清楚:它是「自然图像 + 多速率 + 少通道」这一格的唯一公开样本之一。 想要「自然图像 + 全头 + 高密度」的,这里给不了;想要「字符 + 高速 + 在线解码」的,这里也给不了。
7.2 规模在整个生态里处于什么位置
785 MB、62 个文件、11 个人,在公开脑电数据里属于小档。同类中,全头高密度静息态数据常在几十 GB 量级、上百人;大型脑机接口竞赛数据在十几人但我文件数更多。
小不等于差。这份数据的信息密度不低:每个试次都有精确的起点与标签,两万余个试次全部带目标标记与位置。换算成标注量,它比很多「几百人、无逐试次标注」的数据更实用。
7.3 与研究线的接续
条目页的原始论文标题指向「认知负荷估计」。这条线在二〇一七年之后有了明显变化:从「用脑电估一个标量」转向「用多模态、用更自然的任务、用更大的样本」。这份数据在今天的定位,更像是一个干净的基准盘,而不是一个能直接推动新结论的资源。
真正还能从它身上挖的问题,集中在 §5.2 与 §5.3 两条:多速率对照、横向位置与偏侧化。这两条都不需要大样本,因为它们是被试内设计——同一个人身上比较三档速度,个体差异被自然消掉。
7.4 适合谁用
- 想练手事件相关电位分析、又不想处理复杂格式的人;
- 研究 RSVP 范式在不同速率下如何退化的人;
- 需要一份「有逐试次精确 onset」的小数据做方法对比的人;
- 教学场景。
不适合:想做大模型预训练、想做临床转化、想要行为数据的人。
§8 怎么用:分析方案
8.1 预处理流水线(按顺序)
- 校验和。 先跑 SHA256,确认 62 个文件一个不差。
- 读头,不读数据。 先把 62 个固定头与信号头读完,确认增益、量程、记录长度一致。这一步只要几百毫秒,能挡住后面所有因为格式假设错误导致的静默失败。
- 通道筛选。 计算每路标准差,低于 1 微伏的标记为缺失。受试者 09 的六次记录、受试者 11 的 P8 会被这一步挑出来。
- 去趋势。 按 1 秒一段做线性去趋势,或用 0.1 赫兹的高通。目标是把 ±600 微伏的漂移压到 ±50 微伏内。
- 带通。 0.5 至 20 赫兹,四阶零相位。条目页说的 0.15–28 赫兹已经做过一次,这里做第二次是为了去掉去趋势引入的边界效应。
- 降采样。 从 2048 赫兹降到 256 赫兹。事件相关电位的主要能量在 30 赫兹以下,八倍降采样不损失信息,内存降到八分之一。
- 分段。 以注释里的 onset 为 0 点,取 −200 至 800 毫秒。十赫兹下 800 毫秒会跨过八个刺激,须视分析目的缩短到 −100 至 400。
- 基线校正。 用 −200 至 0 毫秒的均值减去。
8.2 划分策略:按受试者,不留余地
十一个人,正确的做法是留一受试者交叉验证(LOSO),十一折。
不要用「按试次随机划分」。 理由在 §6 的技术陷阱四。可以做一个对照实验来感受差距:同一份特征,随机划分的 AUC 通常比 LOSO 高 0.1 到 0.2。
另一个必须做的检查: 如果你的特征里包含「目标位置」这类元信息,先确认它在训练集与测试集之间是否重复。§2.5 的发现意味着,在 a 文件之间做交叉验证时,位置是共享的。
8.3 指标怎么选
| 指标 | 适用 | 注意 |
|---|---|---|
| AUC | 二分类主指标 | 十分之一的正例比例下仍稳定,首选 |
| 平衡准确率 | 需要固定阈值时 | 阈值须在训练折内定,不能在测试折上调 |
| F1 | 若下游要求精确率与召回率并重 | 正例少时 F1 波动极大,须报置信区间 |
| 反应时或正确率 | 不适用 | 数据里没有 |
不要报准确率。 全部预测为「非目标」就能拿到 90.06%,这个数字毫无意义。
8.4 五条失败模式
- 通道没筛。 受试者 09 的七个近零通道进入特征,标准化时除以近零的标准差,得到巨大数值,模型在这些通道上学到纯噪声。
- 没去趋势。 六个数百微伏漂移的文件主导了协方差估计,分类器学到的是「哪个文件」,不是「哪个试次」。
- 窗口跨刺激。 十赫兹下取 800 毫秒窗,窗内包含八个刺激的响应,标签语义被稀释。
- 按试次划分。 见 §8.2。
- 把 −1 当坐标。 见 §6 技术陷阱三。
8.5 一个贴合实际的最小实验
如果想在半天内得到第一个可信数字,按这个走:
受试者:排除 09,剩 10 人
文件:每人每档只用 a(31 个文件中的 10 个)
通道:排除 P8 缺失的受试者 11,其余七路
预处理:去趋势 + 0.5–20 赫兹 + 降采样到 256 赫兹
分段:−100 至 400 毫秒
特征:每通道 3 个时间窗均值(共 21 维)
分类器:收缩 LDA
评估:留一受试者
这个配置跑完大约十分钟,得到的 AUC 可以作为一个可信的下界。任何更复杂的模型,都需要先超过它才算有意义。
8.6 三档速率怎么做对照
三条路,按严谨程度排:
- 同受试者内比较。 只用跑满三档的九个人,做重复测量方差分析。样本九,功效低但设计干净。
- 混合模型。 把速率、受试者、块序号都放进去,把「受试者」当随机截距。能同时处理缺失(06、14)与块间漂移。
- 只看趋势。 不检验显著性,只画三条速率下的平均波形与 AUC,说明方向。这是最诚实的做法,尤其在九个人的样本上。
8.7 一个容易被忽略的检查:块内试次数
如果按块切分做分析,第一件要做的事是数每个块里有多少个试次。
名义值是一百,实际不是。 六十二个文件里,除了每个文件的最后一个块,其余块都是整一百;最后一个块从几张到一百张都有。若写代码时假设「每块一百个」,最后一个块会被读到越界,或者被静默丢弃。
具体做法: 用块起始的 onset 时间戳排序,相邻两个起始之间就是该块的时长;再用同一段内的试次 onset 去数,两边的数量应该对得上。对不上就说明该块被截断了,按实际数量处理。
这个检查只花几行代码,但能挡住后面所有「为什么第 n 个块的特征维度跟别的块不一样」的报错。
§9 一个更宽的问题:「门控」这件事在脑电里怎么被证明
这份数据最容易被误用的地方,不是技术细节,而是一个概念跳跃:看到刺激后有脑电响应,就认为「受试者注意到了」。
在 RSVP 范式里,这个跳跃格外危险。十赫兹下每 100 毫秒一张图,其中九张没有飞机。如果每张图都诱发一次视觉响应,那么平均波形里就全是「有响应」的证据——可是受试者显然不可能「注意到」每一张无飞机的图,因为那里没有可注意的东西。
真正的证据应该是目标与非目标之间的差异,而不是「有没有响应」。这个差异有多大、在哪个时间窗、在哪个通道最大,才是这份数据能回答的问题。
第二层概念问题:目标占比十分之一是设计出来的,不是自然发生的。 现实中的搜索任务里,目标出现的概率远低于此。当目标概率改变时,受试者的判据(criterion)也会改变——信号检测论里这叫 β 的移动。这份数据固定了先验,所以它测到的是「在先验为十分之一时的检测能力」,不是「检测能力」本身。
还有一层:速率本身改变了「目标」这件事的难度。 五赫兹下每张图在屏上停留约 200 毫秒,足够一次扫视;十赫兹下只有 100 毫秒,扫视来不及完成,受试者只能靠周边视觉。这意味着三档速率测的可能不是同一个能力——五赫兹测的是「看与找」,十赫兹测的是「周边视觉的瞬时分辨」。把三档的 AUC 并排放在一张表里比较,得先确认比较的是同一个构念。
第三层:没有行为数据,就无法把脑电与判断分开。 一个试次的脑电可能显示「目标被检测到」,但受试者可能因为判据保守而没有报告。这两件事在这份数据里无法区分,因为没有报告。
§10 术语与口径
| 术语 | 本文口径 |
|---|---|
| 试次 | 一张图的出现,以注释里的一条 onset 为准 |
| 目标 | 注释里 T=1 的试次 |
| 块(burst) | 注释里 burstSize=100 到 END 之间的一百个试次 |
| 记录 | 一个 EDF 文件,从固定头的起始时刻连续 214 至 576 秒 |
| 会话 | 同一受试者同一速率的一次记录,文件名末位 a 或 b |
| 速率 | 每秒呈现的图像张数,取 5、6、10 |
| 通道 | EDF 信号头里声明的一路信号,本文的「八路」仅指脑电,不含状态与注释通道 |
| 横向目标 | 质心距屏幕中心横向张角至少 1.2 度的目标,本数据只保留这一类 |
| PR | 参与率,通道方差矩阵的 (Σλ)²/Σλ²,衡量方差集中度 |
§11 事实清单
11.1 核心事实表
| 项 | 数值 | 来源 |
|---|---|---|
| 受试者 | 11(编号 02–14,缺 01、05、07) | 文件名 |
| 文件数 | 62 | S3 对象清单 |
| 总字节 | 785.3 MB | S3 对象清单累加 |
| 采样率 | 2048 赫兹 | EDF 信号头 |
| 通道 | 8 路脑电 + 1 路状态 + 1 路注释 | EDF 信号头 |
| 增益 | 0.03125 微伏/单位(八路一致) | EDF 信号头 |
| 记录长度 | 36978 字节/秒 | 文件长度除以记录数 |
| 全部试次 | 20,814(a 组 10,784) |
注释流计数 |
| 目标试次 | 2,069(a 组 1,073、b 组 996) |
注释流计数 |
| 总时长 | 21,233 秒(353.9 分钟) | 记录数 × 1 秒 |
| 单文件时长 | 214 – 576 秒,中位 336.5 | 记录数 × 1 秒 |
| 目标横坐标取值数 | 91(125–509) | 注释流去重 |
a 组公共前缀 |
22 位,31 个文件全部一致 | 注释流逐位比对 |
b 组公共前缀 |
21 位,31 个文件全部一致 | 注释流逐位比对 |
| 近零通道 | 46 个通道-文件组合(受试者 09 的 42 个、11 的 2 个) | 逐通道标准差 |
| 两次记录间隔 | 中位 30 秒,最小 20 秒 | 固定头日期时间 |
| 校验和 | 63 行,全部通过 | SHA256SUMS.txt |
11.2 可立即验证的疑问
- 图像本身在受试者之间是否复用? 本页只验证了横坐标。要验证图像,需要原始刺激文件,而数据集没有提供。
- 受试者 06 为什么缺六赫兹、14 为什么缺十赫兹? 条目页未说明,文件里无痕迹。
- 受试者 09 的七路为什么无信号? 三种可能(电极脱落、参考故障、放大器通道故障)在数据内部无法区分。
- 六个数百微伏漂移文件,带通是在漂移前还是后施加的? 若在之前,漂移不该存在;若在之后,说明滤波参数与条目页不符。
- 为什么两次记录的间隔只有 30 秒? 与条目页「长时间休息」的表述直接冲突。
11.3 证据链
- 文件清单与体积:S3 ListObjectsV2 单页返回 64 个对象,累加 785.3 MB,无截断标记。
- 格式参数:62 个 EDF 的固定头(256 字节)与信号头(10×256 字节)全部解析,字段值一致。
- 注释流:按「记录长度 36978 字节、注释段位于每条记录末 114 字节」逐记录切分,去掉末尾 0x00 填充后按 0x14 分段,得到三类字段共两万余条试次记录、187 条块起始、125 条块结束。
- 通道幅度:逐文件逐通道以 int16 解包全部 2048 点,累加一阶与二阶矩,换算为微伏单位。
- 状态通道:逐文件逐记录检查,全部为 −32768。
- 时间戳:固定头第 168–184 字节为
dd.mm.yy与hh.mm.ss,按此排序得到每位受试者的会话顺序。
编辑说明
本页依据 PhysioNet 条目页(https://physionet.org/content/ltrsvp/1.0.0/)的公开表述撰写,并完整下载了全部 62 个 EDF(785.3 MB)做逐文件核对:解析固定头与信号头、逐记录切分注释通道、以 int16 解包八路全部采样点。
需要说明的几处判断:
一是关于通道数。条目页写「8 channels following the 10-20 system」,文件头里实际有 10 路:8 路脑电加 Status Channel 与 EDF Annotations。本页在正文统一说「八路脑电」,并在 §2.9 说明另两路的性质。这一处不是错误,是表述口径差异,但会让按「8」写死通道数的代码直接失败。
二是关于目标横坐标的复用。这是本页的核心发现:a 组 31 个文件共享 22 位前缀、b 组 31 个文件共享 21 位前缀。本页判定为刺激生成侧的随机种子未随受试者重新播种。判据是逐位比对,不是统计推断;但本页明确写出「只验证了坐标、未验证图像」,不把结论外推。
三是关于受试者 09。六次记录中除 P7 外的七路标准差低于 1 微伏,rsvp_6Hz_09b 的 P8 标准差为 0。本页建议整体排除这六次记录,但不推断原因——设备日志与采集者记录都不在数据集内。
四是关于两次记录的间隔。条目页说「长时间休息」,核对下来十九对里十六对在 20 至 43 秒之间。本页按文件里写下的日期时间字段判定,不采信「长时间」这一措辞。
五是关于体积。条目页写 748.9 MB,本页从对象清单累加得到 785.3 MB。前者是十进制兆字节,后者按 10⁶ 累加,差异源于单位口径而非数据变更。
六是关于状态通道。整段恒为 −32768,本页判定为无信息通道。但无法确定它是「采集时未接信号」还是「后处理时被置零」。
七是关于图 06 与 14 的缺口。文件名清单能证明缺哪一档,不能证明原因。
未验证的部分:原始刺激图像是否复用;受试者视力与矫正情况;采集设备的眼镜/眼电配置;条目页引用的原始论文中的具体结论与数字;注释时刻与屏幕实际刷新的硬件对齐精度。
编辑说明(核对方式)
核对时间:2026-10-20。核对方式:S3 免签名直连十六并发下载全部对象,SHA256 逐个比对全部通过;EDF 解析使用自写的定长偏移解析器,不经第三方库,以避免库层对非常规记录长度的容错掩盖问题。全部中间结果与脚本未随本页发布。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- eeg-power-anesthesia — 共享标签:生理信号 / 脑电信号 / 评测基准 / 神经科学
- moabb — 共享标签:生理信号 / 脑电信号 / 评测基准 / 神经科学
- tuev — 共享标签:生理信号 / 脑电信号 / 评测基准 / 神经科学
- nebula-reaching-eeg — 共享标签:生理信号 / 脑电信号 / 评测基准 / 神经科学
- openneuro — 共享标签:生理信号 / 脑电信号 / 神经科学
- tuab — 共享标签:生理信号 / 脑电信号 / 评测基准
- siena-scalp-eeg — 共享标签:生理信号 / 脑电信号 / 神经科学
- bigp3bci — 共享标签:生理信号 / 脑电信号 / 评测基准
- neurocritical-pediatric — 共享标签:生理信号 / 脑电信号 / 评测基准
- consumer-grade-wearables — 共享标签:生理信号 / 评测基准 / 神经科学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

