主要内容

QPSK接收器与USRP®硬件

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

请参阅的设置和配置部分USRP®无线电文档有关配置主机以使用SDRu Receiver System对象的详细信息。

实现

这个例子描述了一个带有USRP®硬件的QPSK接收机的MATLAB实现。这个例子还有一个使用Simulink®的实现。万博1manbetx

使用系统对象的MATLAB脚本:SDRUQPSKRECEIVER.M.

万博1manbetxSimulink实现使用块:sdruqpskrx.mdl

您还可以探索一个没有SDR硬件的仅仿真QPSK发射机和接收机示例,该示例使用AWGN信道建模通用无线通信系统,并模拟在QPSK发射器和接收器

介绍

这个例子有以下动机:

  • 利用SDRu系统对象在MATLAB中实现一个真实的基于qpsk的收发环境。

  • 为了说明使用QPSK系统设计的关键通信工具箱™系统对象,包括粗略和精细载波频率补偿,具有位填充和剥离,帧同步,载波相位模糊度分辨率和消息解码的定时恢复。

在该示例中,Sdreceiver系统对象通过空气传输接收数据破坏,并输出由QPSK接收器系统对象处理的复数基带信号。该示例提供了一种可以应对无线频道损伤的实用数字接收器的参考设计。接收器包括基于相关的粗略频率补偿,基于PLL的微频补偿,定时恢复,具有固定速率重采样和比特填充/跳跃,帧同步和相位模糊分辨率。

探索无线电

查找连接到计算机的收音机。此示例使用使用findsdru功能。检查收音机是否可用并记录收音机类型。如果未找到可用的收音机,示例将使用系统的默认配置。

connectedRadios = findsdru;如果Strncmp(Connectedradios(1).status,“成功”, 7) platform = connectedrdios (1).Platform;转换connectedRadios(1)。平台案件“B200”“B210”} address = connectedrdios (1).SerialNum;案件'n200 / n210 / usrp2''x300'“X310”“N300”“N310”“N320 / N321”} address = connectedrdios (1).IPAddress;结尾别的地址=“192.168.10.2”;平台='n200 / n210 / usrp2'结尾
正在检查无线电连接。。。

初始化

SDRUQPSKRECEIVER_INIT.M脚本初始化模拟参数并生成结构prmqpskreceiver

printReceivedData = true;%如果要打印接收的数据,则为truecompileIt = false;如果要编制代码以进行加速执行,则%trueuseCodegen=false;%true以运行最新生成的代码(mex文件)而不是matlab代码%接收机参数结构prmQPSKReceiver = sdruqpskreceiver_init(platform, useCodegen)平台=平台;prmQPSKReceiver。地址=地址;
prmQPSKReceiver=带字段的结构:Rsym:200000调制顺序:4插值:2抽取:1 Tsym:5.0000e-06 Fs:400000巴克码:[1-1-1-1-1]BarkerLength:13 HeaderLength:26消息:“Hello world”消息长度:16 NumberOfMessage:100 PayloadLength:11200帧大小:5613帧时间:0.0281滚动因子:0.5000扰码基:2扰码多项式:[1 1 1 0 1]扰码初始条件:[0 0 0 0 0 0 0 0]已升起的余弦筛选器范围:10。。。

为了成功发射,确保SDRu接收器的指定中心频率在USRP®子板的可接受范围内。

此外,通过使用compileIt和useCodegen标志,您可以与代码交互,以探索不同的执行选项。将MATLAB变量compileIt设置为true,生成C代码;可以通过使用codegenMatlab Coder™产品提供的命令。的codegen命令编译MATLAB®函数到基于C的静态或动态库,可执行文件或MEX文件,生成加速执行的代码。生成的可执行文件速度比原始MATLAB代码快几倍。将USECodegen设置为true以运行由此生成的可执行文件codegen而不是MATLAB代码。

代码体系结构

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

SDRu接收机

此示例使用SDRU Receiver System对象与USRP®板通信。参数结构prmqpskreceiver设置中心频率、增益和插值因子等。

QPSK接收机

该组件重新生成原始传输的消息。它被分为五个子组件,使用System对象建模。每个子组件由使用System对象的其他子组件建模。

