CSI Calibration

#Calibration

Table of Contents

《Calibrating Phase Offsets for Commodity WiFi》

配置选项 具体配置
网卡型号 Intel 5300 & Atheros AR9380
WiFi 协议 802.11n
测试方法 同轴电缆 & 分频器
频段 5.31-GHz carrier frequency with the 20-MHz bandwidth

研究背景与目的

文章聚焦于解决普通 WiFi 设备中不同射频链路之间(天线对)的相位偏移问题。这种相位偏移是由内部电路的固定延迟引起的,对于不同的芯片来说是相同的。文章通过广泛的实验和理论分析,探讨了商品级 WiFi 芯片上射频链路之间相位偏移的特性。

实验方法

为了避免环境变化的影响,接收器和发射器通过同轴电缆和分频器连接。实验中,对30个子载波的相位偏移进行平均,以得出测量结果。实验包括100次实验,每次实验中,在一秒内传输和接收100个数据包。实验还包括电源关闭、系统重启和驱动程序重新加载,以模拟计算机和WiFi芯片的日常操作。

测量过程中,通过交换线缆和分频器方向消除外部误差$\varphi_{ex1}$, $\varphi_{ex2}$ 分别表示线缆和分频器带来的误差: $$ \phi^1_{12} = \phi_{12} + \phi_{ex2}-\phi_{ex1} $$

$$ \phi^2_{12} = \phi_{12} + \phi_{ex1}-\phi_{ex2} $$

$$ \phi_{12} = (\phi^1_{12} + \phi^2_{12})/2 $$

实验结果

实验结果表明,对于Intel 5300 WiFi芯片,不同频道上的相位偏移变化相对较小。此外,文章还对Atheros AR9380 WiFi芯片进行了广泛的实验,结果与Intel 5300类似。

  • MEASURED VALUES OF PHASE OFFSETS ON INTEL 5300

    Channel $\varphi_{12}$ (rad) $\varphi_{13}$(rad)
    38 -2.3762/0.7874 -0.0065/3.1435
    46 -2.3372/0.8225 -0.0051/3.1399
    54 -2.3415/0.8108 -0.0193/3.1226
    62 -2.3255/0.8131 -0.0218/3.1151
    104 -2.1536/1.0022 0.0303/3.1094
    110 -2.0611/0.8827 0.0233/-3.1197
    118 -2.0597/1.0891 0.0265/-3.1134
    126 -2.0741/1.0740 0.0482/3.0442
    134 -2.0049/1.0918 0.0997/-3.0359
    151 -2.0398/1.1016 0.0719/3.0674
    159 -2.0317/1.1031 0.0347/-3.1014
  • MEASURED VALUES OF PHASE OFFSETS ON ATHEROS AR9380

    Channel $\varphi_{12}$ (rad) $\varphi_{13}$(rad)
    38 -2.7717/0.3815 -3.0813/0.0642
    46 -2.8708/0.2515 -3.1343/0.0045
    151 2.4926/-0.7069 2.4692/-0.7151
    159 2.3658/-0.7888 2.3399/-0.8254

根据实验结论,相位偏移实际上是半时不变的,有两个可能的值,对应上表中每个格子中的两个值。这种未知的相位旋转可能是由 CSI tool 报告的已发布的 CSI 工具中的错误引起的。由此可以得出结论,相位偏移实际上是常数,并且可能由于一些不确定的问题而旋转 $\pi$。

$$ \vert \phi^\prime_{m_1m_2} - \phi_{m_1m_2} \vert \approx \pi $$

应用与结论

文章讨论了其研究成果在阵列系统使用商品级WiFi芯片中的实际部署方面的潜在应用,特别是在需要天线之间精确相位同步的系统中,如指纹定位系统。文章最后得出结论,通过本文报告的结果,可以大大简化相位偏移的校准过程。

应用过程中,既可以通过遍历$2\times2$种可能的相位差组合来获得精准的估计:

image-20231128134311978

《On Phase Offsets of 802.11 ac Commodity WiFi》

配置选项 具体配置
网卡型号 Intel 9260
WiFi 协议 802.11ac
测试方法 同轴电缆 & 分频器
频段 2.4 GHz band: channels 1-13 & 5 GHz band: channels 36-64 and 100-165

研究背景与目的

