R820T电视棒软件无线电跟踪飞机飞行轨迹
- 格式:doc
- 大小:3.09 MB
- 文档页数:11
R820T电视棒+软件无线电跟踪飞机飞行轨迹来源:/ 作者:佚名时间:2013-07-18 TAG:捕获到的飞机飞行轨迹:一、声明:本文参照并学习了putaoshu博客的教程,本文的部分内容摘自其博客,在此向putaoshu大牛表示感谢!/s/blog_67cdafe201014odm.html/s/blog_67cdafe201014ipa.html其他参考的国外资料://trac/wiki/rtl-sdr二、理论基础:先了解两个名词ADS-B:ADS-B是”广播式自动相关监视”的英文缩写(Automatic Dependent Surveillance – Broadcast),它主要实施空对空监视,装备了ADS-B的飞机通过广播的方式报告自身的精确位置和其它数据(如速度、高度及飞机是否转弯、爬升或下降等)。
ADS-B接收机与空管系统、其它飞机的机载ADS-B结合起来,在空地都能提供精确、实时的冲突信息。
SDR:SDR是”软件定义无线电”的英文缩写(Software Defined Radio)也称软件无线电。
随着移动通信的发展,软件无线电的概念开始广泛流行起来。
主要由于多种数字无线通信标准共存,如GSM、CDMA-IS95等,每一种制式对其手机都有不同的要求,不同制式间的手机无法互连互通。
为了解决这个问题,软件无线电方案提出将2MHz~2000MHz 的空中信号全部收下来进行抽样、量化,转化成数字信号用软件处理。
换句话说,就是把空中所有可能存在的无线通信信号全部收下来进行数字化处理,从而与任何一种无线通信标准的基站进行通信。
即用计算机软件进行通信信号解调。
软件无线电技术的研究和开发已经有几十年的历史了,最初源于美军的多制式电台项目。
如果还想更多的了解这些知识请自己搜索:)本文中所采取的方法:1.通过安装电视棒破解驱动,开启其支持的所有频段的接收频率,包括接收ADS-B在978Mhz、1090Mhz发射的脉冲信号。
2.使用SDR的方式来解调信号,即使用软件承担信号解调任务。
因为航空CNS标准是公开的(脉冲位置,相对幅度等)。
而且通过明文传输信息(112个未加密的脉冲字),因此编制解调软件可以正确解调飞机发射的ADS-B信号,从而获得飞机飞行的位置、高度、速度等信息。
3.对获取ADS-B的信息结合地图生成直观的飞行轨迹图。
三、环境搭建:1.首先你需要的是一个电视棒:Tuner 芯片频率范围52 –2200 MHz, 其中1100 MHz to 1250 MHz无法覆Elonics E4000盖Rafael Micro R820T 24 –1766 MHzFitipower FC0013 22 –1100 MHzFitipower FC0012 22 –948.6 MHzFCI FC2580 146 –308 MHz, 438 –924 MHz目前比较主流的是E4000与R820T,据说E4000已经停产,但兼容性较好。
rootoorotor使用的是R820T,淘宝上有卖,价格50元左右,请自行搜索。
2.你需要的是一个Linux发行版,rootoorotor使用的是kali Linux来做演示。
3.安装GNURadio:GNURadio可谓是开源界无线电爱好者的”军火库”。
看名字可能你就猜到了,GNURadio是开源的,并且使用GPL 协议开源。
项目主页和介绍:/redmine/projects/gnuradio/wiki安装GNURadio有三种方式:(1)自动化安装脚本安装、(2)使用已经编译好的安装包安装、(3)手动编译安装以上三种方法中,官网推荐使用自动化安装脚本进行安装,原因是发行版更新源中的GNURadio版本相对较老,且GNURadio更新较快使用安装源里的GNURadio会无法得到最新的技术支持,使用自动化安装脚本可以使用到最新版本的GNURadio,并且省去了手动编译安装的麻烦。
方法一:使用自动化编译脚本进行安装(推荐)在您喜欢的文件夹内新建一个src文件夹存放安装脚本源码:mkdir src进入存放源码与脚本的文件夹:cd src下载自动化安装脚本并执行:wget /files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio安装过车给中会提示用户是否执行脚本,点击y即可,然后请求root权限等,请根据提示操作,另外编译的时间较长,可能会耗费数小时,请耐心等待。
如果发现无法下载请使用VPN或者代理。
由于rootoorotor使用的是Kali Linux(基于Debian 7)因此执行脚本的时候提示无法继续,原因是脚本只支持Debian 6,如图:rootoorotor只能选择方法(2)中的方法来安装GNURadio(由于rootoorotor人比较懒,英语又不好而且技术太渣,这里就不选择手动编译的方式安装GNURadio了)查看了自动化编译安装脚本的代码,发现自动化安装脚本目前仅支持以下版本的Linux发行版:Fedora12至Fedora18, Ubuntu9.04至Ubuntu13.04, Redhat6, Debian6, Mint11或大于11, OpenSuse12.1其余Linux发行版请使用软件源安装或者手动编译的方式进行安装。
方法二:使用已经编译好的安装包安装(要求GNURadio版本>= v3.5.3):你可以通过以下方法安装GNURadio以及UHD已经编译好最新版的安装包:对于Ubuntu与Fedora的用户,可以在这里下载软件包安装。
Download UHDDownload GnuRadio安装之后要设置环境变量,打开终端输入:$ export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/bin具体方法请参考:/redmine/projects/gnuradio/wiki/InstallingGR如果以上方法你还是觉得太麻烦了,也可以安装Linux发行版源里自带的安装包,其优点是可以自动解决依赖问题,缺点是安装包比较旧在Debian/Ubuntu中查看gnuradio版本可以使用下面的命令:apt-cache show gnuradio | grep VersionDebian等Deb系的发行版安装方法(要求root权限执行):apt-get install gnuradioFedora等RPM系的发行版安装方法(要求root权限执行):yum install gnuradio方法三:如果你是个开发人员而且对Linux、C++、Python比较了解,你可下载源代码自行编译安装:参考:/redmine/projects/gnuradio/wiki/BuildGuide更多关于GNURadio的介绍、安装使用方法请参考:/redmine/4.安装rtl-sdr在安装真正的飞机信号解调软件之前,需要首先安装驱动(也就是破解的控制软件),以便解调软件能够顺利获取解调器中的A/D采样值,下面的步骤就是编译安装rtlsdr 库文件以及捕获工具的。
kali Linux下还要安装下面的安装包,后面的编译才不会缺少模块和报错(这个让rootoorotor折腾了好久。
)sudo apt-get install libusb-1.0-0-dev libuhd-dev libboost-all-dev gnuradio-dev swig libcableswig-dev cableswig python-swiginac libfftw3-dev libgsl0-dev pyqt4-dev-tools swig python-swiginac gsl-bin udev irqbalancesudo apt-get intall Doxygen(可选)在编译后面的软件要注意终端中”failed”或者”XXXX NOT FOUND”之类的关键词,因为有些库文件没有安装都可以通过编译,rootoorotor第一次折腾的时候没有注意因此造成一些模块无法正常使用,只能make uninstall 卸载然后再重新编译安装。
下载rtl-sdrgit clone git:///rtl-sdr.git进入下载好的源码文件夹cd rtl-sdr如图所示:编译安装rtl-sdrmkdir buildcd build/cmake ../ -DINSTALL_UDEV_RULES=ONsudo make installsudo ldconfig编译时要注意看回显信息,make的时候看有没有failed之类的信息,下面是我部分make的信息sudo make install 之后要看看没有提示未安装成功的信息,编译安装完成之后如图:接下来还需要把rtl-sdr作为组件安装到gnuradio中,方法大同小异:首先进入一个你想存放源代码的目录,然后:git clone git:///gr-osmosdrcd gr-osmosdr/mkdir buildcd build/cmake ../makesudo make installsudo ldconfig接下来你就可以测试电视棒了:将电视棒插入电脑的USB接口:在终端中输入:rtl_eeprom以下是我的测试测试结果,可见电脑已经识别了电视棒这时已经可以使用rtl_fm命令收听广播,比如我使用下面的命令收听广西交通台:rtl_fm -W -f 100.3M | play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 -关于rtl_fm的用法您可以使用如下命令查看rtl_fm –help这里有相关教程(英语),包括收听航空频率,扫描#警*用频率等……/rtl-demod-guide/index.html在破解驱动安装好并测试电视棒可用之后接下来的工作就是安装信号解调软件,步骤如下:打开终端输入:git clone https:///bistromath/gr-air-modes.gitcd gr-air-modes/在编译开始前,最好看一下README文件,里面说明了安装方法已经一些软件的依赖:cat README | more这里贴出需求的依赖软件包供大家参考:REQUIREMENTSgr-air-modes requires:* Python >= 2.5 (written for Python 2.7, Python 3.0 might work)** NumPy and SciPy are required for the FlightGear output plugin.* Gnuradio >= 3.5.0* Ettus UHD >= 3.4.0 for use with USRPs* osmosdr (any version) for use with RTLSDR dongles* SQLite 3.7 or later* CMake 2.6 or later确认您当前使用的操作系统可以满足以上需求之后,接下来开始编译安装:mkdir buildcd buildcmake ../makesudo make installsudo ldconfig至此,所有环境配置完成,接下来就是把电视棒接入USB接口做测试了。