0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

电子设计 作者:电子设计 2018-11-19 07:54 次阅读

本文介绍并分析该方法的软件特性和硬件架构,进行MPSK调制系统在仿真信道和实际信道下链路模型的误码率对比实验,并在包含实际无线信道的链路模型基础上,设计并实现了一套无线视频流传输原型系统。分析和实验结果表明,新方法能够快速实现无线通信系统原型,将实际无线信道纳入系统模型中,从而获得更准确的仿真和分析结果。该方法适用于对通信协议标准及系统有定制化需求、针对传输环境复杂的无线通信系统研究开发。

引言

无线通信技术正处在飞速发展的阶段,并开始广泛运用于个人、商业、军事等多个领域。随着无线通信系统复杂度的日益上升,使用传统的分析方法来评估和设计无线通信系统已经变得十分困难;采用硬件原型测试的方法由于实现成本高、难度大,往往在系统开发的后期才能得以实现;以软件为基础的建模仿真方法则能够使研究和开发人员在花费较少的人力和财力的情况下,获得接近真实系统的评估能力,因此成为了通信系统开发前期主要的设计和验证手段。目前,无线通信系统的建模仿真主要通过Matlab Simulink,SystemView,SPW等软件实现。但对于特性变化快、易受干扰的无线传输环境来说,上述基于纯软件的建模仿真手段难以对系统实现快速和准确的测试、分析和评估。

本文提出将软件无线电开发平台GNU Radio和通用软件无线电外设USRP(Universal Software Radio Pe-ripheral)组成的软件无线电系统用于无线通信系统的建模仿真,首先分析了该系统的软件特性和硬件结构;随后对MPSK 调制系统分别建立基于仿真信道和实际信道的通信链路模型,进行误码率测试的对比实验,验证该方法将实际无线信道纳入系统仿真中的可行性;最后在采用实际信道的链路模型基础上,进一步设计并实现了无线视频流传输原型系统,能够通过无线方式实现视频流传输。分析和实验结果表明相对于常用的软件建模仿真手段,软硬件结合的新方法能够快速实现系统原型,将特性复杂、仿真困难的实际无线信道纳入系统仿真模型中。

1 GNU Radio 和USRP组成的软件无线电系统

1.1 软件无线电

软件无线电的概念于1992 年由Joseph Mitola正式提出。这一概念的提出和发展是针对于无线通信领域出现的多种体系并存、标准间竞争激烈的局面。软件无线电的架构体系突破了无线通信系统以专用硬件为核心的传统设计模式,通过将宽带的AD和DA器件尽可能地靠近射频天线,尽早地将获得的模拟信号转换成数字信号,并以通用硬件作为基本平台,尽可能多地由通用处理器上的软件实现无线及通信功能,以实现无线通信系统的可升级和可重配置。将软件无线电技术应用于无线通信系统的建模仿真,能够发挥其架构灵活、开放、软硬件结合、多层次协同的特性,解决传统软件工具存在的一些局限。

软件无线电发展至今,已有多套开源及商业系统可用于原型设计及通信系统研究,如微软研究院推出的Sora 系统、弗吉尼亚理工大学的OSSIE(Open SourceSCA Implementation Embedded)项目等。其中,开源无线电软件GNU Radio和通用软件无线电外设USRP组成一套基于PC的软件无线电系统,是适用于无线通信系统建模仿真的较好的解决方案。

1.2 GNU Radio的软件特性

GNU Radio 是基于软件无线电思想开发的开源平台,运行在Linux 系统上,遵循GNU 的GPL(GeneralPublic License)条款分发。作为一个软件无线电开发平台,GNU Radio具有很强的可重构性。通过它所提供的多种实用的信号处理模块和将这些信号处理模块连接起来的流图机制,可以建立起不同的通信链路模型,满足不同类型通信系统的需要。GNU Radio 主要用于通信链路的建模和仿真,其标准库十分丰富,覆盖了调制解调、信源编/解码、信道编/解码、多址接入、均衡、同步、滤波器设计、小波分析等常用的信号处理模块,且有类似于Matlab Simulink框图式结构的图形化建模环境,能够方便、快速地建立起链路级系统的模型。同时,出于运行效率的考虑,GNU Radio采用了数据通道和控制通道分离的两级设计,其中C++用于描述需要较高运行效率的信号处理模块,Python则用于模块之间的配置和连接。