随着无线感知应用的兴起,如用户定位、跟踪、无线路径识别等,利用现有的WiFi基础设施进行室内定位系统的研究变得越来越重要。文章的主要目的是分析现代IEEE 802.11ac芯片中射频链路之间的相位偏移。特别是,研究人员希望了解这些偏移在不同频段(2.4 GHz和5 GHz)以及不同OFDM子载波级别的表现,并提出一种无需额外校准过程的方法来校正这些偏移。

研究方法:

image-20231128142234349

  • 文章中采用了实验方法进行研究。使用基于Intel NUC(迷你主机)平台的实验设备,配备Intel 9260 WiFi NIC,对接收链路(天线)之间的相位偏移进行了实验。由于Intel 9260 WiFi芯片没有获取 CSI 功能,所以要进行如下操作:
    1. 从Intel后备驱动程序发布的核心46版本移植到Linux 5.5.1内核中
    2. 配备我们修改过的Linux内核的Ubuntu桌面18.04操作系统
      • WiFi驱动程序都会估计CSI,并通过Netlink API传送到Linux用户空间
    3. 使用Python编写的 UniFlex(来自论文:UniFlex: A Framework for Simplifying Wireless Network Control)控制框架接收并处理了 Netlink 消息
    4. 对CSI的编码进行逆向工程
  • 通过将发射器和接收器通过同轴电缆和分频器连接,以避免环境影响(例如多径传播)和其变化(例如移动性)的影响。
  • 在2.4GHz和5GHz频段对接收天线之间的相位偏移进行测量,并提出了一种无需校准即可实时校正相位偏移的算法。

实验结果

研究结果显示,接收天线之间的相位偏移是由随机相位旋转造成的,这些旋转是半时间不变的,最多有四个可能的值,并且是频率依赖的。

image-20231128142828143可能的情况如下:

  • 情况A:完美情况,测得的 $\hat{\varphi}$ 等于真实的 $\varphi$,即测量到的相位偏移等于真实相位偏移。

  • 情况B:除了子载波3和18的 $\hat{\varphi}$ 分别旋转了 $-2\pi$ 和 $+2\pi$ 之外,所有子载波都是正确的。

  • 情况C:误差情况,每个子载波的相位都旋转了 $\pi$,即 $\hat{\varphi}$ 中没有一个子载波的相位偏移是正确的(参见A)。

  • 情况D:类似于A,但有一个子载波旋转了 $+2\pi$。

从实验结果我们可以得出结论,测量到的RX相位偏移 $\hat{\varphi}$ 可能会围绕 $\varphi$ 旋转多个 $\pi$。此外,通过分析整个数据集我们发现,旋转是否发生以及旋转的角度严格取决于真实的 $\varphi$ 是正是负: $$ \hat{\varphi} = \begin{cases} \varphi + n\pi, & n \in {-2, -1, 0, 1}, \text{ if } \varphi > 0 \\ \varphi + n\pi, & n \in {-1, 0, 1, 2}, \text{ otherwise} \end{cases} $$ image-20231128172615934

图3显示了 WiFi NIC 两个接收天线之间的中位数相位偏移,涵盖了2.4 GHz ISM频段的1-13频道,按子载波分。图中展示了消除了由电缆和分频器引入的相位偏移之后的相位偏移值。我们可以观察到接收天线的相位偏移接近零,并且略微依赖于频率。

Channel $\varphi$(rad)
1 -0.1628
2 -0.1557
3 -0.1477
4 -0.1388
5 -0.1303
6 -0.1228
7 -0.1163
8 -0.1114
9 -0.1079
10 -0.1054
11 -0.1031
12 -0.1044
13 -0.0883

上表总结了通过对子载波求平均后每个频道的相位偏移测量值。2.4 GHz频带中不同子载波之间的相位偏移差异小,即0.086 ≈ 5°。

图4显示了有效相位偏移的分布,即那些没有随机相位偏移旋转的。我们看到一个狭窄的分布,即更多的数据接近平均值,标准偏差仅为0.0008 ≈ 0.05°。

图5和图6展示了5 GHz频带中频道的值。我们可以看到较低的5 GHz频道的接收天线相位偏移在-0.3到-0.1之间,较高频道则在0.1到0.5之间。注意,这样的范围相当于45°。

校正算法