1) 自动增益控制:将其输出功率设置为确保相位和定时误差检测器的等效增益随时间保持恒定的水平。AGC置于上升余弦接收滤波器这样信号幅度可以用两个过采样系数测量。该过程提高了估计的准确性。

2)粗略频率补偿:使用基于相关的算法来大致估计频率偏移,然后补偿它。平均估计的粗频偏移,使得允许微量补偿锁定/收敛。因此,使用a估计粗略频率偏移通信频率补偿器系统对象和平均公式;补偿是使用comm.phasefrequencyoffset.系统对象。

3)定时恢复:使用闭环标量处理执行定时恢复,以克服通道引入的延迟的影响,使用acomm.symbolsynchronizer系统对象。该对象实现PLL以校正接收信号中的符号定时误差。本例中,为该对象选择旋转不变Gardner定时误差检测器;因此,定时恢复可以先于精细频率补偿。该对象的输入是固定长度的采样帧。该对象的输出是一个符号帧,其长度可能因位填充和剥离而变化,具体取决于实际信道延迟。

4)精细频率补偿:对频率偏差进行闭环标量处理并精确补偿comm.carriersynchronizer系统对象。该对象实现了一个锁相环(PLL)来跟踪输入信号中的剩余频率偏移和相位偏移。

5)前导检测:使用a检测输入中已知Barker代码的位置通信前置码检测器系统对象。该对象实现基于互相关的算法,以检测输入中的已知符号序列。

6)帧同步:执行帧同步,并将变长符号输入转换为定长输出,使用aFrameSynchronizer系统对象。该对象具有辅助输出,该辅助输出是一个布尔标量,指示第一帧输出有效。

7)数据解码器:执行相位模糊分辨和解调。同时,数据解码器将重新生成的消息与发送的消息进行比较,并计算误码率。

有关系统组件的更多信息,请参阅QPSK接收器使用Simulink使用USRP®硬件示例万博1manbetx

执行和结果

在运行脚本之前,首先打开USRP®并将其连接到计算机。为确保数据接收,首先启动QPSK发射器与USRP®硬件的例子。

如果编译代码(“runSDRuQPSKReceiver”“参数”, {coder.Constant (prmQPSKReceiver) coder.Constant (printReceivedData)});结尾如果UseCodegen Clear.runsdruqpskreceiver_mex.%#OK BER=运行SDRUQPSKReceiver_mex(prmQPSKReceiver,printReceivedData);别的ber = runsdruqpskreceiver(prmqpskreceiver,printreceiveddata);结尾流('错误率是=%f。\ n'BER (1));流('检测到的错误数= %d.\n',BER(2));fprintf('比较样本的总数=%d。\ n',BER(3));

运行模拟时,在模拟运行时,在MATLAB命令窗口中解码并打印出收到的消息。在脚本执行结束时也显示了BER信息。当QPSK接收器中的一些自适应组件仍未收敛时,BER值的计算包括第一个接收帧。在此期间,BER非常高。一旦瞬态时段结束,接收器就能够估计发送的帧并且BER显着改善。在该示例中,为了保证系统在仿真模式下的合理执行时间,模拟持续时间相当短。因此,整体BER结果受模拟开始时高BER值的显着影响。为了提高模拟持续时间并获得较低的BER值,您可以更改SIMPARAMS.STOPTIME变量接收器初始化文件

此外,不同USRP®子板的增益行为差别很大。因此,本例中定义的发射机和接收机的增益设置可能不适合子板。如果信息没有被接收系统正确解码,你可以改变源信号的增益SDRu发射机SDRu接收机通过更改SimParams来修改系统对象。USRPGain值发射机初始化文件而在接收器初始化文件

最后,发送和接收USRP®无线电之间的较大相对频率偏移可能会阻止接收器功能正确解码消息。如果发生这种情况,您可以通过从发射器向接收器发送已知频率的音调,然后测量发送和接收fr之间的偏移来确定偏移然后将该偏移应用于SDRu接收器系统对象的中心频率。

附录

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

工具书类

1.大米,迈克尔。数字通信-离散时间方法第1版,纽约州纽约市:普伦蒂斯大厅,2008年。

版权声明

Universal Software Radio Peripheral®和USRP®是美国国家仪器公司的商标。