Modulation

Linear modulations

class sdr.LinearModulation

Implements linear phase/amplitude modulation with arbitrary symbol mapping.

class sdr.PSK(sdr.LinearModulation)

Implements phase-shift keying (PSK) modulation and demodulation.

class sdr.PiMPSK(sdr.PSK)

Implements \(\pi/M\) phase-shift keying (\(\pi/M\) PSK) modulation and demodulation.

class sdr.OQPSK(sdr.PSK)

Implements offset quadrature phase-shift keying (OQPSK) modulation and demodulation.

Continuous-phase modulations

class sdr.MSK(sdr.OQPSK)

Implements minimum-shift keying (MSK) modulation and demodulation.

Orthogonal modulations

Pulse shaping

sdr.rectangular(sps: int, span: int = 1, ...) NDArray[float_]

Returns a rectangular pulse shape.

sdr.half_sine(sps: int, span: int = 1, ...) NDArray[float_]

Returns a half-sine pulse shape.

sdr.gaussian(time_bandwidth: float, span, ...) NDArray[float_]

Returns a Gaussian pulse shape.

sdr.raised_cosine(alpha: float, span: int, ...) NDArray[float_]

Returns a raised cosine (RC) pulse shape.

sdr.root_raised_cosine(alpha: float, span, ...) NDArray[float_]

Returns a square root raised cosine (SRRC) pulse shape.

Symbol mapping

sdr.binary_code(n: int) NDArray[int_]

Generates a binary code of length \(2^n\).

sdr.gray_code(n: int) NDArray[int_]

Generates a Gray code of length \(2^n\).

Symbol encoding

sdr.diff_encode(x: ArrayLike, y_prev: int = 0) NDArray[int_]

Differentially encodes the input data \(x[k]\).

sdr.diff_decode(y: ArrayLike, y_prev: int = 0) NDArray[int_]

Differentially decodes the input data \(y[k]\).


Last update: Sep 04, 2023