phased.RangeResponse

Область значений отклика

Описание

The phased.RangeResponse Система object™ выполняет фильтрацию области значений на быстрых (диапазонных) данных, используя либо согласованный фильтр, либо основанный на FFT алгоритм. Выход обычно используется как вход к детектору. Согласованная фильтрация улучшает ОСШ импульсных форм волны. Для непрерывных FM-сигналов БПФ обработка извлекает частоту пульсации FMCW-сигналов. Частота пульсации напрямую связана с областью значений.

Вход объекта отклика области значений является кубом радиолокационных данных. Организация куба данных выполняется в соответствии с Phased Array System Toolbox™ соглашением.

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

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

  • Третья размерность, медленное время, представляет импульсы.

Фильтрация области значений работает по быстрой размерности куба. Обработка по другим размерностям не выполняется. Если данные содержат только один канал или импульс, кубик данных может содержать менее трех размерности. Поскольку этот объект не выполняет доплеровскую обработку, вы можете использовать объект для обработки некогерентных радиолокационных импульсов.

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

Чтобы вычислить ответ области значений:

  1. Определите и настройте свои phased.RangeResponse Системный объект. См. «Конструкция».

  2. Вызовите step метод для вычисления характеристики области значений с помощью свойств, заданных для phased.RangeResponse Системный объект.

Примечание

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

Конструкция

response = phased.RangeResponse создает объект области значений System отклика, response.

response = phased.RangeResponse(Name,Value) создает Системный объект, response, с каждым заданным свойством Name установить на заданную Value. Можно задать дополнительные аргументы в виде пар имен и значений в любом порядке как (Name1,Value1..., NameN,ValueN).

Свойства

расширить все

Метод обработки области значений, заданный как 'Matched filter' или 'FFT'.

  • 'Matched filter' - Объект соответствует - фильтрует входящий сигнал. Этот подход обычно используется для импульсных сигналов, где согласованный фильтр является реверсом времени переданного сигнала.

  • 'FFT' - Объект применяет БПФ к входному сигналу. Этот подход обычно используется для щебечных сигналов, таких как FMCW и линейные FM импульсные сигналы.

Пример: 'Matched filter'

Типы данных: char

Скорость распространения сигнала, заданная как реальная положительная скалярная величина. Модули указаны в метрах в секунду. Скорость распространения по умолчанию является значением, возвращаемым physconst('LightSpeed').

Пример: 3e8

Типы данных: single | double

Скорость выборки сигнала, заданная как положительный реальный скаляр. Модули указаны в герцах.

Пример: 1e6

Типы данных: single | double

Линейный откос FM-сдвига, заданный как скаляр. Быстрая размерность signal входной параметр в step должен соответствовать сдвигам, имеющим этот уклон.

Пример: 1.5e9

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT'.

Типы данных: single | double

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

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT'.

Типы данных: logical

Десятикратное уменьшение для децирпированных сигналов, заданный как положительное целое число. Алгоритм десятикратного уменьшения использует фильтр конечной импульсной характеристики 30-го порядка, сгенерированный fir1(30,1/D), где D - десятикратное уменьшение. Значение по умолчанию 1 не подразумевает десятикратного уменьшения.

При обработке сигналов FMCW децимирование дешифрованного сигнала полезно для уменьшения нагрузки на аналого-цифровые преобразователи.

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT' и DechirpInput свойство к true.

Типы данных: single | double

Источник длины БПФ, используемый для обработки области значений дешифрированных сигналов, указанный как 'Auto' или 'Property'.

  • 'Auto' - Длина БПФ равна длине быстрой размерности куба входных данных.

  • 'Property' - Задайте длину БПФ при помощи RangeFFTLength свойство.

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT'.

Типы данных: char

Длина БПФ, используемая для обработки области значений, задается как положительное целое число.

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT' и RangeFFTLengthSource свойство к 'Property'

Типы данных: single | double

Окно взвешивания БПФ для обработки области значений, заданное как 'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor', или 'Custom'.

Если вы задаете это свойство равным 'Taylor'сгенерированное окно Тейлора имеет четыре почти постоянных боковых колеса рядом с мэнлобом.

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT'.

Типы данных: char

Ослабление Sidelobe для обработки области значений, заданное как положительная скалярная величина. Затухание относится к окнам Кайзера, Чебышёва или Тейлора. Модули указаны в дБ.

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT' и RangeWindow свойство к 'Kaiser', 'Chebyshev', или 'Taylor'.

Типы данных: single | double

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

