exponenta event banner

шаг

Системный объект: gpuConstantGammaClutter

Имитация загромождения с использованием постоянной гамма-модели

Синтаксис

Y = step(H)
Y = step(H,X)
Y = step(H,STEERANGLE)
Y = step(H,WS)
Y = step(H,PRFIDX)
Y = step(H,X,STEERANGLE)

Описание

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной системным object™, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Y = step(H) вычисляет возврат собранного нагромождения на каждом датчике. Этот синтаксис доступен при установке TransmitSignalInputPort свойство для false.

Y = step(H,X) определяет сигнал передачи в X. Сигнал передачи относится к выходному сигналу передатчика, когда он включен во время данного импульса. Этот синтаксис доступен при установке TransmitSignalInputPort свойство для true.

Y = step(H,STEERANGLE) использование STEERANGLE в качестве угла поворота подрешетки. Этот синтаксис доступен при настройке H чтобы H.Sensor - массив, содержащий подмагистрали и H.Sensor.SubarraySteering является либо 'Phase' или 'Time'.

Y = step(H,WS) использование WS в виде весов, применяемых к каждому элементу внутри каждого подрешетки. Чтобы использовать этот синтаксис, установите Sensor для массива, который поддерживает подмагистрали и задает SubarraySteering свойство массива to 'Custom'.

Y = step(H,PRFIDX) использует индекс, PRFIDX, для выбора PRF из заранее определенного списка PRF, указанного PRF собственность. Чтобы включить этот синтаксис, установите PRFSelectionInputPort кому true.

Y = step(H,X,STEERANGLE) объединяет все входные аргументы. Этот синтаксис доступен при настройке H чтобы H.TransmitSignalInputPort является true, H.Sensor - массив, содержащий подмагистрали, и H.Sensor.SubarraySteering является либо 'Phase' или 'Time'.

Входные аргументы

H

Объект постоянного гамма-загромождения.

X

Сигнал передачи, заданный как вектор столбца типа данных double. Объект System обрабатывает передачу данных между CPU и GPU.

STEERANGLE

Угол поворота подрешетки в градусах. STEERANGLE может быть вектором столбца длиной 2 или скаляром.

Если STEERANGLE - вектор длины-2, он имеет вид [азимут; отметка]. Угол азимута должен быть от -180 градусов до 180 градусов, а угол места - от -90 градусов до 90 градусов.

Если STEERANGLE - скаляр, он представляет азимутальный угол. В этом случае предполагается, что угол возвышения равен 0.

WS

Веса элементов субчипов

Веса элементов субчипов, заданные как матрица NSE-by-N с комплексными значениями или 1-by-N массив ячеек, где N - количество субчипов. Эти веса применяются к отдельным элементам в пределах подрешетки.

Веса элементов субчипов

Массив датчиковВеса субчипов
phased.ReplicatedSubarray

Все субчипы имеют одинаковые размеры и размеры. Затем веса субчипов образуют матрицу NSE-by-N. NSE - количество элементов в каждом подрешете, а N - количество подрешеток. Каждый столбец WS определяет веса для соответствующего подмассива.

phased.PartitionedArray

Если подмагистрали не имеют одинаковых размеров и размеров, можно указать веса подмагистралей как

  • матрица NSE-на-N, где NSE теперь является числом элементов в наибольшем подчищении. Первые Q элементов в каждом столбце являются весами элементов для подрешетки, где Q - количество элементов в подрешетке.

  • массив ячеек 1-by-N. Каждая ячейка содержит вектор столбцов весов для соответствующего подрешетки. Векторы столбцов имеют длины, равные количеству элементов в соответствующем подрешетке.

Зависимости

Чтобы включить этот аргумент, установите Sensor для массива, который содержит подмагистрали и задает SubarraySteering свойство массива to 'Custom'.

PRFIDX

Индекс частоты повторения импульсов, определяемый как положительное целое число. Индекс выбирает одну из записей, указанных в PRF свойство в качестве PRF для следующей передачи.

Пример: 4

Зависимости

Чтобы включить этот аргумент, установите PRFSelectionInputPort кому true.

Выходные аргументы

Y

Собранное загромождение на каждом датчике. Y имеет размеры N-на-М. Если H.Sensor содержит подрешетки, М - количество подрешеток в радиолокационной системе. В противном случае это количество датчиков. При установке OutputFormat свойство для 'Samples', N определяется NumSamples собственность. При установке OutputFormat свойство для 'Pulses'N - общее число выборок в следующих L импульсах. В этом случае L определяется NumPulses собственность.

Примеры

развернуть все

Смоделировать возврат беспорядка с местности с гамма-значением 0 дБ. Эффективная передаваемая мощность радиолокационной системы составляет 5 кВт.

