主要内容

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

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

模型描述

下图显示了这个示例的主要部分。使用LTE工具箱生成LTE波形。该波形经过过滤并通过传播通道传输,然后将其馈送到使用RF Blockset实现的射频接收机模型。该模型是基于商业上可用的部件。然后为射频接收机的输出提供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都已分配。此外,OCNG噪声在未使用的REs中启用。

只生成一个帧。然后,该帧将被重复多次以执行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;framength = length(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/Noc in dBNocdBm = -98;% Noc in dBm/15kHzNocdBW = NocdBm - 30;dBW/15kHz57中% Noc信噪比= 10^(SNRdB/10);%线性Es/NocEs = SNR*(10^(NocdBW/10));线性Es / RE的百分比FFTLength = 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: frameength +FilterDelaySamples)*SamplePeriod;在帧尾附加足够的样本以弥补延迟过滤器百分比tx波形=时间序列([tx;tx (1: FilterDelaySamples + 1),时间);模拟RF RX的RF块集模型set_param(模型,“LoadInitialState”“关闭”);disp (“模拟LTE帧1…”);sim(模型、时间(结束));在xInitial中保存模型的最终状态,以便下一帧处理xInitial = xFinal;同步接收到的波形Offset = lteDLFrameOffset(rmc,挤压(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波形= timeseries(RepeatFrame,time);%执行Simulin金宝appk RF Blockset测试台disp ([“模拟LTE帧”num2str (n),“……”]);sim(模型、时间(结束));xInitial = xFinal;保存模型状态计算和显示EVM测量evmmeas = hPDSCHEVM(rmc,cec,挤压(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.09%平均高边缘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;基站(BS)无线电发射和接收第三代伙伴计划;技术规范集团无线接入网。