Если вы записываете свою собственную оконную функцию, первым аргументом должна быть длина окна.

Примечание

Вместо использования массива ячеек можно передать все аргументы, создав указатель в анонимную функцию. Для примера можно задать значение CustomRangeWindow на @(n)taylorwin(n,nbar,sll), где вы ранее установили значения nbar и sll.

Пример: {@taylor,5,-35}

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'FFT' и RangeWindow свойство к 'Custom'.

Типы данных: function_handle | cell

Установите опорную область значений в центре сетки области значений, заданный как true или false. Установка значения свойства true позволяет вам задать ссылку области значений в центре сетки области значений. Установка значения свойства false устанавливает ссылочную область значений на начало области значений сетки.

Зависимости

Чтобы включить это свойство, установите RangeMethod на 'FFT'.

Типы данных: logical

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

  • Если вы задаете RangeMethod свойство к 'Matched filter'Значение опорной области значений устанавливается в начало сетки области значений.

  • Если вы задаете RangeMethod свойство к 'FFT', ссылка области значений определяется ReferenceRangeCentered свойство.

    • Когда вы устанавливаете ReferenceRangeCentered свойство к true, значение ссылки области значений устанавливается в центр области значений сетки.

    • Когда вы устанавливаете ReferenceRangeCentered свойство к falseЗначение опорной области значений устанавливается в начало сетки области значений.

    Модули измерения указаны в метрах.

Это свойство настраивается.

Пример: 1000.0

Типы данных: single | double

Источник максимального количества выборок входного сигнала, заданный как 'Auto' или 'Property'. Когда вы устанавливаете это свойство на 'Auto'объект автоматически выделяет достаточно памяти для буферизации первого входного сигнала. Когда вы устанавливаете это свойство на 'Property', вы задаете максимальное количество выборок во входном сигнале используя MaximumNumInputSamples свойство. Любой входной сигнал, длиннее этого значения, усечен.

Чтобы использовать этот объект с входными сигналами переменного размера в MATLAB® Функциональный блок в Simulink®, установите MaximumNumInputSamplesSource свойство к 'Property' и установите значение для MaximumNumInputSamples свойство.

Пример: 'Property'

Максимальное количество выборок в входном сигнале, заданное как положительное целое число. Любой входной сигнал, длиннее этого значения, усечен. Входной сигнал является первым аргументом в step способ. Количество выборок - это количество строк во входе.

Пример: 2048

Зависимости

Чтобы включить это свойство, установите RangeMethod свойство к 'Matched filter' и установите MaximumNumInputSamplesSource свойство к 'Property'.

Типы данных: single | double

Методы

plotResponseПостройте график отклика области значений
шагОбласть значений отклика
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Вычислите радар области значений ответ трех целей при помощи phased.RangeResponse Системные object™. Передатчик и приемник являются связанными изотропными антенными элементами, образующими моностатическую радиолокационную систему. Переданный сигнал является линейной FM-формой волны с интервалом повторения импульса 7,0 мкс и коэффициентом заполнения 2%. Рабочая частота составляет 77 ГГц, а частота дискретизации - 150 МГц.

fs = 150e6;
c = physconst('LightSpeed');
fc = 77e9;
pri = 7e-6;
prf = 1/pri;

Настройте параметры сценария. Радиолокационный передатчик и приемник являются стационарными и расположены в источник. Цели находятся в 500, 530 и 750 метрах от радаров на оси X. Цели движутся по оси X со скоростью − 60, 20 и 40 м/с. Все три цели имеют неколеблющееся радиолокационное сечение (RCS) 10 дБ.

Создайте целевую и радиолокационную платформы.

Numtgts = 3;
tgtpos = zeros(Numtgts);
tgtpos(1,:) = [500 530 750];
tgtvel = zeros(3,Numtgts);
tgtvel(1,:) = [-60 20 40];
tgtrcs = db2pow(10)*[1 1 1];
tgtmotion = phased.Platform(tgtpos,tgtvel);
target = phased.RadarTarget('PropagationSpeed',c,'OperatingFrequency',fc, ...
    'MeanRCS',tgtrcs);
radarpos = [0;0;0];
radarvel = [0;0;0];
radarmotion = phased.Platform(radarpos,radarvel);

Создайте антенны передатчика и приемника.

txantenna = phased.IsotropicAntennaElement;
rxantenna = clone(txantenna);

Настройте обработку сигнала на конце передатчика. Создайте восходящий линейный FM сигнал с полосой пропускания в половину частоты дискретизации. Найдите длину pri в выборках и затем оцените пропускную способность rms и разрешение области значений.

