主要内容

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

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

模型描述

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

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

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

生成LTE波形

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

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

%配置TS 36.101 25 REs (5mhz), 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 = 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在dB中nodbm = -98;% Noc(以dBm/15kHz计)nodbw = nodbm - 30;% Noc在dBW/15kHz57信噪比= 10^(SNRdB/10);%线性Es/NocEs = SNR*(10^(nodbw /10));每个RE %线性EsFFTLength = 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波形= timeseries([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波形= timeseries(RepeatFrame,time);%执行Simulin金宝appk RF Blockset测试台disp ([“模拟LTE帧”num2str (n),“……”]);sim(模型、时间(结束));xInitial = xFinal;%保存模型状态计算并显示EVM测量值evmmeans = hPDSCHEVM(rmc,cec,squeeze(rx),EVMalg);evmpeak(n-1) = evmmeasure . peak;evmrms(n-1) = evmmeasure . rms;结束
模拟LTE帧2…低维生素,子帧0:2.911%高维生素,子帧0:2.923%低维生素,子帧1:2.685%高维生素,子帧1:2.699%低维生素,子帧2:2.926%高维生素,子帧2:2.934%低维生素,子帧3:3.435%高维生素,子帧3:3.426%低维生素,子帧4:2.981%高维生素,子帧4:2.995%低维生素,子帧6:3.125%高维生素,子帧6:3.121%低维生素,子帧7:3.145%高维生素,子帧7:3.147%低维生素,子帧8:3.224%高边缘EVM,子帧8:3.224%低边缘EVM,子帧9:3.231%高边缘EVM,子帧9:3.229%平均低边缘EVM,第0帧:3.083%平均高边缘EVM,第0帧:3.087%平均EVM,帧0:3.087%平均EVM,帧0:3.087%平均EVM,帧0:3.087%平均整体EVM: 3.087%模拟LTE帧3…低维生素,子帧0:2.899%高维生素,子帧0:2.906%低维生素,子帧1:2.698%高维生素,子帧1:2.706%低维生素,子帧2:3.005%高维生素,子帧2:3.009%低维生素,子帧3:3.462%高维生素,子帧3:3.433%低维生素,子帧4:2.913%高维生素,子帧4:2.920%低维生素,子帧6:3.109%高维生素,子帧6:3.108%低维生素,子帧7:3.171%高维生素,子帧7:3.169%低维生素,子帧8:3.142%高边缘EVM,子帧8:3.135%低边缘EVM,子帧9:3.135%高边缘EVM,子帧9:3.130%平均低边缘EVM,第0帧:3.068%平均高边缘EVM,第0帧:3.066%平均EVM帧0:3.068%平均整体EVM: 3.068%

根据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”]);

附录

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

选定的参考书目

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

  2. 3gpp = 36.104 " e - ultra;基站(BS)无线电发射和接收第三代合作伙伴计划;技术规范组无线接入网。