基于Matlab使用GPU和代码加速杂波模拟(附源码)

目录

一、杂波模拟

二、比较杂波模拟时间

三、其他仿真时序结果

四、总结

五、程序


此示例演示如何在图形处理单元 (GPU) 上或通过代码生成 (MEX) 而不是 MATLAB 解释器来模拟混乱。该示例将样本矩阵反演 (SMI) 算法(流行的时空自适应处理 (STAP) 技术之一)应用于具有六元素均匀线性阵列 (ULA) 的机载雷达接收的信号。该示例重点比较 GPU、代码生成和 MATLAB 解释器之间的杂波模拟性能。您可以在示例时空自适应处理简介中找到模拟和算法的详细信息。

一、杂波模拟

雷达系统工程师经常需要仿真杂波返回来测试信号处理算法,例如 STAP 算法。但是,生成高保真杂波返回涉及许多步骤,因此计算成本通常很高。例如,使用以下步骤模拟杂波

  1. 将整个地形划分为杂乱的小块。图块的大小取决于方位角图片跨度和范围分辨率。

  2. 对于每个补丁,计算其相应的参数,例如随机回波、掠角和天线阵列增益。

  3. 合并所有待筛选块的返回以生成总杂波返回。

杂乱补丁的数量取决于地形覆盖范围,但通常在数千到数百万的范围内。此外,需要为每个脉冲执行上述所有步骤(假设使用脉冲雷达)。因此,杂波仿真通常是系统仿真中的高杆。

为了提高杂波模拟的速度,可以利用并行计算。请注意,后期脉冲的杂波返回可能取决于较早脉冲中产生的信号,因此 MATLAB 提供的某些并行解决方案(例如)并不总是适用。但是,由于每个补丁的计算独立于其他补丁的计算,因此它适用于 GPU 加速。

二、比较杂波模拟时间

要比较 MATLAB 解释器、代码生成和 GPU 之间的杂波模拟性能,请通过键入 MATLAB 命令行来启动以下 GUI。启动的 GUI 如下图所示。

基于Matlab使用GPU和代码加速杂波模拟(附源码)_第1张图片

GUI的左侧包含四个图,分别显示原始接收信号、接收信号的角度多普勒响应、处理信号和STAP处理权重的角度多普勒响应。所涉及的处理的详细信息可以在示例时空自适应处理简介中找到。在 GUI 的右侧,可以通过修改方位方向(以度为单位)和最大杂波范围(以 km 为单位)的杂波补丁量跨度来控制杂波图块的数量。然后,可以单击该按钮开始仿真,模拟 5 个相干处理间隔 (CPI),其中每个 CPI 包含 10 个脉冲。处理后的信号和角度多普勒响应每 CPI 更新一次。

下一部分显示不同模拟运行的计时。在这些模拟中,每个脉冲由 200 个距离样本组成,距离分辨率为 50 m。待筛选邮件补丁范围和最大待筛选邮件范围的组合会产生不同数量的总待筛选邮件补丁。例如,10 度的杂波补丁跨度和 5 km 的最大杂波范围意味着 3600 个杂波补丁。仿真在以下系统配置上进行:

  • 中央处理器: 至强 X5650, 2.66 GHz, 24 GB 内存

  • GPU:特斯拉C2075,6 GB内存

时序结果如下图所示。

基于Matlab使用GPU和代码加速杂波模拟(附源码)_第2张图片

 从图中可以看出,一般来说,GPU 将模拟速度提高了几十倍,有时甚至上百倍。两个有趣的观察结果是:

  • 当杂乱补丁的数量很少时,只要数据可以放入 GPU 内存,GPU 的性能几乎是恒定的。对于 MATLAB 解释器来说,情况并非如此。

  • 一旦杂乱补丁的数量变得很大,数据就无法再放入 GPU 内存中。因此,GPU 通过 MATLAB 解释器提供的速度开始降低。但是,对于近千万个杂乱补丁,GPU 仍然提供超过 50 倍的加速。

由于代码生成而导致的仿真速度改进小于GPU速度的提高,但仍然显着。代码生成将收集的待筛选邮件预先计算为常量值数组。对于大量杂乱补丁,阵列的大小变得太大,从而由于内存管理的开销而降低了速度改进。代码生成需要访问 MATLAB Coder,但不需要特殊的硬件。

三、其他仿真时序结果

尽管此示例中使用的模拟计算了数百万个杂乱补丁,但生成的数据立方体的大小为 200 x 6 x 10,表示每个脉冲中只有 200 个范围样本、6 个通道和 10 个脉冲。与实际问题相比,此数据立方体很小。此示例选择这些参数来显示使用 GPU 或代码生成可以获得的好处,同时确保示例在合理的时间内在 MATLAB 解释器中运行。某些具有较大数据立方体大小的模拟会产生以下结果:

  • 使用 GPU 进行 45 倍加速,模拟为 50 个元素的 ULA 生成 50 个脉冲,每个脉冲中有 5000 个范围样本,即 5000 x 50 x 50 的数据立方体。范围分辨率为 10 m。雷达覆盖的总方位角为 60 度,每个杂波补丁为 1 度。最大杂波范围为 50 公里。杂乱补丁的总数为 305,000。

  • 使用 GPU 进行上述模拟的 60 倍加速度,除了 180 度方位角覆盖和最大杂波范围等于地平线范围(约 130 公里)。在本例中,待筛选补丁的总数为 2,356,801。

四、总结

此示例比较了通过使用 MATLAB 解释器、GPU 或代码生成来模拟杂波返回所实现的性能。结果表明,GPU 和代码生成比 MATLAB 解释器提供了很大的速度改进。

五、程序

使用Matlab R2022b版本,点击打开。

基于Matlab使用GPU和代码加速杂波模拟(附源码)_第3张图片 打开下面的“STAPCPUGPUExample.mlx”文件,点击运行,就可以看到上述效果。

基于Matlab使用GPU和代码加速杂波模拟(附源码)_第4张图片

 关注下面公众号,后台回复关键词:GPU和代码加速杂波模拟,发送源码链接。

你可能感兴趣的:(#,Matlab实例(附源码),matlab,GPU加速,杂波模拟)