sdr.PSK(order: int, phase_offset: float = 0.0, symbol_labels: 'bin' | 'gray' | ArrayLike = 'gray', sps: int = 8, pulse_shape: ArrayLike | 'rect' | 'sine' | 'rc' | 'srrc' = 'rect')

Creates a new PSK object.

Parameters:
order: int

The modulation order \(M = 2^k\), where \(k \ge 1\) is the bits per symbol.

phase_offset: float = 0.0

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

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

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. The default symbol labels are \(0\) to \(M-1\) for phases starting at \(1 + 0j\) and going counter-clockwise around the unit circle.

sps: int = 8

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

pulse_shape: ArrayLike | 'rect' | 'sine' | 'rc' | 'srrc' = 'rect'

The pulse shape \(h[n]\) of the modulated signal.

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

  • "rect": Rectangular pulse shaping with sps samples per symbol, see sdr.rectangular().

  • "sine": Half-sine pulse shaping with sps samples per symbol, see sdr.half_sine().

  • "rc": Raised cosine pulse shaping with sps samples per symbol, roll-off factor of 0.2, and span of 10 symbols. This option is for convenience. Users can design their own RC pulse shape with sdr.raised_cosine().

  • "srrc": Square-root raised cosine pulse shaping with sps samples per symbol, roll-off factor of 0.2, and span of 10 symbols. This option is for convenience. Users can design their own SRRC pulse shape with sdr.root_raised_cosine().