基于GNU Radio 和USRP 的无线通信系统建模仿真

发布者:BlissfulWhisper最新更新时间:2024-07-23 来源: eepw关键字:GNU  Radio  USRP  无线通信系统  建模仿真 手机看文章 扫描二维码
随时随地手机看文章

0 引言

无线通信技术正处在飞速发展的阶段,并开始广泛运用于个人、商业、军事等多个领域。随着无线通信系统复杂度的日益上升,使用传统的分析方法来评估和设计无线通信系统已经变得十分困难;采用硬件原型测试的方法由于实现成本高、难度大,往往在系统开发的后期才能得以实现;以软件为基础的建模仿真方法则能够使研究和开发人员在花费较少的人力和财力的情况下,获得接近真实系统的评估能力,因此成为了通信系统开发前期主要的设计和验证手段。目前,无线通信系统的建模仿真主要通过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内建的测试程序为例具体分析,通过解析测试程序中的代码可知,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)、负责模/数与数/模转换的ADC 与DAC 器件和负责射频信号处理的射频子板。在具体的收发过程中,接收端的天线捕捉空中的射频信号,由射频子板进行模拟域的下变频,将信号由射频移至中频,然后通过A/D器件的转换,进入数字域;FPGA 作为数字下变频器,将信号从数字中频进一步移至基带,并同时完成信号的抽取工作,使信号速率降至通用处理器能够处理的范围;最后,通过控制芯片将低速率的基带信号送入PC.发送端则完成一个大致相反的信号处理流程。



在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解调模块进行信号解调,在该模块中已经插入了载波频偏恢复和信号时序恢复的子模块;最后对信号进行相应的解包和解扰操作,并与预设信号对比,获得误码率数据。在解调模块中还调用了信号强度探针,用来获得当前信号的信噪比大小。发送端与接收端之间则通过加性高斯白噪声信道模块连接,以仿真整个链路级的通信过程。



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



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



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

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

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



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

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



2.3 实验结果分析

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

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

3 结语

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


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


关键字:GNU  Radio  USRP  无线通信系统  建模仿真 引用地址:基于GNU Radio 和USRP 的无线通信系统建模仿真

上一篇:基于SFP 封装的数字可调光衰减器的实现
下一篇:基于NCP1937的高能效、低待机能耗的解决方案

推荐阅读最新更新时间:2024-11-12 10:29

GNU ARM汇编(四)中断汇编之非嵌套中断处理
在写这篇blog之前,不得不感慨一句:纸上得来终觉浅,绝知此事要躬行.作为EE出身的,虽然好久好久没用汇编写单片机的中断了,但自我感觉对中断的理解还是比较深入的,本以为在GNU ARM汇编下搞个中断会很容易,谁知道断断续续花了我几周.完全用汇编写中断和用c中的_irq写中断还是有区别的,谁用谁知道.还是那句话:深入细节是必须的,也是值得的.         这一篇blog的理论知识主要来源于:《ARM System Developer's Guide》.         ARM的异常和相应的模式之间的对应关系见下表:   当一个异常导致模式的改变时,内核自动地: 1、把cpsr保存到相应模式下的spsr 2、
[单片机]
ARM学习笔记12——GNU ARM汇编伪操作
1、.section   1.1、语法格式      .section section_name ]]   1.2、作用     定义一个段,每一个段以段名为开始,以下一个段名或者文件结尾为结束。     ELF格式允许的段标志: a:可分配                w:可写段                x:执行段   1.3、举例 .section .mysection   @自定义数据段,段名为“.mysection” 2、预定义段 .text、.data、.bss   2.1、语法格式   .text{subsection} .data{subsection}   
[单片机]
自动驾驶仿真科普文之传感器建模知识
本文是自动驾驶仿真科普系列第二篇,上一篇为《自动驾驶科普文之一:场景来源、场景泛化及提取》 在跟很多仿真公司的专家及其下游用户交流的过程中,我们了解到,当下,自动驾驶的仿真,最难的环节之一是传感器的建模。 按智行众维CTO李月的说法,传感器建模可分为功能信息级建模、现象信息级/统计信息级建模及全物理级建模几个级别。这几个概念的区别如下—— 功能信息级建模简单地描述摄像头输出图像、毫米波雷达在某个范围内探测目标这些具体功能,主要目的在于测试验证感知算法,但对传感器本身的性能并不关注; 现象信息和统计信息级建模是混合的、中间层级的建模,它包括一部分功能信息级建模,也包括一部分物理级建模; 全物理级建模,指对传感器工作的整个
[嵌入式]
7. 从0学ARM-GNU伪指令、代码编译,lds使用
一、MDK和GNU伪指令区别 我们在学习汇编代码的时候经过会看到以下两种风格的代码: gnu代码开头是: .global _start _start: @汇编入口 ldr sp,=0x41000000.end @汇编程序结束 MDK代码开头是: AREA Example,CODE,READONLY ;声明代码段Example ENTRY ;程序入口 Start MOV R0,#0 OVER END 这两种风格的代码是要使用不同的编译器,我们之前的实例代码都是MDK风格的。 那么多对于我们初学者来说要学习哪种风的呢? 答案是肯定的,学习GNU风格的汇编代码,因为做Li
[单片机]
7. 从0学ARM-<font color='red'>GNU</font>伪指令、代码编译,lds使用
用NI USRP和LabVIEW为实验室设计实践课程
  射频和通信课程的传统教学方法通常是理论学习和数学公式的推导。学生着重推导公式和软件仿真。越来越多的讲师已经意识到,如果能够提供一种实验设备,学生就可以应用学到的理论知识基于各种真实信号试验,加深对理论的理解。但是,价格合理、操作简便并且针对教学的实验设备实在少而又少。   斯坦福大学联网系统组(SNSG) Sachin Katti教授使用用LabVIEW和NI USRP,在创建联网通信系统EE 49课程中试验了全新的动手实践教学方法。Katti教授使用该教学方法向大学二年级学生介绍真实的通信信号。   创建完整的通信系统   Katti教授首先在2011春季学期的EE 49课程中试验了动手实践的教学方法。通过LabVI
[测试测量]
用NI <font color='red'>USRP</font>和LabVIEW为实验室设计实践课程
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved