System object: phased.StretchProcessor
Perform stretch processing for linear FM waveform
Y = step(H,X)
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 this input matrix can vary to simulate a changing signal length, such as a pulse waveform with variable pulse repetition frequency.
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