由于GNU Radio 采用了通用的编程语言Python 作为专门的控制通道,代替了单一的模块连接机制,这样除了能够对信号处理模块进行更方便地配置和管理之外,借助Python的灵活特性,还能实现在通信链路的上层建立网络模型,进行整个通信协议的定制和设计,甚至与应用程序进行直接交互。这使得在GNU Radio中实现跨层次设计和联合优化成为可能。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

以GNU Radio内建的测试程序为例具体分析,通过解析测试程序中的代码可知,GNU Radio规定了如图1所示的帧结构格式。最底层的帧结构提供了前导码、同步码用于接收端系统的频率和时序同步;帧头则提供帧长度、高斯白化偏置等信息;帧的上层结构提供了CRC(Cyclic Redundancy Check)校验和发送包数目统计功能。此外,GNU Radio在MAC(Media Access Control)层还提供了载波监听多路访问/冲突检测机制,用于检测当前信道上的信号冲突。当USRP 接收到的信号幅度大于设定的门限值时,则认为该信道被占用,并采用二进制指数退避重传算法等待重传。通过USRP 数据的时间戳配合,亦可以在GNU Radio中实现分时隙传输的超帧结构。同时,通过导入Socket模块,Python 能够方便地进行网络编程。而调用TUN/TAP提供的虚拟以太网通道可以让基于TCP/IP 的应用层程序直接加载到GNU Radio上,并通过GNU Radio所提供的通信系统进行通信。另外,上层网络模型中的数据为异步数据,不能够直接被通信链路上的同步信号处理模块处理,对此,GNU Radio在网络模型和链路模型之间使用了一个FIFO(First In First Out)缓存,实现了信号从异步到同步、由信息比特到基带波形的转换,将通信链路和上层网络紧密地结合起来。

通过使用上述GNU Radio提供的功能和特性,研究和开发人员可以方便地构建起由通信链路和上层网络模型组成的更为完整的通信系统,并从全局性能的角度考虑,对定制的通信系统进行跨层次联合设计和优化。

1.3 USRP的硬件结构

在GNU Radio和USRP组成的软件无线电系统中,GNU Radio 仅负责低速率基带信号的处理,USRP 则充当了数字中频和射频前端的角色,对高通量信号进行处理。基于软件无线电思想设计的USRP 的硬件结构具有灵活、通用的特性,能够兼容当前无线通信的多种协议标准,为建立自定制协议和多标准融合的系统建模和测试提供了强大的支持。

如图2 所示,USRP 的结构中主要包括了负责数字中频处理的FPGA(Field Programmable Gate Array)、负责模/数与数/模转换的ADCDAC 器件和负责射频信号处理的射频子板。在具体的收发过程中,接收端的天线捕捉空中的射频信号,由射频子板进行模拟域的下变频,将信号由射频移至中频,然后通过A/D器件的转换,进入数字域;FPGA 作为数字下变频器,将信号从数字中频进一步移至基带,并同时完成信号的抽取工作,使信号速率降至通用处理器能够处理的范围;最后,通过控制芯片将低速率的基带信号送入PC.发送端则完成一个大致相反的信号处理流程。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

在USRP 的结构中,宽频段、可更换的收发射频子板和天线可以覆盖多数无线协议标准所在的频率范围,ADC 和DAC 器件具有高采样速率和较好的分辨率,基于FPGA的数字中频处理和基于PC端软件的基带信号处理易于重构,灵活的总线结构的采用则降低了各硬件模块之间的耦合性。当前的无线通信协议标准很多都工作在相近的频段,在射频端上亦有很大的相似性,协议标准的主要区别集中在基带信号的处理上。USRP作为通用的射频前端,基于软件无线电思想设计,具有开放性、模块化和高通用性的特点,因此能够兼容绝大多数现有的通信协议标准,并且可以根据需要,在软件层面自行定义通信系统的收发频段和通信带宽,进行无线通信系统的定制化设计。

