主要内容

LTE射频接收机的建模与测试

本示例演示如何使用LTE Toolbox™和RF Blockset™建模和测试LTE射频接收器。

模型描述

下图显示了这个示例的主要部分。使用LTE工具箱生成LTE波形。该波形经过滤波并通过传播通道传输,然后将其馈送到射频块集实现的射频接收器模型。这个模型是基于市场上可买到的零件。然后提供射频接收器输出的EVM图。

本示例使用MATLAB®和Simulink®实现,它们在运行时交互。金宝app功能分区如下图所示

仿真试验台由MATLAB脚本实现,Simulink模型为被测设备(DUT)。金宝appLTE帧在试验台和DUT之间流化。

生成LTE波形

在本节中,我们使用LTE工具箱生成LTE波形。我们使用TS 36.101中定义的参考测量通道(RMC) R.6 [1].这个RMC指定25资源元素(REs)带宽,相当于5 MHz。采用64 QAM调制。所有REs都被分配了。此外,在未使用的REs中启用OCNG噪声。

只生成一个帧。然后这个框架将被重复许多次,以执行EVM度量。

%配置TS 36.101 25 REs (5 MHz), 64-QAM,充分分配rmc = lteRMCDL(“R.6”);rmc。OCNGPDSCHEnable =“上”用固定的PDSCH数据创建eNodeB传输rng (2);%固定随机种子(任意)data = randi([0 1], sum(rmc.PDSCH.TrBlkSizes),1);生成1帧,重复以模拟总共N帧[tx, ~, info] = lteRMCDLTool(rmc, data);% 1帧%计算采样周期和帧的长度。SamplePeriod = 1/info.SamplingRate;FrameLength =长度(tx);

初始化仿真组件

本节初始化一些模拟组件:

  • 带限滤波器:设计滤波器系数,用于Simulink模型。金宝app该滤波器的阶数为32,通带频率为2.25 MHz,阻带频率为2.7 MHz。

  • 信噪比和信号能量

  • 帧数:这是生成的帧重复的次数

  • 预分配结果向量

限带插值滤波器FiltOrd = 32;h = firpm(FiltOrd,[0 2.25e6*2*SamplePeriod 2.7e6*2*SamplePeriod 1],[1 1 0 0]);FilterDelaySamples = FiltOrd/2;%滤波器组延迟%传播模型SNRdB = 57;数据库中% Es/NocNocdBm = -98;% Noc在dBm/15kHzNocdBW = NocdBm - 30;% Noc在dBW/15kHz57SNR = 10^(SNRdB/10);线性Es/NocEs = SNR*(10^(NocdBW/10));%线性Es / REFFTLength = info.Nfft;SymbolPower = Es/double(FFTLength);%模拟帧数N>=1N = 3;为N-1帧的结果预分配向量% EVM不在第一帧测量,以避免瞬态效应evmpeak = 0 (n -1,1);%结果预分配evmrms = 0 (n -1,1);%结果预分配

加载RF块集测试台

本节加载如下所示的Simulink模型。金宝app该模型包含以下组件:

  • 从工作空间读取LTE波形和采样周期

  • Bandlimiting过滤

  • 信道模型:包括自由空间路径损耗和AWGN

  • 射频接收机,包括直接转换解调器

  • ADC和DC偏移抵消

  • 将结果保存到工作区

指定并打开Simulink模型金宝app模型=“RFLTEReceiverModel”;disp (“开始仿真软件”金宝app);open_system(模型);
开始仿真软件金宝app

射频接收机模型

射频接收器模型包括如下所示的元素

射频解调器包括以下组件,如下图所示:

  • 本振(LO)和相位噪声模型

  • I和Q分量发生器的相移

  • 搅拌机

模拟框架

这个部分模拟指定的帧数。这个过程分为两个阶段:

  • 模拟第一帧

  • 在循环中模拟其余的帧

将处理分为这两个阶段的原因是为了简化代码。在处理第一帧时,我们需要考虑带限滤波器的延迟。但对于后续的帧就不是这样了,因为过滤器状态是在帧之间维护的。因此,第一帧的长度必须稍微增加,以考虑到滤波器引入的延迟。

模拟第一个LTE帧

正如第一个模拟帧所提到的,我们需要增加给Simulink模型的信号长度,以补偿滤波器引入的延迟。金宝app接下来,我们在不加载任何初始状态的情况下启动Simulink模型的模拟。金宝app在用Simulink模型处理第一帧后,其状态(金宝appxFinal)存储并赋值给xInitial下次运行模型时使用。

