class sdr.ClosedLoopPLL

A class that defines the performance of a closed-loop PLL.

Note

This class is meant for performance analysis only.

Notes

Closed-Loop PLL Block Diagram
             bb[n]
        +---+    +-----+    +----+
x[n] -->| X |--->| PED |--->| LF |---+
        +---+    +-----+    +----+   |
          ^                          |
          |  +---------+   +-----+   |
   lo[n]  +--| e^(-j.) |<--| NCO |<--+
             +---------+   +-----+

x[n] = Input signal
lo[n] = Local oscillator signal
bb[n] = Baseband signal
PED = Phase error detector
LF = Loop filter
NCO = Numerically-controlled oscillator

The transfer function of the 2nd order, proportional-plus-integrator loop filter is

\[H_{LF}(z) = K_1 + K_2 \frac{ 1 }{ 1 - z^{-1}} = \frac{(K_1 + K_2) - K_1 z^{-1}}{1 - z^{-1}} .\]

The transfer function of the NCO is

\[H_{NCO}(z) = K_0 \frac{z^{-1}}{1 - z^{-1}} .\]

The closed-loop transfer function of the PLL is

\[ H_{PLL}(z) = \frac{K_p K_0 (K_1 + K_2) z^{-1} - K_p K_0 K_1 z^{-2}} {1 - 2 (1 - \frac{1}{2} K_p K_0 (K_1 + K_2) z^{-1} + (1 - K_p K_0 K_1) z^{-2} } . \]

References

    1. Rice, Digital Communications: A Discrete-Time Approach, Appendix C: Phase Locked Loops.

Examples

See the Phase-locked loops example.

Constructors

ClosedLoopPLL(noise_bandwidth: float, damping_factor: float, ...)

Creates a closed-loop PLL analysis object.

Methods

frequency_lock_time(freq_offset: float) float

Returns the frequency lock time of the PLL.

lock_time(freq_offset: float) float

Returns the lock time of the PLL.

phase_error_variance(cn0: float) float

Returns the variance of the phase error of the PLL in steady state.

phase_lock_time() float

Returns the phase lock time of the PLL.

Properties

property Bn : float

The noise bandwidth of the PLL in Hz.

property BnT : float

The normalized noise bandwidth of the PLL.

property iir : IIR

The IIR filter that represents the closed-loop transfer function of the PLL.

property K0 : float

The NCO gain.

property K1 : float

The proportional gain of the loop filter.

property K2 : float

The integral gain of the loop filter.

property Kp : float

The phase error detector (PED) gain.

property omega_3dB : float

The 3-dB bandwidth of the PLL in radians/s.

property omega_n : float

The natural frequency of the PLL in radians/s.

property sample_rate : float

The sample rate of the PLL in samples/s.

property zeta : float

The damping factor of the PLL.