exponenta event banner

поэтапный. RangeEstimator

Описание

phased.RangeEstimator Система object™ оценивает диапазоны целей. Вход в блок оценки состоит из куба данных о диапазоне-отклике или диапазоне-доплеровском отклике и местоположений обнаружения от детектора. Когда информация о кластерах обнаружений доступна, диапазоны вычисляются с использованием информации о кластерах. Кластеризация связывает несколько обнаружений в одно расширенное обнаружение.

Для вычисления обнаружений для диапазона-отклика или диапазона-доплеровского куба:

  1. Определите и настройте оценщик диапазона с помощью следующей процедуры конструирования.

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

Примечание

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

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

estimator = phased.RangeEstimator создает объект системы оценки диапазона, estimator.

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

Свойства

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

Источник количества оценок диапазона для отчета, указанный как 'Auto' или 'Property'.

Если для этого свойства задано значение 'Auto', количество сообщенных оценок определяется из числа столбцов в detidx входные данные для step способ. Если предоставляются идентификаторы кластера, количество оценок определяется из числа уникальных идентификаторов кластера в clusterids входные данные для step способ.

Если для этого свойства задано значение 'Property', количество сообщенных оценок получено из значения NumEstimates собственность.

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

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

Зависимости

Чтобы включить это свойство, установите значение NumEstimatesSource свойство для 'Property'.

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

Параметр для принятия идентификаторов кластера в качестве входного аргумента для step метод, указанный как false или true. Установка для этого свойства значения true включает clusterids входной аргумент.

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

Опция для включения вывода отклонений оценки диапазона, указанных как false или true. Отклонения диапазона возвращаются rngvar выходной аргумент step способ.

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

Среднеквадратичное разрешение диапазона обнаружения, определяемое как положительный скаляр. Значение RMSResolution должны иметь те же единицы измерения, что и rangegrid входной аргумент step способ.

Зависимости

Чтобы включить это свойство, задайте значение VarianceOutputPort свойство для true.

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

Источник значений мощности шума, указанный как 'Property' или 'Input port'. Мощность шума используется для вычисления дисперсии оценки дальности и SNR. Если для этого свойства задано значение 'Property', значение NoisePower свойство представляет мощность шума в местоположениях обнаружения. Если для этого свойства задано значение 'Input port', вы можете указать мощность шума с помощью noisepower входной аргумент, step способ.

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

Постоянное значение мощности шума по кубу данных «диапазон-отклик» или «диапазон-доплеровский отклик», заданное как положительный действительный скаляр. Шумовые силовые агрегаты линейные. Одинаковое значение мощности шума применяется ко всем обнаружениям.

Зависимости

Чтобы включить это свойство, задайте значение VarianceOutputPort свойство для true и набор NoisePowerSource кому 'Property'.

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

Методы

шагОценка целевого диапазона
Общие для всех системных объектов
release

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

Примеры

свернуть все

Чтобы оценить дальность и скорость трех целей, создайте доплеровскую карту дальности, используя phased.RangeDopplerResponse object™ системы. Затем используйте phased.RangeEstimator и phased.DopplerEstimator Объекты системы для оценки дальности и скорости. Передатчик и приемник являются совмещенными изотропными антенными элементами, образующими моностатическую радиолокационную систему.

Передаваемый сигнал представляет собой линейный ЧМ-сигнал с интервалом повторения импульсов (PRI) 7,0 мкс и рабочим циклом 2%. Рабочая частота 77 ГГц, частота дискретизации 150 МГц.

fs = 150e6;
c = physconst('LightSpeed');
fc = 77.0e9;
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;
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);

Настройте обработку на стороне получателя. Задайте коэффициент усиления приемника и коэффициент шума.

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

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

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

  1. Переместите РЛС и цели.

  2. Передача сигнала.

  3. Распространение сигнала формы сигнала на цель.

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

  5. Распространение сигнала обратно на радар. Двустороннее распространение позволяет комбинировать возвратное распространение с исходящим.

  6. Прием сигнала на РЛС.

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

