sdr.CPM(order: int, index: float = 0.5, symbol_labels: 'bin' | 'gray' | ArrayLike = 'bin', phase_offset: float = 0.0, sps: int = 8, pulse_shape: ArrayLike | 'rect' = 'rect', span: int = 1)

Creates a new continuous-phase modulation object.

Parameters:
order: int

The modulation order \(M = 2^k\).

index: float = 0.5

The modulation index \(h\). The modulation index is the ratio of the frequency deviation to the symbol rate \(h = \Delta f / f_{sym}\). The phase change per symbol is \(\pi h\).

symbol_labels: 'bin' | 'gray' | ArrayLike = 'bin'

The decimal symbol labels of consecutive complex symbols.

  • "bin": The symbols are binary-coded. Adjacent symbols may differ by more than one bit.

  • "gray": The symbols are Gray-coded. Adjacent symbols only differ by one bit.

  • npt.ArrayLike: An \(M\)-length array whose indices are the default symbol labels and whose values are the new symbol labels.

phase_offset: float = 0.0

A phase offset \(\phi\) in degrees.

sps: int = 8

The number of samples per symbol \(f_s / f_{sym}\).

pulse_shape: ArrayLike | 'rect' = 'rect'

The pulse shape \(h[n]\) of the instantaneous frequency of the signal. If a string is passed, the pulse shape is normalized such that the maximum value is 1.

  • npt.ArrayLike: A custom pulse shape. It is important that sps matches the design of the pulse shape. See Pulse shaping.

  • "rect": Rectangular pulse shape.

span: int = 1

The span of the pulse shape in symbols. This is only used if pulse_shape is a string.

See also

sdr.rectangular