Journal of Image and Signal Processing
Vol. 08  No. 02 ( 2019 ), Article ID: 29441 , 7 pages
10.12677/JISP.2019.82005

The Research and Implement of ADS-B Response Signal Processing Platform Based on RTL-SDR

Jincheng Yan, Yunfeng Wang*

Department of Computer Science and Technology, Sichuan University, Chengdu Sichuan

Received: Mar. 6th, 2019; accepted: Mar. 17th, 2019; published: Mar. 27th, 2019

ABSTRACT

By studying on ADS-B (Automatic dependent surveillance-broadcast) response signal based on the 1090ES data link, this paper implements a ADS-B response signal processing platform with C++ language in Windows environment under the device supports of RTL-SDR and PC. The platform can successfully receive and parse ADS-B response signals, which proves the possibility with software radio ways under low cost.

Keywords:ADS-B, Soft Defined Radio, RTL-SDR, Signal Processing

基于RTL-SDR的ADS-B应答信号处理平台的研究与实现

严金承,王运锋*

四川大学计算机学院,四川 成都

收稿日期:2019年3月6日;录用日期:2019年3月17日;发布日期:2019年3月27日

摘 要

通过对1090ES数据链ADS-B (Automatic dependent surveillance-broadcast,广播式自动相关监察系统)应答信号的研究,使用软件无线电的处理方法,在RTL-SDR及PC硬件设备的支持下,用C++语言在windows平台下实现了基于RTL-SDR的ADS-B应答信号处理平台。该平台能成功接收并解析1090ES数据链ADS-B应答信号,证明了低成本下用软件无线电方法接收并处理ADS-B应答信号的可行性。

关键词 :ADS-B,软件无线电,RTL-SDR,信号处理

Copyright © 2019 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. ADS-B应答信号处理器现状

目前,结合现代成熟的电子技术,考虑到ADS-B应答处理器数据量大,处理速度要求高的情况,不少学者基于FPGA + DSP研究了ADS-B应答信号的软件无线电处理方案。通过FPGA进行预处理,完成报头检测及时序匹配,将通过功率一致性检测、时序测试和DF认证的可靠信号异步传送到DSP,在DSP中进行对数据报文的译码和解析工作。论文 [1] [2] [3] 对这种架构的应答处理器作了深入的研究。这种应答处理器性能较好,实时性强,但造价较贵,本文提出的基于RTL-SDR的ADS-B应答处理平台也是一种软件无线电处理方法,实现成本极低,利用该处理平台,还能实现论文 [4] 提出的基于RTL-SDR的空中交通监视系统构想。

2. RTL-SDR技术介绍

RTL-SDR是一种低成本的小型软件无线电处理平台,由R820T调谐器和R2832U芯片组成。它可接收25 MHz至1.75 GHz范围内的射频信号,支持的最大采样率为2.8 MHz。通过模拟电路,RTL-SDR把射频信号降到中频,然后经过模数转换,用数字信号处理的方式将中频信号搬到基带,这实际上是一种超外差式数字中频接收机 [5] [6] 。为进一步降低后续软件部分对信号的处理压力,减少处理信号量,RTL-SDR对基带信号进行数字抽取,使其采样频率降低在2.8 MHz以下,从USB输出8位基带IQ信号,对于该基带信号,可以使用编写软件的方法在PC中对其进行处理,RTL-SDR的结构如图1

Figure 1. The structure of RTL-SDR

图1. RTL-SDR结构

3. 基于RTL-SDR的ADS-B应答信号处理程序设计

RTL-SDR输出的IQ两路信号共16 bit,即一个样本点为2B。利用开源的RTL-SDR驱动提供的API初始化RTL-SDR设备,设定采样率为2 MHz,数据缓存块大小为256 KB,则输入一个完整的数据块需要64 ms,采用异步读取的方式,使程序在64 ms内完成对数据块的处理,可保证信号处理的实时性,具体的程序设计如图2

Figure 2. Design of ADS-B response signal processing program based on RTL-SDR

图2. 基于RTL-SDR的ADS-B应答信号处理程序设计

3.1. 前导码检测

前导码检测是1090ES数据链ADS-B应答信号处理的重要算法,由于对数据部分的纠错和解码需花费较长的时间,故要保证检测到的前导码的可靠性。该算法的输入为RTL-SDR传来的基带数据,输出包括信号到达时间与参考功率。文献 [7] [8] [9] 给出的前导码检测算法有九个环节,包括视频信号预处理、有效脉冲位置和上下沿提取、报头脉冲检测、参考功率值计算、交叠测试、功率一致性测试、DF验证、再触发。但是该方法适用于采样率较高的情况,对于RTL-SDR设备,输出给处理平台的采样率最高为2.8 MHz,故需要设计适于该情况下的前导码检测算法。

本文设定RTL-SDR输出的IQ基带信号采样率为2 MHz,对应时钟分辨率为0.5 μs。利用式(1)计算出第i采样点的样本功率 S i ,作为前导码检测算法的输入,其中 I i , Q i 为第 i 采样点的IQ采样值。

