微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 快速通往量产的四个步骤:利用基于模型的设计开发软件定义无线电

快速通往量产的四个步骤:利用基于模型的设计开发软件定义无线电

时间:02-29 来源:互联网 点击:
预先捕捉数据

这种情况下,我们利用AD-FMCOMMS3-EBZ发送和接收预先捕捉到的一些ADS-B信号。这些信号保存在一个名为"newModeS"的变量中。


图7. 利用预先捕捉的ADS-B信号定义输入

这种情况要求TX_LO_FREQ = RX_LO_FREQ,它可以是AD-FMCOMMS3-EBZ支持的任意LO频率值。预先捕捉的数据中有大量ADS-B有效数据,因此,这是验证硬件设置是否合适的好方法。

实时数据

这种情况下,我们接收空中的实时ADS-B信号,而不是AD-FMCOMMS3-EBZ发送的信号。根据ADS-B规范,它以1090 MHz的中心频率发送,因此,这种情况的要求是:

    RX_LO_FREQ=1090 MHz,TX_LO_FREQ远离1090 MHz,以免产生干扰。

在接收侧使用一根适当的天线,它能覆盖1090 MHz频段,例如ADS-B双半波移动天线9;使用调谐不佳或制作不良的天线会导致空中雷达探测距离不够。

一切设置妥当之后,使用如下命令便可运行MATLAB模型:

[rssi1,rssi2]=ad9361_ModeS('ip','data source',channel);

其中,ip为FPGA板的IP地址,data source指定接收信号的数据源。目前,该模型支持"预先捕捉"的数据源和"实时"数据源。 Channel指定信号是利用AD-FMCOMMS3-EBZ的通道1还是通道2进行接收。

例如,发出以下命令时,系统将通过通道2接收预先捕捉的数据:

[rssi1,rssi2]=ad9361_ModeS('192.168.10.2','pre-captured',2);

在仿真结束时,您会得到两个通道的RSSI值以及下表所示的结果:


图8. 仿真结束时显示的结果表格

此结果表格显示了仿真期间出现的航空器信息。借助适当的天线,此模型利用AD-FMCOMMS3-EBZ能够捕捉并解码80英里范围内的航空器信号。S模式消息有两类(56 μs和112 μs),因此,某些消息包含的信息比其它消息要多。

利用实际ADS-B信号测试此模型时,解码能否成功,信号强度非常重要,务必把天线放在对准航空器的良好位置上。接收信号强度可通过查看两个通道的RSSI值来了解。例如,若通过通道2接收信号,通道2的RSSI应显著高于通道1的RSSI。通过查看频谱分析仪,可以判断是否存在有用数据。

RF信号质量


任何RF信号都需要一个质量指标。例如,对于QPSK等信号,我们有误差矢量幅度 (EVM)。对于ADS-B信号,查看分隔器输出还不足以获得正确消息,如图8所示。我们需要一个指标来定义ADS-B/脉冲位置调制的质量,以便判断哪种设置更好。

ModeS_BitDecode4.m函数中有一个变量diffVals,它就可以用作这样的指标。此变量是一个112 × 1矢量。对于一条S模式消息中的每个解码位,它都会显示该位距离阈值有多远。也就是说,每个解码位相对于正确判断有多少裕量。显而易见,一个位的裕量越大,解码结果的置信度就越高。另一方面,若裕量很小,则意味着判断处于边缘区,解码位很有可能是错误的。

下面两幅图比较了有和没有FIR滤波器两种情况下从ADS-B接收器获得的diffVals值。注意y轴,我们发现,使用FIR滤波器时,无论处于最高点、最低点还是平均值,diffVals都较大。然而,当没有FIR滤波器时,几个位的diffVals都非常接近0,意味着解码结果可能不正确。因此,我们可以得出结论,使用适当的FIR滤波器可改善解码的信号质量。


图9. 使用FIR滤波器时从ADS-B接收器获得的diffVals值


图10. 无FIR滤波器时从ADS-B接收器获得的diffVals值

采用IIO系统对象的MATLAB ADS-B算法可从ADI GitHub库下载10。10

利用IIO系统对象验证Simulink ADS-B算法

Simulink模型基于本系列文章第二部分介绍的模型2。解码器和解码模块直接来自该模型,我们增加了Simulink IIO系统对象以开展信号接收和硬件在环仿真。

原始模型以采样时间 = 1且帧大小 = 1的设置工作。然而,Simulink IIO系统对象以缓冲模式工作,它会积累若干样本,然后进行处理。为了让原始模型配合系统对象工作,我们在其间增加了两个模块:解除缓冲以使帧大小 = 1,转换速率以使采样时间 = 1。这样,原始模型便可保持不变。


图11. Simulink模型捕捉和解码ADS-B信号

Simulink IIO系统对象设置如下。与MATLAB实例相同,它创建一个系统对象,然后定义与此系统对象相关的IP地址、设备名称、输入/输出通道数目和大小。


图12. Simulink IIO系统对象

与IIO系统对象相对应,此Simulink模块的输入输出端口通过对象模块的属性对话框以及目标ADI SDR平台特定的配置文件来定义。输入和输出端口按数据和控制端口分类。数据端口以帧处理模式发送(接收)连续数据缓冲至(自)目标系统,而控制端口则用于配置和监控不同的目标系统参数。数据端口的数目和大小通过该模块的配置对话框进行配置,而控制端口则在配置文件中定义。AD9361属性设置所依据的因素与MATLAB模型所述相同。MATLAB模型运用的所有理论和方法在这里都适用。

根据您对TX_LO_FREQ和RX_LO_FREQ的设置,Simulink模型有两种运行模式:使用预先捕捉的数据"DataIn"和使用实时数据。以预先捕捉的数据为例,在仿真结束时,我们可以在命令窗口中看到如下结果:


图13. 使用预先捕捉数据的仿真结束时在命令窗口中显示的结果

这里的结果以文本格式显示,而不像在MATLAB模型中以表格形式显示。

采用IIO系统对象的Simulink ADS-B模型可从ADI GitHub库下载11。11

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top