mskmod

Minimum shift keying modulation

Syntax

``Y = mskmod(X,nsamp)``
``Y = mskmod(X,nsamp,dataenc)``
``Y= mskmod(X,nsamp,dataenc,initphase)``
``[Y,phaseout] = mskmod(___)``

Description

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

example

````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.```

Examples

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.

`eyediagram(z,16);`

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`

References

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

Version History

Introduced before R2006a

expand all