256 个 CSI 子载波,实际有几个自由度?GL-MT6000 双抓包冗余审计

作者 Wu Jun · 更新于 2026-11-01 · Wi-Fi CSI, 子载波冗余, PCA, 有效维度, GL-MT6000, MT7986 · 约 7 分钟

结论先说: 在本次 GL-MT6000 的 10 分钟幅度抓包中,256 个数组位置不是 256 个 独立观测维度。对逐快照归一化后的幅度做相关矩阵 PCA,6 个主成分解释 90% 方差, 9 个解释 95%,20 个解释 99%;参与率有效维度为 4.568732。相邻子载波的相关系数 中位数为 0.900779。这不是“路由器只有 6 个传感器”的物理结论,而是这两段幅度数据 在当前预处理下的统计维度结论。

四面板 CSI 子载波分析:10 分钟和 60 秒归一化幅度轮廓、4 乘 4 分块平均相关矩阵、PCA 累积方差和绝对相关系数直方图。

图 1:左上为两段抓包的归一化幅度轮廓;右上为 256 × 256 相关矩阵的 4 × 4 分块平均; 左下为 10 分钟数据的 PCA 累积方差;右下为绝对非对角相关系数分布。图由公开脚本生成。

1. 结果总表

两段数据都固定选择 tx0/rx0,不回退到其他链,也不把多个 tx/rx 记录当成更多时间样本 [1]。

指标 10 分钟抓包 60 秒抓包
外层记录 57,293 2,777
bit15 闭合组 7,609 347
完整 256-bin、tx0/rx0 行 7,608 347
不完整固定链组 1 0
90% 累计方差所需主成分 6 不用于选维
95% 累计方差所需主成分 9 不用于选维
99% 累计方差所需主成分 20 不用于选维
参与率有效维度 4.568732 不用于选维
第一主成分方差占比 33.933% 不用于选维
前 10 主成分累计方差 96.858% 不用于选维
非对角相关系数绝对值中位数 0.204452 不用于选维
相邻 bin 相关系数中位数 0.900779 不用于选维
abs(r) >= 0.75 的 pair 比例 17.451% 不用于选维
abs(r) >= 0.90 的 pair 比例 10.064% 不用于选维

10 分钟主数据用于 PCA 维度选择;60 秒数据只用于检查同一结构是否再次出现,不用它反过来 挑选主成分数量,避免把测试 session 泄漏进模型选择。

2. 为什么“有 256 列”不等于“有 256 个自由度”

CSI 的一帧常被摊平成 256 维向量。很多模型随后默认每列相互独立,或按普通表格列做特征选择。 但相邻频率位置会共享发送端、接收端、多径路径、自动增益和数据装载结构;仅凭列数不能判断 独立信息量 [2] [3]。

这不是语义争论,而会影响:

PCA 不证明相关性的物理来源,只给出当前矩阵中方差如何分布 [4]。本文因此 只报告“相关结构”和“统计有效维度”,不报告“物理上只有几个子载波”。

3. 数据选择与预处理

步骤如下:

  1. 按外层容器 <float64 ts><uint16 len><payload> 遍历;
  2. 按 chain_info bit15 闭合测量组;
  3. 只选择 tx0/rx0;缺链或重复链计数后跳过,绝不自动换链;
  4. 只接受 256 个复数对、I/Q 非全零的记录;
  5. 每个 256-bin 幅度向量除以自身中位数,去掉共享增益的一阶变化;
  6. 对每个 bin 在时间轴上中心化并缩放到单位标准差;
  7. 对 256 × 256 Pearson 相关矩阵做特征分解;
  8. 以累计方差首次达到 90%、95%、99% 的成分数作为维度门槛;
  9. 另报告参与率有效维度:
effective_rank = (sum(eigenvalues)^2) / sum(eigenvalues^2)

10 分钟数据中,7,609 个闭合组有 7,608 个完整 tx0/rx0 行,另有 1 个组不是完整 256-bin 固定链样本;60 秒数据 347 个闭合组全部可用。输入文件 SHA-256 分别为 527466ceb8b5f835e55ff348f02808736b947db39e7baac1f34e375de146a440 与 41c35d9d23e5c03ddd34ae97617e772fecdb55e8545156181828b060605a87a6。

4. 相关结构不是“全部很高”,而是分层的

256 个 bin 的 32,640 个非对角 pair 中,绝对相关系数中位数只有 0.204452;只看这个数, 很容易得出“子载波大体独立”的错误印象。分布的上尾完全不同:

所以更准确的说法是:邻近位置形成强相关结构,远距离位置大多不相关,整体并非一个均匀的 256 × 256 相关块。低中位数与低 PCA 维度并不矛盾;特征值主要由少数强结构方向贡献。

这张相关矩阵不能用来给 bin 分配物理频率。数组索引到 OFDM 子载波、导频、保护带或资源单元的 映射需要驱动和固件级证据,当前数据没有完成这一步。

5. PCA 的 6 / 9 / 20 维度门槛

10 分钟相关矩阵的前几个特征值为:

