欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

打造5G工具体验:波形生成利器

最编程 2024-07-29 07:28:09
...

教程

5G NR 波形生成

概览 5G NR 波形生成工作流程和可以生成的波形类型。

此示例概述了 5G NR 波形生成工作流程以及可以使用 5G Toolbox™ 产品生成的波形类型。

介绍

利用5G工具箱的功能,可以生成配置和生成以下NR波形:

  • NR测试模型(NR-TM)
  • NR上行链路和下行链路固定参考信道(FRCs)
  • NR下行链路波形
  • NR上行链路波形

要用一组静态的参数来配置和生成波形,可以使用采用任一下列的工作流。可以在测试和测量的应用程序中使用这些工作流生成的波形。

  • 5G波形生成APP提供可视化的用户交互界面来配置波形。由于5G波形有大量的参数,因此推荐使用该app进行配置波形参数的工作流程。该app可以直接生成波形,或者导出波形配置到matlab通过命令行提示符来生成波形。同样可以导出波形配置到Simulink™。
  • 函数nrWaveformGenerator提供编程接口使用配置对象来配置波形。

要学习如何动态改变参数来配置和生成波形(如5G模型的建模),可以参阅NR PDSCH Throughput和 NR PUSCH Throughput 的示例。

要配置和生成物理随机接入信道(PHACH)波形,可以参阅5G NR PRACH Configuration和 5G NR PRACH Waveform Generation示例。

使用app配置和生成波形

该5G波形生成app提供UI来管理大量的配置参数,可以选择波形的类型、指定参数、生成和导出波形,还可以和测试和测量设备交互。下图为生成和导出5G波形的常见工作流。

打开5G波形生成app

通过点击程序选项卡中的信号处理和通信下的5G Waveform Generator打开该软件。

选择波形类型

下行链路和上行链路的选项可以完全自定义波形的内容,还可以生成NR-TMs, downlink FRCs, and uplink FRCs。

指定参数

当设置参数时,会立即更新资源网格可视化内容,显示波形中所有物理通道的位置。资源网格视图包含所有端口所有物理端口的的联合(即可视化不区分每个端口传输的内容)。由于资源网格中最大的分辨率就是资源块(RB),所以可视化界面不展现单个资源元素的信号(REs)。

下图展示了两个物理下载链路信道的配置(PDSCHs)。第一个PDSCH跨域了所有时隙并使用0~100的物理资源块(PRBs)。第二个PDSCH是在0~2和4~6中处于活跃状态且使用200~250的PRBs。

波形生成

点击生成即可生成配置的波形,并且在生成器内部可创建基带同相和正交(IQ)分量样本。还可以在频谱分析仪选项卡中查看生成信号的频谱。

导出波形

点击导出波形,选择需要导出的方式进行导出,可以选择将波形导出到工作区、文件、matlab脚本或者simulink模型。

  • 导出到工作区选项会在matla工作区创造一个结构体。该结构体包含波形样本、采样频率、配置参数以及一系列波形类型的描述(下行链路、上行链路、测试模型、下行链路FRC或者上行链路FRC)。例如:
  • 导出文件选项可以保存波形为 .mat或者 .bb 文件。
  • 导出为matlab脚本选项可以使用导出的matlab脚本文件在matlab命令窗口中生成配置好的波形。
  • 导出仿真模型选项可以生成一个Waveform From Wireless Waveform Generator App模块,该模块在仿真模型中可以作为波形源。

配置和生成波形5G波形使用matlab代码

nrWaveformGenerator函数提供了一个编程接口来配置波形,可以在该app中配置波形和导出matlab脚本,而不是使用费时费力的手动指定参数。并且可以修改和运行这个matlab脚本去配置生成所需的5G波形。

该app的优势:

  • 该app包含UI控件,如通过下拉菜单来选择参数;
  • 部分UI控件可以在设置自定义值的时候进行验证;
  • 网格可视化的功能可以在指定参数时查看信号的外观。

如本章节的代码示例使用 nrDLCarrierConfig 配置对象生成了一个5G下行链路波形。该代码可以使用导出matlab脚本选项卡生成,该功能同样使用nrDLCarrierConfig 。

创建一个默认的下行波形配置对象。该waveconfig对象包含完整的波形规范并且完全可配置。

waveconfig = nrDLCarrierConfig
waveconfig = 
  nrDLCarrierConfig with properties:

               Label: 'Downlink carrier 1'
      FrequencyRange: 'FR1'
    ChannelBandwidth: 50
             NCellID: 1
        NumSubframes: 10
    WindowingPercent: 0
          SampleRate: []
    CarrierFrequency: 0
         SCSCarriers: {[1x1 nrSCSCarrierConfig]}
      BandwidthParts: {[1x1 nrWavegenBWPConfig]}
             SSBurst: [1x1 nrWavegenSSBurstConfig]
             CORESET: {[1x1 nrCORESETConfig]}
        SearchSpaces: {[1x1 nrSearchSpaceConfig]}
               PDCCH: {[1x1 nrWavegenPDCCHConfig]}
               PDSCH: {[1x1 nrWavegenPDSCHConfig]}
               CSIRS: {[1x1 nrWavegenCSIRSConfig]}

设置好配置参数后,调用编程波形发生器。

[waveform,waveformInfo] = nrWaveformGenerator(waveconfig);

通过绘制频谱图来可视化频域中的信号。该波形包括全分配的PDSCH、物理下行链路控制信道(PDCCH)和信号同步(SS)突发。

% Plot spectrogram of waveform for first antenna port  绘制第一个天线端口波形的频谱图
samplerate = waveformInfo.ResourceGrids(1).Info.SampleRate;
nfft = waveformInfo.ResourceGrids(1).Info.Nfft;
figure;
spectrogram(waveform(:,1),ones(nfft,1),0,nfft,'centered',samplerate,'yaxis','MinThreshold',-130);
title('Spectrogram of 5G Downlink Baseband Waveform');

 

 改变PDSCH分配以PRBs 0~10,生成波形并绘制频谱图。

waveconfig.PDSCH{1}.PRBSet = 0:10;
[waveform,waveformInfo] = nrWaveformGenerator(waveconfig);

% Plot spectrogram of waveform for first antenna port
samplerate = waveformInfo.ResourceGrids(1).Info.SampleRate;
nfft = waveformInfo.ResourceGrids(1).Info.Nfft;
figure;
spectrogram(waveform(:,1),ones(nfft,1),0,nfft,'centered',samplerate,'yaxis','MinThreshold',-130);
title('Spectrogram of 5G Downlink Baseband Waveform');

 

 可以定义物理信道和信号的多个实例,创建PDSCH配置对象的第二个实例,以及设置分配PRBs 40~50 和OFDM符号2~10.

mySecondPDSCH = nrWavegenPDSCHConfig;
mySecondPDSCH.PRBSet = 40:50;
mySecondPDSCH.SymbolAllocation = [2 10];

 将第二个PDSCH配置给波形并生成。

waveconfig.PDSCH{2} = mySecondPDSCH;
[waveform,waveformInfo] = nrWaveformGenerator(waveconfig);

% Plot spectrogram of waveform for first antenna port
samplerate = waveformInfo.ResourceGrids(1).Info.SampleRate;
nfft = waveformInfo.ResourceGrids(1).Info.Nfft;
figure;
spectrogram(waveform(:,1),ones(nfft,1),0,nfft,'centered',samplerate,'yaxis','MinThreshold',-130);
title('Spectrogram of 5G Downlink Baseband Waveform');