S i = I i 2 + Q i 2 (1)

3.1.1. 前导码脉冲位置检测及开始位置确定

采用脉冲位置的检测方法,输入的采样序列由 { S i } 表示,其中 i = 0 , 1 , 2 ,由2.1节提到的S应答信号格式,脉冲位置应出现在第0,第2,第7,第9采样点。即:假设当前已遍历到第 k 采样点,有条件:

S k > S k + 1 , S k + 1 < S k + 2 , S k + 2 > S k + 3 , S k + 3 < S k + 4 , S k + 6 < S k + 7 , S k + 7 > S k + 8 , S k + 8 < S k + 9 , S k + 9 > S k + 10 (2)

对于前导码中的低功率采样点(第4、第5、第11、第12、第13、第14)应保证其功率不超过某一阈值,可设为脉冲平均功率的 1 / 3 。即:

S ¯ = ( S k + S k + 2 + S k + 7 + S k + 9 ) / 4 S k + i < S ¯ 3 , i = 4 , 5 , 11 , 12 , 13 , 14 (3)

若同时满足条件(2)、(3),则可将采样点 k 作为前导码开始位置的候选采样点。

3.1.2. 参考功率计算

由于每个脉冲只包含一个采样点(时钟分辨率为0.5 μs),故直接求得脉冲平均功率 S ¯ = ( S k + S k + 2 + S k + 7 + S k + 9 ) / 4 作为参考功率,表征接收信号的强度,若信号强度小于某一阈值Q,则视为微弱信号,不作解码。Q的取值可凭经验调节,但应该大于噪声功率,小的Q值具有高的敏灵检测度,但易造成虚警,太大的Q值易造成漏警。

3.2. 数据块扫描

3.2.1. 数据位和置信度判定

文献 [10] 采用了多点振幅采样算法、改进的基线多样点技术等,对数据位和置信度有较为准确的判定。同样地,上述方法适用于高采样率,对于2 MHz采样率可直接判断数据位两个码片的相对大小,则数据位 C i 、置信度 B i 由(4)、(5)式计算:

