Доплеровская оценка
phased.DopplerEstimator Система object™ оценивает доплеровские частоты целей. Вход в блок оценки состоит из местоположений обнаружения, выходящих из детектора, и куба данных диапазона-доплеровского отклика. При кластеризации обнаружений доплеровские частоты вычисляются с использованием кластерной информации. Кластеризация связывает несколько обнаружений в одно расширенное обнаружение.
Чтобы вычислить доплеровские значения для обнаружений:
Определите и настройте доплеровский оценщик с помощью следующей процедуры конструирования.
Позвоните в step метод для вычисления доплеровского числа обнаружений, используя свойства, указанные для phased.DopplerEstimator Системный объект.
Примечание
Вместо использования step для выполнения операции, определенной объектом System, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.
estimator = phased.DopplerEstimator создает объект системы доплеровской оценки, estimator.
estimator = phased.DopplerEstimator( создает объект System, Name,Value)estimator, с каждым указанным свойством Name установить в указанное значение Value. Можно указать дополнительные аргументы пары имен и значений в любом порядке как (Name1,Value1,...,NameN,ValueN).
NumEstimatesSource - Источник запрошенного числа доплеровских оценок'Auto' (по умолчанию) | 'Property' Источник количества запрашиваемых доплеровских оценок, указанный как 'Auto' или 'Property'.
Если для этого свойства задано значение 'Auto', количество оценок равно количеству столбцов в detidx входной аргумент step способ. Если указаны идентификаторы кластера, количество оценок равно количеству уникальных идентификаторов кластера.
Если для этого свойства задано значение 'Property', количество сообщенных оценок получено из значения NumEstimates собственность.
Типы данных: char
NumEstimates - Максимальное число оценок1 (по умолчанию) | положительное целое числоМаксимальное число оценок для отчета, указанное как положительное целое число. Когда количество запрошенных оценок превышает количество столбцов в detidx аргумент step способ, остаток заполняется NaN.
Чтобы включить это свойство, установите значение NumEstimatesSource свойство для 'Property'.
Типы данных: c | double
ClusterInputPort - Принять clusterids в качестве входных данныхfalse (по умолчанию) | trueВозможность принятия clusterids в качестве входного аргумента для step метод, указанный как false или true. Установка для этого свойства значения true включает clusterid входной аргумент step способ.
Типы данных: logical
VarianceOutputPort - Включить вывод оценок дисперсии Доплераfalse (по умолчанию) | trueОпция для включения вывода оценки доплеровской дисперсии, указанной как false или true. Оценки доплеровских дисперсий возвращаются в dopvar выходной аргумент step способ.
Типы данных: logical
NumPulses - Количество импульсов в доплеровском сигнале2 (по умолчанию) | положительное целое числоЧисло импульсов в доплеровском кубе обработанных данных, указанное как положительное целое число.
Чтобы включить это свойство, установите значение VarianceOutputPort свойство для true.
Типы данных: single | double
NoisePowerSource - Источник значений мощности шума'Property' (по умолчанию) | 'Input port' Источник значений мощности шума, указанный как 'Property' или 'Input port'. Мощность шума используется для вычисления дисперсии доплеровской оценки и SNR. Если для этого свойства задано значение 'Property', значение NoisePower свойство представляет мощность шума в местоположениях обнаружения. Если для этого свойства задано значение 'Input port', вы можете указать мощность шума с помощью noisepower входной аргумент step способ.
Типы данных: char
NoisePower - Мощность шума1.0 (по умолчанию) | положительный скалярПостоянное значение мощности шума в диапазоне - куб данных Доплера, заданный как положительный скаляр. Шумовые силовые агрегаты линейные. Одинаковое значение мощности шума применяется ко всем обнаружениям.
Чтобы включить это свойство, установите значение 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 импульсов. Для каждого шага цикла перемещайте цель и распространяйте сигнал. Затем поместите принятый сигнал в куб данных. Куб данных содержит принятый сигнал на импульс. Обычно куб данных имеет три измерения, где последнее измерение соответствует антеннам или лучам. Поскольку используется только один датчик, куб имеет только два измерения.
Шаги обработки:
Переместите РЛС и цели.
Передача сигнала.
Распространение сигнала формы сигнала на цель.
Отражение сигнала от цели.
Распространение сигнала обратно на радар. Двустороннее распространение позволяет комбинировать возвратное распространение с исходящим.
Прием сигнала на РЛС.
Загрузите сигнал в куб данных.
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

