phased.gpu. ConstantGammaClutter

Моделируйте помеху постоянной гаммы с помощью графического процессора

Описание

Объект phased.gpu.ConstantGammaClutter моделирует помеху, выполняя вычисления на графическом процессоре.

Примечание

Чтобы использовать этот объект, необходимо установить лицензию Parallel Computing Toolbox™ и иметь доступ к соответствующему графическому процессору. Для больше о графических процессорах, смотрите, что графический процессор Вычисляет (Parallel Computing Toolbox).

Чтобы вычислить помеху, возвратитесь:

  1. Задайте и настройте свое средство моделирования помехи. Смотрите Конструкцию.

  2. Вызов step, чтобы моделировать помеху возвращается для вашей системы согласно свойствам phased.gpu.ConstantGammaClutter. Поведение step характерно для каждого объекта в тулбоксе.

Симуляция помехи, которую обеспечивает ConstantGammaClutter, основана на этих предположениях:

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

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

  • Ландшафт является гомогенным.

  • Закрашенная фигура помехи является стационарной в течение времени когерентности. Coherence time указывает, как часто программное обеспечение изменяет набор случайных чисел в симуляции помехи.

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

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

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

Примечание

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

Конструкция

H = phased.gpu.ConstantGammaClutter создает Системный объект симуляции помехи постоянной гаммы, H. Этот объект моделирует помеху, возвращаются из моностатической радиолокационной системы с помощью постоянной гамма модели.

H = phased.gpu.ConstantGammaClutter(Name,Value) создает постоянный гамма объект симуляции помехи, H, с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value. Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,…,NameN,ValueN.

Свойства

Sensor

Указатель датчика

Задайте датчик как объект элемента антенны или как объект массивов, значение свойства Element которого является объектом элемента антенны. Если датчик является массивом, он может содержать подмассивы.

Значение по умолчанию: phased.ULA со значениями свойств по умолчанию

PropagationSpeed

Скорость распространения сигнала

Задайте скорость распространения сигнала, в метрах в секунду, как положительная скалярная величина.

Значение по умолчанию: Скорость света

OperatingFrequency

Система рабочая частота

Задайте рабочую частоту системы в герц как положительная скалярная величина. Значение по умолчанию соответствует 300 МГц.

Значение по умолчанию: 3e8

SampleRate

Частота дискретизации

Задайте частоту дискретизации, в герц, как положительная скалярная величина. Значение по умолчанию соответствует 1 МГц.

Значение по умолчанию: 1e6

PRF

Импульсная частота повторения

Импульсная частота повторения, PRF, заданный как скаляр или вектор - строка. Модули находятся в Гц. Импульсный интервал повторения, PRI, является инверсией импульсной частоты повторения, PRF. ThePRF должен удовлетворить эти ограничения:

  • Продукт PRF и PulseWidth должен быть меньше чем или равен одному. Это условие выражает требование, чтобы ширина импульса была меньше чем одним импульсным интервалом повторения. Для закодированной фазой формы волны ширина импульса является продуктом ширины чипа и количеством микросхем.

  • Отношение частоты дискретизации к любому элементу PRF должно быть целым числом. Это условие выражает требование, чтобы количество выборок в одном импульсном интервале повторения было целым числом.

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

  • Когда PRFSelectionInputPort является false, вы устанавливаете свойства использования PRF только. Вы можете

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

    • реализуйте ступенчатый PRF путем определения PRF как вектора - строки с положительными записями с действительным знаком. Затем каждый вызов метода step использует последовательные элементы этого вектора для PRF. Если последний элемент вектора достигнут, процесс продолжается циклически первым элементом вектора.

  • Когда PRFSelectionInputPort является true, можно реализовать выбираемый PRF путем определения PRF как вектора - строки с положительными записями с действительным знаком. Но на этот раз, когда вы выполняете метод step, выбирают PRF путем передачи аргумента, задающего индекс в вектор PRF.

Во всех случаях фиксируется количество выходных выборок, когда вы устанавливаете свойство OutputFormat на 'Samples'. Когда вы используете переменный PRF и устанавливаете свойство OutputFormat на 'Pulses', количество выборок может отличаться.

