5300网卡WiFi信道特征CSI信号特点

相关链接:

WiFi感知百科Awesome

官方版Linux 802.11n CSI Tool

重制版 CSI Tool适配Ubuntu 18.04 和16.04

目前因特尔5300网卡读取和采集CSI信息都借助csitool-supplementary,它包含了基本的CSI读取和处理代码。本文介绍采用read_bf_file.m读取CSI文件,获取到的文件结构。

正文:

将read_bf_file.m的路径添加到matlab执行路径中,并将当前文件夹切换到csi文件所在的文件夹。例如要读取’csi.dat’文件 csi_trace=read_bf_file('csi.dat'); 获取到的csi_trace是一个nx1的cell,每一个cell都是一个结构体。 运行csi1=csi_trace{1} 结构体csi1的内部结构如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
timestamp_low: 4            
       bfee_count: 72
              Nrx: 3
              Ntx: 1
           rssi_a: 33
           rssi_b: 37
           rssi_c: 41
            noise: -127
              agc: 38
             perm: [3 2 1]
             rate: 256
              csi: [1x3x30 double]
  • timestamp_low:NIC网卡1MHz时钟的低32位。它大约4300s(72min)重复一回。(从0-2^32需要4300s),时间戳,相连两包此值差单位为微秒,通过验证发现100hz的发包频率此差值为10000,20hz的发包频率此差值为50000,此参数可以确定出波形的横轴时间。 当发包频率过大会出现接收端停止收数的情况:20Hz正常,200Hz和1000Hz的采样频率,收端最多接收一分多钟的的数据(原因是recv函数接收数据阻塞导致)将包长变小后还是有同样的问题。

  • bfee_count:驱动记录并发送到用户控件的波束测量值的总数。内核和用户空间中netlink频道是有损的,可以用该变量来检测被丢弃的测量值。

  • Nrx:接收端使用的天线数量。

  • Ntx:发送端使用的天线数量。

  • rssi_a, rssi_b, rssi_c:由接收端NIC测量出的RSSI值。

  • perm:展示NIC如何将3个接收天线的信号排列到3个RF链上,上图中的数据表示天线A被发送到RF链A,天线B被发送到RF链B,天线C被发送到RF链C。

  • rate:发包频率。

  • csi:CSI矩阵,30个子载波,3个接收天线

WIAR中提供了一些数据和处理方法,可以直接从文件中提取CSI矩阵。 csi1=get_csi_from_file('csi.dat')

See Also