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

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

时间:02-29 来源:互联网 点击:
第三部分—利用硬件在环验证S模式信号解码算法

作者:Di Pu和Andrei Cozma

简介


在MATLAB或Simulink中实现信号处理算法之后,合乎逻辑的下一步是利用从实际要使用的SDR硬件平台获得的真实数据验证算法的功能。首先是利用从系统获得的不同输入数据集来验证算法。这样做有助于验证算法的功能,但不能保证算法在其它环境条件下也能像预期那样工作,也不能确定对于SDR系统模拟前端和数字模块的不同设置,算法的行为和性能会如何。为了验证所有这些方面,如果能让算法在线运行以接收实时数据作为输入,并且调整SDR系统设置以实现最佳性能,将是非常有好处的。本系列文章的这一部分讨论ADI公司提供的软件工具,其支持MATLAB和Simulink模型与FMCOMMSx SDR平台直接互动;此外还会说明如何利用这些工具验证第二部分所述的ADS-B模型2。2

MATLAB和Simulink IIO系统对象

ADI公司提供了完整的软件基础设施来支持MATLAB和Simulink模型与FMCOMMSx SDR平台(其连接到运行Linux的FPGA/SoC系统)实时互动。这之所以可能,有赖于IIO System Object 3(系统对象),它设计用于通过TCP/IP与硬件系统交换数据,从而发送(接收)数据至(自)目标,控制目标的设置,并监测RSSI等不同目标参数。图1显示了该软件基础设施的基本架构以及系统组件之间的数据流。


图1. 软件基础设施框图

IIO系统对象基于MathWorks系统对象规范4,其公开了数据和控制接口,MATLAB/Simulink模型通过这些接口与基于IIO的系统通信。这些接口在一个配置文件中指定,配件文件将系统对象接口链接到IIO数据通道或IIO属性。这样便可实现通用型IIO系统对象,只需修改配置文件,它便能配合任何IIO平台工作。ADI GitHub库5提供了一些平台的配置文件和示例,包括AD-FMCOMMS2-EBZ/AD-FMCOMMS3-EBZ/AD-FMCOMMS4- EBZ/AD-FMCOMMS5-EBZ SDR板和高速数据采集板AD-FMCDAQ2-EBZ。IIO系统对象与目标之间的通信是通过libiio服务器/客户端基础设施来完成。服务器运行于Linux下的嵌入式目标上,管理目标与本地/远程客户端之间的实时数据交换。libiio库是硬件低层细节的抽象,提供了简单但完整的编程接口,可用于绑定各种语言(C、C++、C#、Python)的高级项目。

本文接下来将通过一些实际例子说明如何利用IIO系统对象来验证ADS-B MATLAB和Simulink模型。一个连接到ZedBoard7且运行Analog Devices Linux发行版的AD-FMCOMMS3-EBZ SDR平台6用作SDR硬件平台,以验证ADS-B信号检测与解码算法是否正常工作,如图2所示。


图2. ADS-B算法验证的硬件设置

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

为了利用从AD-FMCOMMS3-EBZ SDR平台获得的实时数据验证MATLAB ADS-B解码算法,开发了一个MATLAB脚本来执行如下操作:

    根据用户输入计算地球带
    创建并配置IIO系统对象
    通过IIO系统对象配置AD-FMCOMMS3-EBZ模拟前端和数字模块
    利用IIO系统对象从SDR平台接收数据帧
    检测并解码ADS-B数据
    显示解码的ADS-B信息

构建IIO系统对象之后,必须利用SDR系统的IP地址、目标设备名称、输入/输出通道的大小和数目对其进行配置。图3给出了一个创建并配置MATLAB IIO系统对象的例子。


图3. MATLAB IIO系统对象的创建和配置

然后,利用IIO系统对象设置AD9361属性并接收ADS-B信号。AD9361属性基于以下考量而设置:


图4. MATLAB libiio设置AD9361属性

利用基于AD9361的平台,采样速率相当容易确定。发送数据速率一般等于接收数据速率,最终取决于基带算法。本例中,解码算法是针对12.5 MSPS的采样速率而设计,AD9361采样速率据此设置。这样,接收到的样本便可直接应用于解码算法,无需其它抽取或插值操作。

RF带宽控制设置AD9361 RX模拟基带低通滤波器的带宽,以提供抗混叠和带外信号抑制。为了成功解调收到的信号,系统必须最大程度地提高信噪比 (SNR)。因此,在满足平坦度和带外抑制要求的同时,RF带宽必须设置得尽可能窄,以使带内噪声和杂散信号电平最小。如果RF带宽设置得较宽,ADC线性动态范围就会因为额外的噪声而缩小。同样,ADC无杂散动态范围也会因为较低的带外信号抑制而缩小,导致接收器的整体动态范围缩小。因此,将RF带宽设置为最优值对于接收所需的带内信号并抑制带外信号非常重要。通过观察接收信号的频谱,我们发现4 MHz是一个合适的RF带宽值。

除了通过RF带宽属性设置AD9361的模拟滤波器之外,我们还可以通过IIO系统对象使能AD9361的数字FIR滤波器以改善解码性能,如图5所示。根据ADS-B信号的频谱特性,我们设计一个数据速率为12.5 MSPS、通带频率为3.25 MHz、阻带频率为4 MHz的FIR滤波器。这样,我们就能进一步聚焦于目标带宽。


图5. 通过libiio使能AD9361的适当FIR滤波器

Adsb.ftr文件包含FIR滤波器的系数,该FIR滤波器利用ADI公司AD9361滤波器向导MATLAB应用程序设计8。此工具不仅能完成通用低通滤波器设计,还能为信号路径中的其它级提供幅度和相位均衡。


图6. 利用MATLAB AD9361滤波器向导设计的用于ADS-B信号的FIR滤波器

多功能且高度可配置的AD9361收发器具有多种增益控制模式,适合很多不同的应用。IIO系统对象的Gain Mode(增益模式)参数选择可用模式之一:manual、slow_attack、hybrid和fast_attack。最常用的模式是manual、slow_attack和fast_attack。Manual增益控制模式允许基带处理器 (BBP) 控制增益。Slow_attack模式主要用于慢速变化的信号,fast_attack模式主要用于"突发"开启和关闭的波形。增益模式在很大程度上取决于接收信号的强度。如果信号太强或太弱,建议使用manual或slow_attack模式。否则,fast_attack是不错的选择。ADS-B信号具有突发性,因此fast_ attack增益模式可实现最佳效果。这种波形要求使用fast_attack模式,因为其存在前同步码,并且AGC需要以足够快的速度响应以便捕捉第一位。没有信号时,启动时间(增益斜坡下降所需的时间)与衰减时间(提高增益所需的时间)存在差异。目标是快速调低增益,以便能在第一位看到一个有效的1,但不提高位时间之间的增益。

最后,根据您对TX_LO_FREQ和RX_LO_FREQ的设置,该模型有两种使用方式:使用预先捕捉的数据(RF回送)和使用从空中获得的实时数据。

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

网站地图

Top