Значение по умолчанию: 10e3

PRFSelectionInputPort

Включите вход выбора PRF

Включите вход выбора PRF, заданный как true или false. Когда вы устанавливаете это свойство на false, метод шага использует набор значений в свойстве PRF. Когда вы устанавливаете это свойство на true, вы передаете индексный аргумент в метод step, чтобы выбрать значение из вектора PRF.

По умолчанию: false

Gamma

Гамма значение ландшафта

Задайте γ значение используется в константе γ создайте помехи модели как скаляр в децибелах. γ значение зависит и от типа ландшафта и от рабочей частоты.

Значение по умолчанию: 0

EarthModel

Модель Earth

Задайте наземную модель, используемую в симуляции помехи в качестве одного из | 'Flat' | 'Curved' |. Когда вы устанавливаете это свойство на 'Flat', земля принята, чтобы быть плоской плоскостью. Когда вы устанавливаете это свойство на 'Curved', земля принята, чтобы быть сферой.

Значение по умолчанию: 'Flat'

PlatformHeight

Радарная высота платформы от поверхности

Задайте радарную высоту платформы (в метрах) измеренный вверх от поверхности как неотрицательный скаляр.

Значение по умолчанию: 300

PlatformSpeed

Радарная скорость платформы

Задайте радарную скорость платформы как неотрицательный скаляр в метрах в секунду.

Значение по умолчанию: 300

PlatformDirection

Направление радарного движения платформы

Задайте направление радарного движения платформы как 2 1 вектор в форме [AzimuthAngle; ElevationAngle] в градусах. Значение по умолчанию этого свойства указывает, что платформа перемещает перпендикуляр в радарный разворот антенной решетки.

И азимут и угол повышения измеряются в системе локальной координаты радара антенная или антенная решетка. Угол азимута должен быть между –180 и 180 градусами. Угол повышения должен быть между –90 и 90 градусами.

Значение по умолчанию: [90;0]

BroadsideDepressionAngle

Угол депрессии разворота массивов

Задайте угол депрессии в градусах разворота радарной антенной решетки. Это значение является скаляром. Разворот задан как нулевой азимут степеней и нулевое повышение степеней. Угол депрессии измеряется вниз от горизонтали.

Значение по умолчанию: 0

MaximumRange

Максимальная область значений для симуляции помехи

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

Значение по умолчанию: 5000

AzimuthCoverage

Покрытие азимута для симуляции помехи

Задайте покрытие азимута в градусах как положительную скалярную величину. Симуляция помехи покрывает область, имеющую заданный промежуток азимута, симметричный к 0 азимутам степеней. Как правило, все закрашенные фигуры помехи имеют свои центры азимута в области, но значение PatchAzimuthWidth может заставить некоторые закрашенные фигуры расширять вне области.

Значение по умолчанию: 60

PatchAzimuthWidth

Промежуток азимута каждой закрашенной фигуры помехи

Задайте промежуток азимута каждой закрашенной фигуры помехи в градусах как положительная скалярная величина.

Значение по умолчанию: 1

TransmitSignalInputPort

Добавьте вход, чтобы задать сигнал передачи

Установите это свойство на true добавлять вход, чтобы задать сигнал передачи в синтаксисе step. Установите это свойство на false, не используют сигнал передачи в синтаксисе step. Опция false является менее в вычислительном отношении дорогой; чтобы использовать эту опцию, необходимо также задать свойство TransmitERP.

По умолчанию: false

TransmitERP

Эффективная переданная степень

Задайте переданную эффективную излучаемую мощность (ERP) радиолокационной системы в ваттах как положительная скалярная величина. Это свойство применяется только, когда вы устанавливаете свойство TransmitSignalInputPort на false.

Значение по умолчанию: 5000

CoherenceTime

Создайте помехи времени когерентности

