白皮书

基于MATLAB的5G NR波形生成与空中测试

简介

开发5G新无线电(NR)无线系统需要大量的模拟和测试。能够在构建系统之前模拟系统的行为,可以提供显著的成本效益,并大大减少将新系统发布到生产环境所需的总体时间。尽管模拟有很多好处,但最终该系统还需要在现实环境中使用原型发射器和接收器进行测试。空中测试(OTA)在系统开发的这个阶段扮演着重要的角色。无论你是在模拟或测试你的空中系统,MATLAB®和仿真软件®可以帮助您将无线系统从早期设计过渡到生产。

部分

挑战

在开发5G无线系统时,系统组件的复杂性给设计和测试带来了挑战。工程师需要解决以下问题:

  • 遵守标准—发射机和通道型号的设计应完全符合标准规范。这意味着开发代表5G规范文档中描述的数学模型的算法。
  • 具有所需参数覆盖率的算法测试-然后必须生成一系列符合5G标准的测试信号,以确保覆盖所有可能的操作模式。您还需要添加各种射频损伤,并使用多种接收器模型来恢复信号。所有这些都增加了测试系统端到端链路级性能的复杂性。这里使用比特误码率(BER)、块错误率(BLER)、错误向量量级(EVM)和吞吐量等指标来验证系统性能是否满足设计规范。
  • 测试设备验证—所有算法在硬件上实现后,您需要通过OTA传输和/或接收对被测硬件的性能进行测试。
  • 集成测试与参数优化-最后,你需要确保在各种失真条件下都能达到标准所期望的性能。执行测量以确定在任何给定时间它可以容忍多大的失真。

图1显示了一些关键组件。我们从用户数据(如语音、视频或文本)开始,这些数据从通信堆栈的更高层到达物理层。这些比特信息然后流入发射机子系统,它定义了生成基带IQ信号所需的信道编码和调制。例如,在一个5g兼容的信号中,信道编码可能包括低密度奇偶校验(LDPC)或极性编码,这是一种编码方案,有助于纠正存在噪声和干扰时的错误。一旦对信道进行编码,数据将使用诸如QPSK、16QAM、64QAM或256QAM等调制方案进行调制。然后使用波束形成等MIMO技术。使用OFDM调制,基线信号被生成并映射为多个天线层和单元的输出。产生的信号然后通过空中传输。

5G无线通信系统组成。

图1。5G无线通信系统组成。

发射信号被信道失真后,由接收机进行采集和处理。在这里,我们执行在发射机上执行的“逆运算”,以恢复传输信息位的最佳估计。这些操作包括同步和OFDM解调、信道估计和均衡、解调、解扰和信道解码。

部分

工作流

在本节中,我们将介绍如何利用MATLAB解决5G系统设计和测试中的许多挑战,5 g工具箱™仪器控制工具箱™,无线波形发生器应用程序.我们将回顾整个测试和验证工作流:

  • 使用5G波形发生器App生成基带波形
  • 无线传输信号
  • 通过TCP/IP从信号分析器读取IQ数据
  • 对接收到的5G波形进行测量

具体来说,我们将使用5G波形发生器应用程序生成5G NR测试模型(NR- tm)波形,并将生成的波形下载到Keysight™E4438C矢量信号发生器中,使用仪器控制工具箱进行空中传输。然后,我们将使用Keysight N9030A信号分析仪捕获传输的空中信号,并在MATLAB中分析信号。这个图表显示了一般的工作流程。

图2。使用射频测试设备生成、捕获和分析OTA波形。

图2。使用射频测试设备生成、捕获和分析OTA波形。

部分

使用5G波形发生器App生成基带波形

测试的第一件事是5G波形。5G工具箱提供了功能、应用程序和参考示例,使您能够描述和生成5G NR上行和下行波形。波形生成可以通过编程方式(通过使用5G Toolbox函数编写MATLAB程序)或交互方式(通过使用应用程序)完成。

无线波形发生器应用程序本质上是一个用户界面,使波形生成的任务更容易和更具互动性。使用该应用程序,您可以创建多种信号,包括5G NR、LTE、802.11 (Wi-Fi)和蓝牙,而无需编写任何代码。为了评估射频设计对系统性能的影响,可以在信号中添加相位偏移、频率偏移和IQ失衡等缺陷。一旦您创建了您的信号,您就可以在内置频谱分析仪上可视化信号。5G NR标准定义了一系列预定义的链路和波形配置,用于一致性测试。其中包括用于基站(eNodeB)射频测试的NR测试模型(NR- tm)和用于用户设备(UE)输入测试的下行固定参考通道(FRC)。

