主要内容

gpuConstantGammaClutter

使用GPU模拟常量伽玛杂波

描述

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

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

计算杂波返回值:

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

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

杂波模拟康斯坦格曼杂波提供的数据基于以下假设:

  • 雷达系统是单基地的。

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

  • 地形是均匀的。

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

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

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

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

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

建设

H= gpuconstantgammaclutter创建恒定伽马杂波模拟系统对象,H。此对象使用恒定伽马模型模拟单基地雷达系统的杂波回波。

H=gpuConstantGammaClutter(名称、值)创建恒定伽马杂波模拟对象,H,具有一个或多个指定的附加选项名称、值对论点。的名字是一个属性名,及价值为对应值。的名字必须出现在单引号内('')。您可以以任何顺序指定多个名称值对参数名称1,值1,…,名称,值

属性

传感器

处理的传感器

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

违约:淘汰使用默认属性值

伽玛

地形伽马值

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

违约:0

土木师

地球模型

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

违约:“平坦”

ClutterMinRange

杂波区域的最小范围(m)

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

违约:0

杂波最大范围

杂波区域的最大范围(m)

指定计算杂波返回的最大范围。对于杂波模拟,将其作为正标量。最大范围必须大于PlatformHeight财产。单位以米为单位。

违约:5000

杂波方位中心

杂波区域方位中心(度)

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

违约:0

Clutterazimuthspan.

杂波片方位角跨度(deg)

将杂波区域的方位角(以分度)的覆盖范围指定为正标量。杂波仿真覆盖了具有指定方位角跨度的区域,对称杂波方位中心.通常,所有杂波斑块都有其区域内的方位角,但是方位角板值会导致某些面片延伸到区域之外。

违约:60

方位角板

杂波片方位角跨度(deg)

将每个杂波面片的方位跨度(以度为单位)指定为正标量。

违约:1

CoherenceTime

杂波相干时间

将杂波仿真作为正标量的杂波模拟指定相干时间。经过相干时间经过一步方法在下一个脉冲时更新用于杂波模拟的随机数。价值INF.意味着随机数永远不会更新。

违约:INF.

繁殖

信号传播速度

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

违约:光的速度

SampleRate

采样率

将采样率(以赫兹为单位)指定为正标量。默认值对应于1 MHz。

违约:1e6

脉冲重复频率

脉冲重复频率

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

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

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

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

  • 什么时候PRF选择输入端口假的,您设置了脉冲重复频率仅使用属性。你可以

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

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

  • 什么时候PRF选择输入端口真的,您可以实现一个可选择的脉冲重复频率通过指定脉冲重复频率作为一个具有正实值元素的行向量。但这次,当你执行一步方法,选择一个脉冲重复频率通过将指定索引的参数传递到脉冲重复频率向量。

在所有情况下,当您设置输出格式财产“样本”. 当你使用不同的脉冲重复频率设定输出格式财产“脉搏”,样本数量可能会有所不同。

违约:10 e3

PRF选择输入端口

启用PRF选择输入

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

违约:假的

输出格式

输出信号格式

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

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

违约:“脉搏”

小脉冲

输出脉冲数

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

违约:1

numsamples.

输出中的样本数

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

违约:One hundred.

OperatingFrequency

系统工作频率

将系统的工作频率(以赫兹为单位)指定为正标量。默认值对应于300 MHz。

违约:3E8.

传输信号输入端口

添加输入以指定传输信号

将此属性设置为真的添加输入以指定一步句法。将此属性设置为假的中省略发送信号一步语法。这个假的选项较少计算地昂贵;要使用此选项,您还必须指定传输器财产。

违约:假的

重量输入

启用权重输入

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

违约:假的

传输器

有效的传播权力

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

违约:5000

PlatformHeight

雷达平台距离地面的高度

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

违约:300

平台速度

雷达平台速度

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

违约:300

平台方向

雷达平台运动方向

以[AzimuthAngle;ElevationAngle]的形式(以度为单位)将雷达平台的运动方向指定为2 x 1矢量。此属性的默认值表示平台垂直于雷达天线阵列的侧面移动。

方位角和仰角均在雷达天线或天线阵列的本地坐标系中测量。方位角必须介于–180和180度之间。仰角必须介于–90和90度之间。

违约:[90; 0]

MountingAngles

传感器安装角度(度)

指定一个3元件向量,其给出来自惯性框架的固有偏航,俯仰和传感器框架的卷。3个元素以该顺序分别定义Z,Y和X轴周围的旋转。第一旋转,围绕Z轴旋转主体轴。因为这些角度限定了固有旋转,所以在y轴上围绕y轴进行第二旋转,以其在先前的旋转产生的新位置。X轴周围的最终旋转围绕X轴进行,如本型系统中的前两个旋转旋转。

违约:[0 0 0]

SeedSource

随机数发生器的种子源

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

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

违约:“汽车”

种子

随机数发生器种子

将随机数生成器的种子指定为介于0和2之间的标量整数32–1.当您设置SeedSource财产'财产'

违约:0

方法

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

允许系统对象属性值更改

例子

全部崩溃

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

