Documentation

phased.StretchProcessor System object

Package: phased

Stretch processor for linear FM waveform

Description

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.

Construction

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.

Properties

SampleRate

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

PulseWidth

Pulse width

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

Default: 50e-6

PRF

Pulse repetition frequency

Pulse repetition frequency (PRF), specified as a scalar or a row vector. Units are hertz. The pulse repetition interval (PRI) is the inverse of the PRF.

  • When PRFSelectionInputPort is false, you can

    • 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. When PRF is a vector, the each call to the step method produces pulses that use successive elements of the vector as 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. Then in each call to the step syntax, pass in an index to an entry in the desired PRF vector.

The value of this property must satisfy these constraints:

  • The PRF must be less than or equal to 1/PulseWidth. This is equivalent to the requirement that the pulse width is less than or equal to the PRI. 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 — the number of samples in a pulse must be an integer

Default: 10e3

SweepSlope

FM sweep slope

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

Default: 2e9

SweepInterval

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'

PropagationSpeed

Signal propagation speed

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

Default: Speed of light

ReferenceRange

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

RangeSpan

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

Methods

cloneCreate stretch processor with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
stepPerform stretch processing for linear FM waveform

Examples

expand all

Detection of Target Using Stretch Processing

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

Related Examples

References

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

Introduced in R2012a

Was this topic helpful?