主要内容

飞机使用ads - b信号跟踪

这个例子向您展示了如何跟踪飞机通过处理自动从属监控广播”(ads - b)信号使用MATLAB®和通信工具箱™。可以使用捕获实时信号或接收信号使用RTL-SDR电台或ADALM-PLUTO收音机。这个例子可以显示跟踪飞机在地图上,如果你有工具箱™的映射。

所需的硬件和软件

使用信号捕获运行这个例子,您需要以下软件:

  • 通信工具箱™

实时接收信号,您还需要下列特别提款权之一的设备和相应的支持包插件:金宝app

  • RTL-SDR无线电和相应的通信工具箱支持包RTL-SDR广播软件插件金宝app

  • ADALM-PLUTO无线电和相应的通信工具箱支持包为模拟设备®ADALM-PLUTO电台软件插件金宝app

完整列表的通信工具箱支持SDR平台,是指支持硬件部分金宝app软件定义无线电(SDR)发现页面

背景

ads - b是一种合作监视技术跟踪飞机。这种技术使飞机能够周期性地广播其位置信息(高度、GPS坐标,标题等)使用的s型信号方案。

s模式是一种航空转发器审讯模式。当飞机收到一个审讯请求时,它发回故障代码应答器。这被称为模式3。s模式(选择)是另一种类型的审讯方式,旨在帮助避免询问应答器的次数太多了。可以找到更多细节的s型(1]。这种模式被广泛采用在欧洲和北美正在分阶段。

的s型信号方案使用断续振荡器消息,它被定义为一个索取信息用于航空无线电系统。s模式具有以下属性:

  • 发送频率:1090 MHz

  • 调制:脉冲位置调制

  • 数据速率:1 Mbit / s

  • 短唠叨长度:56个微秒

  • 扩展唠叨长度:112微秒

短唠叨消息包含以下信息:

  • 下行格式(DF)

  • 能力(CA)

  • 飞机ID(独特的24位序列)

  • CRC校验和

扩展断续振荡器(ads - b)消息包含的所有信息在短断续振荡器和其中一个:

  • 高度

  • 位置

  • 标题

  • 水平和垂直速度

的信号格式的s型有一个同步脉冲,是8微秒长56或紧随其后112微秒的数据见下图。

运行示例

缺省配置运行使用捕获数据。在这个例子中,您可以设置cmdlineInput1,然后运行示例选择改变这些配置设置:

  1. 接待时间以秒为单位,

  2. 信号源(获取的数据或RTL-SDR电台或ADALM-PLUTO广播),

  3. 可选的输出方法(地图和/或文本文件)。

示例显示检测到飞机上的信息以表格形式如下图所示。

你也可以观察到地图上的飞机,如果你有一个有效的许可证的映射工具。

接收机结构

下面的代码块图总结了接收机结构。处理有四个主要部分:信号源、物理层、消息解析器和数据查看器。

信号源

这个例子可以使用三个信号来源:

  1. “捕获信号”:无线信号写入到文件和来自基带文件读者对象为2.4议员

  2. “RTL-SDR广播”:RTL-SDR电台2.4议员

  3. “ADALM-PLUTO广播”:ADALM-PLUTO电台12个议员

如果你分配“RTL-SDR”或“ADALM-PLUTO”作为信号源,示例搜索指定的广播你的电脑,一个RTL-SDR广播在广播讲话中“0”或一个ADALM-PLUTO广播在广播讲话中usb: 0,使用它作为信号源。

这里扩展唠叨消息120微秒长,信号源是配置过程足够的样本含有180扩展唠叨消息,并设置SamplesPerFrame信号的相应属性。其余的算法搜索的s型包在这个框架的数据和输出所有正确识别数据包。这种类型的处理定义为批处理。另一种方法是处理一个扩展唠叨一次消息。这个单一的数据包处理方法比批处理开销180倍,而少180倍延迟。由于ads - b接收机是延迟容忍,使用批处理。

物理层

从信号源接收基带样品处理的物理(体育)层产生数据包包含PHY层位头信息和原始消息。下面的图显示了物理层结构。

RTL-SDR无线电能够使用一个采样率范围内(200年e3, 2.8 e6)赫兹。RTL-SDR广播源时,这个例子使用2.4 e6赫兹的采样率和篡改的5倍的实际采样率12 e6赫兹。