Задайте время когерентности в секундах для симуляции помехи как положительная скалярная величина. После того, как время когерентности протекает, метод step обновляет случайные числа, которые это использует для симуляции помехи в следующем импульсе. Значение inf означает, что случайные числа никогда не обновляются.

Значение по умолчанию: inf

OutputFormat

Формат выходного сигнала

Задайте формат выходного сигнала как один из | 'Pulses' | 'Samples' |. Когда вы устанавливаете свойство OutputFormat на 'Pulses', вывод метода step в форме нескольких импульсов. В этом случае количество импульсов является значением свойства NumPulses.

Когда вы устанавливаете свойство OutputFormat на 'Samples', вывод метода step в форме нескольких выборок. В этом случае количество выборок является значением свойства NumSamples. В ступенчатых приложениях PRF вы можете найти опцию 'Samples' более удобной, потому что step вывод всегда имеет тот же матричный размер.

Значение по умолчанию: 'Pulses'

NumPulses

Количество импульсов в выводе

Задайте количество импульсов в выводе метода step как положительное целое число. Это свойство применяется только, когда вы устанавливаете свойство OutputFormat на 'Pulses'.

Значение по умолчанию: 1

NumSamples

Количество выходных выборок

Задайте количество выходных выборок метода step как положительное целое число. Как правило, вы используете количество выборок в одном импульсе. Это свойство применяется только, когда вы устанавливаете свойство OutputFormat на 'Samples'.

Значение по умолчанию: 100

SeedSource

Источник seed для генератора случайных чисел

Задайте, как объект генерирует случайные числа. Значения этого свойства:

'Auto'

Случайные числа прибывают из глобального потока графического процессора случайных чисел.

'Auto' является соответствующим во множестве ситуаций. В частности, если вы хотите использовать алгоритм генератора кроме mrg32k3a, установите SeedSource на 'Auto'. Затем сконфигурируйте глобальный поток графического процессора случайных чисел, чтобы использовать генератор по вашему выбору. Можно сконфигурировать глобальный поток графического процессора случайных чисел с помощью parallel.gpu.RandStream и parallel.gpu.RandStream.setGlobalStream.

'Property'

Случайные числа прибывают из частного потока случайных чисел. Поток использует алгоритм генератора mrg32k3a с seed, заданным в свойстве Seed этого объекта.

Если вы не хотите, чтобы вычисления помехи влияли на глобальный поток графического процессора случайных чисел, установите SeedSource на 'Property'.

Значение по умолчанию: 'Auto'

Seed

Отберите для генератора случайных чисел

Задайте seed для генератора случайных чисел как скалярное целое число между 0 и 232–1. Это свойство применяется, когда вы устанавливаете свойство SeedSource на 'Property'.

Значение по умолчанию: 0

Методы

сбросСбросьте случайные числа и счет времени для симуляции помехи
шагМоделируйте помеху с помощью постоянной гамма модели
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

Моделируйте помеху, возвращаются из ландшафта с гамма значением 0 дБ. Эффективная переданная степень радиолокационной системы составляет 5 кВт.

Настройте характеристики радиолокационной системы. Эта система использует универсальную линейную матрицу (ULA) с 4 элементами. Частота дискретизации составляет 1 МГц, и PRF составляет 10 кГц. Скорость распространения является скоростью света, и рабочая частота составляет 300 МГц. Радарная платформа управляет 1 км над землей с путем, параллельным земле вдоль оси массивов. Скорость платформы составляет 2 000 м/с. mainlobe имеет угол депрессии 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;

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

Rmax = 5000;
Azcov = 120;
tergamma = 0;
tpower = 5000;
clutter = phased.gpu.ConstantGammaClutter('Sensor',array, ...
    'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf, ...
    'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat' ,...
    'TransmitERP',tpower,'PlatformHeight',height,...
    'PlatformSpeed',speed,'PlatformDirection',direction, ...
    'BroadsideDepressionAngle',depang,'MaximumRange',Rmax, ...
    'AzimuthCoverage',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);

Результаты не идентичны результатам, полученным при помощи phased.ConstantGammaClutter из-за различий между вычислениями центрального процессора и графического процессора.