Настройка характеристик радиолокационной системы. Эта система использует 4-элементный однородный линейный массив (ULA). Частота дискретизации составляет 1 МГц, а PRF - 10 кГц. Скорость распространения - это скорость света, а рабочая частота - 300 МГц. Радиолокационная платформа летит на 1 км над землей с траекторией, параллельной земле по оси решетки. Скорость платформы - 2000 м/с. Основной блок имеет угол углубления 30∘.

Nele = 4;
c = physconst('Lightspeed');
fc = 300e6;
lambda = c/fc;
array = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000.0;
direction = [90;0];
speed = 2.0e3;
depang = 30.0;
mountingAng = [0,30,0];

Создайте объект моделирования загромождения графического процессора. Конфигурация предполагает, что земля плоская. Максимальный диапазон загромождения составляет 5 км, а максимальный азимутальный охват - ±60∘.

Rmax = 5000;
Azcov = 120;
tergamma = 0;
tpower = 5000;
clutter = gpuConstantGammaClutter('Sensor',array, ...
    'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf, ...
    'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat' ,...
    'TransmitERP',tpower,'PlatformHeight',height, ...
    'PlatformSpeed',speed,'PlatformDirection',direction, ...
    'MountingAngles',mountingAng,'ClutterMaxRange',Rmax, ...
    'ClutterAzimuthSpan',Azcov,'SeedSource','Property', ...
    'Seed',40547);

Смоделировать возврат беспорядка для 10 импульсов.

Nsamp = fs/prf;
Npulse = 10;
clsig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
    clsig(:,:,m) = clutter();
end

Постройте график углово-доплеровской характеристики загромождения в 20-м бункере диапазона.

response = phased.AngleDopplerResponse('SensorArray',array, ...
    'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(response,shiftdim(clsig(20,:,:)),'NormalizeDoppler',true);

Результаты не идентичны результатам, полученным при использовании constantGammaClutter из-за различий между вычислениями CPU и GPU.

Смоделировать возврат беспорядка с местности с гамма-значением 0 дБ. Сигнал передачи радиолокационной системы вводится при создании загромождения. В этом случае в свойстве не указывается эффективная передаваемая мощность сигнала.

Настройка характеристик радиолокационной системы. Эта система имеет 4-элементный однородный линейный массив (ULA). Частота дискретизации составляет 1 МГц, а PRF - 10 кГц. Скорость распространения - это скорость света, а рабочая частота - 300 МГц. Радиолокационная платформа летит на 1 км над землей с траекторией, параллельной земле по оси решетки. Скорость платформы - 2000 м/с. Мейнлобе имеет угол углубления 30 °.

Nele = 4;
c = physconst('LightSpeed');
fc = 300e6;
lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000;
direction = [90;0];
speed = 2000;
mountingAng = [0,30,0];

Создайте объект моделирования загромождения GPU и настройте его для использования переданного сигнала в качестве входного аргумента. Конфигурация предполагает, что земля плоская. Максимальный диапазон загромождения составляет 5 км, а максимальный азимутальный охват ± 60 °.

Rmax = 5000;
Azcov = 120;
tergamma = 0;
clutter = gpuConstantGammaClutter('Sensor',ha,...
    'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
    'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
    'TransmitSignalInputPort',true,'PlatformHeight',height,...
    'PlatformSpeed',speed,'PlatformDirection',direction,...
    'MountingAngles',mountingAng,'ClutterMaxRange',Rmax,...
    'ClutterAzimuthSpan',Azcov,'SeedSource','Property','Seed',40547);

Смоделировать возврат беспорядка для 10 импульсов. При каждом вызове объекта передайте сигнал передачи в качестве входного аргумента. Программное обеспечение автоматически вычисляет эффективную передаваемую мощность сигнала. Передающий сигнал представляет собой прямоугольный сигнал с шириной импульса 2 мкс.

tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf;
Npulse = 10;
clsig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
    clsig(:,:,m) = clutter(X);
end

Постройте график углово-доплеровской характеристики загромождения в 20-м бункере диапазона.

response = phased.AngleDopplerResponse('SensorArray',ha,...
    'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(response,shiftdim(clsig(20,:,:)),...
    'NormalizeDoppler',true);

Результаты не идентичны результатам, полученным при использовании constantGammaClutter из-за различий между вычислениями CPU и GPU.

Совет

Имитация беспорядка, которая constantGammaClutter условия основаны на следующих допущениях:

  • Радиолокационная система является моностатической.

  • Распространение происходит в свободном пространстве.

  • Рельеф местности однородный.

  • Нагромождение является неподвижным во время когерентности. Время когерентности показывает, как часто программа изменяет набор случайных чисел при моделировании беспорядка.

  • Поскольку сигнал является узкополосным, пространственный отклик и доплеровский сдвиг могут аппроксимироваться фазовыми сдвигами.

  • Радиолокационная система поддерживает постоянную высоту во время моделирования.

  • Радиолокационная система поддерживает постоянную скорость во время моделирования.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.