Linux 802.11n CSI Tool下csi數據的實時可視化
前言
本文主要應用了lubingxian的可視化工具,對他們的工作表示感謝。具體效果是當我們在終端收數的時候,matlab上的腳本會實時顯示csi數據的SNR,變幻的效果還是挺震撼的。
在我們配置好CSI Tool以後,可以通過簡單的步驟實現對csi數據的可視化。
我使用的是64位Ubuntu12.04LTS版本+matlab2014b。matlab的安裝和破解不作爲本文重點,其詳細教程參考博主ClaireQi的博客即可,已然很給力了:
https://blog.csdn.net/wangxiao7474/article/details/76150852
csi數據實時可視化
單臺電腦的方案
1. ctrl+alt+T新建命令行窗口A,執行
git clone https://github.com/lubingxian/Realtime-processing-for-csitool
2. 第2步是matlab端的操作:打開matlab,執行Realtime-processing-for-csitool/matlab目錄下的read_bf_socket.m
默認端口是8090,這時matlab的command window會顯示waiting for connection on port 8090
3. 拷貝文件。進入目錄Realtime-processing-for-csitool/netlink,將log_to_server.c文件拷貝到linux-80211n-csitool-supplementary/netlink目錄下。
第4-7步是終端操作:
4.A窗口中cd linux-80211n-csitool-supplementary/netlink
5. A窗口中gcc log_to_server.c -o log_to_server
6. ctrl+alt+T新建命令行窗口B,在B窗口中ping 無線AP,格式:sudo ping <APaddress> -i <timeinterval> 如: sudo ping 192.168.12.1 -i 0.05
7. A窗口中 執行 sudo ./log_to_server 127.0.0.1 8090
這裏127.0.0.1是本機ip地址, 8090爲端口號。
這樣我們就可以在matlab中看到變化的csi了。如果第6步的timeinterval設置得太小,會導致csi變化滯後於收數速度,甚至在關閉A、B窗口後一段時間仍可看到csi數據的變化。 所以綜合考慮AP和client之間距離,調整timeinterval,可得到滿意的效果。
兩臺電腦的方案
假定電腦a作爲matlab執行腳本方,電腦b作爲執行終端收數方,兩臺電腦需連接同一個無線網絡。
電腦a執行1、2步驟,等待收數。
電腦b執行1、3、4、5、6、7步驟。第7步驟中的ip地址換爲電腦a的ip地址,可在a電腦上的connection information ipv4下的IP Address查看,如 爲192.168.12.26,那麼第7步執行sudo ./log_to_server 192.168.12.26 8090即可。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
單臺電腦的最終效果如下圖所示:Figure 1中波形會不斷變化。