最近被老师带着搞科研,研究CSI(channel state information)。
环境安装需要用到CSI tool,这是一个运行在Ubuntu上的利用Intel Wi-Fi Wireless Link 5300 802.11n来做分析的程序。这里可以使用作者网站中方法来安装,也可以下载清华的版本。清华的版本附带了安装说明书,参考说明书上的方法,安装即可。
需要注意的是,发射源路由器需要选择单天线支持802.11n的路由器,我使用的是TP-LINK TL-WR742N。
获取数据cd进入csitools文件夹,进入linux-80211n-csitool-supplementary/netlink,运行
1sudo ./log_to_file tmp.dat
打开另一个终端,运行
1ping 192.168.1.1 -i 0.2
netlink文件夹中的tmp.dat就是采集的原始数据。
读取数据使用Matlab读取数据,进入linux-80211n-csitool-supplementary/matlab文件夹,使用read_bf_file函数可以读取数据。
一个例子数据包里包含
123456789101112timestamp_low: 4 (In the sample trace, timestamp_low is invalid and always 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 是时间戳
bfee_count 数据包数量
Nrx,Ntx 分别表示接收端和发送端的天线数量
rssi_a, rssi_b, rssi_c 每个天线的RSSI数据,单位dB,
agc Automatic Gain Control
perm NIC重排列后的顺序结果,代表RF链路的顺序
rate 发送包的rate
csi CSI原始数据,是个Ntx×Nrx×30复数矩阵
主要提取出CSI数据和timestamp_low。
Continue Reading