本示例向您展示如何使用MATLAB®和Communications Toolbox™处理自动识别系统(AIS)信号来跟踪船舶。您可以使用捕获的信号,也可以使用RTL-SDR Radio实时接收信号。如果您有Mapping Toolbox™,这个例子可以在地图上显示被跟踪的船只。
要使用捕获的信号运行此示例,您需要Communications Toolbox™。
要实时接收信号,还需要RTL-SDR无线电和相应的RTL-SDR无线电支持包Add-On的通信工具箱支持包。金宝app
的“通信工具箱”支持的SDR平台的完整列表,请参阅“受支持的硬件”部分金宝app软件定义无线电(SDR)发现页面.
在海上运输中,船舶交通服务使用AIS作为整个海上交通监控系统的组成部分。AIS的主要功能如下:
传送船只标识,位置,航线和航速。
接收和处理指定的询问电话。
在航行中或抛锚时连续作业。
AIS系统规格:
发射频率范围:156.025 MHz-162.025 MHz
调制方案:高斯频移键控
比特率:9600比特/秒
发射带宽时间积:0.4
接收带宽时间乘积:0.5
调制指数:0.5
AIS传输报文中包含以下字段:
训练序列:交替0和1的24位序列(0101…)。
开始标志:8位序列,01111110。
Data:缺省传输报文中的数据部分为168位。
帧校验序列(FCS):使用循环冗余校验(CRC) 16位多项式来计算校验和。
结束标志:与开始标志相同。
缓冲区:缓冲区通常是24位长,以考虑比特填充(最大4位),距离延迟(14位)和同步抖动(6位)。
图为AIS报文格式
控件可以打开示例打开脚本按钮。默认配置的持续时间为10秒,使用捕获数据文件中的信号数据,并输出到文本文件。要从命令行提供输入值,必须进行更改cmdlineInput
设置为1,则运行示例时将提示输入以下信息:
接收持续时间(秒),
信号源(捕获数据文件或RTL-SDR无线电),
可选输出方法(映射、文本文件或两者都有)。
该示例以表格形式显示了检测到的船舶信息,如下图所示。
如果你有Mapping Toolbox的授权,你也可以在地图上观察AIS跟踪船只。
下面的方框图总结了接收方代码结构。信号处理主要包括信号源、物理层和数据查看器三个部分。
信号源
指定信号源为“File”或“RTL-SDR”。
File:使用comm.BasebandFileReader
读取包含先前通过空中捕获的信号的文件。
RTL-SDR:使用RTL-SDR无线电接收实时信号。
该代码使用9600 Hz的信号符号速率和每个符号24个样本。
如果指定“RTL-SDR”作为信号源,示例将在计算机中搜索无线电地址为“0”的RTL-SDR无线电,并将其用作信号源。
物理层
物理层(PHY)处理从信号源接收的基带样本,以产生包含船舶位置信息和原始消息字节的数据包。该图显示PHY处理组件。
包搜索:将接收信号分成多个窗口,搜索接收信号中最强的突发。
直流偏置消除:移除检测信号的直流偏移量。
频率补偿:估计并补偿载波频偏。
匹配滤波:使用AIS规范生成的高斯脉冲进行滤波。
同步与解调:通过将接收到的信号与已知的前导相关联,进行定时同步,并解调产生比特。
AIS比特解析器:检测开始标志和结束标志,然后进行CRC检测。如果CRC成功,则对船舶信息进行解码。
AIS系统中有64种特定的消息类型。船舶位置信息包含在11种消息类型中。这个示例解码了包含位置信息的所有11种消息类型。
如前面的图所示,这个示例显示了船号、纬度、经度、日期和时间。消息包含可按[描述]解码的附加信息。1]。
数据查看器
数据查看器在图形用户界面(GUI)上显示接收到的消息。当数据被捕获时,应用程序以表格形式列出从这些消息解码的信息。
下面描述了示例步骤。要查看详细的操作,请查看示例调用的helper函数中运行的代码。若要更改默认设置,请设置cmdlineInput
为1。
cmdlineInput = 0;如果cmdlineInput从命令行请求用户输入应用程序参数userInput = helperAISUserInput;其他的负载(“defaultInputs.mat”);结束%根据用户输入计算AIS参数[aisParam,sigSrc] = helperAISConfig(userInput);创建数据查看器对象并根据用户输入进行配置查看器= helperAISViewer(“LogFileName”, userInput。LogFilename,…“SignalSourceType”, userInput.SignalSourceType);%根据用户输入启动地图如果userInput。LaunchMap startMapUpdate(观众);结束%根据用户输入的日志数据如果userInput。LogData startDataLog(观众);结束启动查看器并初始化无线电时间start(viewer) radioTime = 0;捕获和解码AIS样本的主回路而radioTime < userInput。持续时间如果aisParam.isSourceRadio%用于RTL-SDR[rcv,~,lost,~] = sigSrc();lostFlag =逻辑(丢失);其他的%用于基带文件rcv = sigSrc();lostFlag = uint32(0);结束通过解码AIS样本恢复信息[info, pkt] = helperAISRxPhy(rcv,aisParam);在查看器上查看已解码的信息update(viewer, info, pkt, lostFlag);%更新无线电时间radioTime = radioTime + aisParam.FrameDuration;结束停止查看器,释放信号源。%停止(观众)发布(sigSrc)
你也可以打字AISExampleApp在MATLAB命令窗口或点击链接使用AISExampleApp用户界面探索AIS信号。应用程序界面允许您选择信号源和更改持续时间。
您可以探索以下功能和系统对象的物理层实现的详细信息:
ITU-R M.1371-5, VHF海上移动频段使用时分多址的自动识别系统的技术特性。