GL-MT6000 Wi-Fi CSI 数据集:样例、完整包与使用边界
作者 Wu Jun · 更新于 2026-11-02 · Wi-Fi CSI, 信道状态信息, Wi-Fi 感知, 数据集, MT7986, OpenWrt · 约 6 分钟
这里提供一个可下载、可校验、可复现的路由器 CSI 数据集。10 秒样例用于先跑通解析器; 完整 10 分钟数据用于研究时间轴、选链、幅度/相位处理和基线算法。
数据来自 GL.iNet GL-MT6000(MT7986A + MT7976)+ OpenWrt + mt76 CSI [1], 采集与分析脚本公开 [2]。数据集是实验证据,不是“算法准确率”的证明;能做什么与不能做什么 在本文中有明确列表。
截至 2026-11-02 检查时,Zenodo 记录显示 51 次下载、 44 次浏览,其中 41 次为唯一浏览。这些是平台计数器,不等同于引用影响、背书或算法质量证明。
1. 文件清单
| 文件 | 大小 | 用途 |
|---|---|---|
| csi_sample_10s.bin | 322 KB | 10 秒原始抓包,312 条链记录 |
| csi_sample_amplitude.csv | 16 KB | 前 200 条记录、前 8 个子载波的幅度摘要 |
| csi_demo_60s_anonymized.bin | 2.8 MB | 在线 Demo 的 60 秒源:2,777 条链记录、347 个完整组、1 条尾部残片 |
| 60 秒 manifest | 约 1 KB | 记录数、完整组、时间跨度、RSSI/SNR 与 SHA-256 |
| 完整 10 分钟数据(Zenodo) | 约 58 MB | 8 个分片 + manifest + 重组说明 + 两张分析图 |
manifest.json |
约 2 KB | 每片/整包 SHA-256、采集元数据 |
analysis_heatmap.png |
约 300 KB | 幅度热图 |
analysis_motion.png |
约 160 KB | 1 秒滚动幅度运动指标 |
Zenodo DOI:https://doi.org/10.5281/zenodo.23434789;concept DOI: https://doi.org/10.5281/zenodo.23434788。前者指向当前版本,后者用于跨版本引用。
2. 采集环境
| 项目 | 值 |
|---|---|
| 设备 | GL.iNet GL-MT6000(MT7986A + MT7976) |
| 系统 | OpenWrt SNAPSHOT / Linux 6.18 |
| Wi-Fi 固件 | mt7986_wm.bin 20260515,MD5 3ce21edabe201608e7bec0dd16898019 |
| 频段 / 带宽 / 信道 | 5GHz / HE80 / ch44 |
| 子载波 / 链路 | 256 子载波;tx 0–1 × rx 0–3(8 条链) |
| 采集时间 | 2026-10-10 |
| 许可 | CC BY 4.0 |
这是一次真实家庭环境测量,不是多房间、多受试者、多设备的数据集。换房间、换姿势、换固件或换客户端, 信道条件都会变化。
3. 数据字典
每帧由外层容器和内层 CSI payload 组成:
outer: double file_ts (8, little endian)
uint16 length (2, little endian)
payload (length bytes)
inner: 24-byte v1 header
或 28-byte v2 header(24-byte v1 + uint32 sequence)
int16 I/Q interleaved
| 字段 | 类型 | 说明 |
|---|---|---|
file_ts |
float64 | 接收端文件时间,适合跨 session 对齐 |
ts |
uint32 | 设备侧时间戳,微秒 |
ta |
6 bytes | 发送端地址;完整包已统一脱敏为 02:00:00:00:00:01 |
rssi |
int8 | RSSI,dBm |
snr |
int8 | 设备报告的 SNR |
bw |
uint8 | 带宽代码,不能直接当 MHz |
ch |
uint8 | 信道 |
mode |
uint8 | 设备模式/字段代码 |
pad |
uint8 | v1 中保留;v2 中用作 sequence epoch |
data_num |
uint16 | 本帧复数 I/Q 数量 |
tx / rx |
uint16 | 发射/接收链编号 |
chain_info |
uint16 | bit15 标记一次测量的最后一条链 |
I/Q 为 <i2 小端交错:
iq = np.frombuffer(payload, dtype="<i2", offset=header_size)
i, q = iq[0::2], iq[1::2]
amplitude = np.hypot(i, q)
phase = np.angle(i + 1j * q)
chain_info 不是“链条总数”,也不是子载波索引;它是测量结束标记。一次测量可能包含 4 或 8 条链。
4. 实测统计
| 指标 | 值 |
|---|---|
| 外层记录 | 57,293 |
| 时间跨度 | 599.924 秒 |
| 平均链记录率 | 95.5 条/秒 |
| bit15 完整测量组 | 7,609 |
| 8 链组 / 4 链组 | 6,714 / 895 |
| 简单选链后的矩阵 | 约 7,608 × 256 |
| 分析剔除异常后 | 7,583 次测量 |
| 闭合测量组率 | 约 12.68Hz |
| 剔除后的分析率(7,583 组) | 约 12.64Hz |
| 子载波记录 | 256 子载波 57,289 条;64 子载波 4 条 |
| RSSI 最小/平均/最大 | −48 / −31.3 / −26 dBm |
| SNR 最小/平均/最大 | 52 / 53.29 / 55 |
| 时间空档 p95 / max | 0.322 / 2.373 秒 |
| 可用 256 子载波时间轴上的 >1 秒 / >5 秒空档 | 57 / 0 |
这些数字不是从页面介绍里抄来的,而是解析原始包后计算的;逐行流程见数据集解析实战。
另见10 分钟 CSI 质量审计:组间隔中位数 41.019ms、p95 321.838ms、
p99 945.690ms,57 个间隔超过 1 秒,最大 2.373 秒。对应的
脚本、README 与 JSON可以在本地复跑。
进一步分析空档如何改变频谱时,长空档频谱代价给出一个可复现结果:
10 Hz 均匀网格有 1,823/6,000 个点落在超过 0.5 秒的原始间隔内;已知 0.25 Hz 控制信号的插值
相对 RMS 误差为 14.094%。该实验不提供呼吸或人体真值。
CSI 链健康审计进一步检查 8 条链是否等价:6,714 个组有 8 链,895 个组只有
4 链;组内 RSSI/SNR 对每条链相同,因此不能用于单链排序。该页同时公开分析脚本、逐链 CSV 和图。
CSI 子载波冗余审计则固定 tx0/rx0,对 7,608 个 256-bin
幅度向量做 PCA:6 个主成分解释 90% 方差,相邻 bin 相关中位数为 0.901。该结果只描述这两段
抓包的幅度相关结构,不把数组索引映射为物理频率。
5. 校验完整包
- 从 Zenodo 下载 8 个分片和
manifest.json; - 按文件名顺序合并;
- 校验整包 SHA-256。
cat csi-10m.part-*.bin > csi_10m.bin
shasum -a 256 csi_10m.bin
# macOS: shasum;Linux 也可用 sha256sum
# 期望:
# 527466ceb8b5f835e55ff348f02808736b947db39e7baac1f34e375de146a440
也可逐片比较 manifest.json 中的 sha256。如果分片名称相同但 hash 不同,不要继续分析;先重新下载。
6. 最小复现检查
先检查文件级,再检查解析级:
| 检查 | 期望 |
|---|---|
| 样例记录数 | 312 |
| 完整包记录数 | 57,293 |
| bit15 组数 | 7,609 |
| 时间跨度 | 约 600 秒 |
| 尾记录 | 1 条未闭合记录 |
| 256 子载波 | 绝大多数帧 |
| 4 链组 | 895 组,不能假设永远 8 链 |
| 完整包 SHA-256 | 与 manifest 一致 |
解析器还要处理 24/28 字节头、小端 I/Q、v2 sequence 和 bit15 边界。只运行一次“能打开文件”不算验证。
7. 这份数据能支持什么
可以用于:
- 验证二进制解析器、分片合并与 SHA-256;
- 研究时间戳、链选择、缺链和异常组;
- 画 256 子载波幅度热图;
- 建立运动/静止的低频基线;
- 复现本项目文中的统计数字;
- 比较不同解析器对同一包的输出。
不能单独证明:
- 呼吸或心率的临床/医疗准确率(没有同步参考值);
- 跌倒检测的敏感性、特异性或每日误报;
- 精细距离、角度、人体姿态或身份;
- 穿墙成像;
- 在其他房间、其他路由器或其他人身上同样有效。
这不是谦虚措辞,而是数据缺少同步真值、受试者标签和多环境重复。要做这些结论,需要新的采集和参考设备。
8. 隐私与许可
完整包已把发送端 MAC 替换为 02:00:00:00:00:01;RSSI 和 I/Q 数值未改动。抓包外层的绝对 Unix
时间戳也保留下来,因此当前版本属于MAC 脱敏后的去标识/伪匿名数据,不能保证法律意义上的完全匿名。
活动节律和同一 session 内部的时间关联仍然存在。威胁模型与未来时间平移版本的规则见
Wi-Fi CSI 隐私与公开数据集脱敏。
许可为 CC BY 4.0:研究和商业使用允许,但必须保留署名。不要把数据重新上传为未注明来源的“自有数据集”。
推荐引用:
Router CSI Lab. (2026). GL-MT6000 (MT7986) Wi-Fi CSI dataset — 10 minute capture, 80 MHz / 256 subcarriers [Data set]. Zenodo. https://doi.org/10.5281/zenodo.23434789
9. 版本与勘误
- 当前版本:2026-10-17 Zenodo 发布;
- 页面更新:2026-10-29,补充组数、选链、尾记录和统计边界;
- 2026-10-29 新增 60 秒浏览器 Demo 源;完整组 347、尾部残片 1,SHA-256
41c35d9d23e5c03ddd34ae97617e772fecdb55e8545156181828b060605a87a6; - 若发现分片、字段或统计错误,应在 Zenodo 新增版本并保留旧 DOI;
- concept DOI 用于引用跨版本数据集,version DOI 用于精确复现。
10. 相关文档
- 从 8 个分片到热图:逐行代码与输出;
- 工具与脚本:可下载的分析工具包;
- CSI 链健康审计:缺链、RSSI/SNR 语义与选链边界;
- GL-MT6000 复现教程:采集端和 CSI 配置;
- 方法论:本站 A–E 证据分级。
参考与数据来源
本文的每条外部结论都标注来源与证据等级(分级标准);标注 E 级的是本项目可复现的实测数据。
- E 级 · 本项目实测
Router CSI Lab — GL-MT6000 (MT7986) Wi-Fi CSI dataset, 10 s sample + 10 min capture
Router CSI Lab · 2026
doi:10.5281/zenodo.23434789 · 核实: CC BY 4.0;SHA-256 已发布;Zenodo DOI 10.5281/zenodo.23434789 · 数据集已获 Zenodo DOI(10.5281/zenodo.23434789),可直接引用。 - E 级 · 本项目实测
Router CSI Toolkit — 采集/分析/守护脚本(MIT,公开仓库)
Router CSI Lab · 2026
github.com/jjjwu/router-csi-toolkit · 核实: GitHub API 于 2026-11-02 核实公开仓库、抓包质量预检、成功 CI 与 v0.1.3 Release;归档 SHA-256 为 59f144c0…adea7 · 公开版含无第三方依赖的抓包质量预检;网页端检查器使用同一容器定义和边界口径。 - E 级 · 本项目实测
本项目 10 分钟实测抓包(57,293 条 / 600.0 s,SHA-256 00373f83…95e2)
Router CSI Lab · 2026
okwujun.pw/zh/datasets/ · 核实: 分片重组逐字节校验通过(2026-10-11) · 本地原始母片 SHA-256 为 00373f83…95e2;公开下载的是去标识派生文件,SHA-256 为 527466ce…a440,两者不可混用。 - E 级 · 本项目实测
CSI subcarrier redundancy and effective-dimensionality audit (script, metrics, PCA spectrum)
Router CSI Lab · 2026
okwujun.pw/zh/csi-subcarrier-redundancy/ · 核实: From the public 10-minute and 60-second captures with input SHA-256 527466ce…a440 and 41c35d9d…87a6; script, JSON, CSVs and figure published together (2026-11-01) · 只证明这两段幅度抓包中的相关结构与有效维度,不把数组索引映射为物理频率,也不提供人体真值。