基于CSI的移动目标侦测研究学习

最近被老师带着搞科研,研究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,运行 sudo ./log_to_file tmp.dat 打开另一个终端,运行 ping 192.168.1.1 -i 0.2 netlink文件夹中的tmp.dat就是采集的原始数据。 读取数据使用Matlab读取数据,进入linux-80211n-csitool-supplementary/matlab文件夹,使用read_bf_file函数可以读取数据。 一个例子数据包里包含 timestamp_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
Xin Qiu's avatar
Xin Qiu Mar 12, 2016

CSAPP Lab2 解题分析

Lab2 的 Bomb是个非常有意思的实验,比起之前耗脑的Lab1,这个Lab主要是学习反汇编。 这里我的环境是OS X EI Capitan,Lab2是[Updated 1/12/16]. Phase1在Mac上是默认没有GDB的,可以使用LLDB来代替。 进入lldb lldb bomb 使用disassemble进行反汇编,参考bomb.c文件,可以知道主要的几个函数名。 首先是Phase_1 (lldb) disas -n phase_1 得到以下汇编代码 bomb`phase_1: bomb[0x400ee0] <+0>: subq $0x8, %rsp bomb[0x400ee4] <+4>: movl $0x402400, %esi bomb[0x400ee9] <+9>: callq 0x401338 ; strings_not_equal bomb[0x400eee] <+14>: testl %eax, %eax bomb[0x400ef0] <+16>: je 0x400ef7 ; <+23> bomb[0x400ef2] <+18>: callq 0x40143a ; explode_bomb bomb[0x400ef7] <+23>: addq $0x8, %rsp bomb[0x400efb] <+27>: retq 这段代码还是挺好理解的,保存Stack pointer,将$0x402400传给%esi,调用位于0x401338的strings_not_equal函数,比较%eax是否为0,不为零则调用explode_bomb函数,为零则返回。 所以关键要找出字符串是什么。根据上述的汇编代码,可以发现字符串被保存在0x402400这个内存里,所以使用x/s来查看。 (lldb) x/s 0x402400 得到 0x00402400: "Border relations with Canada have never been better." 所以第一关的答案是Strings_Not_Equal     Continue Reading
Xin Qiu's avatar
Xin Qiu Feb 10, 2016

Flask补坑记录

前言不得不说,Flask是个不错的框架,它很简洁,然而却不失强大。在我阅读 << Flask Web Development >> 这本书的过程中,我觉得最好是这本书的配套源码和issues。在这些帮助下,一步步从完全不了解Flask到稍微知道Flask的工作原理。这过程中有好多次因为一些小细节的错误debug个很久。在此,我记录了一些我遇到的问题,方便大家看看。     Continue Reading
Xin Qiu's avatar
Xin Qiu Dec 21, 2015

云主机下的docker+Nginx搭建

之前申请到了腾讯云服务器,所以在上面折腾了一下 Nginx。 准备工作系统配置操作系统 Ubuntu Server 14.04.1 LTS 64位 CPU 1核 内存 1GB 系统盘 8GB(本地盘) 数据盘 0GB 公网带宽 1Mbps     Continue Reading
Xin Qiu's avatar
Xin Qiu Nov 13, 2015

Python科学计算学习

之前参加数学建模比赛都是用的 MatLab,然而电脑每次运行 MatLab 都烫的要命,所以决定用自己比较熟悉的 python 来进行科学计算。     Continue Reading
Xin Qiu's avatar
Xin Qiu Nov 07, 2015

读书笔记——CSAPP第二章

CSAPP(Computer Systems: A Programmer’s Perspective ),中文书名为深入理解计算机系统。这本书的好不需多言。为了锻炼英文阅读能力,我特地买的是英文原版。第一章比较简短,简单的从一段Hello World C程序,慢慢深入计算机底层的运行机制。可以说这一章就是本书的框架。以下是从第二章开始,记录了我遇到的困惑,一些简单的就不再介绍,书上已经写的很详细。     Continue Reading
Xin Qiu's avatar
Xin Qiu Sep 27, 2015

Me

    Continue Reading
Xin Qiu's avatar
Xin Qiu Sep 11, 2015

算法导论第2章算法基础练习

2.1-1Using Figure 2.2 as a model, illustrate the operation of INSERTION-SORT on the array A = <31, 41, 59, 26, 41, 58>.     Continue Reading
Xin Qiu's avatar
Xin Qiu Aug 31, 2015

Raspberry Pi 2 上手

家里的1代内存小,性能渣,所以入了新的2代。     Continue Reading
Xin Qiu's avatar
Xin Qiu Jul 26, 2015

<<深入理解C指针>>读书笔记

指针可以说是C的灵魂,C语言入门很容易,但想精通,就必须要对指针有很透彻的理解。大一上学期学了一遍C语言,然而指针这个最重要的地方,却没有好好的深入研究。这本<<深入理解C指针>>虽然谈不上讲到多少指针的奇巧淫技,但作为复习指针的相关知识,还是可以稍微读读。     Continue Reading
Xin Qiu's avatar
Xin Qiu Jun 09, 2015