主要内容

QPSK接收机与USRP®硬件

这个例子展示了如何使用通用软件无线电外围®(USRP®)设备使用SDRu(软件定义无线电USRP®)系统对象来实现QPSK接收机。接收者地址无线通信的实际问题,如载波频率和相位偏移量,定时偏移和帧同步。该系统接收发送的信号正交相移编码发射机与USRP®硬件的例子。接收机解调接收到的符号和打印一个简单消息MATLAB®命令行。

请参考的设置和配置部分文档USRP®收音机有关配置主机与SDRu接收器系统对象。

实现

这个例子描述的MATLAB实现QPSK接收机与USRP®硬件。还有另一个实现这个例子中,使用仿真软件®。金宝app

MATLAB脚本使用系统对象:sdruQPSKReceiver.m

金宝app仿真软件使用模块实现:sdruqpskrx.mdl

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

介绍

这个例子有以下动机:

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

  • 说明关键通信工具箱™系统对象的使用正交相移编码系统设计,包括粗和细载波频率补偿,时机复苏与填料和剥离,帧同步、载波相位消除歧义,和消息解码。

在这个例子中,SDRuReceiver系统对象收到损坏的数据传输的空气和输出复杂的基带信号处理的QPSK接收机系统对象。这个示例提供了一个参考设计的一种实用的数字接收机处理无线通道障碍。接收机包括correlation-based粗频率补偿,PLL-based精细频率补偿,时机复苏与固定利率重采样和填料/跳过,帧同步和相位消除歧义。

发现收音机

发现电台(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”;结束
检查无线连接…

初始化

sdruqpskreceiver_init.m脚本初始化仿真参数和生成结构prmQPSKReceiver

printReceivedData = true;%真实如果接收的数据是被打印出来compileIt = false;%如果代码编译为加速执行useCodegen = false;%真实运行最新生成的代码文件(墨西哥人)而不是MATLAB代码%接收机参数结构prmQPSKReceiver = sdruqpskreceiver_init prmQPSKReceiver(平台,useCodegen)。平台=平台;prmQPSKReceiver。地址=地址;
prmQPSKReceiver =结构体字段:Rsym: 200000 ModulationOrder: 4插值:2大量毁灭:1 Tsym: 5.0000 e-06 Fs: 400000 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.0281 RolloffFactor: 0.5000 ScramblerBase: 2 ScramblerPolynomial: [1 1 1 0 1] ScramblerInitialConditions: [0 0 0 0] RaisedCosineFilterSpan: 10…

成功传输,确保指定的中心频率SDRu接收器是在可以接受的范围之内,你的USRP®子板。

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

代码架构

函数runSDRuQPSKReceiver实现QPSK接收机使用两个系统对象,QPSKReceiver comm.SDRuReceiver。

SDRu接收机

这个例子与USRP®董事会使用SDRu接收机系统对象。参数结构prmQPSKReceiver设置CenterFrequency、增益和InterpolationFactor等等。

QPSK接收机

这个组件恢复原来的传播信息。它分为五个子组件,使用系统对象建模。每个子组件由其他子组件使用系统对象建模。

1)自动增益控制:设定其输出功率水平确保阶段和定时误差检测器的等价收益随时间保持不变。前的AGC放置提出了余弦接收滤波器这样可以测量信号幅度过采样因子2。这个过程提高了估计的准确性。

2)粗频率补偿:使用correlation-based算法大致估计频率偏移,然后弥补它。粗频率偏移估计平均,这样好频率补偿可以锁定/收敛。因此,粗频率偏移估计使用comm.CoarseFrequencyCompensator系统对象和一个平均公式;补偿执行使用comm.PhaseFrequencyOffset系统对象。

3)定时恢复:执行时机复苏闭环标量处理来克服信道引入的延迟的影响,使用comm.SymbolSynchronizer系统对象。对象实现了锁相环在收到正确的符号定时误差信号。rotationally-invariant Gardner定时误差检测器为对象在本例中选择;因此,时机复苏可以先于细频率补偿。的输入样本的对象是一个固定长度的帧。对象是一个帧的输出符号的长度可以改变由于填料和剥离,根据实际信道延迟。

4)良好的频率补偿:执行闭环标量处理和补偿频率偏移量准确,使用comm.CarrierSynchronizer系统对象。对象实现了锁相环(PLL)跟踪剩余频率偏移和相位补偿输入信号。

5)序言检测:检测的位置已知的巴克代码输入使用comm.PreambleDetector系统对象。对象实现了一个基于互相关算法来检测一个已知序列的符号输入。

6)帧同步:执行帧同步,同时,将变长符号的输入转换成固定长度的输出,使用FrameSynchronizer系统对象。对象有一个中等的输出是一个布尔标量表示如果第一帧输出是有效的。

7)数据译码器:执行阶段消除歧义和解调。另外,解码器比较再生的数据消息的传播,计算误码率。

对系统组件的更多信息,请参阅QPSK接收机与USRP®硬件使用仿真软件的例子金宝app

执行和结果

在运行脚本之前,首先把USRP®并连接到电脑。为了确保数据接收,第一次启动正交相移编码发射机与USRP®硬件的例子。

如果compileIt codegen (“runSDRuQPSKReceiver”,“参数”,{coder.Constant (prmQPSKReceiver) coder.Constant (printReceivedData)});结束如果useCodegen清晰runSDRuQPSKReceiver_mex% #好< UNRCH >数量= runSDRuQPSKReceiver_mex (prmQPSKReceiver printReceivedData);其他的数量= runSDRuQPSKReceiver (prmQPSKReceiver printReceivedData);结束流(错误率是= % f。\ n 'BER (1));流(检测到错误的数量= % d。\ n 'BER (2));流(的总数相比样品= % d。\ n 'BER (3));

运行模拟时,接收到的消息被解码并打印出的MATLAB仿真运行时命令窗口。系统信息也显示在脚本执行结束。计算误码率值包括第一个收到的帧,当一些自适应组件的QPSK接收机还没有融合。在此期间,相当高的误码率。过渡时期结束后,接收器能够估计帧,传输误码率显著提高。在这个例子中,保证一个合理的执行时间的系统在模拟模式,仿真时间相当短。因此,整体的误码率结果影响的高误码率值仿真的开始。增加仿真时间和获得更低的误码率值,你可以改变SimParams。StopTime变量接收初始化文件

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

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

附录

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

引用

1。大米,迈克尔。数字通信——一个离散时间的方法。第1版。纽约,纽约州:普伦蒂斯霍尔,2008年。

版权声明

通用软件无线电周边®和USRP®是国家仪器公司的商标。