2 基于实际信道环境的通信系统模型实现

无线信道稳定性较差,信道特性会随着地形、地貌以及信号频率和传播方式的变化而变化,而且不可避免地会受到阴影效应和多径衰落的影响。因此,在实际无线通信系统的链路级仿真中,通常需要建立准确的信道模型来预测系统的整体性能和评估信号处理算法的优劣。但由于真实的无线信道具有时变特性,建立高精度的仿真信道模型难度很大,且仿真模型也很难做到和实际信道完全匹配,结合硬件原型进行实际环境测试的做法在设计前期难以实现,这一直是无线通信系统仿真中的难以解决的问题。而GNU Radio与USRP软硬件无缝连接的特性有效地改善了传统硬件原型建立困难的局限,通过快速实现无线通信系统的硬件原型,将真实的无线信道环境纳入仿真过程中,对信道特性进行评估。

2.1 通信链路建模仿真对比

相移键控PSK(Phase-Shift Keying)利用载波的多种不同相位状态来进行数字信号的调制,相比幅移键控和频移键控调制系统,在频带利用率和抗噪声性能方面均有优势,因此在中、高速数据传输中得到了广泛的应用。本部分使用GNU Radio 和USRP 对具体的MPSK 调制系统进行建模,通过软件仿真、实际环境测试和结果的对比分析,验证由GNU Radio和USRP无缝连接特性所带来的硬件原型快速实现的能力,并说明该系统相比传统仿真软件在评估实际信道环境方面的优势。为了能够最大程度地减小仿真模型和实际测试模型在基带信号处理上的差别,实验调用GNU Radio中的模块建立仿真模型,然后去除仿真信道,其他部分采用相同的模块配合USRP实现硬件原型。为此,需要在仿真模型中加入加扰、解扰、载波频偏恢复和信号时序恢复等实际信号传输中所需的模块。仿真系统的构建如图3所示。在该系统的发送端,矢量信号源负责产生信号;信号被送入加扰模块进行信道编码,做伪随机化处理;编码后,信号进入MPSK 模块进行调制。系统的接收端调用MPSK解调模块进行信号解调,在该模块中已经插入了载波频偏恢复和信号时序恢复的子模块;最后对信号进行相应的解包和解扰操作,并与预设信号对比,获得误码率数据。在解调模块中还调用了信号强度探针,用来获得当前信号的信噪比大小。发送端与接收端之间则通过加性高斯白噪声信道模块连接,以仿真整个链路级的通信过程。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

对上述仿真系统只需进行收发部分的分离和简单修改,即可配合USRP设备实现该系统的硬件原型。见图4,发送端经MPSK调制后的信号被送入USRP模块,该模块对射频信号的发射参数进行配置,然后由USRP设备进行上变频等处理并发送到实际环境中;经过室内实际信道传输,接收端的USRP捕捉到环境中的射频信号,并进行射频和数字中频的相应处理,最后输出数字基带信号到GNU Radio中的MPSK解调模块,做后续的基带信号处理。这样,使用两台USRP设备就能够建立起通过实际信道进行信号收发的系统硬件原型。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

对上面建立的仿真模型和硬件原型,分别调用BPSK,QPSK,8PSK,16PSK 四种调制方式,进行加性高斯白噪声信道的仿真和实际环境下的测试。测试在约15 m2大小的室内环境中进行,每个测试点对30 min内采集到的信噪比和误码率数据进行平均化处理,对比仿真结果,获得如图5所示的误码率曲线。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

从测试结果生成的曲线可以得知,低信噪比情况下,室内环境测试所得的数据与仿真信道下测得的数据符合较好;在高信噪比情况下,尤其在高阶调制模式下,实际测试数据与仿真信道下测得的数据产生了较大偏离,在同样误码率情况下,偏离可能达到2~3 dB.由MPSK调制系统的理论分析可知,高阶调制模式相比低阶调制对噪声更为敏感,受载波频率和相位恢复模块引入的相位噪声影响也更大,容易对误码率数据产生影响。从实际的测试过程来看,室内环境由于人、物移动引起的信号遮挡和散射造成信号传播路径的变化,会使信号的信噪比产生5~10 dB左右大范围变动的现象,这也是测试数据与仿真曲线偏离的原因之一。由此看来,在低误码率的情况和高阶调制模式下,理想的加性高斯白噪声的仿真信道不足以精确描述实际的室内信道特性。

2.2 无线视频流传输系统原型

通过GNU Radio 灵活的软件特性和Python 的编程能力,可以进一步在上述链路级模型的基础上,建立基于实际无线信道传输的无线通信系统原型。以无线视频流传输系统为例,本文设计了如图6 所示的系统结构,并据此实现了相应的原型系统。

如何通过GNU Radio和USRP的组合软件实现无线通信系统的建模仿真

在系统发送端,视频采集设备从真实环境中实时采集视频流数据,经过PC上的视频编码程序编码后送到设定好的TCP或UDP网络端口;通过Socket网络编程方法,可以方便地绑定网络端口,将视频流数据送入GNU Radio中的程序进行处理;GNU Radio中的程序对网络端口的数据流做进一步的MAC 层成帧和同步处理,然后进行基带信号的调制和编码工作,最后送入USRP发射。接收端系统则进行大致相反的处理流程,经过解码后的视频流数据可以在相应的显示器上显示。

在实际测试过程中,该原型系统能够正确显示视频采集端采集到的视频信号,达到了预想的效果,如图7所示。其架构具有很强的灵活性和可扩展性,包括视频格式、视频编/解码方式、分组帧结构、信道编/解码、信号调制方式、传输频段和传输带宽在内的各个部分均易于调整和修改,这便于研究和开发人员根据视频信号在实际信道中的传输效果进行整体系统的定制性设计和优化。

2.3 实验结果分析

上述实验表明,GNU Radio建立的链路模型能够几乎不经修改地通过USRP进行实际信号的发射和接收,实现无线通信系统原型,并进一步用于室内外等常见真实环境下的系统测试。相比纯软件仿真结果,结合硬件原型进行测试将实际信道纳入仿真过程,使研究和开发人员在早期阶段就能够对目标传输频率和传输环境下的信道进行研究,对传输过程中的路径损耗、频段上其他系统的干扰、信道特性的变化等因素进行合理评估。

实际信道测试的结果对于系统后期开发也有更强的指导意义。借助该方法进行原型测试,能够使无线通信系统开发中的问题在早期迅速浮现,并在系统规划和设计阶段就被解决,有助于减少后期设计迭代过程的产生,缩短整个系统的设计流程。

3 结语

本文提出将软件无线电开发平台GNU Radio和通用软件无线电外设USRP 组成的软件无线电系统用于无线通信系统的建模仿真。首先介绍并分析了GNURadio的软件特性和USRP的硬件架构;随后以MPSK系统在仿真信道和实际信道下的通信链路建模仿真对比实验为例,验证了该方法将实际的无线信道纳入链路层仿真中的可行性;最后在前述链路级模型的基础上,设计并实现了一套基于实际无线信道收发的无线视频流传输原型系统。分析和实验结果表明,本文所提出的具有软硬件结合特性新方法具有快速系统原型实现的能力,而且通过引入实际信道进行仿真,能够避免复杂的信道建模过程,直接建立更精确的通信系统模型,提高对系统分析的速度和准确性,并可以基于仿真分析结果进行系统各部分的联合设计和优化。

