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¶
Orthogonal modulations¶
Pulse shaping¶
-
sdr.rectangular(sps: int, span: int =
1
, ...) NDArray[float_] Returns a rectangular 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\).
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