USRP-OFDM通信系统实验报告.docx

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 利用GNU-Radio和USRP搭建OFDM通信系统 图1,基于GNU-Radio和USRP的OFDM通信系统示意图 1 实验设备 设备清单 设备型号 数量 1 Ettus USRP N210 2 2 SBX-40子板 2 3 VERT2450 2 4 计算机 2 开发环境 操作系统:Ubuntu 14.04 64bit 软件平台:GNU-Radio v3.7.8 UHD release_003_009_001 2 实验目的 理解OFDM信号的调制和解调原理; 熟悉使用GNU-Radio软件并对信号进行处理; 学会使用软件GNU-Radio和硬件USRP来完成点对点设备的通信。 3 实验内容 本实验是在Linux桌面应用系统Ubuntu上进行的,使用到的包括一款免费的无线电和信号处理开发软件—GNU-Radio,和通用软件无线电外设硬件—USRP N210。实验的任务是在GUN-Radio和USRP组成的软硬件平台,搭建了基于OFDM调制的无线通信环境,以便更好的了解OFDM通信原理和信号在无线信道中传播的特点。实验主要包括三部分:发送端、信道和接收端。其中发送端主要包括信源、符号映射、子载波分配、IFFT并加CP、USRP TX;无线信道所处的是室内环境,也被称为准静态信道环境(这也为接收端的均衡提供了思想);接收端主要包括USRP RX、同步、去CP FFT、信道估计和均衡、解符号映射、信宿。 4 实验步骤 4.1 发送端 在OFDM通信系统中,发送端需要完成以下几个功能:信源编码、数据打包、符号映射、子载波分配、IFFT变换、加CP、USRP发送射频信号等。除USRP模块外其它几个模块中的信号处理都是在GNR-Radio中完成的,也即在主机中完成。USRP模块拥有单独的DSP和FPGA模块,因此可以独立对输入数据进行处理。在USRP模块里面需要完成很多的功能,比如抽取、数字上变频、A/D转换、混频等功能都是在其中完成的。发送端的主要目的是完成信号的调制、上变频、功放,最后通过专用天线将其发送到无线信道中去。考虑到若上变频后的信号幅度过大,在经过功放后可能导致信号失真,因此需要在USRP模块前增加一个限幅器模块。 图2, OFDM通信系统的发送端实验流程图 4.1.1 数据帧结构 实验开始时一帧数据的长度规定为96个字节,其中每个字节包含8个比特。信源不断地产生0和1的比特序列,经过数据打包模块(B模块)后变成上述固定长度的帧数据。数据流经过CRC校验后,会在一帧数据的末尾增加4个字节,这时一帧数据便变成了100字节。这些有用的信息称为payload,其采用的是QPSK调制方式,注意经过QPSK映射后一帧数据的长度变成了100*8/2=400个QPSK符号。接着,针对每一帧数据需要生成一个帧头,用来记录当前帧的一些信息,比如帧长、这是第几帧等信息。实验中帧头信息长度为6个字节共48个比特,帧头中的信息称为Header,采用BPSK方式调制,故其长度不变。Payload 和 Header需要复合在一起才能进行传输,一般将Header置于Payload之前形成新的帧结构,这时一帧数据的长度又发生了变化,变成了400+48=448个符号。在实验中一个OFDM符号的长度设定为64(即总载波个数为64),除去虚拟载波、直流子载波和射频子载波还有48个有效数据子载波。因此,一个OFDM符号可以负载48个Payload的符号,也就是这是一帧数据需要10(448/48=9.333)个OFDM符号。另外,根据文献【1】为了接收端能正常解调信号,需要在一帧数据前加上两个OFDM符号的同步字。所以,一帧数据中包含12个OFDM符号。 图3 数据帧结构示意图 4.1.2发送端各模块功能的介绍 A. Vector Source: 实现的功能是循环产生同一组向量,并将该向量转化成无符号整形变量(即uchar型变量),所以其输出是一连串的0和1的数据流。 输入变量: Vector,range(packet_len)。其中packet_len是个变量指一帧数据的长度,单位字节,试验中该变量的值设为96。所以,根据python语法规则range(Packet_len)就是产生一组0到95的向量。 Vec length, 1。产生一个向量。 可选变量: 是否循环:Yes。 输出:一串0和1的数据流,数据类型byte。 图3,向量信源模块 B. Stream to Tagged Stream: 该模块实现的功能是将输入数据流进行打包,形成一定长度的帧数据流,并给数据贴上标签。因此,试验中设定一帧数据长度为96个字节,则该模块按该长度输出打包好的帧数据流,共96个字节96*8个比特。 输入变量: Vector length :1,输入向量的个数,默认为1

文档评论(0)

ze122230743 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档