射频接收器建模LTE接收

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

该示例需要LTE工具箱。

模型描述

下图显示了本例的系统模型。一个LTE波形被生成,过滤,通过传播通道传输,并输入到射频块集接收器模型。该模型可以使用商用部件进行组装。EVM测量是在射频接收机输出端进行的。

此示例使用MATLAB®和Simulink®实现,它们在运行时进行交互。万博1manbetx功能分区为:

使用Simulink模型作为被测设备(DUT),用MATLAB脚本实现了测量试验台。万博1manbetxLTE帧在testbench和DUT之间流。

生成LTE波形

在本节中,我们使用LTE工具箱生成LTE波形。我们使用TS 36.101中定义的参考测量通道(RMC) R.6 [1]。这个RMC指定了25个资源元素(REs)带宽,相当于5兆赫兹。使用64 QAM调制。所有资源都已分配。此外,在未使用的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(rc . pdsh . trblksize),1);%生成1帧,进行多次,以模拟总共N个帧的[tx, ~, info] = lteRMCDLTool(rmc, data);% 1帧%计算的采样周期和帧的长度。SamplePeriod = 1 / info.SamplingRate;FrameLength =长度(tx);

初始化仿真组件

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

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

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

  • 预分配结果向量

带限插值滤波器FiltOrd = 32;h = firpm(FiltOrd,[0 2.25e6*2*SamplePeriod 2.70 e6*2*SamplePeriod 1],[1 1 0 0]);FilterDelaySamples = FiltOrd / 2;%滤波器组延迟模拟帧的%数N> = 1N = 3;%为N-1帧的结果预先分配向量为了避免瞬态效应,在第一帧中没有测量EVMevmpeak = 0 (n - 1, 1);%预先分配结果evmrms = 0 (n - 1, 1);%预先分配结果

加载射频块集测试台

本节加载Simulink模型,如下所示。万博1manbetx模型具有以下功能:

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

  • Bandlimiting过滤

  • 将结果保存到工作区

模型包括以下组件:

  • 渠道模式:包括自由空间路径损耗

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

  • ADC和DC偏移取消

指定并打开Simulink模型万博1manbetx模型=“simrfV2_lte_receiver”;open_system(模型);

射频接收机模型

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

该模型最初是使用RF Budget Analyzer应用程序生成的,后来进行了修改,增加了额外的损耗。射频接收机的初始射频预算分析

模拟框架

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

  • 模拟第一帧

  • 在一个循环中模拟其余的帧

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

模拟第一LTE帧

如前所述,对于第一个模拟帧,我们需要增加输入到Simulink模型的信号的长度,以补偿滤波器带来的延迟。万博1manbetx接下来,我们在不加载任何初始状态的情况下启动Simulink模型的仿真。万博1manbetx模型设置为模拟加速器模式以减少运行时间。使用Simulink模型处理第一帧后,其状态(万博1manbetxxFinal)被存储并分配给xInitial下一次运行模型时。

Simulink模型的输出存储在变量万博1manbetx中处方,在工作空间中可用。在执行同步之后,将消除此信号引入的任何延迟。EVM是根据产生的波形进行测量的。

为射频接收器生成测试数据时间= (0:FrameLength + FilterDelaySamples) * SamplePeriod;在帧的末尾追加足够的样本来补偿延迟过滤器的百分比txWaveform = timeseries ([tx;tx (1: FilterDelaySamples + 1),时间);%模拟RF RX的RF块集模型set_param(模型,“LoadInitialState”,“关闭”);sim(模型、时间(结束));%保存在xInitial下一帧处理的模型的最终SATExInitial = xFinal;同步到接收的波形抵消= lteDLFrameOffset (rmc中,挤压(rx),“TestEVM”);在本例中,%偏移量= FilterDelaySamples帧不需要同步

模拟连续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)*FrameLength+(0:FrameLength)+FilterDelaySamples) *...SamplePeriod;txWaveform = timeseries (RepeatFrame、时间);执行Simulink万博1manbetx射频块集测试台sim(模型、时间(结束));xInitial = xFinal;%保存模型状态计算和显示EVM测量值evmmeas = simrfV2_lte_receiver_evm_cal (rmc cec,挤压(rx) EVMalg);evmpeak (n - 1) = evmmeas.Peak;evmrms (n - 1) = evmmeas.RMS;结束
低维生素,子帧0:3.165%高维生素,子帧0:3.173%低维生素,子帧1:3.024%高维生素,子帧1:3.036%低维生素,子帧2:3.004%高维生素,子帧2:2.992%低维生素,子帧3:2.964%高维生素,子帧3:2.927%低维生素,子帧4:3.003%高维生素,子帧4:3.012%低维生素,子帧6:3.001%高维生素,子帧6:2.983%低维生素,子帧7:3.005%高维生素,子帧7:3.002%低维生素,子帧8:3.019%高维生素,子帧8:3.002%低维生素,子帧9:3.050%高维生素,子帧9:3.041%平均低维生素,帧0:3.024%平均高维生素,0:帧平均3.017%维生素与帧0:3.024%平均总体维生素:3.024%低维生素,子帧0:3.165%高维生素,子帧0:3.173%低维生素,子帧1:3.024%高维生素,子帧1:3.036%低维生素,子帧2:3.004%高维生素,子帧2:2.992%低维生素,子帧3:2.964%高维生素,子帧3:2.927%低维生素,子帧4:3.003%高维生素,子帧4:3.012%低维生素,子帧6:3.001%高维生素,子帧6:2.983%低维生素,子帧7:3.005%高维生素,子帧7:3.003%低维生素,子帧8:3.019%高维生素,子帧8:3.002%低维生素,子帧9:3.050%高维生素,子帧9:3.041%平均低维生素,帧0:3.024%平均高维生素,0:帧平均3.017%维生素与帧0:3.024%平均整体EVM: 3.024%

挣值管理可视化测量都

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

HF(1)=图。积((2:N),100 * evmpeak,“啊——”)标题(“维生素与峰值%”);包含(的帧数的);高频(2)=图;情节(100 * evmrms (2: N),“啊——”);标题('RMS EVM%');包含(的帧数的);

清理

关闭Simulink万博1manbetx模型并删除生成的文件。

bdclose(模型);关闭(hf)清晰“高频”

附录

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

选定的参考书目

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