поэтапный. RangeResponse

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

Описание

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

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

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

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

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

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

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

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

  1. Задайте и настройте свой Системный объект phased.RangeResponse. Смотрите Конструкцию.

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

Примечание

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

Конструкция

response = phased.RangeResponse создает Системный объект ответа области значений, 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

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

Зависимости

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

Типы данных: логический

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

Когда обработка сигналов FMCW, десятикратное уменьшение сигнала dechirped полезны для сокращения нагрузки на конвертеры A/D.

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить это свойство, установите свойство 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'.

Типы данных: логический

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

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

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

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

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

    Модули исчисляются в метрах.

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

Пример: 1000.0

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

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

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

Пример: 'Property'

Зависимости

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

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

Пример: 2048

Зависимости

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

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

Методы

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

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

Примеры

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

Вычислите радарный ответ области значений трех целей при помощи Системы phased.RangeResponse object™. Передатчик и получатель расположены изотропные элементы антенны, формирующие моностатическую радиолокационную систему. Переданный сигнал является линейной формой волны FM с импульсным интервалом повторения 7,0 μs и рабочим циклом 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);

Настройте обработку сигналов конца передатчика. Создайте upsweep линейный сигнал 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')

Создайте Системный объект 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)')

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

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

Алгоритмы

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

Ссылки

[1] Ричардс, M. Основные принципы Радарной Обработки сигналов, 2-й редактор Разработка Профессионала McGraw-Hill, 2014.

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

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

Введенный в R2017a