- class sdr.CPM
Implements continuous-phase modulation (CPM).
Note
The nomenclature for variable names in continuous-phase modulation is as follows: \(s[k]\) are decimal symbols, \(\hat{s}[k]\) are decimal symbol decisions, \(a[k]\) are complex symbols, \(\tilde{a}[k]\) are received complex symbols, \(\hat{a}[k]\) are complex symbol decisions, \(x[n]\) are pulse-shaped complex samples, and \(\tilde{x}[n]\) are received pulse-shaped complex samples. \(k\) indicates a symbol index and \(n\) indicates a sample index.
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]^*\).