主要内容

gpuConstantGammaClutter

使用GPU模拟常数-Gamma杂乱

描述

gpuConstantGammaClutter对象模拟杂波,在GPU上执行计算。

请注意

要使用此对象,必须安装并行计算工具箱™许可证并访问适当的GPU。有关gpu的更多信息,请参见GPU计算(并行计算工具箱)

计算杂乱返回:

  1. 定义并设置杂波模拟器。看建造

  2. 称呼一步根据属性模拟系统的杂波返回gpuConstantGammaClutter.行为一步特定于工具箱中的每个对象。

杂乱模拟constantGammaClutter提供是基于以下假设:

  • 雷达系统是单站的。

  • 传播是在自由空间进行的。

  • 地形均匀。

  • 杂波在相干时间内是平稳的。一致时间指示软件在杂波模拟中更改随机数集的频率。

  • 由于信号是窄带信号,空间响应和多普勒频移可以用相移来近似表示。

  • 雷达系统在模拟过程中保持恒定高度。

  • 雷达系统在模拟过程中保持恒定速度。

请注意

从R2016b开始,不再使用一步方法来执行System对象™定义的操作,您可以使用参数调用对象,就像它是函数一样。例如,y =步骤(obj,x)y = obj(x)执行等效操作。

建造

H= gpuConstantGammaClutter创建一个恒定伽马杂波仿真系统对象,H.该目标使用常数伽玛模型模拟单基地雷达系统的杂波回波。

