基于Simulink的模块化物理层通信链路波形仿真

2019-02-18 01:51刘建成倪永婧
无线电通信技术 2019年2期
关键词:物理层接收端链路

郭 巍,刘建成,倪永婧,李 勇

(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;2.河北科技大学,河北 石家庄050018)

0 引言

目前,强大的计算机辅助分析设计能力的链路波形仿真已成为不可或缺的技术手段。通过高效和可靠性强的仿真技术,可有效降低硬件实现风险,同时显著提高工程项目的研发效率[1]。以计算机辅助分析和设计为基础的通信系统仿真软件发展十分迅速,主要有SPW,SystemView,Matlab/Simulink,其中以Matlab/Simulink应用最为广泛[1]。Matlab最初是由美国新墨西哥大学Cleve Moler教授于上世纪70年代末研发,用于数学计算的软件[2]。历经几十年的发展,Matlab已成为覆盖多个学科领域的科学计算和仿真软件,具有入门快、交互友好和开发简单等优点。Matlab软件进行算法设计或者波形仿真主要有脚本语言编写和Simulink工具2种途径。Simulink是Matlab中能够进行动态系统仿真、建模和分析的软件包,能够支持线性系统、非线性系统、连续系统、离散系统以及几者混合的系统仿真,另外还可进行多种采样率系统仿真[3]。

对于通信领域,成功的工程项目和优秀的产品研发都需要大量的前期辅助工作[4-5],这是必不可少的环节。这些工作主要是进行系统性能分析和验证,若单纯依靠构建的实验系统和各种仪器进行测量测试,势必会存在实验系统搭建是否成功的风险、资金成本增加以及研发周期延长等问题。利用Simulink模拟系统级和链路层的通信系统,避免构建实验系统的不便,降低了成本,而且模块化的操作简便,可有效缩短建模周期,同时根据设定的参数可实现不同情况下的系统动态仿真,对于结果数据的存储分析具有更多的优势,更加便于研究分析系统性能[6]。相比于SystemView等其他模块化仿真平台,Simulink具有更强的可操作性,能够实现多采样率、定点以及时钟使能等基础仿真[7-8]。更为关键的是,Simulink还具备生成用于FPGA,DSP开发的硬件语言代码的功能,可将该工具的模块化仿真模型直接编译为比特文件,从而下载至FPGA,DSP等开发芯片。

综上所述,Simulink模块化的仿真平台可为解决通信系统物理层链路的算法开发及性能分析等问题提供便捷、可靠的技术途径。为此,本文以QPSK波形为例,重点研究如何充分利用Simulink优势,进行完备的、更贴近工程实现的物理层通信链路仿真。

1 仿真平台Simulink特点

Simulink是Matlab的子产品,专注于系统建模和仿真,通过基于模型的设计,强调从概念到代码的设计,通过对被测系统和物理对象建模,探索广泛的设计空间,可使用一个多域环境对系统所有部分的行为方式进行仿真[2]。所以, Simulink是用来建模、分析和仿真各种动态系统的交互环境,通过丰富的功能模块,为用户迅速创建系统模型提供极大的便利,减少了用户书写代码的麻烦,其主要有以下几个方面特点:

(1)模块化的交互式建模

在Simulink中有多个学科领域的工具箱,如“Communications System Toolbox”“DSP System Toolbox”“Neural Network Toolbox”“Aerospace Blockset”等,这些工具箱根据各自学科特点封装了大量的基础模块,为用户快速建立系统模型提供了极大的便利,用户可根据待仿真系统功能特点选择特定的工具箱进行建模。另外,Simulink具有开放性和灵活性,用户也可自由地根据需要进行模块的构建和封装。建模时只需将对应的功能模块拖入,并按照所建模型进行连接即可,操作简单。

(2)友好的界面交互仿真

Simulink为用户提供了友好的交互界面,有下拉菜单、对话窗口以及仿真结果显示的示波器(频谱仪)等,如图1所示。用户可通过对话窗口进行功能模块的参数设置,也可通过菜单输入脚本语言等命令进行参数变量预设。同时,用户还可通过交互界面设定和运行波形级仿真,检查分析仿真的结果。

图1 Simulink交互界面示意图

(3)良好的可扩充和定制特性

