Main Content

phased.MFSKWaveform

MFSK waveform

Description

The multiple frequency shift keying (MFSK) waveform is used in automotive radar to improve simultaneous range and Doppler estimation of multiple targets. The MFSKWaveform System object™ creates the baseband representation of an MFSK waveform. An MFSK waveform consists of two interleaved sequences of increasing frequencies, as described in Algorithms.

To obtain waveform samples:

  1. Create the phased.MFSKWaveform object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

sMFSK = phased.MFSKWaveform creates an MFSK waveform object, sMFSK, with additional properties specified by one or more Name-Value pair arguments. Name must appear inside double quotes (""). You can specify several name-value pair arguments in any order as Name1=Value1,…,NameN=ValueN. For example, to specify output signal grouping, set OutputFormat to "Steps".

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Sample rate of the signal, specified as a positive scalar. Units are hertz.

Example: 96e6

Data Types: double

MFSK sweep bandwidth, specified as a positive scalar. Units are in hertz. The sweep bandwidth is the difference between the highest and lowest frequencies of either sequence.

Example: 9e7

Data Types: double

Time duration of each frequency step, specified as a positive scalar in seconds.

Example: 0.2e-3

Data Types: double

Total number of frequency steps in a sweep, specified as an even positive integer.

Example: 16

Data Types: double

Chirp offset frequency, specified as a real scalar. Units are in hertz. The offset determines the frequency translation between the two sequences.

Example: 500

Data Types: double

Output signal grouping, specified as one of "Steps", "Sweeps", or "Samples". This property has no effect on the waveform but determines the output form of the step method.

  • "Steps" — The output consists of all samples contained in an integer number of frequency steps, NumSteps.

  • "Samples" — The output consists of an integer number of samples, NumSamples.

  • "Sweeps" — The output consists of all samples contained in an integer number of sweeps, NumSweeps.

Example: "Samples"

Data Types: char

Number of samples in output, specified as a positive integer. This property applies only when you set OutputFormat to "Samples".

Example: 200

Data Types: double

Number of frequency steps in output, specified as a positive integer. This property applies only when you set OutputFormat to "Steps".

Example: 10

Data Types: double

Number of sweeps in output, specified as a positive integer. This property applies only when you set OutputFormat to "Sweeps".

Example: 5

Data Types: double

Usage

Description

Y = waveform(sMFSK) returns samples of the MFSK waveform in a N-by-1 complex valued column vector, Y.

example

Input Arguments

expand all

MFSK waveform, specified as a phased.MFSKWaveform System object.

Example: sMFSK= phased.MFSKWaveform;

Output Arguments

expand all

Output samples of MFSK waveform, returned as an N-by-1 complex valued vector. When the step method reaches the end of the waveform, the output samples wrap around from the start of the waveform, yielding a periodic waveform.

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Construct an MFSK waveform with a sample rate of 1 MHz and a sweep bandwidth of 0.1 MHz. Assume 52 steps with a step time of 4 milliseconds. Set the frequency offset to 1 kHz. There are 4000 samples per step.

fs = 1e6;
fsweep = 1e5;
tstep = 4e-3;
numsteps = 52;
foffset = 1000;
noutputsteps = 4;
sMFSK = phased.MFSKWaveform(SampleRate=fs,...
    SweepBandwidth=fsweep,...
    StepTime=tstep,...
    StepsPerSweep=numsteps,...
    FrequencyOffset=foffset,...
    OutputFormat="Steps",...
    NumSteps=noutputsteps);

Plot the real and imaginary components of the second step of the waveform using the plot method. Set the plot color to red.

plot(sMFSK,'PlotType','complex','StepIdx',2,'r')

Figure contains 2 axes objects. Axes object 1 with title MFSK waveform: real part, step 2, xlabel Time (s), ylabel Amplitude (v) contains an object of type line. Axes object 2 with title MFSK waveform: imaginary part, step 2, xlabel Time (s), ylabel Amplitude (v) contains an object of type line.

Algorithms

An MFSK waveform consists of two interleaved stepped-frequency sequences, as shown in this time-frequency diagram.

Each sequence is a set of continuous waveform (CW) signals increasing in frequency. The offset, Foffset, between the two sequences is constant and can be positive or negative. A complete waveform consists of an even number of steps, N, of equal duration, Tstep. Then, each sequence consists of N/2 steps. The sweep frequency, Fsweep, is the difference between the lowest and highest frequency of either sequence. Fsweep is always positive, indicating increasing frequency. The frequency difference between successive steps of each sequence is given by

Fstep = Fsweep/(N/2–1).

The lowest frequency of the first sequence is always 0 hertz and corresponds to the carrier frequency of the bandpass signal. The lowest frequency of the second sequence can be positive or negative and is equal to Foffset. Negative frequencies correspond to bandpass frequencies that are lower than the carrier frequency. The duration of the waveform is given by Tsweep = N *Tstep. The System object properties corresponding to the signal parameters are

Signal ParameterProperty
Fsweep"SweepBandwidth"
Tstep"StepTime"
N"StepsPerSweep"
Foffset"FrequencyOffset"

References

[1] Meinecke, Marc-Michale, and Hermann Rohling, “Combination of LFMCW and FSK Modulation Principles for Automotive Radar Systems.” German Radar Symposium GRS2000. 2000.

[2] Rohling, Hermann, and Marc-Michale Meinecke. “Waveform Design Principles for Automotive Radar Systems”. CIE International Conference on Radar. 2001.

Extended Capabilities

expand all

Version History

Introduced in R2015a