System object: phased.StretchProcessor
Perform stretch processing for linear FM waveform
Y = step(H,X)
Y = step(H,X,PRF)
Starting in R2016b, instead of using the
to perform the operation defined by the System object™, you can
call the object with arguments, as if it were a function. For example,
= step(obj,x) and
y = obj(x) perform
Stretch processor object.
Input signal matrix. Each column represents one received pulse.
The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.
Pulse repetition frequency specified as a positive scalar. To enable this
argument, set the
Result of stretch processing. The dimensions of
Use stretch processing to locate a target at a range of 4950 m.
Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent
step syntax. For example, replace
Simulate the signal.
waveform = phased.LinearFMWaveform; x = waveform(); c = physconst('LightSpeed'); rng = 4950.0; num_samples = round(rng/(c/(2*waveform.SampleRate))); x = circshift(x,num_samples);
Perform stretch processing.
stretchproc = getStretchProcessor(waveform,5000,200,c); y = stretchproc(x);
Plot the spectrum of the resulting signal.
[Pxx,F] = periodogram(y,,2048,stretchproc.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); rng = stretchfreq2rng(rngfreq,stretchproc.SweepSlope,stretchproc.ReferenceRange,c)
rng = 4.9634e+03