Simulink模型的输出存储在变量金宝app中处方,在工作区中可用。在执行同步之后,任何引入该信号的延迟都将被删除。EVM在产生的波形上被测量。

生成射频接收器的测试数据time = (0:FrameLength+FilterDelaySamples)*SamplePeriod;在帧的末尾添加足够的样本以弥补延迟。过滤器的%tx波形=时间序列([tx;tx (1: FilterDelaySamples + 1),时间);模拟RF RX的RF块集模型set_param(模型,“LoadInitialState”“关闭”);disp (“模拟LTE帧1…”);sim(模型、时间(结束));将模型的最终状态保存在xInitial中以备下一个帧处理xInitial = xFinal;%同步接收波形Offset = lteDLFrameOffset(rmc,squeeze(rx),“TestEVM”);在这种情况下,Offset = FilterDelaySamples因此如下%帧不需要同步
模拟LTE帧1…

模拟连续的LTE帧

现在可以模拟其余的帧了。首先,使用存储在中的值设置模型状态xInitial在上一个迭代的输出。

执行前一帧后的加载状态。因为我们在重复%相同帧模型状态在每帧执行后都是相同的。set_param(模型,“LoadInitialState”“上”“InitialState”“xInitial”);%修改输入矢量,以考虑带宽限制的延迟%过滤器RepeatFrame = [tx(FilterDelaySamples+1:end);tx (1: FilterDelaySamples + 1)];EVMalg。EnablePlotting =“关闭”;cec。PilotAverage =“TestEVM”n = 2: n%为所有剩余帧%生成数据time = ((n-1)*FrameLength+(0:FrameLength) + FilterDelaySamples)*SamplePeriod;tx波形=时间序列(RepeatFrame,time);执行Simulink金宝app RF Blockset测试台disp ([“模拟LTE帧”num2str (n),“……”]);sim(模型、时间(结束));xInitial = xFinal;%保存模型状态%计算和显示EVM测量evmmeas = hPDSCHEVM(rmc,cec,squeeze(rx),EVMalg);evmpeak(n-1) = evmmeasure . peak;evmrms(n-1) = evmmeasure . rms;结束
模拟LTE帧2…低维生素,子帧0:2.894%高维生素,子帧0:2.905%低维生素,子帧1:2.672%高维生素,子帧1:2.686%低维生素,子帧2:2.926%高维生素,子帧2:2.933%低维生素,子帧3:3.433%高维生素,子帧3:3.427%低维生素,子帧4:2.984%高维生素,子帧4:2.999%低维生素,子帧6:3.101%高维生素,子帧6:3.096%低维生素,子帧7:3.143%高维生素,子帧7:3.144%低维生素,子帧8:3.237%高边缘EVM,子帧8:3.237%低边缘EVM,子帧9:3.235%高边缘EVM,子帧9:3.232%平均低边缘EVM,帧0:3.079%平均高边缘EVM,帧0:3.083%平均EVM帧0:3.083%平均整体EVM: 3.083%模拟LTE帧3…低维生素,子帧0:2.895%高维生素,子帧0:2.901%低维生素,子帧1:2.704%高维生素,子帧1:2.710%低维生素,子帧2:3.022%高维生素,子帧2:3.023%低维生素,子帧3:3.474%高维生素,子帧3:3.444%低维生素,子帧4:2.908%高维生素,子帧4:2.917%低维生素,子帧6:3.136%高维生素,子帧6:3.133%低维生素,子帧7:3.177%高维生素,子帧7:3.177%低维生素,子帧8:3.130%高边缘EVM,子帧8:3.123%低边缘EVM,子帧9:3.129%高边缘EVM,子帧9:3.122%平均低边缘EVM,帧0:3.073%平均高边缘EVM,帧0:3.070%平均EVM帧0:3.073%平均整体EVM: 3.073%

根据TS 36.104 [2],当星座为64-QAM时,最大EVM为8%。由于整体EVM约为3%,低于8%,因此该测量值符合TS 36.104的要求[2].

可视化测量的EVM

这部分绘制了每个模拟帧的测量峰值和RMS EVM。

图;情节(100 * evmpeak (2: N),“啊——”)标题('EVM峰值%');包含('帧数');图;情节(100 * evmrms (2: N),“啊——”);标题(' evm RMS %');包含('帧数');

清理

关闭Simulink金宝app模型并删除生成的文件。

bdclose(模型);明确([模型,“_acc”]);

附录

这个例子使用了以下helper函数:

选定的参考书目

  1. 3GPP TS 36.101“用户设备(UE)无线电传输和接收”

  2. 3gpp ts 36.104 " e-utra;基站无线电发射和接收第三代伙伴关系项目;技术规范组无线电接入网。