OFDM 蜂窝网络无设备感知复现日志

OFDM 蜂窝网络无设备感知复现日志
Kanwuqing复现了 Shi 等人 2022 年发在 JSAC 上的一篇通感一体化论文, 内容是让蜂窝网里的基站不发专门的探测波, 直接用 OFDM 业务信号把周围没带设备的人找出来
论文: Device-Free Sensing in OFDM Cellular Network
作者: Q. Shi, L. Liu, S. Zhang, S. Cui
期刊: IEEE JSAC, vol. 40, no. 6, pp. 1838–1853, Jun. 2022
doi: 10.1109/JSAC.2022.3155543
预印本: arXiv:2108.09177
官方代码在 PolyuWirelessCommunicationLab/Data-Association-in-Network-Device-Free-Sensing 的 Device-free Sensing in OFDM Cellular Network/ 目录里
这个官方代码包只有 6 个
.m文件, 没有main.m, 也没有信号级的阶段一. 所以这次的工作一半是复现, 一半是自己补
系统设定
系统里有 $M$ 个基站, $K$ 个目标. 基站发 OFDM 导频, 信号打到人身上反射回来, 基站从回波里量出时延, 时延换算成距离
麻烦的地方在于接收端只能拿到一组距离数值, 不知道哪个距离属于哪个人. 比如 4 个基站, 3 个人, 每个基站交上来 3 个距离, 一共 12 个数字, 但谁跟谁是一伙的完全没有标签
论文把这个拆成两段
| 阶段 | 工作 | 输出 |
|---|---|---|
| 阶段一 测距 | 每个基站独立处理自己的回波, 找出有几个可分辨的时延 | $M$ 个大小为 $K$ 的无标签距离集合 |
| 阶段二 定位 | 用各基站距离集合之间的几何约束把距离配对, 解出坐标 | $K$ 个目标的位置 |
官方代码的缺口
归档下来的 6 个文件是这样
| 文件 | 作用 |
|---|---|
model.m |
阶段二的蒙特卡洛主驱动 |
coorest.m |
高斯–牛顿位置精修 |
initial_est.m |
三站线性三边定位初值 |
diffdist.m |
估计与真值的匈牙利配对 |
distsum.m |
目标函数辅助 |
munkres.m |
匈牙利算法, Yi Cao 写的 |
model.m 里有这么一句
1 | dist_m(m,k) = ceil(dist_r(m,k)/delta_d)*delta_d - delta_d/2; |
这一步把真实距离量化到距离单元中点, 然后直接当作阶段一的输出喂给阶段二. 也就是说阶段一在官方代码里被整体假设掉了, 论文最核心的 OFDM 信道估计那一层根本没跑
所以这次的活分成性质不同的两块
| 部分 | 内容 | 性质 |
|---|---|---|
| 阶段二 | 鬼影检测, 数据关联, 位置精修 | 复现论文算法 |
| 阶段一 | OFDM 信道估计, 抽头检测, 距离换算 | 实现论文公式, 官方没给代码 |
环境
Windows 11 (10.0.26100), Python 3.12.10
1 | numpy==2.5.4 |
随机种子固定成 20240929, 各实验的网格点按确定性规则从它派生
| 实验 | 种子派生式 |
|---|---|
| E1 误差概率随 $K$ | default_rng(seed + k) |
| E2 误差概率随 $B$ | default_rng(seed + int(B/1e6)) |
| E3 鬼影概率 | default_rng(seed + 100*M + k) |
| E4 阶段一精度 | default_rng(seed + int(B/1e6) + k) |
| E5 消融 | default_rng(seed + int(cross)*7 + int(ple*3)) |
results/data/manifest.json 里存着全部种子, 每点样本数, 区域尺寸和各库版本, 逐点结果也在里面, 可以直接当运行凭证
阶段一: 信号级测距
基站收到的信号, 本质上是 $K$ 条反射路径的叠加, 每条路径对应一个抽头. 处理流程是: 构造真实信道 → 合成接收信号 → 叠加噪声 → 估计信道 → 检测抽头 → 换算距离
最小二乘
标准做法要求解
$$\hat{h} = (G^H G)^{-1} G^H (\bar{s}^* \odot \bar{y})$$
其中 $G$ 是傅里叶字典, $G[n,l] = e^{-j2\pi(n-1)(l-1)/N}$, 求逆代价 $O(L^2 N)$
但 $G$ 的列向量两两正交, $G^H G = N \cdot I$, 单位阵的逆就是 $1/N$ 倍单位阵, 整个求逆可以约掉
$$\hat{h} = \frac{1}{N\sqrt{p}} G^H (\bar{s}^* \odot \bar{y})$$
这时候计算量降到 $O(NL)$, 相当于一次逆傅里叶变换
这是精确的, 不是近似. 拿它跟显式伪逆逐元素比, $L$ 取 64 / 227 / 512 三种规模, 最大差值都是 0.000e+00
$L=512$ 时实测快约 500 倍. 顺带一提, 那个等式两边在浮点下完全相等, 没有精度损失
抽头检测和距离换算
对每个抽头算能量 $|\hat{h}_l|^2$, 超过阈值判为非零抽头. 阈值取
$$\gamma = \sigma_h^2 \ln(1/p_{fa}), \qquad \sigma_h^2 = \frac{\sigma^2}{N p}$$
这样纯噪声被误判的概率恰好是 $p_{fa}$, 跟噪声强弱无关
检测完如果抽头数超过 $K$, 保留能量最强的 $K$ 个; 一个都没检出就兜底取最强的 $K$ 个
第 $l$ 个抽头对应的单程距离取单元中点
$$\bar{d} = (l-1)\frac{c_0}{2B} + \frac{c_0}{4B}$$
取中点是因为真实距离在单元内均匀分布, 这样最大误差最小. 误差上界就是论文式(8)
$$|\bar{d} - d| \le \Delta_d = \frac{c_0}{4B}$$
整套系统的精度下限就是这个 $\Delta_d$. 100 MHz 时算出来 0.7495 米, 论文写 0.75, 相差 0.07%, 是论文取整造成的
抽头数按带宽自适应 ★★★★★
抽头序号由往返路径长度 $2d$ 决定, 所以 $L$ 个抽头能表示的最大往返距离是 $L c_0 / B$, 换算成单程是
$$d_{max} = \min(L, Q)\cdot \frac{c_0}{2B}$$
论文给了仿真区域 $R = 240$ 米, 但对角线 $R\sqrt{2} \approx 339.41$ 米才是区域内任意两点的最大距离. 如果 $L$ 取得不够大, 远端目标的回波会绕回格子外面混叠进来
混叠之后有个更阴的地方: 混叠后的距离数值可能反而落回 $d_{max}$ 以内, 光看「距离不超过 $d_{max}$」这个条件根本发现不了. 真正的合法性由「抽头序号小于 $L$」保证
所以 $L$ 按带宽自适应取 $\lceil 2 R\sqrt{2} B/c_0 \rceil + 2$
| $B$ (MHz) | $\Delta_d$ (m) | $L$ | $Q$ | 单程 $d_{max}$ (m) | 实际最大抽头序号 | 覆盖 339.41 m |
|---|---|---|---|---|---|---|
| 10 | 7.4948 | 64 | 2048 | 959.34 | 23 | 是 |
| 20 | 3.7474 | 64 | 2048 | 479.67 | 46 | 是 |
| 50 | 1.4990 | 116 | 2048 | 347.76 | 114 | 是 |
| 100 | 0.7495 | 229 | 2048 | 343.26 | 227 | 是 |
| 200 | 0.3747 | 455 | 2048 | 341.01 | 453 | 是 |
| 400 | 0.1874 | 908 | 2048 | 340.26 | 906 | 是 |
末两列是关键: 实际最大抽头序号始终小于 $L$ (227 < 229, 453 < 455, 906 < 908), 六档带宽都没有饱和
50 MHz 那档 $L = 116$ 是被无混叠约束顶上去的, 不是受 64 这个下限钳制. 复跑时某一档出现异常远的定位点, 先查抽头序号离 $L$ 还有多远
另外代码里在抽样阶段就加了拦截, 目标距离超过无模糊上限直接抛异常
1 | def validate_unambiguous(self, max_distance_m: float) -> None: |
这种错误事后很难从结果里认出来, 拦在抽样阶段最省事
阶段二: 数据关联与定位
位置精修
对应 coorest.m. 从三站线性三边定位的闭式解出发, 按阻尼牛顿方向迭代
$$\beta \leftarrow \beta - \lambda (J^T J)^{-1} J^T r$$
雅可比 $J$ 只有 $2\times 2$, 正规方程用显式闭式求逆, 几何接近降秩时加对角阻尼. 对 $2\times 2$ 系统这跟伪逆等价, 但快, 因为最大似然算法会把它调几百次. $\lambda = 0.2$, 步长范数小于 0.05 米或满 50 次就停
鬼影检测
一个候选关联是一致的, 当且仅当存在一点 $x$ 使该点到各基站的距离恰好等于给定的 $M$ 个距离值. 如果除了真实关联之外还有别的关联也闭合, 且交点不落在任何真实目标上, 那个点就是鬼影
朴素做法是枚举每个基站上 $K$ 个距离的全部排列, 共 $(K!)^{M-1}$ 种. E3 里 $M$ 最大 6, $K$ 最大 6, 这个数量级跑不动
实际用的剪枝策略: 先枚举前三个基站的候选三元组, 对满足一致性的延拓到剩余基站, 每个基站只在 $O(K)$ 时间里检验候选距离是否落在某条路径上
最大似然关联
三步
- 前三个基站距离集合上取笛卡尔积, 共 $K^3$ 个候选, 先过三角不等式, 再用高斯–牛顿解位置, 残差和超预算的剔除
- 每个目标槽位选一个三元组, 三个基站上用掉的 $K$ 个距离必须恰好等于各自集合. 实现里按第一站距离值分组, 递归时持续检查已用距离仍是各站集合的子多重集
- 第 4 到第 $M$ 个基站, 用「目标当前估计位置到该站的距离」与「该站各候选距离」之差的绝对值做代价矩阵, 匈牙利算法配对, 再精修一次
最后按全部 $M$ 个基站的残差总和排序取最小
残差预算 ★★★★
model.m 把距离换成单元中点, 所以就算关联完全正确, 每个基站仍会留下最多 $\Delta_d$ 的残差, 三站合计最多 $3\Delta_d$
论文给的 feasibility_factor = 1.5, 也就是预算 $1.5 M \sigma_d = 1.5 M \Delta_d/2 = 0.75 M \Delta_d$. 这个数比误差模型本身能达到的水平还紧, 会把几乎所有有效候选都排除掉, 而且带宽越大 ($\Delta_d$ 越小) 越严重
现在的做法是保留参数默认值对应论文, 但 max_error 没显式指定时把实际预算取成 $M \Delta_d$, 即 $M \cdot 2\sigma_d$ 再乘 1.5, 让预算跟误差模型量级对上. 想跑论文原始那套过紧规则, 显式传 feasibility_factor=1.5 就行
实验
E1 误差概率随目标个数的变化 ★★★★
$M = 4$, $B = 100$ MHz, 每个点 300 个几何
| $K$ | P(>1.5 m) | P(>2 m) | P(>2.5 m) | RMSE (m) | RMSE 剔除 (m) | 中位误差 (m) | 灾难性 | 不可行 |
|---|---|---|---|---|---|---|---|---|
| 2 | 0.0350 | 0.0217 | 0.0167 | 27.94 | 0.714 | 0.507 | 6/600 | 2/300 |
| 3 | 0.0367 | 0.0222 | 0.0133 | 19.73 | 0.711 | 0.475 | 5/900 | 1/300 |
| 4 | 0.0275 | 0.0142 | 0.0092 | 5.38 | 0.669 | 0.473 | 5/1200 | 0/300 |
| 5 | 0.0460 | 0.0313 | 0.0280 | 39.23 | 0.736 | 0.498 | 24/1500 | 4/300 |
| 6 | 0.0467 | 0.0333 | 0.0267 | 40.15 | 0.795 | 0.482 | 30/1800 | 4/300 |
| 7 | 0.0467 | 0.0310 | 0.0252 | 27.84 | 0.908 | 0.484 | 29/2100 | 2/300 |
$K$ 从 2 涨到 7, 关联组合空间大了上万倍, 错误概率只从 3.50% 爬到 4.67%, 全程没超过 5%
剔除后的 RMSE 从 0.714 涨到 0.908, 看着像是恶化了 27.2%. 但中位误差几乎没动(0.473 到 0.507, 极差 7%). 两个数对照一下, 恶化来自尾部变厚, 整体精度没降. $K$ 越大错误关联的候选越多, 少数样本被推到更远的地方去了
灾难性率也没随 $K$ 单调恶化, $K=2$ 时 1.00%, $K=4$ 最低 0.42%, $K=5$ 和 $K=6$ 涨到 1.60% 和 1.67%, $K=7$ 又回落 1.38%. 这个指标反映的是尾部事件的抽样波动, 不是「$K$ 大必然出错」
E2 误差概率随带宽的变化 ★★★★★
$M = 4$, $K = 3$, 每点 300 个几何, 900 个目标样本. 论文的核心结论在这一条上
| $B$ (MHz) | $\Delta_d$ (m) | P(>1.5 m) | P(>2 m) | P(>2.5 m) | RMSE (m) | RMSE 剔除 (m) | 中位误差 (m) | P95 (m) | 灾难性 |
|---|---|---|---|---|---|---|---|---|---|
| 10 | 7.495 | 0.9411 | 0.9022 | 0.8400 | 42.79 | 15.77 | 5.036 | 36.50 | 16/900 |
| 20 | 3.747 | 0.7489 | 0.6078 | 0.4789 | 40.85 | 4.53 | 2.419 | 9.65 | 16/900 |
| 50 | 1.499 | 0.1833 | 0.1022 | 0.0711 | 48.53 | 1.69 | 0.947 | 3.37 | 24/900 |
| 100 | 0.749 | 0.0356 | 0.0244 | 0.0178 | 29.32 | 0.87 | 0.496 | 1.23 | 9/900 |
| 200 | 0.375 | 0.0100 | 0.0089 | 0.0089 | 19.60 | 0.44 | 0.278 | 0.62 | 4/900 |
| 400 | 0.187 | 0.0033 | 0.0022 | 0.0022 | 3.78 | 0.24 | 0.174 | 0.35 | 1/900 |
错误概率从 94.11% 降到 0.33%, 跨六档带宽下降 282 倍
剔除后的 RMSE 从 15.77 米降到 0.24 米, 降幅 66 倍, 而且是跟着 $\Delta_d$ 一起走的. 从 20 MHz 往上, 每一档的剔除后 RMSE 都压在 $\Delta_d$ 的 1.1 到 1.3 倍之间
精度天花板由量化下限定死, 算法写得再花也压不到 $\Delta_d$ 以下
单调性用程序验过: 错误概率的逐档差分全为非正, 剔除后 RMSE 的逐档差分全为负
中位误差从 5.036 降到 0.174, 降幅 28.9 倍. 这个倍数比带宽的 40 倍小, 因为 10 MHz 那边误差是量化主导($\Delta_d$ 有 7.5 米), 到了 400 MHz 已经进误关联尾部主导的区间, 均值和中位数的差距反而拉大
灾难性计数 16 → 16 → 24 → 9 → 4 → 1, 带宽一提, $\Delta_d$ 变小, 错误关联产生的残差越来越难跟正确关联竞争
E3 鬼影目标存在概率 ★★★★
完美测距条件, 用真实距离的量化结果, 不加噪声
| $K=2$ | $K=3$ | $K=4$ | $K=5$ | $K=6$ | |
|---|---|---|---|---|---|
| $M=3$ | 0/300 | 0/300 | 0/300 | 0/300 | 0/300 |
| $M=4$ | 0/300 | 0/300 | 0/300 | 0/300 | 0/300 |
| $M=6$ | 0/300 | 0/300 | 0/300 | 0/300 | 0/300 |
4500 个几何样本一个鬼影都没有. 按 rule of three, 单组 95% 置信上界是 $3/300 = 0.01$
E4 阶段一信号级恢复精度 ★★★★
带宽 20 到 400 MHz, $K$ 取 2 4 6, 各 100 个几何. 指标是距离单元精确命中率
| $B$ (MHz) | $K=2$ | $K=4$ | $K=6$ |
|---|---|---|---|
| 20 | 1.000 | 1.000 | 0.980 |
| 50 | 1.000 | 1.000 | 1.000 |
| 100 | 1.000 | 1.000 | 1.000 |
| 200 | 1.000 | 1.000 | 1.000 |
| 400 | 1.000 | 1.000 | 1.000 |
15 档平均 99.87% (1498/1500)
唯一的失分在 20 MHz 加 $K=6$ 那格, 100 个几何漏了 2 个. 那档 $\Delta_d = 3.75$ 米, 带宽最窄加上六个目标的距离单元最挤, 恒虚警率检测漏检了, 该点的距离 RMSE 直接到 44.50 米, 漏一个抽头就把距离整个推偏一个单元以上
这里有个容易画错的地方: 距离误差只有两档, 命中是 0, 未命中是几十米, 中间没有平滑过渡. 所以 fig4 的右图画的是各带宽下命中与漏检的几何占比, 不是距离 RMSE 随带宽的连续曲线. 硬画成曲线会让人以为误差在平滑恶化
E5 消融 ★★★★★
$B = 100$ MHz, $K = 4$, 每组 100 个几何. 人为违反正交频假设, 再改路径损耗指数
| 跨站路径入带 | 路径损耗指数 | 精确恢复率 |
|---|---|---|
| 否(论文假设) | 1 | 1.00 |
| 否 | 2 | 0.76 |
| 是 | 1 | 0.00 |
| 是 | 2 | 0.00 |
跨站反射一进来, 阶段一直接归零. 机理是双站路径的等效距离 $(d_u + d_m)/2$ 落在与自路径不同的距离单元上, 等于凭空多出 $M-1$ 倍的抽头. 「每个基站恰好 $K$ 条路径」这个阶段二赖以成立的结构被破坏
论文关于相邻基站用不同频率的那个假设, 对整套框架是必要条件, 不是可有可无的前提
路径损耗指数那个更有意思. 自由空间的 $\alpha = 2$ 看着更"物理", 但同一个基站里近目标的反射强度会比远目标高约 100 倍, 远目标必然掉到任何合理阈值下面, 这反而违反了论文自己「$K$ 条路径可分辨」的假设
所以默认取 $\alpha = 1$, 单站动态范围约 10 到 20 倍, 精确恢复率 1.00. $\alpha = 2$ 放进消融, 恢复率 0.76
论文没给基站与目标之间的反射系数模型, 只要求「$K$ 条路径可分辨」. 这两个数都不是从论文里抄的, 是按那条可分辨性假设反推的
验证
单元级自检, 算法级交叉验证, 统计级正负控制, 三层各管一段
单元级自检
冒烟测试
| 编号 | 检查内容 | 结果 |
|---|---|---|
| 1 | 波形参数自洽, 距离刻度与论文值比对 | 100 MHz 得 0.74948 米, 论文 0.75, 相对误差 0.07% |
| 2 | 无噪单径下最小二乘是否精确 | 相对误差 1.069e−15 |
| 2b | 快速估计与显式伪逆是否一致 | 三种规模最大差均为 0.000e+00 |
| 3 | 抽头序号与距离的往返换算 | 四个测试点误差均小于 $\Delta_d$ |
| 3b | 超出无模糊距离被拒绝 | 正确抛出异常 |
| 4 | 单基站端到端恢复真实距离 | 20/20 个有效几何精确恢复 |
| 5 | 线性三边定位还原已知点 | 真值 [30, 40], 估计 [30, 40], 最大残差 1.421e−14 |
| 6 | 完美测距下最大似然关联 | 15 个几何中 12 个定位误差小于 1 米 |
| 7 | 一致性检验拒绝扰动几何 | 原始判为一致, 扰动后判为不一致 |
| 8 | 量化测距下关联的稳健性 | 25 个几何中 23 个定位误差小于 1.5 米 |
第 6 项 12/15. 完美测距下鬼影也可能存在, 论文的结论是鬼影罕见而并非不可能, 判据定成不少于 80% 通过
枚举剪枝的验证
快速路径把第一个基站的顺序钉死, 理论候选数应该恰好是暴力的 $1/K!$. 实测
| $K$ | 暴力候选 | 快速候选 | 倍数 | 目标值差 | 最大点偏差 |
|---|---|---|---|---|---|
| 3 | 6 | 1 | 6.0 | 0.00e+00 | 0.000e+00 |
| 4 | 24 | 1 | 24.0 | 0.00e+00 | 0.000e+00 |
| 5 | 120 | 1 | 120.0 | 0.00e+00 | 0.000e+00 |
| 5 | 1200 | 10 | 120.0 | 0.00e+00 | 0.000e+00 |
目标值差恒为 0, 最大点偏差恒为 0, 快速路径找到的解跟暴力穷举完全相同
还有一例是两边都判不可行
1 | K=5 第2例:两者均不可行(暴力 2.91 秒,快速 0.035 秒) |
两边都没解的情况也记一致
鬼影检测的验证与正控制
$M$ 从 3 到 6, $K$ 从 2 到 4 的网格上, 快速检测器跟暴力置换枚举的判定完全一致, 每组 8 个样本
暴力法耗时随规模爆得很快. 最早网格里带过 $M=4$, $K=4$ 那格, 8 个样本跑了 278.6 秒, 平均一个样本 35 秒; 快速法同一批 0.34 秒. 后来把这格从常规网格里拿掉了, 留着只适合单独跑
网格现在是 $(M,K)$ 取 (3,2) (3,3) (3,4) (4,2) (4,3), 多基站和多目标两个维度都覆盖到了, 又不会让一次验证变成半小时
E3 报的是 0/4500, 所以还得证明这个检测器不是死的. 两个正控制, 一个负控制
正控制一, 四基站摆成正方形 (0,0) (200,0) (0,200) (200,200), 两个目标放在 (60,70) 和 (140,130). 两目标关于方形中心镜像对称, 交换关联后同样能交汇在 (70,60), 那个点不是任何真实目标. 暴力和快速都正确报出
正控制二, 三个基站摆在半径 150 米的圆周上, 两个目标关于原点对称放在 (40,25) 和 (−40,−25). 交换后同样闭合, 交点落在真实目标位置上. 两种方法都判定存在鬼影
负控制, 30 个随机非对称几何, 两种方法 30/30 一致, 都没误报
两个正控制都报出鬼影, 负控制 30 个几何没误报过
批量脚本按从快到慢的顺序跑, 四项全过
1 | verify_ghost_positive.py 通过 0 4.3 秒 |
耗时每次跑差别不小, verify_ghost.py 有一次跑了 88.9 秒, 是机器负载的关系, 判定结果没变
一键复现
1 | python -m venv .venv |
跑实验那一档实测 513.8 秒, README 里写的「约 9 至 15 分钟」是留了余量的说法
两次从空的 results/data/ 重跑, 五个 CSV 逐字节一致, 只有 manifest.json 里的耗时字段不同
误差来源
按对最终定位精度的贡献排序
| 来源 | 量级 | 性质 | 主要证据 |
|---|---|---|---|
| 量化误差 | 与 $\Delta_d$ 成正比 | 不可消除, 只能压缩 | 图 7, E2 |
| 关联错误 | 1%–3% 的样本, 误差数十米 | 可部分缓解 | E1 E2 灾难性计数 |
| 不可行几何 | 0–2% 的几何 | 属几何本质 | E1 的 infeasible 字段 |
| 阶段一漏检 | 0.13% | 需自适应阈值 | E4 的 20 MHz 加 $K=6$ |
| 假设违反 | 使全部指标失效 | 属前提条件 | E5 |
第一种是主项且消不掉. 100 MHz 下 $\Delta_d = 0.7495$ 米, 实测剔除后 RMSE 0.87 米, 中位误差 0.50 米, 量级对得上. 图 7 把 RMSE 画在 $\Delta_d$ 的 1:1 参考线上, 两条线几乎平行
第二种是尾部主项, 少数目标被扔到区域另一端, 误差 20 到 300 米. 成因在算法结构: 最大似然的目标函数是残差之和, 两个不同关联的残差接近时会选错, $\Delta_d$ 大时特别容易. 缓解方向是加跨帧的时间一致性约束, 这属于论文之外的扩展
第三种是算法明确报告「找不到合法解」的几何. E1 和 E2 里各出现 0 到 6 例(每 300 个几何). 脚本把它单独计进 infeasible 字段, 既不混进误差统计也不额外赋值. E1 里 $K=5$ 和 $K=6$ 各 4/300, $K=2$ 有 2/300, $K=4$ 是 0/300, 没随 $K$ 单调恶化, 说明主要是几何布局本身的问题, 不是穷举漏解
与论文结论的对照
| 论文结论 | 本复现结果 | 判定 |
|---|---|---|
| 定位精度随带宽提升 | RMSE 剔除 15.77 → 0.24 米, 错误概率 94.11% → 0.33%, 单调 | 吻合 |
| 量化界 $\Delta_d = c_0/(4B)$, 100 MHz 为 0.75 米, 400 MHz 为 0.1875 米 | 得 0.7495 和 0.1874, 相差 0.07% | 吻合 |
| 鬼影目标存在概率可忽略 | 0/4500, 95% 上界 0.01, 有正控制 | 吻合 |
| 数据关联非根本性限制 | $K \le 7$ 时错误概率恒低于 5% | 吻合 |
对照止于趋势与量级. 参考的是 arXiv v1, IEEE JSAC 正式刊出的版本可能有数值修订, arXiv 版本身也没给 $M=4$, $K$ 取 2 到 7 的完整错误概率表, 逐格比对做不了
局限
噪声方差固定 1e-18(信号级 1e-14), 对应极高的 SNR, 没做信噪比扫描. 真实系统里低信噪比才是主要矛盾, 这次的结论不能直接外推过去
阶段一没有 A/B 对照. 官方就 6 个 MATLAB 文件, 没有信号级阶段一, 自己写的那部分过了单元测试和交叉验证, 但缺少跟原作者实现的对比
信道模型只有直达反射路径(消融里加了跨站路径), 墙面的多径, 目标之间的遮挡, 目标运动带来的多普勒频移都没碰
结果文件
1 | results/data/e1_error_prob_vs_K.csv E1 逐点指标, 18 列 |
manifest.json 里每个网格点都带 delta_d_m 和 catastrophic_gate_m, 报告里引用的数字不用去读图, 全能在 CSV 里查到
引用
Q. Shi, L. Liu, S. Zhang, S. Cui, “Device-Free Sensing in OFDM Cellular Network,” IEEE Journal on Selected Areas in Communications, vol. 40, no. 6, pp. 1838–1853, Jun. 2022, doi: 10.1109/JSAC.2022.3155543
预印本 arXiv:2108.09177
官方代码: PolyuWirelessCommunicationLab/Data-Association-in-Network-Device-Free-Sensing
本复现代码: kanwuqing/isac-dfs-repro