无线波形发生器应用程序允许您基于两个选项生成波形:预定义的NR- tm或FRC集,或自定义设计的5G NR波形。让我们从生成预定义的NR测试模型开始。

在MATLAB中应用程序选项卡上,单击5 g波形发生器应用启动该应用波形类型部分中,点击NR测试模型设置所选波形的参数。对于本例,我们选择以下参数:

  • 频率范围为FR1 (410 MHz - 7.125 GHz)
  • 测试模型如NR-FR1-TM3.1(全波段,统一64 QAM)
  • 通道带宽(MHz)10
  • 副载波间距(赫兹)30
  • 双工模式,FDD

在应用程序工具条上,单击生成.该应用程序现在显示5G NR测试信号的频谱。

通过大量的参数和不同类型的5G NR波形,例如上面突出显示的波形,您可以确保您的设计涵盖了各种测试条件。

无线波形生成应用程序定制和生成5G NR-TM波形。

图3。无线波形生成应用程序定制和生成5G NR-TM波形。

5G的频率范围要么是小于7千兆赫的FR1,要么是毫米波的FR2。接下来,根据频率范围选择带宽并设置一般参数。然后,你可以选择信号的不同成分。当你点击生成,该应用程序自动提供信号的两种可视化显示。第一个可视化是信号的标准频域(频谱分析仪)视图。第二个可视化显示了一个时间和频率资源网格。与出口选项卡,您可以将波形导出到工作区文件或MATLAB脚本。您为定义波形所选择的所有选项都反映在MATLAB中的逐行参数化中。生成的MATLAB代码可以在应用程序之外用于生成各种5G波形的程序,用于对您的设计进行大规模测试。

截至MATLAB的2021a版本,您还可以使用无线波形生成器应用程序,通过设置参数通道和信号单独生成自定义下行和上行波形。

要指定波形的参数,您可以使用应用程序中提供的不同选项卡。例如,如果您想生成自定义5G下行波形,您可以在SS Burst(同步信号突发)和PDSCH(物理下行共享通道)选项卡中配置所选参数集,并在pdch(物理下行控制通道)和CSI-RS(通道状态信息参考信号)选项卡中包含控制数据。可以将多个用户分配到不同的BP (bandwidth part),并为每个用户分配不同的参数。图4显示了使用默认参数的5G NR下行自定义波形的可视化结果。

图4。无线波形生成应用程序定制和生成自定义5G下行波形。

图4。无线波形生成应用程序定制和生成自定义5G下行波形。

对于本文的其余部分,我们将使用NR-TM生成的波形。

部分

发射无线信号

要通过空气发送信号,你可以使用发射机在这里,您可以连接到来自Keysight, Rhode & Schwarz和其他供应商的信号发生器。该应用程序支持通过TCP/IP连接的信号生成器,并具有一个IVI或SCPI驱动程序。您可以在app中配置载波频率和输出功率,app会自动找到通过TCP/IP接口连接的信号发生器。

这很容易做到。在发射机选项卡的无线波形发生器应用程序:

  • 司机到安捷伦/Keysight信号发生器SCPI
  • 中心频率(GHz)到3.4
  • 输出功率(dbM)到-15年

应用程序自动从生成的波形中获取基带采样率。要启动传输,我们所需要做的就是单击工具条中的Transmit。此时,我们已经生成并传输了5G NR波形,而无需编写任何代码。

图5。连接到射频信号发生器,并使用无线波形发生器应用程序传输波形。

图5。连接到射频信号发生器,并使用无线波形发生器应用程序传输波形。

部分

从信号分析仪读取IQ数据

现在我们已经通过空气传输了信号,我们需要从信号分析仪接收IQ数据。在我们的例子中,信号分析仪有一个天线来接收信号。我们将使用MATLAB代码进行信号采集。为了将同相和正交(IQ)数据读取到MATLAB中进行分析,我们首先使用仪器控制工具箱配置Keysight N9030A信号分析仪。我们需要根据被测信号定义仪器配置参数。

