- class sdr.LoopFilter
Implements a 2nd order, proportional-plus-integrator (PPI) loop filter.
Notes
+----+ +-->| K1 |---------------------+ | +----+ | x[n] --+ @--> y[n] | +----+ | +-->| K2 |-->@--------------+--+ +----+ ^ | | +------+ | +---| z^-1 |<--+ +------+ x[n] = Input signal y[n] = Output signal K1 = Proportional gain K2 = Integral gain z^-1 = Unit delay @ = Adder
The transfer function of the loop filter is
\[H(z) = K_1 + K_2 \frac{ 1 }{ 1 - z^{-1}} = \frac{(K_1 + K_2) - K_1 z^{-1}}{1 - z^{-1}} .\]The second-order proportional-plus-integrator loop filter can track a constant phase error and/or frequency error to zero. It cannot, however, track a constant chirp (frequency ramp) to zero.
References
Michael Rice, Digital Communications: A Discrete-Time Approach, Appendix C: Phase Locked Loops.
Examples
See the Phase-locked loops example.
Constructors¶
- LoopFilter(noise_bandwidth: float, damping_factor: float, ...)
Creates a 2nd order, proportional-plus-integrator (PPI) loop filter.
Special methods¶
Methods¶
Properties¶
- property noise_bandwidth : float
The normalized noise bandwidth \(B_n T\) of the loop filter.
- property damping_factor : float
The damping factor \(\zeta\) of the loop filter.
- property proportional_gain : float
The proportional gain \(K_1\) of the loop filter.
- property integral_gain : float
The integral gain \(K_2\) of the loop filter.