Доплеровский сдвиг и импульсно-доплеровская обработка

Поддержка импульсно-допплеровской обработки

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

Для узкополосного сигнала, распространяющегося со скоростью света, односторонний доплеровский сдвиг в герце является:

Δf=±vλ

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

Вы можете использовать speed2dop для преобразования относительной радиальной скорости в доплеровский сдвиг в герцах. Вы можете использовать dop2speed для определения радиальной скорости цели относительно приемника на основе наблюдаемого доплеровского сдвига.

Преобразуйте скорость в доплеровский сдвиг

Предположим, что цель приближается к стационарному приемнику с радиальной скоростью 23,0 м/с. Цель отражает узкополосную электромагнитную волну с частотой 1 ГГц. Оцените односторонний доплеровский сдвиг.

freq = 1e9;
v = 23.0;
lambda = physconst('LightSpeed')/freq;
dopplershift = speed2dop(v,lambda)
dopplershift = 76.7197

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

Преобразование доплеровского сдвига в скорость

Предположим, что вы наблюдаете доплеровский сдвиг 400,0 Гц для формы волны с частотой 9 ГГц. Определите радиальную скорость цели.

freq = 9e9;
df = 400.0;
lambda = physconst('LightSpeed')/freq;
speed = dop2speed(df,lambda)
speed = 13.3241

Целевая скорость составляет приблизительно 13,32 м/с.

Импульсно-допплеровская обработка медленно-временных данных

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

Медленные данные дискретизируются на частоте повторения импульса (PRF), и, следовательно, ДПФ данных медленного времени для заданной области значений интервал дает оценку Допплеровского спектра от [-PRF/2, PRF/2] Гц. Поскольку медленные данные являются комплексными, величины ДПФ не обязательно являются четной функцией доплеровской частоты. Это удаляет неоднозначность между доплеровским сдвигом, соответствующим приближающейся (положительный доплеровский сдвиг) или отступающей (отрицательный доплеровский сдвиг) мишенью. Разрешение в области Доплера является PRF/N, где N - количество медленных выборок. Можно дополнить спектральную оценку данных медленного времени нулями, чтобы интерполировать частотную сетку ДПФ и улучшить обнаружение пиков, но это не улучшает разрешение Доплера.

Типичный рабочий процесс импульсно-доплеровского сигнала включает:

  • Обнаружение цели в размерности области значений (быстрые выборки). Это дает области значений интервал для анализа в медленно-временную размерность.

  • Вычисление ДПФ медленных выбороксоответствующей заданной области интервалу. Идентифицируйте значительный peaks в спектре величин и преобразуйте соответствующие доплеровские частоты в скорости.

Область значений и скорость, использующие импульсно-допплеровскую обработку

Этот пример иллюстрирует импульсно-допплеровскую обработку с использованием Phased Array System Toolbox™. Предположим, что у вас есть стационарный моностатический радар, расположенный в глобальном источнике (0,0,0). Радар состоит из одного изотропного антенного элемента. Существует цель с неколеблющимся радиолокационным сечением (RCS) 1 квадратный метр, первоначально расположенная на (1000,1000,0) м и движущаяся с постоянной скоростью (-100, -100,0) м/с. Антенна работает на частоте 1 ГГц и освещает цель 10 прямоугольными импульсами при PRF 10 кГц.

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Для примера замените myObject(x) с step(myObject,x).

Определите системные объекты, необходимые для этого примера, и установите их свойства. Инициализируйте генератор случайных чисел для phased.ReceiverPreamp Система object™, чтобы получить повторяемые результаты.

waveform = phased.RectangularWaveform('SampleRate',5e6,...
    'PulseWidth',6e-7,'OutputFormat','Pulses',...
    'NumPulses',1,'PRF',1e4);
target = phased.RadarTarget('Model','Nonfluctuating',...
    'MeanRCS',1,'OperatingFrequency',1e9);
targetpos = phased.Platform('InitialPosition',[1000; 1000; 0],...
    'Velocity',[-100; -100; 0]);
antenna = phased.IsotropicAntennaElement(...
    'FrequencyRange',[5e8 5e9]);
transmitter = phased.Transmitter('PeakPower',5e3,'Gain',20,...
'InUseOutputPort',true);
transpos = phased.Platform('InitialPosition',[0;0;0],...
    'Velocity',[0;0;0]);