C i = { 1 , S k + 16 + 2 × i S k + 16 + 2 × i + 1 0 , S k + 16 + 2 × i < S k + 16 + 2 × i + 1 (4)

B i = { 1 , S k + 16 + 2 × i S k + 16 + 2 × i + 1 0 , S k + 16 + 2 × i = S k + 16 + 2 × i + 1 (5)

其中, i = 0 , 1 , 2 , 55 111 ,置信度为1时表示置信度高,0表示置信度低,该参数将用于纠错步骤。为减小纠错步骤压力,采用边扫描边判定的方式,同时统计低置信度数据位的数量,若扫描到某一位时低置信度数量大于门限,且确认的数据位位数小于112位,则停止扫描,认为该报文置信度太低不可继续解析,应从k + 1的位置寻找新的前导码。若此时确认的数据位数大于56位,则认为该报文为短格式报文,短报文格式报文一定不是ADS-B报文,故可抛弃,否则顺利扫描完112个数据位,利用DF来甄别是ADS-B报文或S模式报文。

3.2.2. DF合法性验证与ADS-B报文甄别

1090ES数据链的ADS-B信号格式如表1所示 [11] ,其中,DF = 17格式为S模式应答机发射的ADS-B消息;DF = 18为非S模式应答机发射的ADS-B消息或TIS-B消息;DF = 19位军方保留格式,本程序不作处理,可直接丢弃。

Table 1. The format of 1090ES data link ADS-B signal

表1. 1090ES数据链ADS-B信号格式

在文献 [12] 的基础上,本程序改进了甄别算法,采用边扫描,边纠正,边甄别的方法。即扫描到足够甄别的数据位时立即甄别,若甄别出非ADS-B报文,则丢弃报文,不作解码,以加快处理速度,具体方法如下:

当完成数据位前5位的数据位和置信度判定时,即可进行DF合法性验证。若数据位第一位为0,且置信度低,则应该将其纠正为1,或者数据位第一位本身为1,以确保符合长格式报文的DF,否则,丢弃报文。由ADS-B模式应答信号可知,当DF = 17/18/19时,该报文为可能的ADS-B报文。若扫描到的DF不等于上述的值,且数据位第2位至第5位有低置信度位,则对置信度低的位取反,再检查其合法性。若还不合法则停止扫描,丢弃该报文,从k + 1处重新发现前导码,否则顺利通过DF合法检测,继续扫描数据块。同样,当DF = 18时,扫描到第6至第8位时,即可根据CF甄别ME字段是否含有ADS-B消息。若CF = 0,表示含有。

3.3. 循环冗余校验

S模式采用24位循环冗余校验码(Cyclic Redundancy Check, CRC)进行检错,本身不提供纠错功能,但是基于置信度,CRC拥有一定的纠错功能。采用蛮力纠错技术和保守纠错技术结合的方式可以最多纠错12位数据,但此时要求出错数据的窗口大小不超过24 [13] 。

3.4. 解码

经过上述处理,得到ADS-B模式应答信号的二进制序列。文献 [14] [15] 详细描述了ADS-B消息提取及CPR (紧凑位置报告)的解码方法,本处理程序引用了该方法,在此不再赘述。

4. 平台实现与处理报告分析

在Microsoft Visual Studio 2010集成环境中,依赖开源的RTL-SDR驱动,利用C++实现信号处理程序,部署在PC机上,图3展示了接收平台的实际结构。

Figure 3. The structure of receive platform

图3. 接收平台结构

设定RTL-SDR中心频率为1090 MHz,输出采样率2 MHz,射频增益49.6 db,利用该平台接收处理ADS-B信号的情况如表2。其中,CRC正确比例为解析后通过冗余检错纠错的ADS-B报文与接收到的所有ADS-B报文的比值,ADS-B报文的接收数量由上述的甄别环节得出。

Table 2. The processing results

表2. 平台接收处理报告

实验表明,在大建筑密集场所,CRC正确比例陡然降低,且形成的稳定航迹不多,这是因为本程序没有过多的考虑多径情形下的报文解析。在机场开阔地带,由于报文密集,本程序也没有过多的考虑交叠情形下的报文解析,导致CRC正确比例略有降低。总之,该平台能够接收并正确处理ADS-B报文,形成稳定航迹,证明了低成本的软件无线电方法接收处理ADS-B应答信号是可行的。

5. 总结

本文详细描述了基于RTL-SDR的ADS-B信号处理平台的实现,该平台实现成本极低,能成功接收处理该应答信号,可作为相关领域研究的验证系统。1090ES数据链的ADS-B信号处理复杂,由于RTL-SDR提供的采样率有限,文中给出的算法为了保证解码性能,没有对多径和交叠情形下报文进行过多的处理,导致复杂环境下CRC正确比例不高。另外天线是影响解码性能的重要因素,后续还需继续研究改良。

基金项目

四川省科技计划项目资助(2018GZ0070)。

文章引用

严金承,王运锋. 基于RTL-SDR的ADS-B应答信号处理平台的研究与实现
The Research and Implement of ADS-B Response Signal Processing Platform Based on RTL-SDR[J]. 图像与信号处理, 2019, 08(02): 29-35. https://doi.org/10.12677/JISP.2019.82005

参考文献

  1. 1. 吴凯峰, 宋东, 刘柏兵, 等. 飞机自动相关监视信号接收系统设计[J]. 传感器与微系统, 2018(9): 105.

  2. 2. 李耀. S模式ADS-B接收机解码板的研究及实现[D]: [硕士学位论文]. 成都: 电子科技大学, 2008.

  3. 3. 陈士毅. 模式S应答处理中的数据处理[D]: [硕士学位论文]. 成都: 电子科技大学, 2003.

  4. 4. 王伟玮, 涂榫. 基于ADS-B和RTL-SDR的空中交通监视系统[J]. 微型机与应用, 2016, 35(17): 80-83.

  5. 5. Stewart, R.W. (2015) Software Defined Radio Using MATLAB & Simulink and the RTL-SDR. Department of Electronic and Electrical Engineering University of Strathclyde Glasgow, Scotland.

  6. 6. 陈祝明. 软件无线电技术基础[M]. 北京: 高等教育出版社, 2007.

  7. 7. 吴杰, 郭建华, 蒋凯, 等. ADS-B二重交织信号时域分离算法[J]. 通信技术, 2017(10): 2184.

  8. 8. 张涛, 唐小明, 宋洪良. 一种ADS-B报头互相关检测方法[J]. 电讯技术, 2016(2): 156.

  9. 9. 郑植, 练马林. 模式S应答处理中报头检测算法的研究与实现[J]. 电子科技大学学报, 2008, 37(1): 66-70.

  10. 10. 王菲. 基于1090MHz ES数据链ADS-B关键技术研究[D]: [硕士学位论文]. 成都: 电子科技大学, 2009.

  11. 11. 张尉. 空管二次雷达[M]. 北京: 国防工业出版社, 2017.

  12. 12. 李明洋, 时宏伟. 二次雷达S模式应答信号与ADS-B信号的甄别研究[J]. 微型机与应用, 2015, 34(20): 67-69.

  13. 13. 郭焘, 田忠. ADS-B系统接收处理的关键算法研究与实现[J]. 火控雷达技术, 2013, 42(3): 43-51.

  14. 14. 张鹏, 何光亮. 1090ES关键信息解码算法优化及实现[J]. 现代电子技术, 2018(3): 30.

  15. 15. 王尔申, 翟秋刚, 李玉峰, 等. 应用Qt的ADS-B报文解析研究与实现[J]. 电光与控制, 2018(4): 69.

  16. NOTES

    *通讯作者。

期刊菜单