System object: phased.SteppedFMWaveform
Samples of stepped FM pulse waveform
Y = step(sSFM)
Y = step(sSFM,prfidx)
Y = step(sRFM,freqoffset)
[Y,PRF] = step(___)
[Y,COEFF] = step(___)
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
equivalent operations. When the only argument to the
is the System object itself, replace
y = step(obj) by
Y = step(sSFM) returns samples of the stepped
FM pulses in a column vector,
Y. The output,
results from increasing the frequency of the preceding output by an
amount specified by the
If the total frequency increase is larger than the value specified
SweepBandwidth property, the samples of
a rectangular pulse are returned.
Y = step(sSFM,prfidx), uses the
to select the PRF from the predefined vector of values specified by
PRF property. This syntax applies when
you set the
PRFSelectionInputPort property to
Y = step(sRFM,freqoffset), uses the
freqoffset to generate the waveform with an offset as specified
at step time. Use this syntax for cases where the transmit pulse frequency needs to be
dynamically updated. This syntax applies when you set the
FrequencyOffsetSource property to
[Y,PRF] = step(___) also returns the current pulse
PRF. To enable this syntax, set the
PRFOutputPort property to
true and set the
OutputFormat property to
[Y,COEFF] = step(___) returns the matched filter
COEFF, for the current pulse. To enable this syntax,
COEFF is returned as either an
NZ-by-1 vector or an
An NZ-by-1 vector is returned when the object has
NumPulsesis equal to 1. NZ is the pulse width.
An NZ-by-M matrix is returned when either
NumPulsesis greater than 1, or
OutputFormatis set to
When the object generates a constant pulse width waveform (
PRFhas one unique value), NZ is the pulse width and M is the number of sub-pulses,
When the object generates a varying pulse width waveform (
DurationSpecificationis set to
PRFhas more than one unique value), NZ is the maximum of the pulse width and M is the product of
NumStepsand the number of unique PRFs.
You can combine optional input and output arguments when their enabling properties are
set. Optional inputs and outputs must be listed in the same order as the order of the
enabling properties. For example,
The object performs an initialization the first time the object is executed. This
initialization locks nontunable properties
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
release method to unlock the object.
Create Stepped Frequency Pulse Waveform
Create a stepped frequency pulse waveform object with a frequency step of 40 kHz and four frequency steps.
waveform = phased.SteppedFMWaveform(... 'NumSteps',4,'FrequencyStep',40e3,... 'OutputFormat','Pulses','NumPulses',1); fs = waveform.SampleRate;
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; plot(t,real(pulse4)) xlabel('Time (\mu sec)') ylabel('Amplitude') grid
Generate Matched Filter Coefficients of Stepped FM Pulse Waveform
Generate output samples and matched filter coefficients of a stepped FM pulse waveform.
waveform = phased.SteppedFMWaveform('NumSteps',2,'NumPulses',1,... 'CoefficientsOutputPort',true,'PRF',[1e4 1e4 2e4 2e4],... 'DurationSpecification','Duty cycle','DutyCycle',0.5); [wav1,coeff1] = waveform(); [wav2,coeff2] = waveform(); wav = [wav1 ; wav2];
Create a matched filter that applies the coefficients as an input argument. Use the coefficients when applying the matched filter to the waveform. Plot the waveform and matched filter outputs.
mf = phased.MatchedFilter('CoefficientsSource','Input port'); mfOut1 = mf(wav1,coeff1); mfOut2 = mf(wav2,coeff2); subplot(211),plot(real(wav)); xlabel('Samples'),ylabel('Amplitude'),title('Waveform Output'); subplot(212),plot(abs(mfOut1+mfOut2)); xlabel('Samples'),ylabel('Amplitude'),title('Matched Filter Output');
Stepped FM Waveform
In a stepped FM waveform, a group of pulses together sweep a certain bandwidth. Each pulse in this group occupies a given center frequency and these center frequencies are uniformly located within the total bandwidth.