H= gpuConstantGammaClutter (名称,值创建一个恒定伽马杂波模拟对象,H,以及由一个或多个指定的其他选项名称,值对参数。姓名是A.财产名称,价值是相应的价值。姓名必须出现在单引号内('').可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

特性

传感器

传感器的手柄

将传感器指定为天线元素对象或作为阵列对象元素属性值是天线元素对象。如果传感器是一个数组,它可以包含子数组。

默认值:分阶段。齿龈使用默认属性值

γ

地形伽马值

指定 γ 常量使用的值 γ 杂波模型,作为分贝的标量。的 γ 值取决于地形类型和操作频率。

默认值:0

EarthModel

地球模型

指定杂波模拟中使用的地球模型为|中的一个“平”|'弯曲'|。当您将此属性设置为“平”假设地球是一个平面。当您将此属性设置为'弯曲',地球被认为是球体。

默认值:“平”

Clutterminrange.

杂波区域最小范围(m)

计算机杂波返回的最小范围,指定为正标量。最小范围必须是非负的。如果小于的值,则忽略该值平台.单位是米。

默认值:0

ClutterMaxRange

最大杂波区域范围(m)

指定计算杂波返回的最大范围。为杂波模拟作为一个正标量。参数中指定的最大范围必须大于平台财产。单位是米。

默认值:5000

ClutterAzimuthCenter

杂波区域方位角(DEG)

产生杂波贴片的地面平面中的方位角。贴片是对称产生的关于该角度。

默认值:0

ClutterAzimuthSpan

杂波贴片的方位角跨度(DEG)

指定杂波区域的方位角(度数)的覆盖范围为一个正标量。杂波模拟覆盖具有指定方位角跨度的对称区域ClutterAzimuthCenter.通常情况下,所有杂波块的方位角中心都在区域内,但是PatchAzimuthSpan值可能导致一些补丁扩展到该区域之外。

默认值:60.

PatchAzimuthSpan

杂波贴片的方位角跨度(DEG)

指定每个杂波补丁的方位角跨度(以度数为单位)为正标量。

默认值:1

Comherencime.

杂波相干时间

为杂波模拟指定相干时间(以秒为单位)为正标量。相干时间过去后,一步方法在下一个脉冲更新用于杂波模拟的随机数。的值意味着随机数永远不会更新。

默认值:

PropagationSpeed

信号传播速度

指定信号的传播速度(单位为米/秒)为正标量。

默认值:光速

采样率

采样率

指定以赫兹为单位的采样率为正标量。默认值为1mhz。

默认值:1 e6

PRF.

脉冲重复频率

脉冲重复频率,PRF.,指定为标量或行向量。单位是Hz。脉冲重复间隔,Pri.,为脉冲重复频率的倒数,PRF..的PRF.必须满足以下限制条件:

  • 产品的产品PRF.脉冲宽度必须小于或等于1。这个条件表示脉冲宽度小于一个脉冲重复间隔的要求。对于相位编码波形,脉宽是芯片宽度和芯片数量的乘积。

  • 抽样率与的任何元素的比率PRF.必须是整数。该条件表达了一个脉冲重复间隔中的样本数量的要求是整数。

可以选择的值PRF.属性设置单独使用或与属性设置一起使用prfidx输入参数一步方法。

  • PRFSelectionInputPort,则设置PRF.使用属性。你可以

    • 实现一个常数PRF.通过指定PRF.作为一个积极的真实标量。

    • 实现一个交错PRF.通过指定PRF.作为一个具有正实值元素的行向量。然后,每次调用一步方法使用此向量的连续元素PRF..如果达到向量的最后一个元素,则该过程循环地与向量的第一元素循环地继续。

  • PRFSelectionInputPort真的,您可以实现一个可选择的PRF.通过指定PRF.作为一个具有正实值元素的行向量。但这一次,当你执行时一步方法,选择一个PRF.的参数指定索引PRF.向量。

在所有情况下,当您设置时,输出样本的数量是固定的OutputFormat财产'样品'.当你使用变化PRF.并设置OutputFormat财产“脉冲”,样本的数量可以变化。

默认值:10e3.

PRFSelectionInputPort

启用PRF选择输入

启用PRF选择输入,指定为真的或者.当您将此属性设置为的方法中设置的值PRF.财产。当您将此属性设置为真的,则将索引参数传递给一步方法从PRF向量中选择一个值。

默认值:

OutputFormat

输出信号格式

将输出信号的格式指定为其之一“脉冲”|'样品'|。当你设置OutputFormat财产“脉冲”的输出一步方法是多脉冲形式。在这种情况下,脉冲数就是NumPulses财产。

当你设置OutputFormat财产'样品'的输出一步方法是多个样本的形式。在这种情况下,样本的数量是值的NumSamples财产。在交错PRF应用中,您可能会发现'样品'选择更方便,因为一步输出总是有相同的矩阵大小。

默认值:“脉冲”

NumPulses

输出脉冲数

指定输出的脉冲数一步方法为正整数。此属性仅在设置OutputFormat财产“脉冲”

默认值:1

NumSamples

输出的样本数量

的输出中指定样本的数量一步方法为正整数。通常情况下,使用一个脉冲中的样本数。此属性仅在设置OutputFormat财产'样品'

默认值:100.

运行频率

系统工作频率

指定系统的工作频率,以赫兹为正标量。默认值为300mhz。

默认值:3 e8

TransmitSignalInputPort

添加输入以指定发送信号

将此属性设置为真的在中添加输入以指定发送信号一步语法。将此属性设置为省略发射信号一步语法。的期权的计算成本更低;要使用此选项,还必须指定TransmitERP财产。

默认值:

WeightsInputPort

使重量输入

将此属性设置为true以表示输入权重。

默认值:

TransmitERP

有效的传输功率

用瓦特为正标量指定雷达系统的传输有效辐射功率(ERP)。此属性仅在设置TransmitSignalInputPort财产

默认值:5000

平台

表面的雷达平台高度

指定从地面向上测量的雷达平台高度(以米为单位)为非负标量。

默认值:300

PlatformSpeed

雷达平台的速度

将雷达平台的速度指定为每秒以米为单位的非负标量。

默认值:300

PlatformDirection

雷达平台运动方向

指定雷达平台运动的方向为一个2乘1的矢量,形式为[方位角;ElevationAngle]度。此属性的默认值表示平台垂直于雷达天线阵列的侧面移动。

方位角和仰角均在雷达天线或天线阵的局部坐标系中测量。方位角必须在-180度和180度之间。仰角必须在-90度和90度之间。

默认值:(90, 0)

mountingangles.

传感器安装角度(deg)

指定一个3元矢量,给出来自惯性坐标系的传感器框架的固有偏航、俯仰和滚动。这3个元素按照顺序分别定义了绕z、y和x轴的旋转。第一次旋转,将物体轴围绕z轴旋转。因为这些角度定义了固有旋转,所以第二次旋转是围绕y轴在先前旋转的新位置进行的。绕x轴的最后一次旋转是绕x轴进行的,就像在本征系统中经过前两次旋转一样。

默认值:(0 0 0)

Seedsource.

为随机数生成器的种子来源

指定对象如何生成随机数。此属性的值为:

'汽车' 默认的MATLAB®随机数生成器产生随机数。使用'汽车'如果您使用此对象并行计算工具箱软件。
“属性” 对象使用自己的私有随机数生成器生成随机数。的种子属性指定随机数生成器的种子。使用“属性”如果您想要可重复的结果,并且不使用并行计算工具箱软件的此对象。

默认值:'汽车'

种子

随机数生成器的种子

将随机数生成器的种子指定为0到2之间的标量整数32.1。属性设置时将应用此属性Seedsource.财产“属性”

默认值:0

方法

重置 为杂波模拟重置随机数和时间计数
一步 使用常数伽马模型模拟杂波
所有系统对象都是通用的
释放

允许系统对象属性值改变

例子

全部折叠

模拟杂波从地形返回,伽马值为0 dB。雷达系统的有效传输功率为5 kW。

设置雷达系统的特性。该系统采用四元均匀线性阵列(ULA)。采样率为1 MHz, PRF为10 kHz。传播速度为光速,工作频率为300mhz。雷达平台在距地面1公里的高空飞行,其飞行路径沿阵列轴线平行于地面。平台速度为2000米/秒。主叶凹陷角为30

nele = 4;c = physconst('LightSpeed');fc = 300 e6;λ= c / fc;数组= phased.ula(“NumElements”Nele,'ElementsPacing'λ/ 2);fs = 1 e6;脉冲重复频率= 10 e3;高度= 1000.0;方向= [0]90;;速度= 2.0e3;Depang = 30.0;mountingAng =[0, 30日0];

创建GPU杂乱仿真对象。配置假定地球是平的。最大杂波的感兴趣范围是5公里,最大方位覆盖率是 ± 6 0

征求= 5000;Azcov = 120;tergamma = 0;tpower = 5000;混乱= gpuConstantGammaClutter (“传感器”数组,......“PropagationSpeed”c'运行频率'足球俱乐部,脉冲重复频率的,prf,......'采样率'fs,“伽马”tergamma,“EarthModel”“平”......'transierp'tpower,'platformheight'、身高、......“PlatformSpeed”,速度,“PlatformDirection”、方向、......“MountingAngles”,Mountingang,“ClutterMaxRange”,rmax,......“ClutterAzimuthSpan”Azcov,'Seedsource'“属性”......“种子”, 40547);

模拟10个脉冲的杂波返回。

Nsamp = fs /脉冲重复频率;Npulse = 10;clsig = 0 (Nsamp Nele Npulse);m = 1:Npulse clsig(:,:,m) =杂波();结束

绘制杂波在20距离仓的角度-多普勒响应。

响应=分阶段。AngleDopplerResponse (“SensorArray”数组,......'运行频率'足球俱乐部,“PropagationSpeed”c脉冲重复频率的脉冲重复频率);plotResponse(响应,shiftdim (clsig (20::)),'标准化oppler',真的);

结果与通过使用获得的结果不相同constantGammaClutter由于CPU和GPU计算之间的差异。

模拟杂波从地形返回,伽马值为0 dB。当产生杂波时,输入雷达系统的发射信号。在这种情况下,您不需要在属性中指定信号的有效传输功率。

设置雷达系统的特性。该系统采用四元均匀线性阵列(ULA)。采样率为1 MHz, PRF为10 kHz。传播速度为光速,工作频率为300mhz。雷达平台在距地面1公里的高空飞行,其飞行路径沿阵列轴线平行于地面。平台速度为2000米/秒。主叶凹陷角为30°。

nele = 4;c = physconst(“光速”);fc = 300 e6;λ= c / fc;哈=分阶段。齿龈(“NumElements”Nele,'ElementsPacing'λ/ 2);fs = 1 e6;脉冲重复频率= 10 e3;身高= 1000;方向= [0]90;;速度= 2000;mountingAng =[0, 30日0];

创建GPU杂波仿真对象,并将其配置为将发送信号作为输入参数。配置假定地球是平的。感兴趣的最大杂波范围是5公里,最大方位覆盖率为±60°。

征求= 5000;Azcov = 120;tergamma = 0;混乱= gpuConstantGammaClutter (“传感器”,哈,......“PropagationSpeed”c'运行频率'足球俱乐部,脉冲重复频率的,prf,......'采样率'fs,“伽马”tergamma,“EarthModel”“平”......“TransmitSignalInputPort”,真的,'platformheight'、身高、......“PlatformSpeed”,速度,“PlatformDirection”、方向、......“MountingAngles”,Mountingang,“ClutterMaxRange”,rmax,......“ClutterAzimuthSpan”Azcov,'Seedsource'“属性”“种子”, 40547);

模拟10个脉冲的杂波返回。在每个对象调用时,将传输信号作为输入参数传递。该软件自动计算信号的有效传输功率。发射信号为脉冲宽度为2 μs的矩形波形。

tpower = 5000;pw = 2 e-6;X = tpower *的(地板(pw * fs), 1);Nsamp = fs /脉冲重复频率;Npulse = 10;clsig = 0 (Nsamp Nele Npulse);m = 1:npulse clsig(:,:m)= clutter(x);结束

绘制杂波在20距离仓的角度-多普勒响应。

响应=分阶段。AngleDopplerResponse (“SensorArray”,哈,......'运行频率'足球俱乐部,“PropagationSpeed”c脉冲重复频率的脉冲重复频率);plotResponse(响应,shiftdim (clsig (20::)),......'标准化oppler',真的);

结果与通过使用获得的结果不相同constantGammaClutter由于CPU和GPU计算之间的差异。

在大多数情况下,GPU和CPU使用不同的随机数并不重要。有时,您可能需要在GPU和CPU上复制相同的流。在这种情况下,您可以设置两个全局流,使它们产生相同的随机数。GPU和CPU都支持组合的多重递归金宝app生成器(mrg32k3a)普通阵列参数设置为“反转”

定义一个种子值用于GPU流和CPU流。

种子= 7151;

创建一个CPU随机数流,使用组合的多个递归生成器和所选的种子值。然后,使用这个流作为CPU上生成随机数的全局流。

stream_cpu = RandStream (“CombRecursive”“种子”,种子,......“NormalTransform”“反转”);RandStream.setGlobalStream (stream_cpu);

创建一个GPU随机数流,使用组合的多个递归生成器和相同的种子值。然后,使用这个流作为GPU上随机数生成的全局流。

stream_gpu = parallel.gpu.RandStream (“CombRecursive”“种子”,种子,......“NormalTransform”“反转”);parallel.gpu.randstream.setGlobalStream(Stream_GPU);

在CPU和GPU上生成杂波,在每个平台上使用全局流。

clutter_cpu = contanctgammacluttut('Seedsource''汽车');clutter_gpu = gpuConstantGammaClutter ('Seedsource''汽车');cl_cpu = clutter_cpu ();cl_gpu = clutter_gpu ();

检查CPU和GPU结果之间的元素明智差异可忽略不计。

maxdiff = max(max(abs(cl_cpu  -  cl_gpu)))))
maxdiff = 3.4027 e-18
每股收益
ans = 2.2204 e-16

参考文献

[1]巴顿,大卫。雷达设计与分析的地面杂波模型IEEE论文集.1985年2月,第73卷第2期,198-204页。

朗(Maurice W. Long)陆地和海洋的雷达反射率,3 ed。波士顿:Artech House,2001。

[3]牛森,弗雷德E.,J.Patrick Reilly和Marvin N. Cohen。雷达的设计原则, 2版。台北:科学技术出版社,1999。

[4]病房,J。“空中雷达数据系统时空自适应处理”,技术报告1015.1994年12月,麻省理工学院林肯实验室。

扩展能力

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

GPU代码生成
使用GPU编码器™生成NVIDIA®GPU的CUDA®代码。

介绍了R2021a