主要内容

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

这个例子演示了如何使用LTE工具箱™和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)带宽,相当于5mhz。采用64qam调制。已分配所有REs。此外,在未使用的REs中启用了OCNG噪声。

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

% Configuration TS 36.101 25 REs (5 MHz), 64-QAM, full allocationrmc = lteRMCDL (“R.6”);rmc。OCNGPDSCHEnable =“上”%使用固定PDSCH数据创建eNodeB传输rng (2);固定随机种子(任意)data = randi([0 1], sum(rmc.PDSCH.TrBlkSizes),1); / /将rmc.PDSCH.TrBlkSizes赋值%生成1帧,重复模拟总共N帧[tx, ~, info] = lteRMCDLTool(rmc, data);% 1帧%计算采样周期和帧的长度。SamplePeriod=1/info.SamplingRate;帧长度=长度(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)NocdBm = -98;% Noc在dBm/15kHzNocdBW = NocdBm - 30;% Noc在dBW/15kHz57信噪比=10^(SNRdB/10);%线性Es / NocEs =信噪比* (10 ^ (NocdBW / 10));每RE线性Es %FFTLength = info.Nfft;SymbolPower = Es /双(FFTLength);%模拟帧数N>=1N = 3;%为N-1帧的结果预分配向量% EVM在第一帧不测量,以避免瞬变效应evmpeak = 0 (n - 1, 1);%预分配结果evmrms = 0 (n - 1, 1);%预分配结果

加载射频模块测试台

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

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

  • Bandlimiting过滤

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

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

  • ADC和DC偏移抵消

  • 将结果保存到工作区

%指定并打开Simulink模型金宝app模型=“RFLTEReceiverModel”;disp(“开始仿真软件”金宝app); 开放式系统(模型);
启动Simulin金宝appk

射频接收机模型

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

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

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

  • I和Q元件发生器的相移

  • 搅拌机

模拟帧

本节模拟指定的帧数。这要分两个阶段完成:

  • 模拟第一帧

  • 在循环中模拟剩下的帧

在这两个阶段中分割处理的原因是为了简化代码。在处理第一帧时,我们需要考虑限带滤波器的延迟。这不是后续帧的情况,因为过滤状态是在帧之间保持的。因此,第一帧的长度必须稍微增加一点,以考虑滤波器引入的延迟。

模拟LTE第一帧

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

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

%生成射频接收机测试数据时间= (0:FrameLength + FilterDelaySamples) * SamplePeriod;在帧的末尾添加足够的采样以补偿延迟过滤器百分比txWaveform = timeseries ([tx;tx (1: FilterDelaySamples + 1),时间);%模拟RF RX的RF块集模型set_param(模型,“LoadInitialState”“关闭”);disp (“模拟LTE第一帧……”);sim(模型、时间(结束));%将模型的最终状态保存在xInitial中以供下一帧处理xInitial = xFinal;与接收的波形同步抵消= lteDLFrameOffset (rmc中,挤压(rx),“TestEVM”);%在这种情况下,Offset = FilterDelaySamples,因此如下所示%帧不需要同步
模拟LTE第一帧…

模拟连续的LTE帧

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

前一帧执行后的加载状态。因为我们在重复%同一帧每次执行帧后,模型状态将相同。set_param(模型,“LoadInitialState”“上”“InitialState”“xInitial”);%修改输入向量以考虑带宽限制的延迟%过滤器RepeatFrame = (tx (FilterDelaySamples + 1:结束);tx (1: FilterDelaySamples + 1)];EVMalg。EnablePlotting =“关闭”;cec。PilotAverage =“TestEVM”n = 2: n%为所有剩余帧%生成数据时间=((n-1)*帧长+(0:FrameLength)+过滤器延迟采样)*采样周期;txWaveform=时间序列(RepeatFrame,time);%执行Simulin金宝appk RF Blockset测试disp ([“模拟LTE帧”num2str (n),' ...']);sim(模型、时间(结束));xInitial = xFinal;保存模型状态计算和显示EVM测量值evmmeas = hPDSCHEVM (rmc cec,挤压(rx) EVMalg);evmpeak (n - 1) = evmmeas.Peak;evmrms (n - 1) = evmmeas.RMS;结束
模拟LTE第2帧…低维生素,子帧0:2.908%高维生素,子帧0:2.919%低维生素,子帧1:2.653%高维生素,子帧1:2.667%低维生素,子帧2:2.927%高维生素,子帧2:2.935%低维生素,子帧3:3.429%高维生素,子帧3:3.423%低维生素,子帧4:2.935%高维生素,子帧4:2.950%低维生素与边缘,子帧6:3.100%高维生素,子帧6:3.096%低维生素,子帧7:3.143%高维生素,子帧7:3.145%低维生素,子帧8:3.188%高维生素,子帧8:3.189%低维生素,子帧9:3.151%高维生素,子帧9:3.148%平均低维生素,帧0:3.057%平均高维生素,帧0:3.061%平均EVM帧0:3.061%平均整体EVM: 3.061%模拟LTE帧3…低维生素,子帧0:2.918%高维生素,子帧0:2.922%低维生素,子帧1:2.732%高维生素,子帧1:2.738%低维生素,子帧2:3.044%高维生素,子帧2:3.044%低维生素,子帧3:3.475%高维生素,子帧3:3.444%低维生素,子帧4:2.914%高维生素,子帧4:2.923%低维生素与边缘,子帧6:3.139%高维生素,子帧6:3.137%低维生素,子帧7:3.186%高维生素,子帧7:3.187%低维生素,子帧8:3.116%高维生素,子帧8:3.110%低维生素,子帧9:3.089%高维生素,子帧9:3.083%平均低维生素,帧0:3.077%平均高维生素,帧0:3.073%平均EVM帧0:3.077%平均整体EVM: 3.077%

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

挣值管理可视化测量都

本节绘制出每个模拟帧的测量峰值和RMS EVM。

图;情节(100 * evmpeak (2: N),“啊——”)标题(“维生素与峰值%”);包含(“帧数”);图;情节(100 * evmrms (2: N),“啊——”); 头衔(“EVM RMS%”);包含(“帧数”);

清理

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

bdclose(模型);clear(模型,“_acc”]);

附录

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

选定的参考书目

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

  2. 3gpp ts 36.104 " e-utra;基站(BS)无线电发射和接收"第三代合作项目;技术规范组无线接入网。