System object: phased.LinearFMWaveform
Create stretch processor for waveform
HS = getStretchProcessor(H)
HS = getStretchProcessor(H,refrng)
HS = getStretchProcessor(H,refrng,rngspan)
HS = getStretchProcessor(H,refrng,rngspan,v)
HS = getStretchProcessor(H) returns the stretch processor for the waveform, H. HS is set up so the reference range corresponds to 1/4 of the maximum unambiguous range of a pulse. The range span corresponds to 1/10 of the distance traveled by the wave within the pulse width. The propagation speed is the speed of light.
Linear FM pulse waveform object.
Reference range, in meters, as a positive scalar.
Default: 1/4 of the maximum unambiguous range of a pulse
Length of the interval of ranges of interest, in meters, as a positive scalar. The center of the interval is the range value specified in the refrng argument.
Default: 1/10 of the distance traveled by the wave within the pulse width
Propagation speed, in meters per second, as a positive scalar.
Default: Speed of light
Stretch processor as a phased.StretchProcessor System object™.
Use stretch processing to locate a target at a range of 4950 m.
Simulate the signal.
hwav = phased.LinearFMWaveform; x = step(hwav); c = 3e8; r = 4950; num_sample = r/(c/(2*hwav.SampleRate)); x = circshift(x,num_sample);
Perform stretch processing.
hs = getStretchProcessor(hwav,5000,200,c); y = step(hs,x);
Plot the spectrum of the resulting signal.
[Pxx,F] = periodogram(y,,2048,hs.SampleRate,'centered'); plot(F/1000,10*log10(Pxx)); grid; xlabel('Frequency (kHz)'); ylabel('Power/Frequency (dB/Hz)'); title('Periodogram Power Spectrum Density Estimate');
Detect the range.
[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),... 'MinPeakHeight',-5); rngfreq = F(rngidx); re = stretchfreq2rng(rngfreq,hs.SweepSlope,... hs.ReferenceRange,c);