主要内容

音频波束形成系统的多核仿真

这个例子展示了Simulink®中的音频波束形成系统仿真模型如何使用数据流域来提高性能。金宝app它使用Simulink®中的数据流域来自动将通信系统的数据驱动金宝app部分划分为多个线程,从而通过在桌面的多核上执行它来提高模拟的性能。

介绍

数据流执行域允许您在计算密集型系统的模拟中使用多个核。这个例子展示了数据流作为子系统的执行域如何提高模型的仿真性能。要了解关于数据流以及如何使用多线程运行Simulink模型的更多信息,请参见金宝app使用数据流域的多核执行

声波束形成

此示例显示了使用麦克风均匀线性阵列(ULA)的声波束形成。该模型模拟了在10个单元等距线性麦克风阵列上接收来自不同方向的三个音频信号。在接收器处添加热噪声后,对不同的源角度应用波束形成,并在声音设备上播放结果。可以使用“选择源”块中的对话框选择需要在音频播放器中播放的音频源。

建立数据流子系统

本例使用Simulink中的dataflow域来利用桌面的多核来提高仿真性金宝app能。该模型中Dataflow子系统的Domain参数设置为数据流.您可以通过选择子系统然后进行选择来查看这一点视图>属性检查器.Dataflow域自动划分模型并使用多线程模拟系统,以获得更好的模拟性能。一旦您将域参数设置为Dataflow,您就可以使用Dataflow Simulation Assistant来分析您的模型以获得更好的性能。您可以打开Dataflow模拟助手,通过单击数据流助手按钮下方的自动帧尺寸计算属性检查器中的参数。

数据流子系统的并发性分析

Dataflow Simulation Assistant建议更改模型设置以获得最佳模拟性能。要接受建议的模型设置,请单击旁边的模拟性能的建议模型设置点击全部接受. 或者,您可以展开该部分以单独更改设置。在本例中,模型设置已经是最佳的。在Dataflow Simulation Assistant中,单击分析按钮开始分析数据流域以获得模拟性能。分析完成后,Dataflow Simulation Assistant将显示Dataflow子系统在模拟期间将使用多少线程。

分析模型后,助手显示了三个线程。这是因为三个波束形成器块计算量大,可以并行运行。但是,三个波束形成器块取决于麦克风阵列和接收器块。可以使用管道延迟来打破这种依赖性并增加并发性。数据流模拟Ugulation Assistant将建议的管道延迟数显示为建议的延迟。计算建议的延迟值以提供最佳性能。

下图显示了Dataflow Simulation Assistant,其中Dataflow子系统当前指定的延迟值为零,系统的建议延迟值为一。点击接受旁边的按钮建议延迟在Dataflow Simulation Assistant中,使用数据流子系统的建议延迟。也可以直接在属性检查器中为“延迟”参数输入延迟值。Simulink使用以下命令显示延迟参数值:金宝app$Z^{-n}$数据流子系统输出端口上的标记。

多核仿真性能

我们通过比较使用和不使用数据流时运行模型所花费的时间来衡量使用数据流域的性能改进。执行时间使用sim命令测量,它返回模型的仿真执行时间。这些数据和分析是在一台Windows桌面电脑上发布的,该电脑使用Intel®Xeon®CPU W-2133 @ 3.6 GHz 6 Cores 12 Threads处理器。

多线程模型的模拟执行时间=2.74s单线程模型的模拟执行时间=5.66s数据流的实际加速比:2.1x

总结

此示例显示了在桌面上使用多核的单站雷达系统仿真模型中,使用dataflow domain的多线程处理如何提高性能。