Np = 128;
dt = pri;
cube = zeros(Nr,Np);
for n = 1:Np
    [sensorpos,sensorvel] = radarmotion(dt);
    [tgtpos,tgtvel] = tgtmotion(dt);
    [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')
axis xy

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

Создайте и отобразите доплеровское изображение диапазона для 128 доплеровских ячеек. Изображение показывает диапазон по вертикали и скорость по горизонтали. Для фильтрации совпадений используется линейный ЧМ-сигнал. Изображение здесь - карта доплеровского диапазона.

ndop = 128;
rangedopresp = phased.RangeDopplerResponse('SampleRate',fs, ...
    'PropagationSpeed',c,'DopplerFFTLengthSource','Property', ...
    'DopplerFFTLength',ndop,'DopplerOutput','Speed', ...
    'OperatingFrequency',fc);
matchingcoeff = getMatchedFilter(waveform);
[rngdopresp,rnggrid,dopgrid] = rangedopresp(cube,matchingcoeff);
imagesc(dopgrid,rnggrid,10*log10(abs(rngdopresp)))
xlabel('Closing Speed (m/s)')
ylabel('Range (m)')
axis xy

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

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

Оцените мощность шума после согласованной фильтрации. Создание фонового изображения с постоянным шумом в целях моделирования.

mfgain = matchingcoeff'*matchingcoeff;
dopgain = Np;
noisebw = fs;
noisepower = noisepow(noisebw,receiver.NoiseFigure,receiver.ReferenceTemperature);
noisepowerprc = mfgain*dopgain*noisepower;
noise = noisepowerprc*ones(size(rngdopresp));

Создайте диапазон и объекты-оценщики Доплера.

rangeestimator = phased.RangeEstimator('NumEstimatesSource','Auto', ...
    'VarianceOutputPort',true,'NoisePowerSource','Input port', ...
    'RMSResolution',rngrms);
dopestimator = phased.DopplerEstimator('VarianceOutputPort',true, ...
    'NoisePowerSource','Input port','NumPulses',Np);

Найдите целевые индексы в доплеровском изображении диапазона. Вместо использования CFAR-детектора, для простоты, использовать известные местоположения и скорости целей для получения соответствующего индекса в дальномерно-доплеровском изображении.

detidx = NaN(2,Numtgts);
tgtrng = rangeangle(tgtpos,radarpos);
tgtspd = radialspeed(tgtpos,tgtvel,radarpos,radarvel);
tgtdop = 2*speed2dop(tgtspd,c/fc);
for m = 1:numel(tgtrng)
    [~,iMin] = min(abs(rnggrid-tgtrng(m)));
    detidx(1,m) = iMin;
    [~,iMin] = min(abs(dopgrid-tgtspd(m)));
    detidx(2,m) = iMin;
end

Найдите мощность шума в местах обнаружения.

ind = sub2ind(size(noise),detidx(1,:),detidx(2,:));

Оцените диапазон и дисперсию диапазона в местах обнаружения. Предполагаемые диапазоны соответствуют постулированным диапазонам.

[rngest,rngvar] = rangeestimator(rngdopresp,rnggrid,detidx,noise(ind))
rngest = 3×1

  499.7911
  529.8380
  750.0983

rngvar = 3×1
10-4 ×

    0.0273
    0.0276
    0.2094

Оцените дисперсию скорости и скорости в местах обнаружения. Расчетные скорости соответствуют прогнозируемым скоростям.

[spdest,spdvar] = dopestimator(rngdopresp,dopgrid,detidx,noise(ind))
spdest = 3×1

   60.5241
  -19.6167
  -39.5838

spdvar = 3×1
10-5 ×

    0.0806
    0.0816
    0.6188

Подробнее

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

Алгоритмы

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

Ссылки

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

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

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

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