Model second-, third-, or fourth-order passive loop filter
Mixed-Signal Blockset / PLL / Building Blocks

The Loop Filter subsystem block is a passive filter whose order can vary from two to four. In a phase-locked loop (PLL) system, the subsystem filters the output of Charge Pump block and delivers the control voltage to a VCO block to generate required frequency signal.
nth Order Passive Loop Filter

in — Input currentInput current, specified as a scalar. In a phase-locked loop (PLL) system, the in port is connected to the output of a Charge Pump block, which provides the current value.
Data Types: double
out — Output voltageOutput voltage, specified as a scalar. In a PLL system, the out port is connected to the input port of a VCO block and provides the control voltage to VCO.
Data Types: double
Loop filter type — Order of the loop filter3rd Order passive (default) | 2nd Order passive | 4th Order passiveOrder of the loop filter. Simulates a second-, third-, or fourth-order passive RC loop filter.
Use get_param(gcb,'FilterType') to
view the current order of Loop filter
type.
Use set_param(gcb,'FilterType',value)
to set Loop filter type to a specific
order.
C1 (F) — Capacitance 114.5661e-15 (default) | positive real scalarCapacitor value C1, specified as a positive real scalar in farads.
Use get_param(gcb,'C1') to view the
current value of C1 (F).
Use set_param(gcb,'C1',value) to set
C1 (F) to a specific value.
Data Types: double
C2 (F) — Capacitance 2160.276e-15 (default) | positive real scalarCapacitor value C2, specified as a positive real scalar in farads.
Use get_param(gcb,'C2') to view the
current value of C2 (F).
Use set_param(gcb,'C2',value) to set
C2 (F) to a specific value.
Data Types: double
C3 (F) — Capacitance 31.0452e-15 (default) | positive real scalarCapacitor value C3, specified as a positive real scalar in farads.
To enable this parameter, select 3rd Order
passive or 4th Order
passive in Loop filter
type.
Use get_param(gcb,'C3') to view the
current value of C3 (F).
Use set_param(gcb,'C3',value) to set
C3 (F) to a specific value.
Data Types: double
C4 (F) — Capacitance 41e-12 (default) | positive real scalarCapacitor value C4, specified as a positive real scalar in farads.
To enable this parameter, select 4th Order
passive in Loop filter
type.
Use get_param(gcb,'C4') to view the
current value of C4 (F).
Use set_param(gcb,'C4',value) to set
C4 (F) to a specific value.
Data Types: double
R2 (ohms) — Resistance 23.9955e6 (default) | positive real scalarResistor value R2, specified as a positive real scalar in ohms.
Use get_param(gcb,'R2') to view the
current value of R2 (ohms).
Use set_param(gcb,'R2',value) to set
R2 (ohms) to a specific
value.
Data Types: double
R3 (ohms) — Resistance 351.0435e6 (default) | positive real scalarResistor value R3, specified as a positive real scalar in ohms.
To enable this parameter, select 3rd Order
passive or 4th Order
passive in Loop filter
type.
Use get_param(gcb,'R3') to view the
current value of R3 (ohms).
Use set_param(gcb,'R3',value) to set
R3 (ohms) to a specific
value.
Data Types: double
R4 (ohms) — Resistance 412e3 (default) | positive real scalarResistor value R4, specified as a positive real scalar in ohms.
To enable this parameter, select 4th Order
passive in Loop filter
type.
Use get_param(gcb,'R4') to view the
current value of R4 (ohms).
Use set_param(gcb,'R4',value) to set
R4 (ohms) to a specific
value.
Data Types: double
Enable increased buffer size — Enable increased buffer sizeSelect to enable increased buffer size during simulation. This increases the buffer size of the Convert Sample Time subsystem inside the Loop Filter block. By default, this option is deselected.
Buffer size — Number of samples of the input buffering available during simulation1000 (default) | positive integer scalarNumber of samples of the input buffering available during simulation, specified as a positive integer scalar. This sets the buffer size of the Convert Sample Time subsystem inside the Loop Filter block.
Selecting different simulation solver or sampling strategies can change the number of input samples needed to produce an accurate output sample. Set the Buffer size to a large enough value so that the input buffer contains all the input samples required.
This parameter is only available when Enable increased buffer size option is selected in the Configuration tab.
Use get_param(gcb,'NBuffer') to view
the current value of Buffer
size.
Use set_param(gcb,'NBuffer',value) to
set Buffer size to a specific
value.
Data Types: double
Enable impairments — Add circuit impairments to simulationSelect to add circuit impairments to simulation. By default, this option is disabled.
Operating temperature (℃) — Temperature to determine the level of thermal noise30 (default) | scalarTemperature of the resistor, specified as a scalar in degree Celsius. Operating temperature (℃) determines the level of thermal (Johnson) noise.
To enable this parameter, select Enable impairments in the Impairments tab.
Use get_param(gcb,'Temperature') to
view the current value of Operating temperature
(℃).
Use
set_param(gcb,'Temperature',value) to
set Operating temperature (℃) to a
specific value.
Data Types: double
The Loop Filter subsystem block consists of four parts: Convert Sample Time, Main Filter, Extra Poles, and Resistor Thermal Noise. The Main Filter and Extra Pole are implemented using Biquad IIR filters, and generate the transfer function based on the filter order selected. Convert Sample Time is used to convert the discrete output of PFD to a continuous signal. Resistor Thermal Noise incorporates the thermal noise based on the operating temperature of loop filter.
Transfer function of second order passive loop filter:
Transfer function of third order passive loop filter:
Transfer function of fourth order passive loop filter:
where, A1, A2, A3, and A4 are the loop filter coefficients.
Loop Filter Coefficients
| Filter Order | A1 | A2 | A3 | A4 |
| 2nd | C1+C2 | C1·C2·R2 | N/A | N/A |
| 3rd | C1+C2+C3 | (R2·C2·C3)+(R2·C1·C2)+(R3·C3·C1)+(R3·C3·C2) | C1·C2·C3·R2·R3 | N/A |
| 4th | C1+C2+C3+C4 | C2·R2(C1+C3+C4)+R3(C1+C2)(C3+C4)+C4·R4(C1+C2+C3) | ((R2·C2·C3)+(R2·C1·C2)+(R3·C3·C1)+(R3·C3·C2))R4·C4+C1·C2·R2·R3(C3+C4) | C1·C2·C3·C4·R2·R3·R4 |
[1] Banerjee, Dean. PLL Performance, Simulation and Design. Indianapolis, IN: Dog Ear Publishing, 2006.
[2] Bleany, B.I and Bleany B. Electricity and Magnetism. Oxford, UK: Oxford University Press, 1976.