该方法适用于对通信协议标准及整体系统有定制化需求、针对的传输环境较复杂的无线通信系统的研究开发,有助于减少系统开发后期的迭代过程,缩短系统的研发周期。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线通信
    +关注

    关注

    58

    文章

    4567

    浏览量

    143521
  • 仿真
    +关注

    关注

    50

    文章

    4080

    浏览量

    133584
  • 通信系统
    +关注

    关注

    6

    文章

    1189

    浏览量

    53335
收藏 人收藏

    评论

    相关推荐

    软件无线电安全之GNU Radio基础知识

    GNU Radio是一款开源的软件工具集,专注于软件定义无线电(SDR)系统的设计和
    的头像 发表于 02-25 10:20 4633次阅读
    <b class='flag-5'>软件</b><b class='flag-5'>无线</b>电安全之<b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>基础知识

    USRP系列软件无线电平台

    软件定义无线电(SDR)的硬件算法的开发,研究和原型机设计等方面都是业界首选。 USRP全系列专为从DC至6GHz的射频应用所设计,支持GNU Ra
    发表于 07-17 14:54

    如何利用GNU RadioUSRP设计路测仪?

    进行全面精确测量,其缺点是价格一般比较高。第二类是参考终端和路测软件通过参考终端配合路测软件取得空中接口信令消息后进行后期处理。此类仪表的缺点主要有两点:首先,面对目前移动通信
    发表于 08-01 06:43

    什么是GNU Radio开源软件无线电平台?

    GNU Radio开源软件无线电平台究竟是什么?
    发表于 08-02 08:18

    什么是GNU Radio

    什么是GNU Radio? 开放的软件无线电平台有什么优势?
    发表于 08-02 08:13

    USRP有何作用

    的数字基带和中频部分。GNU Radio 是一个开源的软件定义无线电(SDR)平台。USRP通常与GNU
    发表于 09-06 07:46

    NI USRP RIO软件无线

    NI USRP RIO软件无线电 NI USRP RIO是SDR游戏规则的改变者,它为无线通信设计人员提供了经济实惠的SDR和前所不高的性能
    发表于 11-15 20:08

    GNU radioUSRP入门指导

    GNU radioUSRP入门指导
    发表于 12-10 13:33 42次下载

    GNU_radio_和USRP_学习手册

    GNU_radio_和USRP_学习手册
    发表于 03-27 09:15 11次下载

    Linux下GNU Radio平台的搭建以及该如何使用NI USRP设备

    GNU Radio是一个开源的软件无线电开发平台,可以通过图形化界面或C++、Python等文本语言快速开发
    发表于 11-15 19:29 9957次阅读
    Linux下<b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>平台的搭建以及该如何使用NI <b class='flag-5'>USRP</b>设备

    了解GNU Radio

    GNU Radio(开源软件无线电)是一个对学习,构建和部署软件定义无线
    发表于 11-21 20:34 4543次阅读

    基于USRP2的MAC协议半实物仿真系统设计

    决这些问题,基于GNU Radio平台以及二代通用软件无线电外设(USRP2)设计和实现了分布式
    发表于 01-04 16:04 1次下载
    基于<b class='flag-5'>USRP</b>2的MAC协议半实物<b class='flag-5'>仿真</b><b class='flag-5'>系统</b>设计

    如何在Linux下搭建GNU Radio平台及它的应用分析

    GNU Radio是一个开源的软件无线电开发平台,可以通过图形化界面或C++、Python等文本语言快速开发
    的头像 发表于 01-02 07:56 4398次阅读
    如何在Linux下搭建<b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>平台及它的应用分析

    GNU Radio开源软件无线电平台的简介

    GNU Radio(开源软件无线电)是一个对学习,构建和部署软件定义无线
    发表于 10-26 10:41 1次下载
    <b class='flag-5'>GNU</b> <b class='flag-5'>Radio</b>开源<b class='flag-5'>软件</b><b class='flag-5'>无线</b>电平台的简介

    GNU Radio:开放的软件无线电平台

    GNU Radio:开放的软件无线电平台介绍。
    发表于 05-27 11:07 10次下载