Визуализация сигнала в области углового Доплера может помочь вам идентифицировать характеристики сигнала в направлении и скорости. Можно различать цели, перемещающиеся на различных скоростях в различных направлениях. Если платформа передатчика является стационарной, возвращается из стационарной целевой карты, чтобы обнулить в Доплеровской области, в то время как возвращает в перемещение целевой выставки ненулевой эффект Доплера. Если вы визуализируете ответ массивов в области углового Доплера, стационарная цель производит ответ под заданным углом и нулем Доплер.
Можно использовать объект phased.AngleDopplerResponse
визуализировать ответ углового Доплера входных данных. Объект phased.AngleDopplerResponse
использует обычную узкополосную связь (сдвиг фазы) формирователь луча и основанный на БПФ Доплеровский фильтр, чтобы вычислить ответ углового Доплера.
Отобразите ответ углового Доплера стационарного массива к стационарной цели. Массив является универсальной линейной матрицей (ULA) с шестью элементами, расположенной в глобальном начале координат (0,0,0). Цель расположена в (5000,5000,0) метры и имеет не колеблющееся радарное сечение (RCS) 1 квадратного метра.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step
. Например, замените myObject(x)
на step(myObject,x)
.
Построение объекты должно было моделировать целевой ответ в массиве.
antenna = phased.IsotropicAntennaElement... ('FrequencyRange',[8e8 5e9],'BackBaffled',true); lambda = physconst('LightSpeed')/4e9; array = phased.ULA(6,'Element',antenna,'ElementSpacing',lambda/2); waveform = phased.RectangularWaveform('PulseWidth',2e-006,... 'PRF',5e3,'SampleRate',1e6,'NumPulses',1); radiator = phased.Radiator('Sensor',array,... 'PropagationSpeed',physconst('LightSpeed'),... 'OperatingFrequency',4e9); collector = phased.Collector('Sensor',array,... 'PropagationSpeed',physconst('LightSpeed'),... 'OperatingFrequency',4e9); txplatform = phased.Platform('InitialPosition',[0;0;0],... 'Velocity',[0;0;0]); target = phased.RadarTarget('MeanRCS',1,'Model','nonfluctuating'); targetplatform = phased.Platform('InitialPosition',[5e3; 5e3; 0],... 'Velocity',[0;0;0]); freespace = phased.FreeSpace('OperatingFrequency',4e9,... 'TwoWayPropagation',false,'SampleRate',1e6); receiver = phased.ReceiverPreamp('NoiseFigure',0,... 'EnableInputPort',true,'SampleRate',1e6,'Gain',40); transmitter = phased.Transmitter('PeakPower',1e4,... 'InUseOutputPort',true,'Gain',40);
Распространите десять меандров к и от цели и соберите ответы в массиве.
PRF = 5e3; NumPulses = 10; wav = waveform(); tgtloc = targetplatform.InitialPosition; txloc = txplatform.InitialPosition; M = waveform.SampleRate*1/PRF; N = array.NumElements; rxsig = zeros(M,N,NumPulses); for n = 1:NumPulses % get angle to target [~,tgtang] = rangeangle(tgtloc,txloc); % transmit pulse [txsig,txstatus] = transmitter(wav); % radiate pulse txsig = radiator(txsig,tgtang); % propagate pulse to target txsig = freespace(txsig,txloc,tgtloc,[0;0;0],[0;0;0]); % reflect pulse off stationary target txsig = target(txsig); % propagate pulse to array txsig = freespace(txsig,tgtloc,txloc,[0;0;0],[0;0;0]); % collect pulse rxsig(:,:,n) = collector(txsig,tgtang); % receive pulse rxsig(:,:,n) = receiver(rxsig(:,:,n),~txstatus); end
Найдите и постройте ответ углового Доплера. Затем добавьте метку +Target
под ожидаемым углом азимута и Доплеровской частотой.
tgtdoppler = 0; tgtLocation = global2localcoord(tgtloc,'rs',txloc); tgtazang = tgtLocation(1); tgtelang = tgtLocation(2); tgtrng = tgtLocation(3); tgtcell = val2ind(tgtrng,... physconst('LightSpeed')/(2*waveform.SampleRate)); snapshot = shiftdim(rxsig(tgtcell,:,:)); % Remove singleton dim response = phased.AngleDopplerResponse('SensorArray',array,... 'OperatingFrequency',4e9, ... 'PropagationSpeed',physconst('LightSpeed'),... 'PRF',PRF, 'ElevationAngle',tgtelang); plotResponse(response,snapshot); text(tgtazang,tgtdoppler,'+Target');
Как ожидалось ответ углового Доплера показывает самый большой ответ в нуле Доплер и азимут на 45 °.
Этот пример иллюстрирует ненулевой эффект Доплера, показанный стационарной целью в присутствии движения массивов. В целом этот ненулевой сдвиг усложняет обнаружение медленных целей, потому что вызванный движением эффект Доплера и распространение помехи возвращаются неясный эффекты Доплера таких целей.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step
. Например, замените myObject(x)
на step(myObject,x)
.
Сценарий в этом примере идентичен тому из Углового Доплера Респонса Стационарного Массива к Стационарной Цели за исключением того, что ULA перемещается в постоянную скорость. Для удобства повторяется код MATLAB™, чтобы настроить объекты. Заметьте, что свойства InitialPosition
и Velocity
Системы txplatform
object™ изменились. Значение свойства InitialPosition
собирается моделировать бортовой ULA. Мотивация для выбора особого значения свойства Velocity
объяснена в Применимости Импульсного Компенсатора DPCA.
antenna = phased.IsotropicAntennaElement... ('FrequencyRange',[8e8 5e9],'BackBaffled',true); lambda = physconst('LightSpeed')/4e9; array = phased.ULA(6,'Element',antenna,'ElementSpacing',lambda/2); waveform = phased.RectangularWaveform('PulseWidth',2e-006,... 'PRF',5e3,'SampleRate',1e6,'NumPulses',1); radiator = phased.Radiator('Sensor',array,... 'PropagationSpeed',physconst('LightSpeed'),... 'OperatingFrequency',4e9); collector = phased.Collector('Sensor',array,... 'PropagationSpeed',physconst('LightSpeed'),... 'OperatingFrequency',4e9); vy = (array.ElementSpacing*waveform.PRF)/2; txplatform = phased.Platform('InitialPosition',[0;0;3e3],... 'Velocity',[0;vy;0]); target = phased.RadarTarget('MeanRCS',1,'Model','nonfluctuating'); tgtvel = [0;0;0]; targetplatform = phased.Platform('InitialPosition',[5e3; 5e3; 0],... 'Velocity',tgtvel); freespace = phased.FreeSpace('OperatingFrequency',4e9,... 'TwoWayPropagation',false,'SampleRate',1e6); receiver = phased.ReceiverPreamp('NoiseFigure',0,... 'EnableInputPort',true,'SampleRate',1e6,'Gain',40); transmitter = phased.Transmitter('PeakPower',1e4,... 'InUseOutputPort',true,'Gain',40);
Передайте десять меандров к цели, когда ULA перемещается. Затем соберите полученное эхо.
PRF = 5e3; NumPulses = 10; wav = waveform(); tgtloc = targetplatform.InitialPosition; M = waveform.SampleRate*1/PRF; N = array.NumElements; rxsig = zeros(M,N,NumPulses); fasttime = unigrid(0,1/waveform.SampleRate,1/PRF,'[)'); rangebins = (physconst('LightSpeed')*fasttime)/2; for n = 1:NumPulses % move transmitter [txloc,txvel] = txplatform(1/PRF); % get angle to target [~,tgtang] = rangeangle(tgtloc,txloc); % transmit pulse [txsig,txstatus] = transmitter(wav); % radiate pulse txsig = radiator(txsig,tgtang); % propagate pulse to target txsig = freespace(txsig,txloc,tgtloc,txvel,tgtvel); % reflect pulse off stationary target txsig = target(txsig); % propagate pulse to array txsig = freespace(txsig,tgtloc,txloc,tgtvel,txvel); % collect pulse rxsig(:,:,n) = collector(txsig,tgtang); % receive pulse rxsig(:,:,n) = receiver(rxsig(:,:,n),~txstatus); end
Вычислите целевые углы и область значений относительно ULA. Затем вычислите эффект Доплера, вызванный движением поэтапного массива.
sp = radialspeed(tgtloc,tgtvel,txloc,txvel);
tgtdoppler = 2*speed2dop(sp,lambda);
tgtLocation = global2localcoord(tgtloc,'rs',txloc);
tgtazang = tgtLocation(1);
tgtelang = tgtLocation(2);
tgtrng = tgtLocation(3);
Двухсторонний эффект Доплера составляет приблизительно 1 626 Гц. Угол азимута составляет 45 ° и идентичен значению, полученному в стационарном примере ULA.
Постройте ответ углового Доплера.
tgtcell = val2ind(tgtrng,... physconst('LightSpeed')/(2*waveform.SampleRate)); snapshot = shiftdim(rxsig(tgtcell,:,:)); % Remove singleton dim hadresp = phased.AngleDopplerResponse('SensorArray',array,... 'OperatingFrequency',4e9, ... 'PropagationSpeed',physconst('LightSpeed'),... 'PRF',PRF, 'ElevationAngle',tgtelang); plotResponse(hadresp,snapshot); text(tgtazang,tgtdoppler,'+Target');
Ответ углового Доплера показывает самый большой ответ в азимуте на 45 ° в ожидаемом эффекте Доплера.