Относительное движение между источником сигнала и приемником создает сдвиги в частоте принимаемой формы волны. Измерение этого доплеровского сдвига обеспечивает оценку относительной радиальной скорости движущейся цели.
Для узкополосного сигнала, распространяющегося со скоростью света, односторонний доплеровский сдвиг в герце является:
где 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;
Затем обнаружите интервалы области значений, которые содержат цели. В этом простом сценарии никакая согласованная фильтрация или изменяющаяся во времени компенсация усиления не используется.
В этом примере установите вероятность ложного предупреждения равной . Используйте некогерентное интегрирование десяти прямоугольных импульсов и определите соответствующий порог для обнаружения в белом Гауссовом шуме. Поскольку этот сценарий содержит только одну цель, берите самый большой пик выше порога. Отобразите предполагаемую целевую область значений.
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')
[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.
Истинная радиальная скорость цели обнаруживается в доплеровском разрешении, и дальность действия цели обнаруживается в разрешении области значений радара.