文章转自ADI官网,版权归属原作者全部
简介
在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显现了该软件基础设施的根本架构以及体系组件之间的数据流。
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所示。
运用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体系方针的比如。
然后,运用IIO体系方针设置AD9361特点并接纳ADS-B信号。AD9361特点依据以下考量而设置:
T运用依据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滤波器。这样,咱们就能进一步聚集于方针带宽。
Adsb.ftr文件包括FIR滤波器的系数,该FIR滤波器运用ADI公司AD9361滤波器导游MATLAB运用程序规划8。此东西不仅能完结通用低通滤波器规划,还能为信号途径中的其它级供给起伏和相位均衡。
多功用且高度可装备的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回送)和运用从空中取得的实时数据。
预先捕捉数据
这种状况下,咱们运用AD-FMCOMMS3-EBZ发送和接纳预先捕捉到的一些ADS-B信号。这些信号保存在一个名为”newModeS”的变量中。
这种状况要求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值以及下表所示的成果:
此成果表格显现了仿真期间呈现的航空器信息。凭借恰当的天线,此模型运用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滤波器可改进解码的信号质量。
选用IIO体系方针的MATLAB ADS-B算法可从ADI GitHub库下载10。10
运用IIO体系方针验证Simulink ADS-B算法
Simulink模型依据本系列文章第二部分介绍的模型2。解码器和解码模块直接来自该模型,咱们增加了Simulink IIO体系方针以展开信号接纳和硬件在环仿真。
原始模型以采样时刻 = 1且帧巨细 = 1的设置作业。但是,Simulink IIO体系方针以缓冲方式作业,它会堆集若干样本,然后进行处理。为了让原始模型合作体系方针作业,咱们在其间增加了两个模块:免除缓冲以使帧巨细 = 1,转化速率以使采样时刻 = 1。这样,原始模型便可坚持不变。
Simulink IIO体系方针设置如下。与MATLAB实例相同,它创立一个体系方针,然后界说与此体系方针相关的IP地址、设备称号、输入/输出通道数目和巨细。
与IIO体系方针相对应,此Simulink模块的输入输出端口通过方针模块的特点对话框以及方针ADI SDR渠道特定的装备文件来界说。输入和输出端口按数据和操控端口分类。数据端口以帧处理方式发送(接纳)接连数据缓冲至(自)方针体系,而操控端口则用于装备和监控不同的方针体系参数。数据端口的数目和巨细通过该模块的装备对话框进行装备,而操控端口则在装备文件中界说。AD9361特点设置所依据的要素与MATLAB模型所述相同。MATLAB模型运用的全部理论和办法在这儿都适用。
依据您对TX_LO_FREQ和RX_LO_FREQ的设置,Simulink模型有两种运转方式:运用预先捕捉的数据”DataIn”和运用实时数据。以预先捕捉的数据为例,在仿真结束时,咱们能够在指令窗口中看到如下成果:
这儿的成果以文本格式显现,而不像在MATLAB模型中以表格方式显现。
选用IIO体系方针的Simulink ADS-B模型可从ADI GitHub库下载11。11
定论
本文评论了运用ADI公司供给的libiio基础设施进行的硬件在环仿真。选用这种基础设施,便可运用实践信号和硬件验证MATLAB和Simulink ADS-B信号检测与解码算法。特点设置高度依赖于运用和波形,适宜一个波形的设置并不一定适宜另一个波形。这是要害的一步,可保证SDR体系的模仿前端和数字模块针对方针算法和波形调谐稳当,而且算法满足鲁棒,关于不同环境条件下取得的实践数据,它都能像预期的那样处理。有了通过验证的算法之后,便可开端下一步,即运用MathWorks代码主动生成东西将算法转化为HDL和C代码,并将此代码集成到实践SDR体系的可编程逻辑和软件傍边。本系列文章的下一部分将阐明怎么生成代码并将其布置到出产硬件中,还会谈谈该渠道在机场运用实践ADS-B信号运转所取得的成果。这样便介绍完了SDR体系从原型开发到出产的全部过程。
参阅电路
1Cozma, Andrei, Di Pu, 和 Tom Hill. “快速通往量产的四个过程:运用依据模型的规划开发软件界说无线电—榜首部分.” 模仿对话,第49卷第3期,2015年。
2Donovan, Mike, Andrei Cozma, 和 Di Pu. “快速通往量 产的四个过程:运用依据模型的规划开发软件界说无线电—第二部分.” 模仿对话,第49卷第3期,2015年。
3ADI公司。”IIO体系方针”
4MathWorks。 “什么是体系方针?”
5ADI公司 “Mathworks_tools.” GitHub库
6ADI公司。。AD-FMCOMMS3-EBZ用户攻略。.
7ZedBoard.
8ADI公司。MATLAB AD9361滤波器规划导游。 .
9ADS-B双半波移动天线。 .
10选用IIO体系方针源代码的MATLAB ADS-B算法。.
11选用IIO体系方针源代码的Simulink ADS-B模型。.
称谢
感谢MathWorks公司的Mike Donovan,他协助开发了本文所用的MATLAB和Simulink ADS-B信号检测与解码算法。