主要内容

Waveform From Wireless Waveform Generator App

导出到 Simulink 的无线波形源

自 R2021b 起

  • Waveform From Wireless Waveform Generator App block

库:
None

描述

Waveform From Wireless Waveform Generator App 模块是使用无线波形发生器生成的。您可以将生成的模块用作 Simulink® 模型中的无线波形源。

注意

实际的模块名称和输出波形取决于您在生成模块之前在该 App 中配置的波形。

有关可使用 5G Toolbox™ 软件导出到 Simulink 的波形类型的概述,请参阅 5G 波形生成器

要生成模块,请执行以下操作:

  1. 在该 App 工具条的波形类型部分中,点击您想要配置并导出到 Simulink 的波形。

  2. 设置所选波形的参数。

  3. 在该 App 工具条的导出部分中,点击导出并选择导出到 Simulink

封装编辑器窗口的代码选项卡包含执行模块以输出配置波形的 MATLAB® 代码。要访问只读模块参数和波形配置参数,请使用 UserData 通用模块属性,这是一个具有这些字段的结构体。

  • WaveformConfig - 波形配置参数

  • WaveformLength - 波形长度

  • Fs - 波形采样率

示例

全部展开

此示例展示了如何配置和使用通过无线波形发生器中提供的导出到 Simulink 功能生成的模块。

简介

无线波形发生器是一款用于创建、减损、可视化和导出波形的交互式工具。您可以将波形导出到您的工作区,或者导出到 .mat.bb 文件中。您还可以将波形生成参数导出到可运行的 MATLAB® 脚本或 Simulink® 模块中。您可以使用导出的 Simulink 模块在 Simulink 中重现波形。此示例展示了如何使用该 App 的导出到 Simulink 功能以及如何配置导出的模块以在 Simulink 中生成波形。

虽然此示例侧重于导出 OFDM 波形,但该过程也适用于所有受支持的波形类型。

将无线波形配置导出到 Simulink

App 选项卡中的无线通信下点击无线波形发生器对应的图标即可打开该 App。或者,在 MATLAB 命令提示符下输入 wirelessWaveformGenerator

波形类型部分中,通过点击 OFDM 选择一个 OFDM 波形。在该 App 的最左侧窗格中,调整所选波形的任何配置参数。然后,通过在该 App 的工具条中点击导出并选择导出到 Simulink 来导出该配置。

导出到 Simulink 选项用于创建一个 Simulink 模块,当您运行 Simulink 模型时,该模块会输出所选的波形。如果不存在打开的模型,则该模块将被导出到一个新模型。

最终数据值之后的输出模块参数指定在生成所有指定的信号样本后的输出。此参数值的选项有 Cyclic repetitionSetting to zeroCyclic repetition 选项在到达信号中的最后一个样本后,从头开始重复信号。Setting to zero 选项在生成信号的最后一帧之后,在仿真的持续时间内生成零值输出。波形采样率(Fs)波形长度模块参数派生自“封装编辑器”对话框的代码选项卡中可用的波形配置。有关模块参数的详细信息,请参阅Waveform From Wireless Waveform Generator App。下图显示了导出的模块的参数。

将 Spectrum Analyzer 模块连接到导出的模块。

对模型进行仿真以使用当前的配置来可视化波形。

Spectrum Analyzer 模块继承波形采样率(Fs) 参数,即 64 MHz。

修改无线波形配置

当您运行 Simulink 模型时,导出的模块将输出在模块的“封装编辑器”对话框的代码选项卡中生成的波形。在此选项卡中初始化波形的 MATLAB 代码对应于在导出模块之前您在无线波形发生器中选择的配置。要修改波形的配置,请选择以下选项之一:

  • 打开无线波形发生器,选择您选择的配置,然后导出一个新模块。此选项用来与 App 界面而非 MATLAB 代码进行交互,在参数化过程中验证参数范围,以及在运行 Simulink 模型前可视化波形。

  • 更新配置参数,这些参数位于导出模块的“封装编辑器”对话框的代码选项卡中。此选项要求修改此选项卡中的 MATLAB 代码,以便仅在应用更改时才进行参数范围验证。此选项在运行 Simulink 模型之前不提供波形的可视化。如果您不熟悉生成所选波形的 MATLAB 代码,则不建议使用此选项修改波形参数。

您可以在封装编辑器的代码选项卡中更新配置。要打开封装编辑器,请点击导出的模块并按 Ctrl+M

