主要内容

gpuConstantGammaClutter

使用GPU模拟常量伽玛杂波

描述

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

请注意

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

计算杂波返回值:

  1. 定义并设置你的杂波模拟器。看到建设

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

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

  • 雷达系统是单站的。

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

  • 地形均匀。

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

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

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

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

请注意

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

建设

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

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

属性

传感器

处理的传感器

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

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

γ

地形伽马值

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

默认值:0

EarthModel

地球模型

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

默认值:“平”

ClutterMinRange

杂波区域最小范围(m)

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

默认值:0

ClutterMaxRange

最大杂波区域范围(m)

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

默认值:5000

ClutterAzimuthCenter

杂波区域方位角中心(deg)

产生杂波斑的地平面上的方位角。斑块是围绕这个角度对称生成的。

默认值:0

ClutterAzimuthSpan

杂波片方位角跨度(deg)

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

默认值:60

PatchAzimuthSpan

杂波片方位角跨度(deg)

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

默认值:1

CoherenceTime

杂波相干时间

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

默认值:

PropagationSpeed

信号传播速度

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

默认值:光的速度

SampleRate

采样率

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

默认值:1 e6

脉冲重复频率

脉冲重复频率

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

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

  • 抽样率与的任何元素的比率脉冲重复频率必须是整数。这个条件表示一个脉冲重复间隔内的采样数为整数的要求。

可以选择的值脉冲重复频率属性设置单独使用或与属性设置一起使用prfidx输入参数一步方法。

  • PRFSelectionInputPort,则设置脉冲重复频率使用属性。你可以

    • 实现一个常数脉冲重复频率通过指定脉冲重复频率作为一个正实值标量。

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

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

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

默认值:10 e3

PRFSelectionInputPort

启用PRF选择输入

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

默认值:

OutputFormat

输出信号格式

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

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

默认值:“脉冲”

NumPulses

输出脉冲数

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

默认值:1

NumSamples

输出的样本数量

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

默认值:One hundred.

OperatingFrequency

系统工作频率

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

默认值:3 e8

TransmitSignalInputPort

添加输入以指定发送信号

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

默认值:

WeightsInputPort

使重量输入

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

默认值:

TransmitERP

有效的传输功率

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

默认值:5000

PlatformHeight

雷达平台距离地面的高度

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

默认值: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之间的标量整数321。属性设置时将应用此属性SeedSource财产“属性”

默认值:0

方法

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

允许系统对象属性值改变

例子

全部折叠

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

设置雷达系统的特性。该系统采用四元均匀线性阵列(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;方向= [0]90;;速度= 2.0 e3;depang = 30.0;mountingAng =[0, 30日0];

创建GPU杂波模拟对象。这种构型假设地球是平的。感兴趣的最大杂波范围为5 km,最大方位角覆盖为 ± 6 0

征求= 5000;Azcov = 120;tergamma = 0;tpower = 5000;混乱= gpuConstantGammaClutter (“传感器”数组,...“PropagationSpeed”c“OperatingFrequency”足球俱乐部,脉冲重复频率的脉冲重复频率,...“SampleRate”fs,“伽马”tergamma,“EarthModel”“平”...“TransmitERP”tpower,“PlatformHeight”、身高、...“PlatformSpeed”,速度,“PlatformDirection”、方向、...“MountingAngles”mountingAng,“ClutterMaxRange”做,...“ClutterAzimuthSpan”Azcov,“SeedSource”“属性”...“种子”, 40547);

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

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

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

响应=分阶段。AngleDopplerResponse (“SensorArray”数组,...“OperatingFrequency”足球俱乐部,“PropagationSpeed”c脉冲重复频率的脉冲重复频率);plotResponse(响应,shiftdim (clsig (20::)),“NormalizeDoppler”,真正的);

计算结果与实际应用结果不完全相同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 km,最大方位角覆盖为±60°。

征求= 5000;Azcov = 120;tergamma = 0;混乱= gpuConstantGammaClutter (“传感器”,哈,...“PropagationSpeed”c“OperatingFrequency”足球俱乐部,脉冲重复频率的脉冲重复频率,...“SampleRate”fs,“伽马”tergamma,“EarthModel”“平”...“TransmitSignalInputPort”,真的,“PlatformHeight”、身高、...“PlatformSpeed”,速度,“PlatformDirection”、方向、...“MountingAngles”mountingAng,“ClutterMaxRange”做,...“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) =杂波(X);结束

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

响应=分阶段。AngleDopplerResponse (“SensorArray”,哈,...“OperatingFrequency”足球俱乐部,“PropagationSpeed”c脉冲重复频率的脉冲重复频率);plotResponse(响应,shiftdim (clsig (20::)),...“NormalizeDoppler”,真正的);

计算结果与实际应用结果不完全相同constantGammaClutter因为CPU和GPU计算的不同。

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

定义一个种子值用于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 = constantGammaClutter (“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)陆地和海洋的雷达反射率波士顿:Artech House, 2001。

[3]内桑森,弗雷德·E, j·帕特里克·雷利和马文·n·科恩。雷达的设计原则, 2版。台北:科学技术出版社,1999。

机载雷达数据系统的时空自适应处理技术报告10151994年12月,麻省理工学院林肯实验室。

扩展功能

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

GPU的代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

介绍了R2021a