class sdr.PED

Implements a heuristic phase error detector (PED).

Notes

The heuristic data-aided PED computes the angle between the received complex symbols \(\tilde{a}[k]\) and the known transmitted complex symbols \(a[k]\).

\[\theta_{e,DA}[k] = \angle \left( \tilde{a}[k] \cdot a^*[k] \right)\]

The heuristic decision-directed PED computes the angle between the received complex symbols \(\tilde{a}[k]\) and the complex symbol decisions \(\hat{a}[k]\).

\[\theta_{e,DD}[k] = \angle \left( \tilde{a}[k] \cdot \hat{a}^*[k] \right)\]

References

  • Michael Rice, Digital Communications: A Discrete-Time Approach, Section 7.2.1.

Examples

Compare the data-aided and decision-directed PEDs on QPSK modulation.

In [1]: qpsk = sdr.PSK(4)

In [2]: ped = sdr.PED()
In [3]: error, da_error = ped.data_aided_error(qpsk); \
   ...: error, dd_error = ped.decision_directed_error(qpsk)
   ...: 

In [4]: plt.figure(); \
   ...: plt.plot(error, da_error, label="Data-aided"); \
   ...: plt.plot(error, dd_error, label="Decision-directed"); \
   ...: plt.grid(True, linestyle="--"); \
   ...: plt.legend(); \
   ...: plt.xlabel("Phase of received symbols (radians)"); \
   ...: plt.ylabel("Phase error (radians)"); \
   ...: plt.title("Comparison of data-aided and decision-directed PEDs on QPSK");
   ...: 
../../_images/sdr_PED_1.png

Observe that the slope of the phase error \(K_p = 1\) is the same for both the data-aided and decision-directed PEDs. Also note that the unambiguous range of the data-aided PED is \([-\pi, \pi)\) and the decision-directed PED is \([-\pi/M, \pi/M)\).

Constructors

PED()

Initializes the PED.

Special methods

__call__(received: NDArray[complex128], ...) NDArray[float64]

Detects the phase error.

Methods

data_aided_error(...) tuple[NDArray[float64], NDArray[float64]]

Simulates the average phase error of the data-aided PED using the specified modulation scheme.

decision_directed_error(...) tuple[NDArray[float64], NDArray[float64]]

Simulates the average phase error of the decision-directed PED using the specified modulation scheme.

Properties

property gain : float

The gain of the phase error detector \(K_p\).