主要内容

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

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

模型描述

下面的图显示了这个示例的主要部分。使用LTE工具箱生成LTE波形。该波形经过滤波并通过一个传播信道传输,然后再将其发送到用射频块集实现的射频接收机模型中。这个模型是用市面上可以买到的零件制成的。然后为射频接收机的输出提供EVM数字。

这个例子是用MATLAB®和Simulink®在运行时交互实现的。金宝app功能划分如下图所示

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

生成LTE波形

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

只生成一个帧。然后,这个帧将被重复多次来执行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。

  • 信噪比和信号能量

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

  • Preallocate结果向量

%限带插补滤波器FiltOrd = 32;h = firpm(FiltOrd,[0 2.25e6*2*SamplePeriod 1],[1 1 0 0]);FilterDelaySamples = FiltOrd / 2;%滤波器组延迟%传播模型SNRdB = 57;dB中的% Es/NocNocdBm = -98;% Noc在dBm/15kHznodbw = nodbm - 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);%预分配结果

加载RF Blockset测试台

本节加载如下所示的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。

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

模拟连续的LTE帧

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

前一帧执行后的加载状态。因为我们在重复每一帧执行后,模型状态都是一样的。set_param(模型,“LoadInitialState”,“上”,“InitialState”,“xInitial”);修改输入矢量,以考虑带宽限制的延迟%过滤器RepeatFrame = (tx (FilterDelaySamples + 1:结束);tx (1: FilterDelaySamples + 1)];EVMalg。EnablePlotting =“关闭”;cec。PilotAverage =“TestEVM”;n = 2: n%表示所有剩余帧%生成数据time = ((n-1)*FrameLength+(0:FrameLength) + FilterDelaySamples)*SamplePeriod;txWaveform = timeseries (RepeatFrame、时间);%执行Simulin金宝appk RF Blockset testbenchdisp ([“模拟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.907%高维生素,子帧0:2.918%低维生素,子帧1:2.651%高维生素,子帧1:2.665%低维生素,子帧2:2.925%高维生素,子帧2:2.933%低维生素,子帧3:3.428%高维生素,子帧3:3.422%低维生素,子帧4:2.941%高维生素,子帧4:2.956%低维生素,子帧6:3.095%高维生素,子帧6:3.091%低维生素,子帧7:3.142%高维生素,子帧7:3.145%低维生素,子帧8:3.195%高边缘EVM,子帧8:3.195%低边缘EVM,子帧9:3.160%高边缘EVM,子帧9:3.157%平均低边缘EVM,帧0:3.059%平均高边缘EVM,帧0:3.062%平均EVM帧0:3.062%平均整体EVM: 3.062%模拟LTE帧3…低维生素,子帧0:2.889%高维生素,子帧0:2.899%低维生素,子帧1:2.625%高维生素,子帧1:2.640%低维生素,子帧2:2.930%高维生素,子帧2:2.938%低维生素,子帧3:3.437%高维生素,子帧3:3.432%低维生素,子帧4:2.905%高维生素,子帧4:2.917%低维生素,子帧6:3.114%高维生素,子帧6:3.109%低维生素,子帧7:3.143%高维生素,子帧7:3.145%低维生素,子帧8:3.177%高边EVM,子帧8:3.176%低边EVM,子帧9:3.144%高边EVM,子帧9:3.141%平均低边EVM,帧0:3.051%平均高边EVM,帧0:3.054%平均EVM,帧0:3.054%平均整体EVM: 3.054%

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

挣值管理可视化测量都

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

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

清理

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

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

附录

本例使用了以下helper函数:

选定的参考书目

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

  2. 3GPP TS 36.104 "E-UTRA;基站(BS)无线电发射和接收"第三代伙伴关系项目;群组无线接入网技术规范。