通过大量的包进行平均以及去除离群值:

  1. 在 2.4 GHz 频段,相邻频道间存在 15 MHz 的重叠。利用此特性,在 1-13 号频道上发送数据包,并在每个频道上发送 N 个包以补偿随机相位旋转。通过这种方式,对特定 OFDM 子载波的接收天线相位偏移 $\hat{\varphi_{t,c}}(f)$ 进行多次测量,其中 $f$ 为 OFDM 子载波索引,$t = 1 \ldots N$为包编号,$c $ 属于频道集合 $C(f)$,即该子载波重叠的频道。
  2. 然后,对于每个数据包编号 $t$ 和频道 $c$,构建相位偏移向量 $\vec{\hat{\varphi_{t,c}}}$ 包含$F+1$各元素$F$为合并的 13 个频道的子载波总数),并用 Matlab 的 filloutliers 函数处理异常值得到 $\vec{\hat{\varphi}}_{t^{\prime},c} $。
  3. 特定子载波的相位偏移估计 $\varphi^{\prime}(f)$ 通过计算$\vec{\hat{\varphi}}_{t^{\prime},c}$的中位数得出,对所有包 $t$ 和频道集 $c$ 内的频道 $C(f)$ 都适用。
  4. 最后,组合所有子载波的估计,形成校正后的相位偏移最终向量 $\vec{\varphi}$,同样使用 filloutliers 函数处理。

CSI相位矫正的误差来源

内容来自《Calibrating Phase Offsets for Commodity WiFi》

CSI相位的误差是由不完美的惯性电路引入的多种相位失真。其表达式可以建模为如下公式: $$ H(t, m, k) = e^{-j2\pi(f_{\text{CFO}}t + k\Delta f (\tau_{\text{SFO}}(t) + \tau_{\text{PDD}}(t)))} \times e^{j\varphi_m} \sum_{i=1}^{L} \alpha_i e^{-j2\pi fk\tau_{mi}} $$ 其中包含时间索引 $t$,天线索引 $m$,子载波索引 $k$,载波频率偏移 $f_{CFO}$,采样频率偏移 $\tau_{SFO}$,包检测延迟 $\tau_{PDD}$,以及相位锁定环(phase-locked-loop, PLL)初始相位 $\varphi$ 等。其中相位失真来源包括:包括载波频率偏移(CFO)、采样频率偏移(SFO)、包检测延迟(PDD)和PLL初始相位。

通常来说,CFO、PDD和SFO在不同射频链之间是相同的,因此对诸如角度谱估计(ASP)算法的影响不大,但PLL初始相位在不同射频链间是不同的,需要校准。

我们可以通过典型的802.11 WiFi芯片设计来推测其内部结构,来分析PLL是如何引入误差的。其信号处理过程为:来自天线的信号被送入不同的从属芯片,这些芯片包含用于执行下变频操作的射频链路。而为避免出现时变偏移,所有从属芯片实际上共享来自同一个相位锁定环(PLL)的信号。唯一的相位偏移是由电路中的固定延迟引入的,这个延迟由芯片上的电缆长度决定。因此,两个射频链路之间的相位偏移可以用公式 $\varphi = 2\pi f \tau$表示,其中 $\tau$ 表示射频链路之间的固定延迟。

内容来自《基于迁移学习的WiFi室内定位技术》

  1. AGC功率控制误差:自动增益控制(AGC)电路通过调整接收机的增益来适应输入信号强度的变化,使输出信号幅度保持恒定或仅在小范围内变化。虽然AGC能够避免接收机因信号过强或过弱而无法正常工作,但在获取CSI数据时,AGC处理后的数据无法准确反映距离信息。
  2. 载波频率偏移(CFO):CFO校正器用于确保测量结果的准确性。由于软件限制,CFO校正器可能无法完全消除误差,剩余的频率偏移对CSI测量产生负面影响。
  3. 数据包检测延迟(PDD):数据包检测器利用前导码和信号的能量峰值来确定数据包的边界。由于相关器精度和计算延迟的限制,接收信号可能存在时间偏移误差,这可能导致传输延迟比实际更高。
  4. 采样频率偏移(SFO):由于接收机和发射机采样频率的差异,CSI的测量结果可能存在偏离。尽管接收机进行了校正,但仍存在剩余误差。
  5. 采样时钟偏移(STO):由于发射端和接收端的时钟不同步,采样时钟出现偏差。STO现象导致每条传播路径的飞行时间(ToF)增加时间偏移,因此在估计ToF时必须考虑STO的影响。