plotResponse

Системный объект: поэтапный. RangeResponse
Пакет: поэтапный

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

Синтаксис

plotResponse(response,x)
plotResponse(response,x,xref)
plotResponse(response,x,coeff)
plotResponse(response,___,Name,Value)

Описание

plotResponse(response,x) строит ответ области значений dechirped входного сигнала, x. Этот синтаксис применяется, когда вы устанавливаете свойство RangeMethod на 'FFT' и свойство DechirpInput к false.

plotResponse(response,x,xref) строит ответ области значений x, после выполнения dechirp операции с помощью ссылочного сигнала, xref. Этот синтаксис применяется, когда вы устанавливаете свойство RangeMethod на 'FFT' и свойство DechirpInput к true.

пример

plotResponse(response,x,coeff) строит ответ области значений x после фильтрации соответствия с помощью коэффициентов фильтра соответствия, coeff. Этот синтаксис применяется, когда вы устанавливаете свойство RangeMethod на 'Matched filter'.

plotResponse(response,___,Name,Value) строит ответ области значений с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Входные параметры

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

Ответ области значений, заданный как Системный объект phased.RangeResponse.

Пример: phased.RangeResponse

Введите радарный куб данных, заданный как K с комплексным знаком-by-1 вектор-столбец, K-by-L матрица или K-by-N-by-L массив.

  • K является количеством выборок области значений или быстро-разовых.

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

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

Смотрите радарный куб данных.

Каждый K - элемент быстро-разовая размерность обрабатывается независимо.

Для форм волны FMCW с треугольной разверткой развертки чередуются между положительными и отрицательными наклонами. Однако phased.RangeResponse разработан, чтобы обработать последовательные развертки того же наклона. Чтобы применить phased.RangeResponse для системы треугольной развертки, используйте один из следующих подходов:

  • Задайте положительное значение свойства SweepSlope с x, соответствующим upsweeps только. После получения Доплера или значений скорости, разделите их на 2.

  • Задайте отрицательное значение свойства SweepSlope с x, соответствующим downsweeps только. После получения Доплера или значений скорости, разделите их на 2.

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

Типы данных: single | double
Поддержка комплексного числа: Да

Ссылочный сигнал используется для dechirping, заданного как K с комплексным знаком-by-1 вектор-столбец. Значение K должно равняться длине первой размерности x.

Зависимости

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

Типы данных: single | double
Поддержка комплексного числа: Да

Коэффициенты согласованного фильтра, заданные как P с комплексным знаком-by-1 вектор-столбец. P должен быть меньше чем или равен K, длине быстро-разовой размерности.

Зависимости

Чтобы включить этот входной параметр, установите свойство RangeMethod на 'Matched filter'.

Типы данных: single | double
Поддержка комплексного числа: Да

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Модули для вертикальной оси графика, заданного как 'db', 'mag' или 'pow'.

Пример: 'pow'

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

Примеры

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

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

fs = 150e6;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 с пропускной способностью половины частоты дискретизации. Найдите RMS пропускную способность и RMS разрешение области значений.

bw = fs/2;
waveform = phased.LinearFMWaveform('SampleRate',fs,...
    'PRF',prf,'OutputFormat','Pulses','NumPulses',1,'SweepBandwidth',fs/2,...
    'DurationSpecification','Duty cycle','DutyCycle',.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

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

matchcoeff = getMatchedFilter(waveform);
rangeresp = phased.RangeResponse('SampleRate',fs,'PropagationSpeed',c);
plotResponse(rangeresp,cube(:,1:20),matchcoeff);

Введенный в R2017a