bw = fs/2;
waveform = phased.LinearFMWaveform('SampleRate',fs, ...
    'PRF',prf,'OutputFormat','Pulses','NumPulses',1,'SweepBandwidth',fs/2, ...
    'DurationSpecification','Duty cycle','DutyCycle',0.02);
sig = waveform();
Nr = length(sig);
bwrms = bandwidth(waveform)/sqrt(12);
rngrms = c/bwrms;

Настройте передатчик и излучателя свойства Системного объекта. Пиковая выходная степень составляет 10 Вт, и коэффициент усиления передатчика составляет 36 дБ.

peakpower = 10;
txgain = 36.0;
transmitter = phased.Transmitter( ...
    'PeakPower',peakpower, ...
    'Gain',txgain, ...
    'InUseOutputPort',true);
radiator = phased.Radiator( ...
    'Sensor',txantenna, ...
    'PropagationSpeed',c, ...
    'OperatingFrequency',fc);

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

channel = phased.FreeSpace( ...
    'SampleRate',fs, ...    
    'PropagationSpeed',c, ...
    'OperatingFrequency',fc, ...
    'TwoWayPropagation',true);

Настройте обработку конца получателя. Коэффициент усиления приемника составляет 42 дБ, а рисунок шума равен 10.

collector = phased.Collector( ...
    'Sensor',rxantenna, ...
    'PropagationSpeed',c, ...
    'OperatingFrequency',fc);
rxgain = 42.0;
noisefig = 10;
receiver = phased.ReceiverPreamp( ...
    'SampleRate',fs, ...
    'Gain',rxgain, ...
    'NoiseFigure',noisefig);

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

Шаги обработки:

  1. Перемещайте радар и цели.

  2. Передайте форму волны.

  3. Передайте сигнал формы волны на цель.

  4. Отражайте сигнал от цели.

  5. Передайте форму волны назад на радар. Двухсторонний режим распространения позволяет объединить возвращенное распространение с исходящим распространением.

  6. Прием сигнала на радар.

  7. Загрузите сигнал в кубик данных.

Np = 128;
cube = zeros(Nr,Np);
for n = 1:Np
    [sensorpos,sensorvel] = radarmotion(pri);
    [tgtpos,tgtvel] = tgtmotion(pri);
    [tgtrng,tgtang] = rangeangle(tgtpos,sensorpos);
    sig = waveform();
    [txsig,txstatus] = transmitter(sig);
    txsig = radiator(txsig,tgtang);
    txsig = channel(txsig,sensorpos,tgtpos,sensorvel,tgtvel);    
    tgtsig = target(txsig);   
    rxcol = collector(tgtsig,tgtang);
    rxsig = receiver(rxcol);
    cube(:,n) = rxsig;
end

Отображение изображения куба данных, содержащего сигналы на импульс.

imagesc([0:(Np-1)]*pri*1e6,[0:(Nr-1)]/fs*1e6,abs(cube))
xlabel('Slow Time {\mu}s')
ylabel('Fast Time {\mu}s')

Figure contains an axes. The axes contains an object of type image.

Создайте phased.RangeResponse Системный объект в согласованный фильтр режиме. Затем отобразите изображение отклика области значений для 128 импульсов. Изображение показывает область значений по вертикали и число импульсов по горизонтали.

matchingcoeff = getMatchedFilter(waveform);
ndop = 128;
rangeresp = phased.RangeResponse('SampleRate',fs,'PropagationSpeed',c);
[resp,rnggrid] = rangeresp(cube,matchingcoeff);
imagesc([1:Np],rnggrid,abs(resp))
xlabel('Pulse')
ylabel('Range (m)')

Figure contains an axes. The axes contains an object of type image.

Интегрирование 20 импульсов некогерентно.

intpulse = pulsint(resp(:,1:20),'noncoherent');
plot(rnggrid,abs(intpulse))
xlabel('Range (m)')
title('Noncoherent Integration of 20 Pulses')

Figure contains an axes. The axes with title Noncoherent Integration of 20 Pulses contains an object of type line.

Алгоритмы

расширить все

Ссылки

[1] Ричардс, М. Основы радиолокационной обработки сигналов, 2nd ed. McGraw-Hill Professional Engineering, 2014.

[2] Ричардс, М., Дж. Шеер и У. Холм, Принципы современного радара: Основные принципы. SciTech Publishing, 2010.

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

.
Введенный в R2017a