设置频谱分析仪参数centerFrequency = 3.4 e9;sampleRate = 15.36 e6;measurementTime = 20 e - 3;mechanicalAttenuation = 0;% dBstartFrequency = 3.39 e9;stopFrequency = 3.41 e9;resolutionBandwidth = 220年e3;videoBandwidth = 220000;

在连接到频谱分析仪之前,我们还需要执行这些步骤。这可以通过几行MATLAB代码来完成。

  • 查看Keysight N9030A信号分析仪的资源ID
  • 使用虚拟仪器软件体系结构(VISA)接口连接到仪器
  • 调整输入缓冲区的大小以保存仪器返回的数据
  • 设置超时时间,以允许有足够的时间进行测量和数据传输
foundVISA = visadevlist;resourceID = foundVISA (foundVISA。模型= =“N9030A”、:).ResourceName;resourceID = resourceID(包含(resourceID,“N9030A”));sigAnalyzerObj = visadev (resourceID);sigAnalyzerObj。ByteOrder =“大端法”;sigAnalyzerObj。超时= 20;

接下来,我们使用适当的可编程仪器(SCPI)标准命令将仪器重置为已知状态。查询仪器标识,确保连接正确的仪器。

writeline (sigAnalyzerObj“* RST”);instrumentInfo = writeread (sigAnalyzerObj,“* IDN ?”);流("仪器识别信息:%s", instrumentInfo);

x系列信号和频谱分析仪执行智商测量以及频谱测量。在本例中,我们获取时域IQ数据,使用MATLAB可视化数据,并对获取的数据进行信号分析。要配置仪表设置,如中心频率和触发属性,并定义数据传输的格式,您可以使用本文中详细介绍的SCPI命令例子.一旦仪器安装好,我们就可以获取波形了。

为了获得IQ波形,我们需要先触发仪器进行测量,等待测量操作完成。在处理数据之前,我们将从仪器接收到的交错数据中分离I和Q分量,并在MATLAB中创建一个复矢量,如下面的代码示例所示。

作为分析接收到的波形的第一步,我们可以捕获并显示关于最近获得的数据的信息,以查看我们获得了多少点以及信号的最大值和最小值。

触发仪器并开始测量。writeline (sigAnalyzerObj“*丹”);writeline (sigAnalyzerObj”:启动:波形”);等待测量操作完成measureComplete = writeread (sigAnalyzerObj,“* OPC ?”);阅读智商数据writeline (sigAnalyzerObj”:阅读:WAV0 ?”);data = readbinblock (sigAnalyzerObj“替身”);分离数据,建立复杂的智商向量。同相的=数据(1:2:结束);交=数据(2:2:结束);rxWaveform =同相的+ 1我*交;
writeline (sigAnalyzerObj”:获取:WAV1 ?”);signalSpec = readbinblock (sigAnalyzerObj,“替身”);显示测量信息captureSampleRate = 1 / signalSpec (1);流("采样率(Hz) = %s"num2str (captureSampleRate));

采样率(Hz) = 15360000

流("读取点数= %s"num2str (signalSpec (4)));

读取点数= 307201

流(信号的最大值(dBm) = %snum2str (signalSpec (6)));

信号最大值(dBm) = -39.0019

信号最小值(dBm) = -107.9755

流(信号的最小值(dBm) = %snum2str (signalSpec (7)));

接下来,我们用下面的代码绘制得到的波形的频谱,以确定接收信号的带宽。图6显示了传输OTA的信号带宽看起来非常类似于我们使用无线波形生成器应用程序生成的带宽信号。

确保rx波形是一个列向量如果~iscolumn(rx波形)rx波形= rx波形。';结束绘制采集信号的功率谱密度(PSD)spectrumPlotRx = dsp.SpectrumAnalyzer;spectrumPlotRx。SampleRate = captureSampleRate;spectrumPlotRx。SpectrumType =“能量密度”;spectrumPlotRx。PowerUnits =“dBm”;spectrumPlotRx。窗口=“汉明”;spectrumPlotRx。SpectralAverages = 10;spectrumPlotRx。YLimits = [-140 -90];spectrumPlotRx。YLabel =“PSD”;spectrumPlotRx。ShowLegend = false;spectrumPlotRx。Title =接收信号频谱:10mhz 5G NR-TM波形;spectrumPlotRx (rxWaveform);
图6。OTA传输后接收信号的频谱。

