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

Creates a new continuous-phase modulation object.

Parameters:
order: int

The modulation order M=2k.

index: float = 0.5

The modulation index h. The modulation index is the ratio of the frequency deviation to the symbol rate h=Δf/fsym. The phase change per symbol is πh.

symbol_labels: 'bin' | 'gray' | TypeAliasForwardRef('~numpy.typing.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 ϕ in degrees.

sps: int = 8

The number of samples per symbol fs/fsym.

pulse_shape: TypeAliasForwardRef('~numpy.typing.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