System object: phased.SteppedFMWaveform
Package: phased

Samples of stepped FM pulse waveform


Y = step(sSFM)
Y = step(sSFM,prfidx)
[Y,PRF] = step(___)



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. When the only argument to the step method is the System object itself, replace y = step(obj) by y = obj().

Y = step(sSFM) returns samples of the stepped FM pulses in a column vector, Y. The output, Y, results from increasing the frequency of the preceding output by an amount specified by the FrequencyStep property. If the total frequency increase is larger than the value specified by the SweepBandwidth property, the samples of a rectangular pulse are returned.

Y = step(sSFM,prfidx), uses the prfidx index to select the PRF from the predefined vector of values specified by in the PRF property. This syntax applies when you set the PRFSelectionInputPort property to true.

[Y,PRF] = step(___) also returns the current pulse repetition frequency, PRF. To enable this syntax, set the PRFOutputPort property to true and set the OutputFormat property to 'Pulses'.


The object performs an initialization the first time the object is executed. This initialization locks nontunable properties (MATLAB) and input specifications, such as dimensions, complexity, and data type of the input data. If you change a nontunable property or an input specification, the System object issues an error. To change nontunable properties or inputs, you must first call the release method to unlock the object.


expand all

Create a stepped frequency pulse waveform object with a frequency step of 40 kHz and four frequency steps.

waveform = phased.SteppedFMWaveform(...
fs = waveform.SampleRate;

Use the waveform method to obtain the pulses.

First, generate pulse 1.

pulse1 = waveform();

Then, generate pulse 2, incremented by the frequency step 40 kHz

pulse2 = waveform();

Next, generate pulse 3, incremented by the frequency step 40 kHz

pulse3 = waveform();

Finally, generate pulse 4, incremented by the frequency step 40 kHz

pulse4 = waveform();
nsamps = size(pulse4,1);
t = [0:(nsamps-1)]/fs*1e6;
xlabel('Time (\mu sec)')

More About

expand all