白皮书

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

简介

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

部分

挑战

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

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

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

5G无线通信系统组成示意图

图1。5G无线通信系统部件。

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

部分

工作流

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

  • 使用5G波形发生器应用程序生成基带波形。
  • 通过空中传送信号。
  • 通过TCP/IP从信号分析仪读取IQ数据。
  • 对接收到的5G波形进行测量。

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

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

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

部分

使用5G波形发生器应用程序生成基带波形

测试首先需要的是5G波形。5G工具箱提供功能、应用程序和参考示例,使您能够表征和生成5G NR上行和下行波形。波形生成可以通过编程方式(通过使用5G工具箱函数编写MATLAB程序)或交互方式(通过使用应用程序)完成。

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

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

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

  • 频率范围as FR1 (410 MHz-7.125 GHz)
  • 测试模型作为NR-FR1-TM3.1(全波段,均匀64 QAM)
  • 信道带宽(MHz)10
  • 副载波间距(kHz)30
  • 双工FDD模式

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

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

无线波形生成应用程序的截图,自定义和生成5G NR-TM波形。

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

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

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

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

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

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

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

部分

发射空中信号

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

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

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

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

显示无线波形发生器应用程序中的波形传输的屏幕截图。

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

部分

从信号分析仪读取IQ数据

现在我们已经通过空气传输了信号,我们需要从信号分析仪接收IQ数据。在我们的例子中,信号分析仪有一个天线来接收信号。我们将使用MATLAB代码进行信号采集。下面的代码部分是具有代表性的,并说明了在MATLAB中获取和分析IQ数据的关键步骤。要访问完整的代码,请参见此例子

为了将同相和正交(IQ)数据读取到MATLAB中进行分析,我们首先使用仪器控制工具箱配置Keysight N9030A信号分析仪。我们需要根据被测信号定义仪器配置参数。

%设置频谱分析仪参数centerFrequency = 3.4e9;sampleRate = 15.36e6;measurementTime = 20e-3;mechanical衰减= 0;% dBstartFrequency = 3.39e9;stopFrequency = 3.41e9;分辨率带宽= 220e3;视频带宽= 220000;

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

  • 找到Keysight N9030A信号分析仪的资源ID。
  • 使用虚拟仪器软件架构(VISA)接口连接到仪器。
  • 调整输入缓冲区大小以保存仪器返回的数据。
  • 设置超时时间以允许有足够的时间进行测量和数据传输。
foundVISA = visadevlist;resourceID = foundVISA(foundVISA。模型= =“N9030A”、:).ResourceName;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 ?”);阅读IQ数据writeline (sigAnalyzerObj”:阅读:WAV0 ?”);data = readbinblock(sigAnalyzerObj,“替身”);分离数据,建立复杂IQ向量Inphase = data(1:2:end);正交=数据(2:2:结束);rx波形= inphase+1i*quadrature;
writeline (sigAnalyzerObj”:获取:WAV1 ?”);signalSpec = readbinblock(sigAnalyzerObj,“替身”);显示测量信息captureSampleRate = 1/signalSpec(1);流("采样率(Hz) = %s"num2str (captureSampleRate));

采样率(Hz) = 15360000

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

读取的点数= 307201

流("信号最大值(dBm) = %s"num2str (signalSpec (6)));

信号最大值(dBm) = -39.0019

信号最小值(dBm) = -107.9755

流("信号最小值(dBm) = %s"num2str (signalSpec (7)));

接下来,我们使用下面的代码绘制获取波形的频谱,以确认接收信号的带宽。图6显示了OTA传输的信号带宽与我们使用无线波形生成器应用程序生成的带宽信号非常相似。

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

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

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

部分

测量接收到的5G波形

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

首先,使用generateWaveform的功能hNRReferenceWaveformGenerator我们使用无线波形生成器应用程序生成的相同特定NR-TM的辅助文件提取波形信息。

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

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

frequencyCorrectionRange = -100e3:1e3:100e3;[rx波形,coarseOffset] = DMRSFrequencyCorrection(rx波形,captureSampleRate,…frequencyCorrectionRange, tmwavgen,resourcesInfo);fprintf("粗频率偏移= %。0f Hz",粗偏置)

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

frequencyCorrectionRange = -100:5:100;[rx波形,fineOffset] = DMRSFrequencyCorrection(rx波形,captureSampleRate,frequencyCorrectionRange, tmwavgen,resourcesInfo);fprintf("精细频率偏移= %。1f Hz", fineOffset)

维生素与测量

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

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

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

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

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

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

测量结果表明,接收波形解调成功。频谱分析仪的直流分量对直流副载波的干扰导致测量中的EVM值很高。两个辅助函数(DMRSFrequencyCorrection而且referenceGrid)用于协助处理5G波形。这些辅助函数包含在完整的例子代码。

部分

总结

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

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

Baidu
map