主成分 方差占比 累计方差
1 33.933% 33.933%
2 25.669% 59.602%
3 16.927% 76.528%
4 6.754% 83.283%
5 5.088% 88.370%
6 3.670% 92.041%
7 1.477% 93.518%
8 1.415% 94.934%
9 1.194% 96.127%
10 0.730% 96.858%

因此:

不能说这 6 个主成分就是“6 条物理路径”。PCA 旋转只保证在平方误差意义下按方差排序, 不保证成分可解释或跨设备对齐。

6. 60 秒抓包是否重现同一结构

把两段数据分别按自身 256-bin 中位数归一化后,比较每个 bin 的中位幅度轮廓:

这说明 bin 之间的相对结构在这两段抓包里高度相似。但绝对增益并不相同,不能把轮廓相关 解释成绝对幅度或链路预算不变。

逐 bin 时间变异分布也很不平均:

指标 10 分钟 60 秒
CV 最小值 0.087431 0.056579
CV p25 0.173107 0.102854
CV 中位数 0.248880 0.135704
CV p75 9.274449 7.475848
CV p95 10.816894 7.849462
CV 最大值 12.641809 8.561378
CV > 1 的 bin 比例 37.891% 36.328%

这是一个明显的偏斜分布;高 CV 不等于坏数据,也不等于高感知灵敏度。它可能来自局部零陷、 增益变化、多径和装载结构。文章保留原始 bin 指标,不按 CV 擅自删除样本。

10 分钟数据中,127 个 bin 至少出现过一次零幅度,共约 400 个零 bin 观测,最大单 bin 零值 比例约 0.131%;60 秒数据为 47 个 bin、约 55 个观测,最大比例约 0.576%。数量很小但并非零, 因此解析器仍应显式处理,而不是除以零或静默填数。

7. 对建模和实验设计的直接影响

更稳妥的做法是:

  1. 把“256 维输入”描述为高冗余的原始表示,不描述为 256 个独立传感器;
  2. 在每个 session 内报告相关系数和有效维度;
  3. 如果做 PCA 或其他降维,维度只在训练 session 选择;
  4. 用未见 session 或未见房间验证,而不是把同一段数据随机切两半后宣布泛化;
  5. 对树模型、线性模型和神经网络比较原始 256 维与低维表示,而不是假定降维必然更好;
  6. 保留 bin 身份、预处理和特征值谱,避免只发表一个“准确率”。

“6 个主成分解释 90%”不等于“所有任务都只需 6 个特征”。如果目标依赖尾部弱信号、特定导频 或局部零陷,压缩可能丢掉关键信息。正确问题是:在当前任务和独立测试集上,丢掉多少尾部方差 是允许的。

8. 复现

下载公开 10 分钟抓包与 60 秒演示源后运行:

python3 analyze_csi_subcarrier_redundancy.py \
  csi_udp_20261010_10m.anon.bin \
  csi_demo_60s_anonymized.bin \
  --out-dir csi-subcarrier-redundancy \
  --img csi-subcarrier-redundancy.svg

脚本只依赖 Python 3.9+ 和 NumPy。公开文件:

数据集页见 GL-MT6000 Wi-Fi CSI 数据集;链完整性见 CSI 链健康审计;时间空档的频谱影响见 CSI 长空档频谱代价。

9. 证据边界

本文属于 E 级一手复现 [5],PCA 方法语境参考同行评审综述 [4]。它不证明:

两份数据都缺少空场基线、已知动作、受试者位置和人体事件 ground truth。这个实验只能支持 幅度冗余审计、维度报告和更严格的实验设计。

10. 验收清单

参考与数据来源

本文的每条外部结论都标注来源与证据等级(分级标准);标注 E 级的是本项目可复现的实测数据。

  1. 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,两者不可混用。
  2. A 级 · 标准/综述 WiFi Sensing with Channel State Information: A Survey
    W. Ma, W. Zhou, X. Wang · ACM Computing Surveys · 2019
    doi:10.1145/3310194 · 被引 857 · 核实: CrossRef API, 2026-10-11 · 领域内最常被引用的 CSI 感知综述(被引 857 次,核实于 CrossRef)。
  3. B 级 · 同行评审 Tool release: gathering 802.11n traces with channel state information
    D. Halperin, W. Hu, A. Sheth, D. Wetherall · ACM SIGCOMM Computer Communication Review · 2011
    doi:10.1145/1925861.1925870 · 被引 1713 · 核实: CrossRef API, 2026-10-11 · Intel 5300 CSI Tool 的正式论文(被引 1713 次),是 CSI 采集被广泛复现的起点。
  4. B 级 · 同行评审 Principal component analysis: a review and recent developments
    I. T. Jolliffe, J. Cadima · Philosophical Transactions of the Royal Society A · 2016
    doi:10.1098/rsta.2015.0202 · 被引 7798 · 核实: CrossRef API, 2026-11-01 · PCA 的同行评审综述,覆盖方差解释、降维和解释边界。本文只用其方法定义,不把相关结构解释为物理因果。
  5. 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) · 只证明这两段幅度抓包中的相关结构与有效维度,不把数组索引映射为物理频率,也不提供人体真值。
  6. 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 · 公开版含无第三方依赖的抓包质量预检;网页端检查器使用同一容器定义和边界口径。