使用代码选项卡中的 MATLAB 代码更新您选择的参数。例如,将子载波间隔 scs 设置为 1,500,000 Hz。

点击确定以应用更改并关闭“封装编辑器”对话框。对模型进行仿真以可视化更新后的波形。

Spectrum Analyzer 模块现在显示的采样率为 96 MHz,这是之前采样率的 1.5 倍,符合预期。

与模型中的其他模块共享无线波形配置

要访问只读模块参数和波形配置参数,请使用 UserData 通用模块属性,这是一个具有这些字段的结构体。

  • WaveformConfig:波形配置

  • WaveformLength:波形长度

  • Fs:波形采样率

您可以使用 get_param 函数访问导出的模块的用户数据。

ans = 

  struct with fields:

    WaveformConfig: [1×1 comm.OFDMModulator]
    WaveformLength: 8000
                Fs: 96000000

通过在回调中使用 InitFcn 将用户数据中可用的结构体存储在一个基础工作区变量中。InitFcn 回调在模型更新和仿真期间执行。要使用此回调,请点击建模选项卡,然后点击模型设置下拉列表,再点击模型属性选项。在回调窗格中,选择 InitFcn 回调。将用户数据赋值给一个新的基础工作区变量(例如 cfg)。

每当您应用代码选项卡中的配置更改时,导出模块的用户数据中可用的参数就会更新。

要解调 OFDM 波形,请在模型中添加一个 OFDM Demodulator 模块。在 OFDM Waveform Generator 与 OFDM Demodulator 模块之间连接一个 AWGN Channel 模块,以向输入信号中添加高斯白噪声。另外,添加一个 Constellation Diagram 模块来绘制解调的符号。

配置 OFDM Demodulator 模块所需的参数必须与用于配置导出的模块的参数相匹配(否则,解调将失败)。要访问导出的模块的配置参数,请使用变量 cfg。下图显示了 OFDM Demodulator 模块的参数。

因为 OFDM Demodulator 模块需要整个 OFDM 波形才能进行解调,所以请将导出的模块中的每帧采样数参数设置为 cfg.WaveformLength。对模型进行仿真。

在使用 OFDM Demodulator 模块解调 OFDM 波形后,Constellation Diagram 模块会显示得到的 QAM 符号。

生成多载波波形

为了实现多载波生成,所有波形的采样率必须相同。要使各波形实现载波偏移并将其聚合,您可以使用 Multiband Combiner 模块。

要在频率上移动波形,您可能需要提高采样率。Multiband Combiner 模块提供了在移动和组合输入波形之前对其进行过采样的选项。下图显示了 Multiband Combiner 模块的参数。

对模型进行仿真以可视化以 -80、20 和 100 MHz 为中心的波形。

限制

  • 除为 5G NR 波形生成的模块外,使用用户定义的随机信号数据为波形生成的模块不支持快速加速模式。当您将比特源 App 参数设置为用户定义时,要在这些模块中启用快速加速模式,请使用伪噪声 (PN) 数据作为数据源。

  • 要为模型执行启用快速重启模式,此模块不得包含任何状态变量。有关详细信息,请参阅How Fast Restart Improves Iterative Simulations (Simulink)

端口

输出

全部展开

时域无线波形,以复矩阵形式返回。矩阵列的数量对应于发射天线的数量。您在该 App 中选择的波形类型决定了输出波形类型。要访问波形配置参数,请使用 UserData 通用模块属性的 WaveformConfig 结构体字段。

数据类型: double
复数支持:

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。在 Simulink 工具条的仿真选项卡中,在准备库中选择属性检查器

只读波形参数

模块会根据代码选项卡中的波形配置自动更新以下参数。

此参数为只读参数。

要访问此参数,请使用 UserData 通用模块属性的 Fs 结构体字段。Fs 结构体字段的单位为 Hz。

此参数为只读参数。

要访问此参数,请使用 UserData 通用模块属性的 WaveformLength 结构体字段。WaveformLength 结构体字段的单位为采样数。

仿真参数

这些参数控制模块在仿真期间如何输出波形。

此参数指定缓冲到每个输出帧的采样数。

此参数指定模块输出所有可用波形采样后的输出值。

  • 当您选择循环重复时,模块在到达波形中的最后一个采样后,从头开始重复波形。

  • 当您选择设置为零时,模块在生成波形的最后一帧后,在仿真的持续时间内生成零值输出。

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2021b 中推出

另请参阅

App