Minimum shift keying demodulation

`z = mskdemod(y,nsamp)`

z = mskdemod(y,nsamp,* dataenc*)

z = mskdemod(y,nsamp,

`dataenc`

z = mskdemod(y,nsamp,

`dataenc`

[z,phaseout] = mskdemod(...)

[z,phaseout,stateout] = mskdemod(...)

`z = mskdemod(y,nsamp)`

demodulates
the complex envelope `y`

of a signal using the differentially
encoded minimum shift keying (MSK) method. `nsamp`

denotes
the number of samples per symbol and must be a positive integer. The
initial phase of the demodulator is 0. If `y`

is
a matrix with multiple rows and columns, the function treats the columns
as independent channels and processes them independently.

`z = mskdemod(y,nsamp,`

specifies
the method of encoding data for MSK. * dataenc*)

`dataenc`

`'diff'`

for differentially
encoded MSK or `'nondiff'`

for
nondifferentially encoded MSK.`z = mskdemod(y,nsamp,`

specifies
the initial phase of the demodulator. * dataenc*,ini_phase)

`ini_phase`

is
a row vector whose length is the number of channels in `y`

and
whose values are integer multiples of `pi/2`

. To
avoid overriding the default value of `dataenc`

`dataenc`

`[]`

.`z = mskdemod(y,nsamp,`

specifies
the initial state of the demodulator. * dataenc*,ini_phase,ini_state)

`ini_state`

contains
the last half symbol of the previously received signal. `ini_state`

is
an `nsamp`

-by-C matrix, where C is the number of
channels in `y`

.`[z,phaseout] = mskdemod(...)`

returns
the final phase of `y`

, which is important for demodulating
a future signal. The output `phaseout`

has the same
dimensions as the `ini_phase`

input, and assumes
the values `0`

, `pi/2`

, `pi`

,
and `3*pi/2`

.

`[z,phaseout,stateout] = mskdemod(...)`

returns
the final `nsamp`

values of `y`

,
which is useful for demodulating the first symbol of a future signal. `stateout`

has
the same dimensions as the `ini_state`

input.

[1] Pasupathy, Subbarayan, "Minimum
Shift Keying: A Spectrally Efficient Modulation," *IEEE
Communications Magazine*, July, 1979, pp. 14–22.

Was this topic helpful?