Моделируйте помеху, возвращаются из ландшафта с гамма значением 0 дБ. Вы вводите сигнал передачи радиолокационной системы при создании помехи. В этом случае вы не задаете эффективную переданную степень сигнала в свойстве.

Настройте характеристики радиолокационной системы. Эта система имеет универсальную линейную матрицу (ULA) с 4 элементами. Частота дискретизации составляет 1 МГц, и PRF составляет 10 кГц. Скорость распространения является скоростью света, и рабочая частота составляет 300 МГц. Радарная платформа управляет 1 км над землей с путем, параллельным земле вдоль оси массивов. Скорость платформы составляет 2 000 м/с. mainlobe имеет угол депрессии 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;
depang = 30;

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

Rmax = 5000;
Azcov = 120;
tergamma = 0;
clutter = phased.gpu.ConstantGammaClutter('Sensor',ha,...
    'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
    'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
    'TransmitSignalInputPort',true,'PlatformHeight',height,...
    'PlatformSpeed',speed,'PlatformDirection',direction,...
    'BroadsideDepressionAngle',depang,'MaximumRange',Rmax,...
    'AzimuthCoverage',Azcov,'SeedSource','Property','Seed',40547);

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

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 из-за различий между вычислениями центрального процессора и графического процессора.

В большинстве случаев не имеет значения, что графический процессор и центральный процессор используют различные случайные числа. Иногда, вы, возможно, должны воспроизвести тот же поток и на графическом процессоре и на центральном процессоре. В таких случаях можно создать два глобальных потока, таким образом, они производят идентичные случайные числа. И графический процессор и центральный процессор поддерживают объединенное несколько рекурсивный генератор (mrg32k3a) с набором параметра NormalTransform к 'Inversion'.

Задайте значение seed, чтобы использовать и для потока графического процессора и для потока центрального процессора.

seed = 7151;

Создайте поток центрального процессора случайных чисел, который использует объединенное несколько рекурсивный генератор и выбранное значение seed. Затем используйте этот поток в качестве глобального потока для генерации случайных чисел на центральном процессоре.

stream_cpu = RandStream('CombRecursive','Seed',seed, ...
    'NormalTransform','Inversion');
RandStream.setGlobalStream(stream_cpu);

Создайте поток графического процессора случайных чисел, который использует объединенное несколько рекурсивный генератор и то же значение seed. Затем используйте этот поток в качестве глобального потока для генерации случайных чисел на графическом процессоре.

stream_gpu = parallel.gpu.RandStream('CombRecursive','Seed',seed, ...
    'NormalTransform','Inversion');
parallel.gpu.RandStream.setGlobalStream(stream_gpu);

Сгенерируйте помеху и на центральном процессоре и на графическом процессоре, с помощью глобального потока на каждой платформе.

clutter_cpu = phased.ConstantGammaClutter('SeedSource','Auto');
clutter_gpu = phased.gpu.ConstantGammaClutter('SeedSource','Auto');
cl_cpu = clutter_cpu();
cl_gpu = clutter_gpu();

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

maxdiff = max(max(abs(cl_cpu - cl_gpu)))
eps
maxdiff =

   4.6709e-18


ans =

   2.2204e-16

Ссылки

[1] Бартон, Дэвид. “Посадите Модели Помехи для Радарного Проекта и Анализа”, Продолжения IEEE. Издание 73, Номер 2, февраль 1985, стр 198–204.

[2] Долго, Морис В. Радарная отражающая способность земли и моря, 3-го Эда. Бостон: дом Artech, 2001.

[3] Нэзэнсон, Фред Э., Дж. Патрик Рейли и Марвин Н. Коэн. Радарные принципы разработки, 2-й Эд. Мендхем, NJ: SciTech Publishing, 1999.

[4] Опека, J. “Пространственно-временная адаптивная обработка для бортовых радарных систем передачи и обработки данных”, технический отчет 1015, MIT Lincoln Laboratory, декабрь 1994.

Представленный в R2012b

Для просмотра документации необходимо авторизоваться на сайте