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的内部结构如下
|
|
-
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')