主要内容

用ADS-B捕获数据跟踪飞机

这个例子展示了如何实现自动依赖监视广播(ADS-B)接收机的HDL代码生成和硬件实现。本示例解码ADS-B扩展squitter消息,可用于跟踪飞机。本例中的HDL优化模型使用支持HDL代码生成的Simulink®块来实现ADS-B接收器。万博1manbetx万博1manbetx该示例模型用于实时处理基于AD9361/AD9364的ADS-B接收机硬件/软件协同设计实现(Xilinx Zynq-Based Radio万博1manbetx通信工具箱支持包),它需要Xilinx®Zynq®基于无线电的通信工具箱™支持包。万博1manbetx

介绍

ADS-B是一个空中交通管理和管制监视系统。广播信息(大约每秒一次)包含飞行信息,包括位置和速度。有关ADS-B技术及传输方式的介绍,请参阅[1].的HDLRx子系统对HDL代码生成进行了优化。捕获的接收信号流进接收器(HDLRx前端子系统)。接收器的流输出被缓冲并传递给MapResultsMATLAB®函数查看输出。

示例的结构

该型号支持正常模式和万博1manbetx加速模式。ADS-B接收机模型的顶层结构如下图所示。

使用捕获接收器输入数据基于AD9361/AD9364的ADS-B接收机硬件/软件协同设计实现(Xilinx Zynq-Based Radio万博1manbetx通信工具箱支持包)运行在Zynq®平台上。捕获的数据代表采样率为4mhz的基带接收信号。该数据包含8帧扩展squitter消息。ADS-B发射机使用2位脉冲位置调制调制112位扩展squitter消息,并添加一个16位前缀。然后,为了生成4mhz的数据,每个240位的消息被填充0并上采样2。

该图表显示了该工具的详细结构HDLRx子系统。

这里列出的子系统将在下面的小节中进一步描述。

1.级计算-求接收的输入信号的复模

2.阈值计算—根据接收到的输入信号强度计算阈值

3.相关性与序言—将接收到的信号与参考信号相关联,检测前导

4.定时控制—接收端定时同步

5.一些过程—使用PPM解调解码符号

6.计算CRC和帧验证-通过检查CRC错误来验证帧

HDL优化的ADS-B接收器

1.级计算

输入到级计算子系统是同相(实)和正交(虚)相样品。这个子系统输出复数的模。根号(I^2+Q^2)可以近似为[第238页描述的“|L|+0.4*|S|算法”。2].

$ $ \ sqrt{我Q ^ ^ 2 + 2} = L | | + 0.4 * | | $

在哪里

|l|为|的较大值|和||

|年代|为|中较小的值|和||。

增益块将接收到的输入从12位转换为16位字长。

“|L|+0.4|S|算法”的实现见下面的模型。

2.阈值计算

阈值计算子系统计算信号能量并应用一个比例因子来创建一个阈值用于前导检测。移动平均滤波器是一个串行FIR滤波器体系结构,具有32个系数,作用于幅度值。选取FIR滤波器的系数来计算接收信号的平均能量。这个例子将信号能量按5缩放来检测有效的ADS-B前导。关于FIR滤波器的详细介绍请参见离散冷杉滤波器(万博1manbetx模型)

3.相关性与序言

相关性与序言子系统使用峰值检测滤波器将接收的信号与ADS-B参考/前导序列[1 0 1 0 0 0 1 0 1 0 0 0]相关联。峰值检测滤波器是一个串行FIR滤波器体系结构,配置与前导序列匹配的系数。前导相关识别潜在的ADS-B传输,并将比特检测算法与第一个消息比特对齐。如果峰值幅度超过缩放阈值,则检测前导。一旦检测到前导,相关值将作为输入(SyncCorr)传递给定时控制块。

4.定时控制

定时控制块是一个状态机,它检测前导并生成控制信号ActivateBP和Reset,指示帧的开始,帧的结束和重置状态到一些过程计算CRC和帧验证块。

5.一些过程

一些过程子系统解调并向下转换4兆赫接收信号到1兆赫比特序列。每个数据位由4个PPM位表示。为了解调,块找到每个四元组的前两位和后两位的和。然后,它比较和来确定原始的位值。输出有效信号每四个周期断言以与1兆赫比特序列对齐。

6.计算CRC和帧验证

这个子系统检查每个88位消息的24位校验和中的不匹配。CRC块需要一个帧边界的指示来确定哪些位是校验和。的ActivateBP信号的上升边缘定时控制块表示帧的开始,下降边表示帧的结束。开始信号被延迟以匹配demod延迟。当块输出err信号为零时,帧是有效的ADS-B消息。子系统缓冲消息位,直到确认消息没有CRC错误。

发射地图和日志数据

您可以使用两个滑块开关(launch map和Data logging)启动地图并开始文本文件日志记录。

发布地图-在地图上可以看到跟踪的航班注意:您必须拥有Mapping Toolbox™许可证才能使用此特性。

数据记录—将捕获的数据保存为TXT文件。您可以将保存的数据用于以后的后期处理。

并显示结果

HDLRx分系统对ADS-B数据进行解调和解码,输出流通过Deserializer1D块和MapResultsMATLAB函数,产生关于飞机的十六进制输出信息。每个扩展的squitter Mode S包包含有关飞机的部分信息(任意Aircraft ID、Flight ID、高度、速度和位置),该表由多个消息构建。输出如下图所示。报文统计包括检测到的报文数、解码正确的报文数和误码率。这些飞机细节与从基于AD9361/AD9364的ADS-B接收机硬件/软件协同设计实现(Xilinx Zynq-Based Radio万博1manbetx通信工具箱支持包)的例子。

HDL代码生成与合成结果

管道寄存器已经添加到模型中,以确保HDLRx子系统没有很长的关键路径。生成的HDL代码HDLRx系统合成采用Xilinx®Vivado®ZynqFPGA配合器件7z045ffg900-2,实现了设计264.2兆赫时钟频率,足以解码实时ADS-B信号。生成的HDL代码在实时示例中进行了测试和验证基于AD9361/AD9364的ADS-B接收机硬件/软件协同设计实现(Xilinx Zynq-Based Radio万博1manbetx通信工具箱支持包).要检查和生成本例中引用的HDL代码,您必须具有HDL Coder™许可证。下表显示了本示例的综合结果。

您可以使用命令makehdl和makehdltb为HDLRx子系统生成HDL代码和测试台。要生成HDL代码,使用以下命令:

makehdl (“commadsbrxhdl / HDLRx”

要生成测试台,使用以下命令:

makehdltb (“commadsbrxhdl / HDLRx”

参考文献

  1. 国际民用航空组织,附件10,第4卷。监视和避碰系统。

  2. Marvin E. Frerking,《通信系统中的数字信号处理》,施普林格科学商业媒体,纽约,1994。