- class sdr.CPM
Implements continuous-phase modulation (CPM).
Variable nomenclature
\(k\): Symbol index
\(n\): Sample index
\(s[k]\): Decimal symbols
\(a[k]\) Complex symbols
\(x[n]\): Pulse-shaped complex samples
\(\tilde{x}[n]\): Received (noisy) pulse-shaped complex samples
\(\tilde{a}[k]\): Received (noisy) complex symbols
\(\hat{a}[k]\): Complex symbol decisions
\(\hat{s}[k]\): Decimal symbol decisions
Constructors¶
Methods¶
- modulate(s: ArrayLike) NDArray[complex128]
Modulates the decimal symbols \(s[k]\) into pulse-shaped complex samples \(x[n]\).
- demodulate(x_tilde: ArrayLike) NDArray[int_]
Demodulates the pulse-shaped complex samples into decimal symbol decisions.
-
abstract ber(ebn0: ArrayLike | None =
None
) ndarray Computes the bit error rate (BER) at the provided \(E_b/N_0\) values.
- abstract ser(esn0: ArrayLike) ndarray
Computes the symbol error rate (SER) at the provided \(E_s/N_0\) values.
Properties¶
- property phase_offset : float
The phase offset \(\phi\) in degrees.
- property pulse_shape : ndarray
The pulse shape \(h[n]\) of the instantaneous frequency of the signal.
- property tx_filter : Interpolator
The transmit interpolating pulse shaping filter. The filter coefficients are the pulse shape \(h[n]\).
- property rx_filter : Decimator
The receive decimating matched filter. The filter coefficients are matched to the pulse shape \(h[-n]^*\).