飞机使用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微秒的数据见下图。
运行示例
缺省配置运行使用捕获数据。在这个例子中,您可以设置cmdlineInput
来1
,然后运行示例选择改变这些配置设置:
接待时间以秒为单位,
信号源(获取的数据或RTL-SDR电台或ADALM-PLUTO广播),
可选的输出方法(地图和/或文本文件)。
示例显示检测到飞机上的信息以表格形式如下图所示。
你也可以观察到地图上的飞机,如果你有一个有效的许可证的映射工具。
接收机结构
下面的代码块图总结了接收机结构。处理有四个主要部分:信号源、物理层、消息解析器和数据查看器。
信号源
这个例子可以使用三个信号来源:
“捕获信号”:无线信号写入到文件和来自基带文件读者对象为2.4议员
“RTL-SDR广播”:RTL-SDR电台2.4议员
“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
选定的参考书目
国际民航组织附件10卷4。监测和防撞系统。
技术规定模式S服务和扩展断续振荡器(9871年医生)