ADALM-PLUTO无线电能够使用一个采样率范围内(520年e3, 61.44 e6)赫兹。ADALM-PLUTO广播源时,示例样本输入直接12 MHz。

1 Mbit / s的数据传输速率和实际采样率12 MHz,有12个样品每个符号。接收处理链使用复杂的符号的大小。

包的子帧同步器工作数据相当于两个扩展唠叨包,也就是说,1440个样本120 12 MHz或微秒。这个子帧长度确保整个扩展唠叨子帧中包含的包。第一数据包同步器相关的接收信号8微秒序言,找到了峰值。然后,它验证同步点通过检查代码是否匹配的序言序列,[1 0 0 0 0 0 1 0 1 0 0 0 0 0 0),一个“1”代表高价值,“0”代表一个较低的值。

的s型PPM调制方案定义了两个符号。每个符号有两个芯片,一个有高价值,另一个在一个较低的值。如果第一个芯片是高后跟低芯片,这对应于符号作为一个1。另外,如果第一个芯片是低后跟高芯片,然后象征是0。有些解析器解调接收芯片和创建一个二进制消息。二进制消息使用CRC检查器验证。一些解析器的输出是一个向量的s型的物理层头包包含以下字段:

  • RawBits:原始消息碎片

  • CRCError:假如果CRC检查,真要是CRC失败

  • 接收时间:时间在几秒钟内从开始的接收器

  • DF:下行格式(包类型)

  • CA:能力

消息解析器

消息解析器从原始比特提取数据基于数据包类型中描述(2]。这个例子可以解析短唠叨包和扩展唠叨数据包含有空气速度、识别、和机载位置数据。

数据查看器

数据查看器显示接收到的消息在一个图形用户界面(GUI)。对于每个数据包类型,检测数据包的数量,正确解码数据包的数量,包错误率(每)。捕获数据,这些信息的应用程序列表信息解码以表格形式。

示例代码

接收方要求用户输入并初始化变量。然后它调用信号源、物理层、消息解析器和数据查看器在一个循环中。广播时间的循环跟踪使用帧持续时间。

%的选项来改变默认设置,设置| cmdlineInput | 1。cmdlineInput = 0;如果cmdlineInput%从命令行应用程序请求用户输入参数userInput = helperAdsbUserInput;其他的负载(“defaultinputsADSB.mat”);结束%计算ads - b系统参数根据用户输入[adsbParam, sigSrc] = helperAdsbConfig (userInput);%创建基于用户输入数据查看器对象和配置观众= helperAdsbViewer (“LogFileName”userInput.LogFilename,“SignalSourceType”,userInput.SignalSourceType);如果userInput。LogData startDataLog(观众);结束如果userInput。LaunchMap startMapUpdate(观众);结束%创建消息解析器对象msgParser = helperAdsbRxMsgParser (adsbParam);%开始观众和初始化广播时间开始(观众)radioTime = 0;%主循环radioTime < userInput.Duration如果adsbParam.isSourceRadio如果adsbParam。~,isSourcePlutoSDR (rcv lostFlag] = sigSrc ();其他的(rcv, ~,失去了)= sigSrc ();lostFlag =逻辑(损失);结束其他的rcv = sigSrc ();lostFlag = false;结束%物理层过程信息(物理层)(pkt pktCnt] = helperAdsbRxPhy (rcv, radioTime adsbParam);%解析信息比特(消息解析器)[味精,msgCnt] = msgParser (pkt pktCnt);%查看结果包内容(数据查看器)更新(观众、味精、msgCnt lostFlag);%更新广播时间radioTime = radioTime + adsbParam.FrameDuration;结束%阻止观众和释放的信号来源停止(观众)发布(sigSrc)

进一步的探索

你可以进一步探索使用ADSBExampleApp应用ads - b信号。这个程序允许您选择信号源和改变时间。启动应用程序,类型DSBExampleApp在MATLAB命令窗口或点击链接。

你可以探索以下辅助函数的细节物理层实现:

*helperAdsbRxPhy.m*helperAdsbRxPhySync.m*helperAdsbRxPhyBitParser.m*helperAdsbRxMsgParser.m

选定的参考书目

  1. 国际民航组织附件10卷4。监测和防撞系统。

  2. 技术规定模式S服务和扩展断续振荡器(9871年医生)