This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

phased.StretchProcessor System object

Stretch processor for linear FM waveform


The StretchProcessor object performs stretch processing on data from a linear FM waveform.

To perform stretch processing:

  1. Define and set up your stretch processor. See Construction.

  2. Call step to perform stretch processing on input data according to the properties of phased.StretchProcessor. The behavior of step is specific to each object in the toolbox.


Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


H = phased.StretchProcessor creates a stretch processor System object, H. The object performs stretch processing on data from a linear FM waveform.

H = phased.StretchProcessor(Name,Value) creates a stretch processor object, H, with additional options specified by one or more Name,Value pair arguments. Name is a property name, and Value is the corresponding value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.



Sample rate

Signal sample rate, specified as a positive scalar. Units are Hertz. The ratio of sample rate to pulse repetition frequency (PRF) must be a positive integer — each pulse must contain an integer number of samples.

Default: 1e6


Pulse width

Specify the length of each pulse (in seconds) as a positive scalar. The value must satisfy PulseWidth <= 1./PRF.

Default: 50e-6


Pulse repetition frequency

Pulse repetition frequency, PRF, specified as a scalar or a row vector. Units are in Hz. The pulse repetition interval PRI is the inverse of the PRF. The value of the PRF property must satisfy these constraints:

  • The product of PRF and PulseWidth must be less than or equal to one. This is equivalent to the requirement that the pulse width is less than a pulse repetition interval. For the phase-coded waveform, the pulse width is the product of the chip width and number of chips.

  • The ratio of sample rate to PRF must be an integer. This is equivalent to requiring that the number of samples in one pulse repetition interval be an integer.

You can select the value of PRF by using property settings or input arguments.

  • When PRFSelectionInputPort is false, you set the PRF using properties

    • implement a constant PRF by specifying PRF as a positive real-valued scalar.

    • implement a staggered PRF by specifying PRF as a row vector with positive real-valued entries. Then, each call to the step method uses successive elements of this vector for the PRF. If the last element of the vector is reached, the process continues cyclically with the first element of the vector.

  • When PRFSelectionInputPort is true, you can implement a selectable PRF by specifying PRF as a row vector with positive real-valued entries. But this time, when you execute the step method, select a PRF by passing an index into the PRF vector as an argument.

In all cases, when you use a varying PRF and choose the OutputFormat property as 'Pulses', the number of samples per pulse can vary as well. When you choose 'Samples' the number of samples per pulse is fixed.

Default: 10e3


FM sweep slope

Specify the slope of the linear FM sweeping, in hertz per second, as a scalar.

Default: 2e9


Location of FM sweep interval

Specify the linear FM sweeping interval using the value 'Positive' or 'Symmetric'. If SweepInterval is 'Positive', the waveform sweeps in the interval between 0 and B, where B is the sweeping bandwidth. If SweepInterval is 'Symmetric', the waveform sweeps in the interval between –B/2 and B/2.

Default: 'Positive'


Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar.

Default: Speed of light


Reference range of stretch processing

Specify the center of ranges of interest, in meters, as a positive scalar. The reference range must be within the unambiguous range of one pulse. This property is tunable.

Default: 5000


Span of ranges of interest

Specify the length of the interval for ranges of interest, in meters, as a positive scalar. The range span is centered at the range value specified in the ReferenceRange property.

Default: 500


stepPerform stretch processing for linear FM waveform
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


expand all

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 myObject(x) with step(myObject,x).

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');
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


[1] Richards, M. A. Fundamentals of Radar Signal Processing. New York: McGraw-Hill, 2005.

Extended Capabilities

Introduced in R2012a

Was this topic helpful?