与其他仿真软件相比,Simulink为用户提供了强大的可扩展功能。这主要源于Simulink的开放式结构,允许用户根据自身需求扩展仿真环境的功能。Simulink为用户扩充和定制特殊功能的仿真模块提供了多种途径:① 通过Matlab的m脚本、Fortran和C语言代码生成自定义模块,定义自己的图标和界面;② 将Simulink已有或者用户自己生成的模块进行链接组合,生成并封装为新的功能模块;③ 借助第三方开发的工具箱和Matlab强大的接口功能,打通Simulink和这些软件的信息沟通。

基于上述的Simulink分析,以Communications System Toolbox和DSP System Toolbox两个工具箱为主,充分利用Simulink的模块建模和信号流仿真等优势,进行QPSK波形传输链路仿真,包括编译码、调制解调、信道、时间同步、位定时、频偏估计矫正和相位矫正等部分。

2 QPSK波形传输链路模型

不同的通信系统可能采用不同的物理层传输波形,不过其链路结构大致相同,即完整的波形链路通常由相同的几部分组成。QPSK作为一种相位调制方式,广泛应用于多种无线通信系统,以QPSK波形传输链路为例研究Simulink仿真技术,不失其典型的代表性。

2.1 QPSK发送端建模

一般的物理层链路发送端结构如图2所示,编码、交织、成型和频谱搬移是物理层通信链路的通用部分,其中频谱搬移包括中频、数模转换和射频,而导引符号和同步导引是为解决接收端相位模糊、频偏和时间同步等问题[7],插入已知的特定符号序列。

QPSK为正交相移键控,调制阶数为4,同等比特信噪比(Eb/No)具有与BPSK相同的误比特率性能,其复数表达式为[9]:

(1)

式中,a(t)表示QPSK调制的复数域基带码元波形,ωc,θ0分别表示载波的角频率和初始相位,a(t)由同相分量i(t)和正交分量q(t)两部分组成。

i(t)和q(t)则是由待发送的0,1信息和采用的成型滤波器生成,成型滤波器g(t)通常采用平方根升余弦滤波,表达式为[7]:

(2)

式中,α为滚降系数,Tb为码元周期。

对于图2中所示的信道编码、交织、组帧和频谱搬移等部分内容,不再进行一一描述。

2.2 QPSK接收端建模

设计的QPSK波形传输链路接收端采用开环方式,即利用插入的导引符号解决载波同步、时间同步和相位模糊等问题,实现的模型如图3所示。与发送端类似,匹配滤波、解调、解交织和译码等是通用部分,最为关键、实现难度最大的是位定时、频偏矫正和信道估计,这里对三者的建模进行详述。

图2 物理层通信链路发送端结构

图3 物理层通信链路接收端结构

接收端的时间同步和位定时是实现后续处理,准确解调、有效译码等部分的基础[10]。时间同步和位定时恢复采用等间隔插入的同步导引序列匹配法获取最佳采样点[11],具体实现模型如图4所示,二者同时完成。

图中,I和Q两路信号采样率设定的为符号速率8倍,信号经过匹配滤波,抽取一个符号周期内不同的8个样点输出8路信号,分别与本地的同步导引序列滑动相关,对比8路滑动相关绝对值的大小,并与门限对比,若8路中最大值大于门限,则时间同步成功,最大值对应的一路抽取为最佳抽取,即找到最佳位定时。

图4 基于导引匹配的同步、位定时实现模型

由于收发设备可能处于相对运动的状态,或者收发两端晶振存在一定的偏差,均会引入不期望的频偏。对于频偏的消除,考虑充分利用插入的同步导引序列,以相位累加的最大似然频偏估计方法得到频偏值,进而予以矫正,基本模型如图5所示,该部分替代了闭环工作的锁频环和锁相环。

图5 基带正交锁相环结构

设同步导引序列长度为n,在精准位定时基础上,将含有频偏和相偏的接收导引序列xr取共轭,取其2~n段与已知的本地导引x的2~n点乘得到xΔ1,取1~n-1与本地导引的1~n-1点乘(.·)得到xΔ2,利用xΔ1和xΔ2可估计出相邻符号间的相偏,进而求得频率偏移量fΔ,具体表示为[12]:

xr=[xr1xr2…xrn],

(3)

x=[x1x2…xn],

(4)

xΔ1=[xr2xr3…xrn]*··[x2x3…xn],

(5)

xΔ2=[xr1xr2…xrn-1]*··[x1x2…xn-1] ,

(6)

(7)

