CSI室内指纹定位——CSI数据说明

1、实验使用一个无线路由AP作为发射机(共2根发射天线),使用一台配备了Intel WiFi Link 5300无线网卡和Ubuntu操作系统的台式机作为接收机(共3根接收天线)。通过修改NIC的设备驱动程序,来读取每个数据包接收时以CSI的形式记录在硬件中的CSI值,并生成包含CSI信息的dat文件。这些dat文件是以二进制进行保存的,最后我们还要使用MATLAB或者Python程序来读取dat文件,从而获取丰富的csi信息。每个位置点测试1500个数据包。

2、使用MATLAB解析dat文件,显示1615*1个元胞数组,这些原胞数组包含了1615个1*1的结构体,每个结构体表示一个数据包的所有信息,包括了信道状态信息

CSI室内指纹定位——CSI数据说明_第1张图片

3、一个数据包的字段解释:

timestamp_low : 时间戳,相连两包此值差单位为微秒 此参数可以确定出波形的横轴时间

bfee_count : 驱动记录并发送到用户控件的波束测量值 的总数。可以用该变量来检测被丢弃的测量值

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

Nrt:发送端使用的天线数量 

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值(后面详细解释)

CSI室内指纹定位——CSI数据说明_第2张图片

 4、csi值矩阵说明

csi的值是一个n*m*30的复数矩阵,n表示发射天线的个数,m表示接收天线的个数,30是子载波个数。已知设备的发射天线为2根,接收天线为3根。复数形式为val=a+bi,我们可以得到复数的模91f81c8cfd4247e6b12ab27b821bf34d.png     和幅角     3a8938a0eb1844458e0845ba606a9b8e.png   ,也就是对应的幅度和相位。matlab提供abs函数和angle函数可获取到该复数的幅值和相位,分别为amp=abs(csi_1);pha=angle(csi_1);当然angle函数获得的相位是带误差的相位,需要解卷绕+线性变换才能获取到真实的相位。

CSI室内指纹定位——CSI数据说明_第3张图片

5、提取的幅值和相位如下:

CSI室内指纹定位——CSI数据说明_第4张图片

CSI室内指纹定位——CSI数据说明_第5张图片

如有对室内定位之CSI指纹定位感兴趣的,可参考博主往期文章:室内定位之CSI指纹定位_数产小黑娃的博客-CSDN博客

如何使用MatLab对CSI的相位进行矫正_数产小黑娃的博客-CSDN博客

创作不易,感谢支持,您的支持是我进步最大的动力!!!

 

 

你可能感兴趣的:(无线传感网络,CSI指纹定位,CSI幅值和相位,室内定位,CSI采样数据)