图6。OTA传输后接收信号的频谱。

现在我们准备对接收到的IQ数据进行额外的测量。

部分

对接收的5G波形进行测量

信号通过空气传输后,用接收子系统检测信号,然后解调解码。在接收机解码信号之前,使用信道估计和均衡来对抗由于到达接收机的多条路径导致的信号衰落的影响。解调参考信号(DM-RS)用于信道估计。一旦信号被解调,它将被进一步解码以重建原始文本、视频或语音信号。

首先,使用hNRReferenceWaveformGenerator辅助文件的generate波形函数来提取我们使用无线波形生成器应用程序生成的同一特定NR-TM的波形信息。

%设置接收机的NR-TM参数nrtm =“NR-FR1-TM3.1”%参考通道bw =“10 mhz”%通道带宽scs =“30千赫”%副载波间距dm =“FDD”%双工模式
tmwavegen = hNRReferenceWaveformGenerator (scs nrtm, bw, dm);[~, tmwaveinfo resourcesInfo] = generateWaveform (tmwavegen);

然后,我们使用解调参考符号(DM-RS)寻找增量为1 kHz到100 kHz的粗频率偏移。

frequencyCorrectionRange = -100 e3:1e3:100e3;[rx波形,粗偏移]= DMRSFrequencyCorrection(rx波形,captureSampleRate,…frequencyCorrectionRange,tmwavegen,resourcesInfo);fprintf("粗频偏移= %. "0 f赫兹”,coarseOffset)

现在我们使用增量为5hz到100hz的DM-RS偏移来寻找精细的频率偏移。

frequencyCorrectionRange = 100:5:100;[rx波形,fineOffset] = DMRSFrequencyCorrection(rx波形,captureSampleRate,frequencyCorrectionRange,tmwavegen,resourcesInfo);fprintf("精细频率偏移= %. "1 f赫兹”,fineOffset)

维生素与测量

我们使用hNRPDSCHEVM辅助函数来分析波形。函数执行以下步骤:

  • 同步DM-RS一帧频分双工(FDD),两帧时分双工(TDD)
  • 解调接收到的波形
  • 估计通道
  • 使得车内外的符号
  • 估计和补偿共同相位误差(CPE)

使用下面的代码,我们定义hNRPDSCHEVM函数的配置设置并输出结果。

cfg =结构();cfg。PlotEVM = true;绘制EVM统计数据cfg。DisplayEVM = true;%打印EVM统计信息cfg。标签= nrtm;%设置为捕获波形的TM名称cfg。SampleRate = captureSampleRate;在捕获过程中使用采样率[evmInfo, eqSym refSym] = hNRPDSCHEVM (tmwavegen.Config、rxWaveform cfg);

然后我们计算得到的信号的EVM。我们绘制了每个OFDM符号、槽和子载波的RMS和峰值EVMs。我们还计算了整体EVM(完整波形的RMS EVM平均值)。注意,还计算了直流子载波的EVM。根据您的实现,您可能不得不在总体信号质量评估中放弃该子载波。

查看资源网格中每个资源元素的EVM测量,我们注意到在每个子载波和OFDM符号上都有相当低的失真。星座图也证实了得到的16QAM信号可以很容易地解调和解码。

实测结果表明,接收波形的解调是成功的。频谱分析仪的直流分量对直流子载波的干扰导致测量中的EVM值很高。使用两个辅助函数(DMRSFrequencyCorrection和referenceGrid)来辅助处理5G波形。要获得辅助函数的代码,请参阅此例子

部分

总结

MATLAB使设计和测试无线系统变得容易。通过无线波形生成器应用程序和5G工具箱,您可以生成5G和其他基于标准的信号,在MATLAB中模拟5G通信系统,而无需编写任何代码。一旦您优化了您的模拟,仪器控制工具箱和无线波形生成器应用程序可以让您在真实条件下使用标准射频测试设备测试您的无线空中系统(OTA)。

最后,您可以在MATLAB中通过计算质量度量(如EVM)来执行接收器操作和分析信号,以验证您的设计。MathWorks工具可以让您专注于设计迭代和优化,并帮助您加速从早期研究到生产的设计。

Baidu
map