The help on linear FM waveforms states that increasing the pulse width improves detection capability. However, when I tried doubling or halving my pulse width, I did not notice a change in probability of detection. Am I implementing this incorrectly?
I used the basic monostatic radar example to get started and made modifications from there. The code below shows the linear FM waveform initialization followed by a loop used to get my simulated probability of detection, which will be sum(detected)/n_steps.
hWav = phased.LinearFMWaveform(... 'PulseWidth',pulse_width,... 'SweepBandwidth',pulse_bw,... 'SampleRate',fs,... 'PRF',prf); % linear fm waveform instead of rectangular waveform
n_steps = 1000;detected = false(n_steps, 1);%hWav.release(); % uncomment these two lines to run with modified pulse width
%hWav.PulseWidth = 1/pulse_bw/2;
for istep = 1:n_steps x = step(hWav); [s, tx_status] = step(hTx, x); rSig = zeros(size(s,1),3); [tgt_pos, tgt_vel] = step(hTargetplatform, 1/prf); [tgt_rng, tgt_ang] = rangeangle(tgt_pos); tSig = step(hRadiator, s, tgt_ang); tSig = step(hTargetchannel, tSig,... ant_pos, tgt_pos, ant_vel, tgt_vel); rSig = step(hTarget, tSig, true); rSig = step(hCollector, rSig, tgt_ang); rx_pulses = step(hRx, rSig, ~(tx_status>0)); % *Detection Threshold*
npower = noisepow(noise_bw, hRx.NoiseFigure, hRx.ReferenceTemperature); threshold = npower * db2pow(npwgnthresh(pfa)); above_inds = abs(rx_pulses).^2 > threshold; expected_bin = 2*tgt_rng/c*fs + 1; detected(istep) = above_inds(expected_bin);end
Best Answer