radiator = phased.Radiator('OperatingFrequency',1e9,'Sensor',antenna);
collector = phased.Collector('OperatingFrequency',1e9,'Sensor',antenna);
channel = phased.FreeSpace('SampleRate',waveform.SampleRate,...
    'OperatingFrequency',1e9,'TwoWayPropagation',false);
receiver = phased.ReceiverPreamp('Gain',0,'LossFactor',0,...
    'SampleRate',5e6,'NoiseFigure',5,...
    'EnableInputPort',true,'SeedSource','Property','Seed',1e3);

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

NumPulses = 10;
sig = waveform(); % get waveform 
transpos = transpos.InitialPosition; % get transmitter position
rxsig = zeros(length(sig),NumPulses);
% transmit and receive ten pulses
for n = 1:NumPulses
    % update target position
    [tgtpos,tgtvel] = targetpos(1/waveform.PRF);
    [tgtrng,tgtang] = rangeangle(tgtpos,transpos);
    tpos(n) = tgtrng;
    [txsig,txstatus] = transmitter(sig); % transmit waveform
    txsig = radiator(txsig,tgtang); % radiate waveform toward target
    txsig = channel(txsig,transpos,tgtpos,[0;0;0],tgtvel); % propagate waveform to target
    txsig = target(txsig); % reflect the signal
    % propagate waveform from the target to the transmiter
    txsig = channel(txsig,tgtpos,transpos,tgtvel,[0;0;0]);
    txsig = collector(txsig,tgtang); % collect signal
    rxsig(:,n) = receiver(txsig,~txstatus); % receive the signal
end

Матрица rxsig содержит эхо- данные в матрице 500 на 10, где размерность строка содержит быстрые выборки, а размерность столбца - медленные выборки. Другими словами, каждая строка в матрице содержит медленные выборки из определенной области значений интервала.

Создайте линейно-разнесенную сетку, соответствующую интервалам областей значений из быстродействующих выборок. Интервалы диапазона растягиваются от 0 метров до максимальной однозначной области значений.

prf = waveform.PRF;
fs = waveform.SampleRate;
fasttime = unigrid(0,1/fs,1/prf,'[)');
rangebins = (physconst('LightSpeed')*fasttime)/2;

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

В этом примере установите вероятность ложного предупреждения равной 10-9. Используйте некогерентное интегрирование десяти прямоугольных импульсов и определите соответствующий порог для обнаружения в белом Гауссовом шуме. Поскольку этот сценарий содержит только одну цель, берите самый большой пик выше порога. Отобразите предполагаемую целевую область значений.

probfa = 1e-9;
NoiseBandwidth = 5e6/2;
npower = noisepow(NoiseBandwidth,...
    receiver.NoiseFigure,receiver.ReferenceTemperature);
thresh = npwgnthresh(probfa,NumPulses,'noncoherent');
thresh = sqrt(npower*db2pow(thresh));
[pks,range_detect] = findpeaks(pulsint(rxsig,'noncoherent'),...
    'MinPeakHeight',thresh,'SortStr','descend');
range_estimate = rangebins(range_detect(1));

Извлеките медленные выборки, соответствующие области значений интервала, содержащей обнаруженную цель. Вычислите оценку спектральной плотности степени медленно-временных выборок, используя periodogram функция и найти пиковую частоту. Преобразуйте пиковую частоту Допплера в скорость с помощью dop2speed функция. Положительный доплеровский сдвиг указывает, что цель приближается к передатчику. Отрицательный доплеровский сдвиг указывает, что цель удаляется от передатчика.

ts = rxsig(range_detect(1),:).';
[Pxx,F] = periodogram(ts,[],256,prf,'centered');
plot(F,10*log10(Pxx))
grid
xlabel('Frequency (kHz)')
ylabel('Power (dB)')
title('Periodogram Spectrum Estimate')

Figure contains an axes. The axes with title Periodogram Spectrum Estimate contains an object of type line.

[Y,I] = max(Pxx);
lambda = physconst('LightSpeed')/1e9;
tgtspeed = dop2speed(F(I)/2,lambda);
fprintf('Estimated range of the target is %4.2f meters.\n',...
    range_estimate)
Estimated range of the target is 1439.00 meters.
fprintf('Estimated target speed is %3.1f m/sec.\n',tgtspeed)
Estimated target speed is 140.5 m/sec.
if F(I)>0
    fprintf('The target is approaching the radar.\n')
else
    fprintf('The target is moving away from the radar.\n')
end
The target is approaching the radar.

Истинная радиальная скорость цели обнаруживается в доплеровском разрешении, и дальность действия цели обнаруживается в разрешении области значений радара.

Похожие темы