exponenta event banner

поэтапный. RangeResponse

Описание

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

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

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

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

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

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

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

Чтобы вычислить отклик диапазона:

  1. Определите и настройте phased.RangeResponse Системный объект. См. раздел Строительство.

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

Примечание

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

Строительство

response = phased.RangeResponse создает ответ диапазона Системный объект, response.

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

Свойства

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

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

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

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

Пример: '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

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

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

Зависимости

Чтобы включить это свойство, установите значение 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™ системы. Передатчик и приемник являются совмещенными изотропными антенными элементами, образующими моностатическую радиолокационную систему. Передаваемый сигнал представляет собой линейный ЧМ-сигнал с интервалом повторения импульсов 7,0 мкс и рабочим циклом 2%. Рабочая частота 77 ГГц, частота дискретизации 150 МГц.

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

Настройте параметры сценария. Радиолокационный передатчик и приемник неподвижны и расположены в начале координат. Цели находятся в 500, 530 и 750 метрах от радаров на оси х. Цели движутся вдоль оси 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);

Настройка обработки сигналов на стороне передатчика. Создайте линейный ЧМ-сигнал верхнего диапазона с полосой пропускания, равной половине частоты дискретизации. Найдите длину pri в выборках, а затем оцените среднеквадратичную полосу пропускания и разрешение диапазона.

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] Ричардс, М. Основы обработки радиолокационных сигналов, 2-я редакция McGraw-Hill Professional Engineering, 2014.

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

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

.
Представлен в R2017a