主要内容

正交相移编码发射机与USRP™硬件

这个例子展示了如何使用通用软件无线电外围™(USRP)设备使用SDRu(软件定义无线电USRP)系统对象来实现QPSK发射机。USRP设备在这个系统将继续传输索引“Hello world”的消息在其指定的中心频率和比特率的5 Mbps non-codegen路径,10 Mbps codegen路径和2 Mbps HDL兼容。你可以使用的解调传播消息QPSK接收机与USRP™硬件与一个额外的例子USRP设备。

请参考的设置和配置部分硬件设置引导USRP广播支持包金宝app有关配置主机与SDRu发射机系统对象。

实现

这个例子描述了MATLAB®的正交相移编码发射机与USRP硬件实现。还有另一个实现这个例子中,使用仿真软件®。金宝app

QPSKTransmitterWithUSRPHardwareExample.m

金宝app仿真软件使用模块实现:sdruqpsktx.slx

您还可以探索一个模拟只有正交相移编码发射机和接收机的例子没有特别提款权的硬件模型一般使用一个AWGN信道和无线通信系统模拟通道障碍正交相移编码发射机和接收机

介绍

这个例子有以下动机:

  • MATLAB来实现一个真正的QPSK-based transmission-reception环境使用SDRu系统对象。

  • 为了说明关键通信工具箱™系统对象的使用正交相移编码系统设计。

在这个例子中,发射机使用ASCII字符生成一个消息,将字符转换为位,突出一个巴克码接收帧同步。这些数据然后使用QPSK调制和过滤平方根余弦滤波器。可以传输空气过滤QPSK符号使用SDRu发射机系统对象和USRP硬件。

发现收音机

发现电台(s)连接到你的电脑。这个示例使用第一个USRP电台发现使用findsdru函数。检查收音机是否可用和记录收音机类型。如果没有发现可用的无线电系统的示例使用一个默认的配置。

connectedRadios = findsdru;如果strncmp (connectedRadios .Status (1),“成功”7)平台= connectedRadios .Platform (1);开关connectedRadios (1) .Platform情况下{“B200”,“B210”}地址= connectedRadios (1) .SerialNum;情况下{“N200 / N210 / USRP2”,“×”,“X310”,“N300”,“N310”,“N320 / N321”}地址= connectedRadios (1) .IPAddress;结束其他的地址=“192.168.10.2”;平台=“N200 / N210 / USRP2”;结束
检查无线连接…

初始化

sdruqpsktransmitter_init.m脚本初始化仿真参数并生成prmQPSKTransmitter结构。

compileIt = false;%如果代码编译为加速执行useCodegen = false;%真实运行最新生成的墨西哥人文件isHDLCompatible = false;%如果HDL兼容的代码不会对性能优化%发射机参数结构prmQPSKTransmitter = sdruqpsktransmitter_init prmQPSKTransmitter(平台、useCodegen isHDLCompatible)。平台=平台;prmQPSKTransmitter。地址=地址;
prmQPSKTransmitter =结构体字段:Rsym: 2500000 ModulationOrder: 4插值:2大量毁灭:1 Tsym: 4.0000 e-07 Fs: 5000000 BarkerCode: [1 1 1 1 1 1 1 1 1 1 1 1 1] BarkerLength: 13 HeaderLength: 26日消息:“Hello world”MessageLength: 16 NumberOfMessage: 100 PayloadLength: 11200 FrameSize: 5613 FrameTime: 0.0022 RolloffFactor: 0.5000 ScramblerBase: 2 ScramblerPolynomial: [1 1 1 0 1] ScramblerInitialConditions: [0 0 0 0] RaisedCosineFilterSpan: 10 MessageBits:[11200×1双]MasterClockRate: 20000000 USRPCenterFrequency: 915000000 USRPGain: 25 USRPFrontEndSampleRate: 5000000 USRPInterpolationFactor: 4 USRPFrameLength: 11226 USRPFrameTime: 0.0022 StopTime: 1000

实现一个成功的传播,确保指定的中心频率的SDRu发射机USRP子板是在可接受的范围之内。

同时,通过使用compileIt useCodegen标志,您可以与探索不同的执行选择的代码。设置MATLAB变量compileIt真正以生成C代码;这可以通过使用来实现的codegen命令MATLAB提供的编码器™产品。的codegenMATLAB®命令编译函数基于c的静态或动态库,可执行文件,或墨西哥人文件,为加速生产代码执行。生成的可执行文件运行几次的速度比原来的MATLAB代码。设置useCodegen真实运行生成的可执行文件codegen而MATLAB代码。

代码架构

函数runSDRuQPSKTransmitter实现QPSK发射机使用两个系统对象,QPSKTransmitter comm.SDRuTransmitter。

正交相移编码发射机

发射机包括一些代,QPSK调制器提出了余弦滤波器传输对象。的一些代对象生成数据帧。巴克码发送同步和QPSK调制的正交组件符号。这是通过重复巴克码位与QPSK调制器调制前的两倍。

剩下的部分载荷。有效载荷包含100个“Hello world # # #”消息,“# # #”是越来越序列的“000”,“001”,…“099”以二进制形式。消息的数量是通过初始化文件可调,即发射机初始化文件。请接收初始化文件做相应的改变,接收初始化文件。然后努力保证负载均衡分布的0和1的接收机的定时恢复操作对象。炒调制的比特QPSK调制器(灰色映射)。的提出了余弦滤波器传输upsamples调制符号由两个,转出0.5倍。的输出率提出了余弦滤波器将每秒400 k样本的符号率每秒200 k的象征。如果启用了MATLAB编码器™,输出速率是每秒500 k的符号象征。请与发射机的符号率模型和相应的接收机模型。

SDRu发射机

主机与USRP通信电台使用SDRu发射机系统对象。CenterFrequency,增益,和InterpolationFactor prmQPSKTransmitter参数设定的参数变量。

执行

在运行脚本之前,首先把USRP广播并将其连接到计算机。正如前面提到的,您可以检查正确的数据传输通过运行与USRP QPSK接收机硬件跑步时发射机脚本示例。

如果compileIt codegen (“runSDRuQPSKTransmitter”,“参数”{coder.Constant (prmQPSKTransmitter)});% #好< UNRCH >结束如果useCodegen清晰runSDRuQPSKTransmitter_mex% #好< UNRCH >runSDRuQPSKTransmitter_mex (prmQPSKTransmitter);其他的runSDRuQPSKTransmitter (prmQPSKTransmitter);结束

不同的增益行为USRP女儿董事会存在着很大的差别。因此,发射机和接收机的增益设置中定义这个例子可能不是非常适合你的女儿。如果消息不正确解码接收器对象,你可以改变获得的源信号SDRu发射机SDRu接收机通过改变SimParams系统对象。USRPGain价值发射机初始化文件而在接收初始化文件

也,一个大的相对频率偏移之间的传输和接收USRP收音机可以防止接收机功能正确解码的信息。如果发生这种情况,您可以确定基调抵消发送在一个已知频率从发射机到接收机,然后测量偏移量之间的传播和接收频率,然后应用抵消SDRu接收器系统对象的中心频率。

附录

这个示例使用以下脚本和辅助功能: