Linux 802.11n CSI Tool 翻译

网址:http://dhalperi.github.io/linux-80211n-csitool/faq.html

timestamp_low是NIC 1 MHz时钟的低32位。它大约每4300秒,即72分钟一次。该字段还没有记录在样例跟踪中,因此所有值都是任意的,并且总是等于4。bfee_count是驱动程序记录并发送到用户空间的波束形成度量的总数。内核和用户空间之间的netlink通道是有损的,因此可以使用这些通道检测掉入该管道的测量值。Nrx表示此NIC用于接收数据包的天线数量,Ntx表示传输的空间/时间流数量。在这种情况下,发送方发送一个单流包,接收方使用所有3个天线接收它。rssi_a、rssi_b和rssi_c对应于每个天线端口输入端接收NIC测量的RSSI。这种测量是在数据包序言期间进行的。此值在dB中相对于内部引用;为了得到dBm中接收到的信号强度,我们必须将其与dB中的自动增益控制(AGC)设置(AGC)相结合,并减去一个神奇的常数。这个过程解释如下。perm告诉我们NIC如何将来自3个接收天线的信号置换到处理测量数据的3个RF链中。(3 2 1)的样本值意味着C链被送往射频天线,天线B链B,天线链C这个操作是由天线选择模块的网卡,通常对应于RSSI的降序排序的天线。rate是数据包发送的速率,格式与上面定义的rate_n_flags相同。注意,天线位被省略了,因为接收器无法知道使用了哪些发射天线。csi是csi本身,规范化为一个内部引用。它是一个Ntx Nrx 30的三维矩阵,其中第三维是跨OFDM信道的30个子载波。对于一个20赫兹宽的信道,这些对应大约一半的OFDM子载波,对于一个40赫兹宽的信道,这大约是每4个子载波中有1个。所测量的子载波由IEEE 802.11n-2009标准定义(见第50页表7-25f)。

现在我们已经描述了这个结构的所有字段,我们需要把它们放在一起,以绝对单位计算CSI,而不是英特尔的内部参考级别。特别地,我们需要将RSSI和AGC值组合在一起以获得dBm中的RSS,并包含噪声以获得信噪比。如果没有噪声,就像在示例中一样,我们将使用硬编码的噪声下限-92 dBm。我们使用脚本get_scaled_cs.m来做这个。csi = get_scaled_csi(csi_entry);

最后,csi是一个1×3×30矩阵,表示该链路的MIMO信道状态。它的单位是线性的。,而不是db -电压空间。这是我所见过的所有教科书中使用的格式,也就是说,我们对CSI(通常称为H)进行了标准化,这样就有了单位噪声。

C. Plotting SNR

策划信噪比

Let's look at the three different spatial空间 paths on the 1×3 link we measured:

>> plot(db(abs(squeeze(csi).')))
>> legend('RX Antenna A', 'RX Antenna B', 'RX Antenna C', 'Location', 'SouthEast' );
>> xlabel('Subcarrier index');
>> ylabel('SNR [dB]');

在plot命令中,squeeze()通过删除第一个单元素维度,将csi转换为一个3×30矩阵。db()将线性(电压)空间转换为对数(以10为基底,功率)空间。abs将每个复数转换为它的大小。最后,'运算符将压缩后的CSI从3个30矩阵转到一个30个3矩阵,而不是复数的补码。综合起来,我们得到下面的图。

我们看到这是一个基本平坦的链路,具有相对较小的频率选择性衰落(大多数天线对约3分贝)。然而,最好的天线C和最差的天线a之间有一个公平(也许是8 dB)的差异。这与rssi_a和rssi_c之间的差异相匹配(正如我们所期望的那样)。

D. Computing effective SNR values 计算有效信噪比

我们将通过向您展示如何从CSI矩阵计算有效信噪比来结束对CSI的讨论。

为此,我们使用get_eff_SNRs脚本,它接受一个CSI矩阵作为输入,并返回一个线性(幂)空间中有效信噪比值的74矩阵。这4列对应的有效信噪比使用四种802.11调制方案,即BPSK/QPSK/16QAM/64QAM。7行对应于7个可能的天线选择,包括3个天线和1、2或3个空间流。特别是,前3行对应于天线A、B或c的单流传输,后3行对应于天线AB、AC或BC的双流传输。最后一行对应于使用所有天线的3流传输。

>> db(get_eff_SNRs(csi), 'pow')

ans =

   22.1821   22.2698   22.9007   24.6297
 -156.5356 -156.5356 -156.5356 -156.5356
 -156.5356 -156.5356 -156.5356 -156.5356
 -156.5356 -156.5356 -156.5356 -156.5356
 -156.5356 -156.5356 -156.5356 -156.5356
 -156.5356 -156.5356 -156.5356 -156.5356
 -156.5356 -156.5356 -156.5356 -156.5356

好吧,这太令人失望了!发生了什么事?注意,这是一个13链路,所以唯一有效的天线配置是SIMO与我们测量的单发射天线。另外6行对应一个非常小的信噪比i。e,一个大的负dB。

Let's look at a 3×3 matrix instead:

>> csi_entry = csi_trace{20}

csi_entry =

    timestamp_low: 4
       bfee_count: 91
              Nrx: 3
              Ntx: 3
           rssi_a: 34
           rssi_b: 39
           rssi_c: 39
            noise: -127
              agc: 40
             perm: [2 3 1]
             rate: 272
              csi: [3x3x30 double]

>> csi = get_scaled_csi(csi_entry);
>> db(get_eff_SNRs(csi), 'pow')

ans =

       Inf       Inf   32.3435   32.6069
       Inf       Inf   32.4238   32.6822
       Inf       Inf   32.2353   32.5051
   25.4763   25.5262   25.8974   26.8482
   24.6893   24.7490   25.1933   26.5660
   21.9185   22.0303   22.8060   24.6483
    6.5818    8.2321   12.4185   16.2016

这里,所有7行都是有效的,因为有3个发射天线。我们看到所有的SIMO流都很可能工作;事实上,对于BPSK和QPSK,误差非常小,MATLAB的误差函数无法将其与零区分开,而且信噪比实际上是无穷大的。MIMO2速率也可能起作用,但只有部分MIMO3速率会起作用。有关更多细节,请参阅我们的SIGCOMM 2010论文。https://www.halper.in//pubs/comm356s-halperin.pdf

5. For which packets is CSI measured? [−]

CSI是在以下条件下从接收到的数据包中测量的:数据包使用802.11n“HT”速率传输。

接收机的逻辑配置(如信道类型为HT,信道宽度)及其物理配置(如连接的天线数目正确,所有天线工作在配置的频带内,所有天线在固件中均已启用)支持传输速率。接收器正确地解码数据包,没有错误。根据模式:客户端模式:数据包由连接的AP传输,目的地要么是本地地址,要么是广播。

AP模式:数据包由连接的客户机传输。IBSS (ad-hoc)模式:数据包由连接的IBSS中的另一个站传输,目的地要么是本地地址,要么是广播。

监控模式:数据包的地址是一个硬编码的固定地址00:16:ea:12:34:56。请参阅仅使用模式1的注入脚本。换句话说,CSI不是为窃听802.11n的对话而录制的。如果信标以非ht速率(例如802.11a/g 6mbps速率)发送,则也不会记录来自连接AP的信标。我还注意到,每802.11n A-MPDU(聚合批处理)只有一个CSI度量,因为实际上只有一个“一个”序言。

6. Which subcarriers are measured? [−]

测量的子载波集由IEEE 802.11n-2009标准指定(见第50页表7-25f)。Intel的实现只支持每个测试30个子载波的版本,对应于Ng = 2 (20 MHz)和Ng = 4 (40 MHz)。

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值