式中,angle( )表示取复数向量中每个元素的角度,Ts为符号周期。

除频偏外,接收端QPSK信号还会存在星座图旋转的相位模糊问题,设计模型中等间隔插入导引序号,在接收端与本地导引的共轭做相关运算得到信道估计值vd,在不考虑信道均衡情况下主要用于解决相位偏移模糊的问题,故设计用于信道估计的导引符号长度设为d,其插入方式如第一部分所示。

算法描述为[13]:

(8)

信道(相偏)的矫正过程即利用vd与数据符号逐个相乘。

x′r=vdxr,

(9)

式中,x′r为均衡后的数据符号,xr为接收到的数据符号,上述过程如图6所示。

对于QPSK波形链路的编译码、加解交织和组帧等,可参考文献[14-15]。

图6 信道估计示意图

3 基于Simulink的传输链路仿真实现

在设计模型基础上,基于Simulink所含有的功能模块,搭建物理层QPSK波形传输链路,主要包括3个方面的工作:① 在仿真模型基础上设计链路各部分的仿真参数,比如信息速率、帧长、导引长度及成型滤波器参数等;② 确定Simulink中能够实现设计模型各部功能的模块,或者利用多个基础模块组合实现对应的功能;③ 对完成的Simulink仿真链路进行调试检查,研究分析所得结果的可靠性。

3.1 链路波形仿真参数设置

对于Simulink仿真时的参数设置有多种方式,以Matlab脚本语言编写,运行之后将参数对应变量存于Workspace;在Simulink的slx文件菜单栏的“File”选项中选择“Model Properties”,如图1中(b)所示。

3.2 仿真链路搭建

仿真链路搭建是Simulink仿真实现的重点,核心是如何利用Simulink中包含的基础模块或专用模块实现上述QPSK波形收发两端各部分功能,同时确定便于链路分析的数据采集节点和方式,QPSK波形链路的仿真实现如图7所示。

波形建模的各部分功能实现主要有几种方式:① 直接利用Simulink中的专用功能模块,如图7中所示的QPSK波形发送端随机0,1生成和调制映射,接收端解调和误码率统计;② 通过多种基础模块的组合实现复杂功能,包括时间同步、位定时、频偏估计和相偏矫正等;③ 依托S-Function模块,通过m脚本语言、C、C++等高级语言编写自定义功能的模块。

QPSK波形仿真主要是通过前2种方式实现,发送端和接收端具体如图8所示,其中需要注意的是对数据Frame长度和使能信号的处理。基于该仿真链路可验证QPSK波形的同步、定时和频偏矫正算法的有效性,通过改变信道的信噪比等参数,观察接收端误码率变化,进而分析整个波形链路的性能,为后续算法改进奠定基础。

图7 QPSK波形链路仿真总体图

图8 QPSK波形发送端和接收端具体实现

3.3 仿真结果分析

在波形仿真链路搭建完毕后,如何采集数据,通过数据分析进而验证仿真模型的有效性是关键的一步。Simulink中对于数据采集,即可输出至数据文件也可以变量的形式直接保存至workspace,分析工具有频谱仪、示波器、星座图显示、眼图分析和误码率统计模块等,这些为仿真链路调试提供了极大的方便。通过分析输出数据是否与理论相符,从而判断构建的仿真链路可靠性和有效性,所以一个完整链路波形的仿真需要充分利用Simulink中的分析调试工具。

4 结束语

以QPSK波形为例,讲解了如何基于Simulink进行物理层通信链路仿真,从而展现了Simulink仿真技术的直观性、可复用性和简单易操作性。不过,本文介绍的QPSK波形仿真只是Simulink强大功能的冰山一角,如何充分发掘Simulink仿真平台的潜力,更好地为物理层传输链路仿真服务,还需进行更多的应用研究。

猜你喜欢
物理层接收端链路
一种移动感知的混合FSO/RF 下行链路方案*
基于K-ML-MPWFRFT的物理层安全传输技术
基于凸优化的FSO/RF 自动请求重传协议方案
基于扰动观察法的光通信接收端优化策略
天空地一体化网络多中继链路自适应调度技术
纯多播BC 信道并存单播MAC 信道的天线效率研究
手机无线充电收发设计
利用Modbus协议实现垂直螺旋卸车机取料器自动调速方法
一种IS?IS网络中的链路异常检测方法、系统、装置、芯片
一种应用于5G基于LDPC码的物理层包编码