Main Content


Minimum shift keying modulation


Y = mskmod(X,nsamp) applies differentially encoded minimum shift keying (MSK) modulation to the input data, X, and returns the modulated MSK baseband signal.


Y = mskmod(X,nsamp,dataenc) specifies the data encoding method for MSK.

Y= mskmod(X,nsamp,dataenc,initphase) specifies the initial phase of the MSK modulator.

[Y,phaseout] = mskmod(___) returns the final phase of Y for any of the input argument combinations in the previous syntaxes.


collapse all

Modulate a signal using minimum shift keying (MSK) modulation, and generate the eye diagram.

Generate a random binary signal.

x = randi([0 1],100,1);

Apply MSK modulation to the signal.

y = mskmod(x,8,[],pi/2);

Pass the signal through an additive white Gaussian noise channel. Set the signal-to-noise ratio to 30 dB.

z = awgn(y,30,'measured');

Display the eye diagram.


Input Arguments

collapse all

Input data, specified as a vector or matrix of binary values. If Y is a matrix, the function processes the columns independently.

Data Types: single | double

Number of samples per output symbol, specified as a positive integer.

Data Types: single | double

Data encoding method, specified as one of these options.

  • "diff" — Use differentially encoded MSK.

  • "nondiff" — Use nondifferentially encoded MSK.

  • [] — Use to avoid overriding the default value.

Initial phase of the MSK modulator in radians, specified as a scalar or row vector of integer multiples of pi/2. The length of initphase equals the number of channels in X.

Data Types: single | double

Output Arguments

collapse all

MSK modulated baseband signal, returned as a column vector or matrix.

Data Types: double | single
Complex Number Support: Yes

Final phase of the MSK modulated baseband signal, returned as a scalar or row vector in which each value is 0, pi/2, pi, or 3*pi/2. The output argument phaseout has the same dimensions as the input argument initphase.

Data Types: single | double


[1] Pasupathy, S., “Minimum Shift Keying: A Spectrally Efficient Modulation.”IEEE Communications Magazine, July, 1979, pp. 14–22.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced before R2006a

expand all