

Once we successfully estimated the ranges of the targets, we can then estimate the Doppler information for each target.ĭoppler estimation is essentially a spectrum estimation process. These estimates suggest the presence of targets in the range of 2000 m and 3550 m. Range_estimates = round(range_gates(range_detect))

= findpeaks(pulsint(rxpulses, 'noncoherent'). 'ReferenceLoss',2*fspl(prop_speed/(prf*2),lambda)) Range_gates = prop_speed*fast_time_grid/2 % apply time varying gain to compensate the range dependent loss Rxpulses = buffer(rxpulses(matchingdelay+1:end),size(rxpulses,1)) Matchingcoeff = getMatchedFilter(waveform)
#Unambiguous doppler shift update
% apply matched filter and update the threshold Threshold = npower * db2pow(npwgnthresh(pfa,num_pulse_int, 'noncoherent')) Receiver.NoiseFigure,receiver.ReferenceTemperature) % in loaded system, noise bandwidth is half of the sample rate The detection process is described in detail in the aforementioned example so we simply perform the necessary steps here to estimate the target ranges. This means that we use noncoherent detection schemes. Because the Doppler shift spreads the signal power into both I and Q channels, we need to rely on the signal energy to do the detection. To be able to estimate the Doppler shift of the targets, we first need to locate the targets through range detection. Rxpulses(:,m) = receiver(rxsig,~(txstatus>0)) Txsig = channel(txsig,sensorpos,tgtpos,sensorvel,tgtvel) % Simulate propagation of pulse in direction of targets % Calculate the target angles as seen by the sensor Rxpulses = zeros(numel(fast_time_grid),num_pulse_int) % Pre-allocate array for improved processing speed Slow_time_grid = (0:num_pulse_int-1)/prf