设置雷达系统的特性。该系统采用4单元均匀线阵(ULA)。采样率为1MHz,PRF为10kHz。传播速度为光速,工作频率为300 MHz。雷达平台在地面上方1公里处飞行,其路径沿阵列轴与地面平行。平台速度为2000米/秒。主瓣的俯角为30

Nele = 4;c = physconst (“光速”);fc = 300 e6;λ= c / fc;数组=分阶段。齿龈('numElements',内尔,“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

Rmax=5000;Azcov=120;tergamma=0;t功率=5000;杂波=gpuConstantGammaClutter(“传感器”,大批,...'繁殖'C“OperatingFrequency”,fc,“PRF”脉冲重复频率,...“SampleRate”,财政司司长,“伽马”,tergamma,“地球模型”,“平坦”,...“TransmitERP”,tpower,“PlatformHeight”,身高,...“平台速度”,速度,“平台方向”,方向,...'mountingangles'mountingAng,'cluttermaxrange'做,...“杂波方位角扫描”,阿兹科夫,“SeedSource”,'财产',...“种子”,40547);

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

Nsamp=fs/prf;Npulse=10;clsig=零(Nsamp、Nele、Npulse);对于m = 1:Npulse clsig(:,:,m) =杂波();结束

绘制杂波在第20个距离单元的角度多普勒响应。

响应=相位。角度请响应(“传感器阵列”,大批,...“OperatingFrequency”,fc,'繁殖'C“PRF”,prf);plotresponse(响应,shiftdim(clsig(20,:,:)),“NormalizeDoppler”,真正的);

计算结果与实际应用结果不完全相同康斯坦格曼杂波因为CPU和GPU计算的不同。

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

设置雷达系统的特征。该系统具有4单元均匀线阵(ULA).采样率为1 MHz,PRF为10 kHz。传播速度为光速,工作频率为300 MHz。雷达平台在地面上方1 km处飞行,路径沿阵列轴平行于地面。平台速度为2000 m/s。主瓣的俯角为30°。

Nele = 4;c = physconst ('LightSpeed'); fc=300e6;λ=c/fc;ha=相控。ULA('numElements',内尔,“ElementSpacing”,λ/2);fs=1e6;prf=10e3;高度=1000;方向=[90;0];速度=2000;mountingAng=[0,30,0];

创建GPU杂波模拟对象,并将其配置为以传输信号作为输入参数。这种构型假设地球是平的。感兴趣的最大杂波范围为5 km,最大方位角覆盖为±60°。

rmax = 5000;Azcov = 120;Tergamma = 0;Clutter = GpuconstantGammaclutter(“传感器”,哈,...'繁殖'C“OperatingFrequency”,fc,“PRF”脉冲重复频率,...“SampleRate”,财政司司长,“伽马”,tergamma,“地球模型”,“平坦”,...“传输信号输入端口”,真的,“PlatformHeight”,身高,...“平台速度”,速度,“平台方向”,方向,...'mountingangles'mountingAng,'cluttermaxrange'做,...“杂波方位角扫描”,阿兹科夫,“SeedSource”,'财产',“种子”,40547);

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

t功率=5000;pw=2e-6;X=功率*个(地板(pw*fs),1);Nsamp=fs/prf;Npulse=10;clsig=零(Nsamp、Nele、Npulse);对于m = 1:Npulse clsig(:,:,m) =杂波(X);结束

绘制杂波在第20个距离单元的角度多普勒响应。

响应=相位。角度请响应(“传感器阵列”,哈,...“OperatingFrequency”,fc,'繁殖'C“PRF”,prf);plotresponse(响应,shiftdim(clsig(20,:,:)),...“NormalizeDoppler”,真正的);

计算结果与实际应用结果不完全相同康斯坦格曼杂波因为CPU和GPU计算的不同。

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

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

种子=7151;

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

Stream_cpu = randstream('幸福父母',“种子”种子,...'nuarmtransform','反转'); setGlobalStream(流处理器);

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

stream\gpu=parallel.gpu.RandStream('幸福父母',“种子”种子,...'nuarmtransform','反转');parallel.gpu.RandStream.setGlobalStream (stream_gpu);

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

clutter_cpu = constantGammaClutter (“SeedSource”,“汽车”);clutter_gpu = gpuconstantgammaclutter(“SeedSource”,“汽车”);cl_cpu=杂波_cpu();cl_gpu=杂波_gpu();

检查CPU和GPU结果之间的元素差异是否可以忽略。

Maxdiff = max(max(abs(cl_cpu - cl_gpu)))
maxdiff = 3.4027e-18
EPS
ans=2.2204e-16

参考

[1] 大卫,巴顿。“用于雷达设计和分析的地杂波模型,”IEEE会议录.卷。73,2月2日,1985年2月,第198-204页。

[2] 长,莫里斯W。陆地和海洋的雷达反射率波士顿:Artech House, 2001。

[3]内桑森,弗雷德·E, j·帕特里克·雷利和马文·n·科恩。雷达设计原则,第二次。Mendham,NJ:Scitech Publishing,1999。

机载雷达数据系统的时空自适应处理技术报告1015,1994年12月的MIT LINCOLN实验室。

扩展功能

C / C ++代码生成
使用Matlab®编码器生成C和C++代码™.

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

在R2021a中引入