phased.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' — Длина БПФ равняется длине быстро-разовой размерности куба входных данных.

  • 'Property' — Задайте длину БПФ при помощи 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® Function Block в Simulink®, установите MaximumNumInputSamplesSource свойство к 'Property' и установленный значение для MaximumNumInputSamples свойство.

Пример: 'Property'

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

Пример: 2048

Зависимости

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

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] Ричардс, M. Основные принципы Радарной Обработки сигналов, 2-й редактор Разработка Профессионала McGraw-Hill, 2014.

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

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

Введенный в R2017a