Создайте и отобразите доплеровское изображение диапазона для 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

Поскольку цели лежат вдоль положительной оси 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
phased.DopplerEstimator Объект системы оценивает доплеровскую частоту обнаружения, следуя этим шагам доплеровского оценщика.
Введите куб данных ответа доплеровской обработки, полученный из phased.RangeDopplerResponse Системный объект. Первое измерение куба представляет быстрый или эквивалентный диапазон выборок возвращаемого сигнала. Второй размер представляет пространственную информацию, такую как датчики или пучки. Последнее измерение представляет отклик как функцию доплеровской частоты. Только этот размер используется для оценки доплеровской частоты обнаружения. Все остальные игнорируются. См. раздел Куб радиолокационных данных.
Введите матрицу индексов обнаружения, указывающих местоположение обнаружений в кубе данных. Каждый столбец обозначает отдельное обнаружение. Записи строк обозначают индексы в кубе данных. Чтобы вернуть эти индексы обнаружения как выходные данные phased.CFARDetector или phased.CFARDetector2D детекторы. Для возврата этих индексов установите детектор OutputFormat свойство любого из извещателей CFAR 'Detection index'.
Дополнительно введите вектор строки идентификаторов кластера. Этот вектор равен по длине числу обнаружений. Каждый элемент этого вектора присваивает идентификатор соответствующему обнаружению. Для формирования кластеров обнаружений один и тот же идентификатор может быть назначен нескольким обнаружениям. Чтобы включить этот параметр, установите ClusterInputPort свойство для true.
Когда ClusterInputPort является falseобъект вычисляет доплеровские частоты для каждого обнаружения. Алгоритм находит значения отклика по индексу обнаружения и по двум смежным индексам в кубе по размерности Доплера. Затем алгоритм подгоняет квадратичную кривую к величинам доплеровского отклика при этих трёх индексах. Пик кривой указывает местоположение обнаружения. Когда обнаружения происходят на первом или последнем образце в доплеровском измерении, объект оценивает местоположение обнаружения по двухточечному центроиду. Центроид формируется с использованием местоположения индекса обнаружения и образца рядом с индексом обнаружения.
Когда объект вычисляет доплеровские частоты для каждого кластера. Алгоритм находит индексы наибольшего значения отклика в кластере. Затем алгоритм подгоняет квадратичную кривую к этому обнаружению так же, как для отдельных обнаружений.
Объект преобразует значения дробного индекса в доплеровскую частоту или скорость, используя соответствующие единицы измерения из dopgrid входной аргумент step способ. Можно получить значения для dopgrid с использованием phased.RangeDopplerResponse Системный объект.
Этот объект System поддерживает единственную и двойную точность входных данных, свойств и аргументов. Если входные данные X - единичная точность, выходные данные - единичная точность. Если входные данные X - двойная точность, выходные данные - двойная точность. Точность вывода не зависит от точности свойств и других аргументов.
[1] Ричардс, М. Основы обработки радиолокационных сигналов. 2-й ред. McGraw-Hill Professional Engineering, 2014.
[2] Ричардс, М., Дж. Шеер и В. Холм, Принципы современного радара: основные принципы. SciTech Publishing, 2010.
Примечания и ограничения по использованию:
См. Системные объекты в создании кода MATLAB (кодер MATLAB).
Этот объект System поддерживает единственную и двойную точность входных данных, свойств и аргументов. Если входные данные X - единичная точность, выходные данные - единичная точность. Если входные данные X - двойная точность, выходные данные - двойная точность. Точность вывода не зависит от точности свойств и других аргументов.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.