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 соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как 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