RLC Low-pass Filter

\(\)Filters can remove low and/or high frequencies from an electronic signal.  My article on RC Low-pass Filter introduced a first order low-pass filter.  The second order filter introduced here improves the unit step response and the the roll-off slope for the frequency response. As we will learn, even this passive filters may exhibit resonance near the natural frequency.

We examine the properties of a filter consisting of a series circuit of an inductor \(L\), resistor \(R\) and capacitor \(C\). The output is taken across the capacitor as shown in the schematic below. We show the transfer function and derive the step and frequency response.

own work
RLC circuit

This article describes a low-pass filter, but the same principles apply to high and band pass filters and can even be extended to to resonators.  For example, taking the voltage over the inductor results in a high-pass filter, while taking the voltage over the resistor makes a band-pass filter.

Prerequisite reading includes Laplace TransformsImpedance and Transfer Functions.

Transfer Function

In the RLC circuit, shown above, the current is the input voltage divided by the sum of the impedance of the inductor \(Z_L\), the impedance of the resistor \(Z_R=R\) and that of the capacitor \(Z_C\).  The output is the voltage over the capacitor and equals the current through the system multiplied with the capacitor impedance.
$$\begin{align}
Y(s)&=I(s)Z_C=\frac{U(s)}{Z_L+Z_R+Z_C} Z_C \Rightarrow\nonumber \\
H(s)&= \frac{Y(s)}{U(s)}=\frac{Z_C}{Z_L+Z_R+Z_C} =\frac{\frac{1}{sC}}{sL+R+\frac{1}{sC}}
= \frac{1}{s^2LC+sRC+1}\label{eq:voltagedivider}
\end{align}$$
The denominator of \(\eqref{eq:voltagedivider}\) is a second-order polynomial.  The roots to this polynomial are called the system’s poles.
$$
\begin{array}{c}
\shaded{H(s)=K\frac{1}{(s-p_1)(s-p_2)}}, &
K=\frac{1}{LC}, &
p_{1,2} = -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}
\end{array}\label{eq:transferpolynomial}$$
Note that the factor \(K\) can be expressed as the product \(p_1\cdot p_2\) by applying the identity \((a+b)(a-b)=a^2-b^2\)
$$K=p_1\cdot p_2=\frac{1}{LC}\label{eq:p1p2}$$
Here is where is gets interesting:

The poles in \(\eqref{eq:transferpolynomial}\) may be real or complex conjugates.

To highlight this, we parameterize the poles in terms of the natural frequency \(\omega_n\) and damping ratio \(\zeta\).
$$\begin{align}
p_{1,2} &= -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}\nonumber\\
&= \frac{1}{\sqrt{LC}}
\left(
-\sqrt{LC}\frac{R}{2L} \pm \sqrt{LC}\sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}
\right)\nonumber \\
&= \underbrace{\frac{1}{\sqrt{LC}}}_{\omega_n}
\left(
-\underbrace{\frac{R}{2}\sqrt\frac{C}{L}}_{\zeta} \pm \sqrt{\underbrace{\left(\frac{R}{2}\sqrt\frac{C}{L}\right)^2}_{\zeta^2}-1}
\right) \\
\end{align}$$
Assign the natural frequency \(\omega_n=\sqrt{\frac{1}{LC}}\) and the damping ratio \(\zeta=\frac{R}{2}\sqrt{\frac{C}{L}}\).  These parameter choices will become evident as we examine complex conjugate poles.
$$\shaded{H(s)=K\frac{1}{(s-p_1)(s-p_2)}},\
K=\frac{1}{LC},\
p_{1,2}=\omega_n\left(-\zeta \pm \sqrt{\zeta^2-1}\right),\
\zeta=\frac{R}{2}\sqrt{\frac{C}{L}},
\omega_n=\sqrt{\frac{1}{LC}}\label{eq:transferpoles}$$
This dampening coefficient \(\zeta\) determines the behavior of the system.  Given that the value of \(\frac{1}{LC} >0\) and \(\frac{R}{L}\geq0\), we can identify three classes of pole locations.

Effect of dampening coefficient \(\zeta\) on system behavior
ζ Pole location Referred to as
\(\zeta>1\) different locations on the negative real axis overdamped \(R>2\sqrt\frac{L}{C}\)
\(\zeta=1\) coincite on the negative real axis critically damped \(R=2\sqrt\frac{L}{C}\)
\(\zeta<1\) complex conjugate poles in the left half of the s-plane underdamped \(R<2\sqrt\frac{L}{C}\)

In the overdamped case, \(\zeta>1\), the following relation between \(R\), \(L\) and \(C\) must be true
$$\begin{align}
\zeta&>1\nonumber\\
\frac{R}{2}\sqrt{\frac{C}{L}}&>1\nonumber\\
R&>2\sqrt\frac{L}{C}
\end{align}$$
Following sections determine the step and frequency response for each of these classes.

Two Different Real Poles (overdamped case, \(\zeta>1\))

The two poles from equation \(\eqref{eq:transferpolynomial}\) are on separate locations on the negative real axis.
$$\begin{array}{ccc}
p_{1,2} = -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}},&{R>2\sqrt\frac{L}{C}}
\end{array}$$
Note that \(p_1|p_2|\), as visualized in the \(s\)-plane

own work
\(s\)-plane for overdamped case

Unit Step Response

The unit step response shows how the system reacts to the input going from \(0\) to \(1\) volt at time \(t=0\).  This input is called the Unit Step Function, here represented by \(u(t)=\gamma(t)\).  The unit step response gives an impression of the system behavior in the time domain.

Multiplying the  Laplace transform of the unit step function, \(\Gamma(s)\), with the transfer function \(\eqref{eq:transferpolynomial}\), gives the unit step response \(Y(s)\).
$$\begin{align}
Y(s)&=\Gamma(s)\cdot H(s)\nonumber \\
&= \frac{1}{s}\cdot K\frac{1}{(s-p_1)(s-p_2)}\nonumber \\
&= K\frac{1}{s(s-p_1)(s-p_2)}
\end{align}\label{eq:case1a_multiplication}$$
Split up this complicated fraction into forms that are in the Laplace Transform table. According to Heaviside, this can be expressed as partial fractions.  Note that we need to set up a partial fraction for each descending power of the denominator. [swarthmoreMIT-cu]
$$Y(s)=K\frac{1}{s(s-p_1)(s-p_2)} \equiv \frac{c_0}{s}+\frac{c_1}{s-p_1}+\frac{c_2}{s-p_2}\label{eq:case1a_heaviside}$$
Substitute \(K=p_1 p_2\) from \(\eqref{eq:p1p2}\) and use Heaviside’s cover up method to find the constants \(c_{0,1,2}\).
$$\left.\begin{eqnarray}
c_0&=&\left.\frac{p_1p_2}{(s-p_1)(s-p_2)}\right|_{s=0}
&=1\nonumber\\
c_1&=&\left.\frac{p_1p_2}{s(s-p_2)}\right|_{s=p1}
&=\frac{p_2}{p1-p_2}\nonumber\\
c_2&=&\left.\frac{p_1p_2}{s(s-p_1)}\right|_{s=p2}
&=\frac{p_1}{p_2-p_1}\nonumber\\
\end{eqnarray}\right\}\label{eq:case1a_constants}$$
The unit step response \(y(t)\) follows from the inverse Laplace transform of \(\eqref{eq:case1a_heaviside}\) and substituting the constants \(\eqref{eq:case1a_constants}\)
$$\begin{align}
y(t)&=\mathcal{L}^{-1}\left\{\frac{c_0}{s}\right\}+\mathcal{L}^{-1}\left\{\frac{c_1}{s-p_1}\right\}+\mathcal{L}^{-1}\left\{\frac{c_2}{s-p_2}\right\} & t\geq0\nonumber\\
&=c_0+c_1e^{p_1t}+c_2e^{p_2t} & t\geq0
\end{align}$$
Substituting the constants \(\eqref{eq:case1a_constants}\) gives the unit step response
$$\shaded{y(t)=\left(1+\frac{p_2}{p_1-p_2}e^{p_1t}+\frac{p_1}{p_2-p_1}e^{p_2t}\right)\gamma(t)},
\mathrm{\ where\ }p_{1,2} = -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}\label{eq:case1a_usr}$$
As shown in the graph, the  unit step response is a relatively slow decaying exponential curve (with \(p_1appendix.

own work; requires svg capable browser
Unit step response for overdampened case

Frequency Response

The frequency response \(y_{ss}(t)\) is defined as the steady state response to a sinusoidal input signal \(u(t)=\sin(\omega t)\,\gamma(t)\).  It describes how well the filter can distinguish between different frequencies.

In Evaluating Transfer Functions, we have proven that
$$\begin{align}
y_{ss}(t)=|H(j\omega)|\,\sin(\omega t+\angle H(j\omega))\,\gamma(t)
\end{align}$$
The transfer function \(H(s)\) for this RLC Filter is given by \(\eqref{eq:transferpolynomial}\)
$$\begin{eqnarray}{c}
H(s)=K\frac{1}{(s-p_1)(s-p_2)}, &
K=\frac{1}{LC}, &
p_{1,2} = -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}
\end{eqnarray}$$
Based on Euler’s formula, we can express \(H(s)\) in polar coordinates
$$\begin{gather}\left\{
\begin{aligned}
H(s) &= |H(s)|\ e^{j\angle{H(s)}}\\\\
|H(s)| &= K \frac{\prod_{i=1}^m\left|(s-z_i)\right|}{\prod_{i=1}^n\left|(s-p_i)\right|}
=K \frac{1}{\left|s-p_1\right|\,\left|s-p_2\right|}
\\
\angle{H(s)}&=\sum_{i=1}^m\angle(s-z_i)-\sum_{i=1}^n\angle(s-p_i)
=-\left(\angle(s-p_1)+\angle(s-p_2)
\right)
\end{aligned}
\right.\end{gather}$$
This transfer function with poles at \(p_1\) and \(p_2\), evaluated for \(s=j\omega\) can be visualized with vectors from the poles to \(j\omega\).

own work
Transfer function evaluated at \(s=j\omega\) for overdampened case

The product of the length of the vector corresponds to \(|(H(j\omega)|\), and minus the sum of the angles with the real axis corresponds to phase shift \(\angle H(j\omega)\).
$$\left\{
\begin{align}
|H(j\omega)| &=K \frac{1}{\left|j\omega-p_2\right|\,\left|j\omega-p_2\right|}=
K \frac{1}{\sqrt{\omega^2+{p_1}^2}\sqrt{\omega^2+{p_2}^2}} \nonumber \\
\angle{H(j\omega)}&=-\angle(j\omega-p_1)-\angle(j\omega-p_2)\nonumber\\
&=-\mathrm{atan2}(\omega,-p_1)-\mathrm{atan2}(\omega,-p_2)\nonumber\\
&=-\arctan\frac{\omega}{-p_1}-\arctan\frac{\omega}{-p_2}\nonumber\\
&=\arctan\frac{\omega}{p_1}+\arctan\frac{\omega}{p_2},\ p<0\land p\in\mathbb{R}\nonumber \end{align} \right.\label{eq:polar1}$$ The output signal \(y_{ss}(t)\) for a sinusoidal input signal \(\sin(\omega t)\,\gamma(t)\) for \(\zeta>1\) follows as
$$\left\{
\begin{align}
y_{ss}(t)&=
|H(j\omega)|\,\sin(\omega t+\angle H(j\omega))\,\gamma(t)\nonumber\\
|H(j\omega)|
&=K \frac{1}{\sqrt{\omega^2+{p_1}^2}\sqrt{\omega^2+{p_2}^2}}\nonumber\\
\angle{H(j\omega)}
&=\arctan\frac{\omega}{p_1}+\arctan\frac{\omega}{p_2},\ p<0\land p\in\mathbb{R}\nonumber\\ K&=\frac{1}{LC}\nonumber\\ p_{1,2} &= -\frac{R}{2L} \pm \sqrt{\left(\frac{R}{2L}\right)^2-\frac{1}{LC}}\nonumber \end{align} \right.\label{eq:frequencyresponse}$$ The magnitude of the transfer function \(\eqref{eq:frequencyresponse}\) expressed on a logarithmic scale $$\begin{align} |H_{dB}(\omega)| &= 20\log\left(K\right)-20\log\sqrt{\omega^2+{p_1}^2} -20\log\sqrt{\omega^2+{p_2}^2}&p_{1,2}\in\mathbb{R}\\ \end{align}$$ The Bode plot shows the magnitude of the frequency response has a relatively shallow -20 dB/decade drop-off between \(|p_2| < \omega < |p_1|\).

own work; requires svg capable browser
Bode magnitude for overdampened case

The corresponding Nyquist plot shows a very stable system

own work; requires svg enabled browser
Nyquist for overdampened case

Coinciting Real Poles (critically-damped case, \(\zeta=1\))

In the critically-damped case, the two poles \(\eqref{eq:transferpolynomial}\) coincite on the negative real axis.

Substitute \(\zeta=1\) and \(\omega_n\) in the equation for the poles \(\eqref{eq:transferpoles}\)
$$\begin{array}{cr}
p = -\frac{R}{2L} = \sqrt\frac{1}{LC}, & R=2\sqrt\frac{L}{C}\\
\end{array}\label{eq:case2a_p}$$
This double pole \(p<0\) is on the left real axis, as visualized in the \(s\)-plane

own work
\(s\)-plane for critically-damped case

Unit Step Response

Multiplying the  Laplace transform of the unit step function, \(\Gamma(s)\), with the transfer function \(\eqref{eq:transferpolynomial}\)  gives the unit step response \(Y(s)\).
$$\begin{align}
Y(s)&=\Gamma(s)\cdot H(s)\nonumber \\
&= \frac{1}{s}\cdot K\frac{1}{(s-p)^2}, &
K=\frac{1}{LC}, & \nonumber\\
&=K\frac{1}{s(s-p)^2}
\end{align}\label{eq:case2a_multiplication}$$
Split up this complicated fraction into forms that are in the Laplace Transform table.  According to Heaviside, this can be expressed as partial fractions.  Note the factor \(\frac{c_2}{s-p}\). [swarthmoreMIT-cu]
$$Y(s)=K\frac{1}{s(s-p)^2} \equiv \frac{c_0}{s}+\frac{c_1}{\left(s-p\right)^2}+\frac{c_2}{s-p}\label{eq:case2a_heaviside}$$
Substitute \(K=p^2\) \(\eqref{eq:p1p2}\) and use Heaviside’s cover up method to find the first two constants \(c_{0,1}\).
$$\begin{array}{ll}
c_0=\left.\frac{p^2}{(s-p)^2}\right|_{s=0}&=\frac{p^2}{p^2}&=1\\
c_1=\left.\frac{p^2}{s}\right|_{s=p}&=\frac{p^2}{p}&=p\\
\end{array}\label{eq:case2a_constants1}$$
Given \(c_0\) and \(c_1\), constant \(c_2\) can be found by substituting any numerical value (other than \(0\) or \(p\)) in equation \(\eqref{eq:case2a_heaviside}\).  In this case, we substitute \(s=-p\) [MIT-ex4]
$$\begin{align}
&\frac{p^2}{s(s-p)^2} = \frac{1}{s}+\frac{p}{\left(s-p\right)^2}+\frac{c_2}{s-p}\left.\right|_{s=-p}\nonumber\\
\Rightarrow\ &-\frac{p^2}{4p^3} = -\frac{1}{p}+\frac{p}{4p^2}-\frac{c_2}{2p}\nonumber\nonumber\\
\Rightarrow\ &c_2 = -1\label{eq:case2a_constants2}
\end{align}$$
The unit step response \(y(t)\) follows from the inverse Laplace transform of \(\eqref{eq:case2a_heaviside}\)
$$\begin{align}
y(t)&= \mathcal{L}^{-1}\left\{\frac{c_0}{s}\right\}+\mathcal{L}^{-1}\left\{\frac{c_1}{(s-p)^2}\right\}+\mathcal{L}^{-1}\left\{\frac{c_2}{s-p}\right\} & t\geq0\nonumber\\
&=c_0+c_1te^{pt}+c_2e^{pt} & t\geq0\nonumber \\
&=c_0+(c_1t+c_2)e^{pt} & t\geq0  \\
\end{align}$$
Substituting the constants \(\eqref{eq:case2a_constants1}\) and \(\eqref{eq:case2a_constants2}\) yields
$$\begin{eqnarray}
\shaded{y(t)=\left(1+(pt-1)e^{pt}\right)\,\gamma(t)},
& \mathrm{where\ }p=-\sqrt\frac{1}{LC}\\
\end{eqnarray}$$
As shown in the graph below, this unit step response is a relatively fast rising exponential curve, demonstrating the shortest possible rise time without overshoot.

own work; requires svg capable browser
Step response for critically-damped case

Frequency Response

The frequency response \(y_{ss}(t)\) is defined as the steady state response to a sinusoidal input signal \(u(t)=\sin(\omega t)\,\gamma(t)\).

In Evaluating Transfer Functions, we have proven that
$$y_{ss}(t)=|H(j\omega)|\,\sin(\omega t+\angle H(j\omega))\,\gamma(t)$$
The transfer function \(H(s)\) for this RLC Filter is given by \(\eqref{eq:transferpolynomial}\) with the poles given by \(\eqref{eq:case2a_p}\)
$$
H(s)=K\frac{1}{(s-p)^2},\
K=\frac{1}{LC},\
p =\sqrt{\frac{1}{LC}}\label{eq:case2b_splane}$$
Based on Euler’s formula, we can express \(H(s)\) in  polar coordinates
$$\left\{
\begin{align}
H(s) &= |H(s)|\ e^{j\angle{H(s)}}\nonumber\\
|H(s)| &= K \frac{\prod_{i=1}^m\left|(s-z_i)\right|}{\prod_{i=1}^n\left|(s-p_i)\right|}
=K \frac{1}{\left|s-p\right|\,\left|s-p\right|}\nonumber\\
\angle{H(s)}&=\sum_{i=1}^m\angle(s-z_i)-\sum_{i=1}^n\angle(s-p_i)
=-\left(\angle(s-p)+\angle(s-p)
\right)\nonumber
\end{align}
\right.$$
This transfer function with the double poles at \(p\), evaluated for \(s=j\omega\) can be visualized with vectors from the poles to \(j\omega\).

own work
Transfer function evaluated at \(s=j\omega\) for critically-damped case

The square of the length of the vector corresponds to \(|(H(j\omega)|\), and minus twice the angles with the real axis corresponds to phase shift \(\angle H(j\omega)\).
$$\left\{
\begin{align}
|H(j\omega)| &=K \frac{1}{\left|j\omega-p\right|\,\left|j\omega-p\right|}=
K \frac{1}{\sqrt{\omega^2+{p}^2}\sqrt{\omega^2+{p}^2}}\nonumber\\
&=K\frac{1}{\omega^2+p^2}\nonumber\\
\angle{H(j\omega)}&=-\angle(j\omega-p)-\angle(j\omega-p)=-2\angle(j\omega-p)\nonumber\\
&=-2\cdot \mathrm{atan2}(\omega,-p)
=-2\cdot\arctan\frac{\omega}{-p}\nonumber\\
&=2\arctan\frac{\omega}{p},\ p<0\land p\in\mathbb{R}\nonumber \end{align} \right.\label{eq:case2_polar1}$$ The output signal \(y_{ss}(t)\) for a sinusoidal input signal \(\sin(\omega t)\,\gamma(t)\) for \(\zeta=1\) follows as $$\left\{ \begin{align} y_{ss}(t)&= |H(j\omega)|\,\sin(\omega t+\angle H(j\omega))\,\gamma(t)\nonumber\\ |H(j\omega)| &=K \frac{1}{\omega^2+p^2}\nonumber\\ \angle{H(j\omega)} &=2\arctan\frac{\omega}{p}, & p<0\land p\in\mathbb{R}\nonumber\\ K&=\frac{1}{LC}\nonumber\\ p &= \sqrt{\frac{1}{LC}}\nonumber \end{align} \right.\label{eq:case2_frequencyresponse}$$ The magnitude of the transfer function \(\eqref{eq:case2_frequencyresponse}\) expressed on a logarithmic scale $$\begin{align} p,\,p^* &=\omega_n\left(-\zeta \pm \sqrt{-j^2\left(\zeta^2-1\right)}\right)\\ &=\omega_n\left(-\zeta \pm j\sqrt{1-\zeta^2}\right)\\ \end{align}\label{eq:case2b_polar}$$ The magnitude of the frequency response has a relatively steep -40 dB/decade drop-off at \(\omega_n\) without signs of resonance.

own work; requires svg capable browser
Bode magnitude for critically-damped case

The corresponding Nyquist plot

own work; requires svg enabled browser
Nyquist plot for critically-damped case

Complex Poles (underdamped case, \(\zeta<1\))

For complex conjugate poles, the transfer function \(\eqref{eq:transferpoles}\) can be written as below.  Given that \(\zeta<1\), the argument of the square root in the poles will be negative. Multiply this argument with \(-j^2\) to highlight the imaginary part apart. $$H(s)=K\frac{1}{(s-p)(s-p^\ast)}\label{eq:case3a_transferpoles}$$ Where $$\begin{align} \mathrm{where\ }K&=\frac{1}{LC},\nonumber\\ p,p^\ast&=\omega_n\left(-\zeta \pm \sqrt{-j^2\left(\zeta^2-1\right)}\right) =\omega_n\left(-\zeta \pm j\sqrt{1-\zeta^2}\right),\nonumber\\ \omega_n&=\sqrt{\frac{1}{LC}},\nonumber\\ \zeta&=\frac{R}{2}\sqrt{\frac{C}{L}}\nonumber \end{align}\label{eq:case3a_transferpoleswhere}$$ Split the conjugate poles in their real and imaginary parts by defining the poles from equation \(\eqref{eq:case3a_transferpoles}\) as \(p,\,p^*\equiv -\sigma\pm j\omega_d\) $$p,\,p^\ast=\omega_n\left(-\zeta \pm j\sqrt{1-\zeta^2}\right) \equiv -\sigma\pm j\omega_d\label{eq:sigmaomegad}$$ So that $$\begin{eqnarray} \left\{ \begin{aligned} \sigma&=\omega_n\zeta,&\text{attenuation}\nonumber\\ \omega_d&=\omega_n\sqrt{1-\zeta^2},&\text{damped natural frequency}\nonumber \end{aligned} \right. \end{eqnarray}\label{eq:sigmaomegad_}$$ This equation indicates that the conjugate poles \(p, p^*\) lay in the left half of the \(s\)-plane. The length of the line segment from the origin to pole \(p\) represents the natural frequency \(\omega_n\) and the angle of the imaginary axis with that line is \(\arcsin\) of the attenuation \(\zeta\).  [MIT-me]

own work
\(s\)-plane for underdamped case

Unit Step Response

Multiplication of the Laplace transform of the unit step function, \(\Gamma(s)\), with the transfer function \(\eqref{eq:case3a_transferpoles}\) gives the unit step response \(Y(s)\).
$$\begin{align}
Y(s)&=\Gamma(s)\cdot H(s)\nonumber \\
&= \frac{1}{s}\cdot K\frac{1}{(s-p)(s-p^\ast)}\nonumber \\
&= K\frac{1}{s(s-p)(s-p^\ast)}
\end{align}\label{eq:case3a_multiplication}$$
Using Heaviside, split this equation partial fractions that can be found in the Laplace Transform table
$$Y(s)=K\frac{1}{s(s-p)(s-p^\ast)} \equiv \frac{c_0}{s}+\frac{c_1}{s-p}+\frac{c_2}{s-p^\ast}\label{eq:case3a_heaviside}$$
Substitute \(K=p\cdot p^\ast\) from equation \(\eqref{eq:p1p2}\) and use Heaviside’s cover up method to find the constants \(c_{0,1,2}\).
$$\left.\begin{eqnarray}
c_0=\left.\frac{p\,p^*}{(s-p)(s-p^*)}\right|_{s=0}
&=1\nonumber\\
c_1=\left.\frac{p\,p^*}{s(s-p^*)}\right|_{s=p}
&=\frac{p^*}{p-p^*}\nonumber\\
c_2=\left.\frac{p\,p^*}{s(s-p)}\right|_{s=p^*}
&=\frac{p}{p^*-p}&={c_1}^*\nonumber
\end{eqnarray}\right\}\label{eq:case3a_constants}$$
The constants \(c_1\) and \(c_2\) are complex conjugates of each other since they are equivalent except for the sign on the imaginary part. To highlight this, substitute the values for the poles from \(\eqref{eq:sigmaomegad}\) and write these constants in polar notation
$$\begin{align}
c_1&=\frac{p^*}{p-p^\ast}
=\frac{-\sigma-j\omega_d}{(-\sigma+j\omega_d)-(-\sigma-j\omega_d)}\nonumber\\
&=\frac{-\sigma-j\omega_d}{j2\omega_d}
=\frac{j(\sigma+j\omega_d)}{j(-j2\omega_d)}
=\frac{j\sigma-\omega_d}{2\omega_d}\nonumber\\
&=\frac{1}{2\omega_d}\left(-\omega_d+j\sigma\right)\overset{Euler}\Rightarrow\nonumber\\
&=\frac{|p|}{2\omega_d}\,e^{j\varphi}, \mathrm{\ where\ }
\left\{\begin{aligned}
|p|&=\sqrt{{\omega_d}^2+\sigma^2}\mathrm{\ and\ }\nonumber\\
\varphi&=\mathrm{atan2}(\sigma,-\omega_d)=\arctan\left(\frac{\sigma}{-\omega_d}\right)+\pi
\end{aligned}\right.\label{eq:case3a_c2polar} \\
c_2&={c_1}^\ast=\frac{|p|}{2\omega_d}\,e^{-j\varphi}\label{eq:case3a_c3polar}
\end{align}$$
The unit step response \(y(t)\) follows from the inverse Laplace transform of \(\eqref{eq:case3a_heaviside}\), substituting \(c_{0,1,2}\) from \(\eqref{eq:case3a_constants}\), \(\eqref{eq:case3a_c2polar}\) and \(\eqref{eq:case3a_c3polar}\).
$$\begin{align}
y(t)&= \mathcal{L}^{-1}\left\{\frac{c_0}{s}\right\}+\mathcal{L}^{-1}\left\{\frac{c_1}{s-p}\right\}+\mathcal{L}^{-1}\left\{\frac{c_2}{s-p^*}\right\} & t\geq0\nonumber\\
&=c_0+c_1e^{pt}+c_2e^{p^*t} \overset{\mathrm{subst\ consts}}\Rightarrow &t\geq0\nonumber \\
&=1+\frac{|p|}{2\omega_d}\,e^{j\varphi}e^{(-\sigma+j\omega_d)t}+\frac{|p|}{2\omega_d}\,e^{-j\varphi}e^{(-\sigma-j\omega_d)t} &t\geq0\nonumber \\
&=1+\frac{|p|}{\omega_d}\ e^{-\sigma t}\ \underbrace{\frac{
e^{j(\omega_d t+\varphi)}+e^{-j(\omega_d t+\varphi)}}{2}}_{\text{Euler idendity for cosine}} &t\geq0
\end{align}$$
Apply the Euler identify for cosine, and reference \(|p|\) and \(\varphi\) from equation \\(\eqref{eq:case3a_c2polar}\) and \(\eqref{eq:case3a_c3polar}\), \(\sigma\) and \(\omega_d\) from equation \(\eqref{eq:sigmaomegad}\) and \(\zeta\) and \(\omega_n\) from \(\eqref{eq:case3a_transferpoles}\)
$$
\shaded{y(t)=\left(
1+\frac{|p|}{\omega_d}e^{-\sigma t}\cos(\omega_d t+\varphi)
\right)\gamma(t)}\label{eq:case3a_usr}$$
Where
$$\begin{aligned}
|p|&=\sqrt{{\omega_d}^2+\sigma^2}\\
\omega_d&=\omega_n\sqrt{1-\zeta^2}\\
\sigma&=\omega_n\zeta\\
\omega_n&=\sqrt{\frac{1}{LC}}\\
\zeta&=\frac{R}{2}\sqrt{\frac{C}{L}}\\
\varphi&=\pi-\arctan\frac{\sigma}{\omega_d}
\end{aligned}\label{eq:case3a_usr_where}$$
The graph shows the response for different values of \(R\).  This underdamped circuit oscillates, with the  amplitude exceeding that of the input (\(1\)).

own work; requires svg capable browser
Step response for underdamped case

For the extreme case, where \(R=0\), the response becomes \(\left(1-cos(\omega_n t)\right)\gamma(t)\), oscillating with an amplitude reaching twice the input (\(1\)).

Frequency Response

The frequency response \(y_{ss}(t)\) is defined as the steady state response to a sinusoidal input signal
$$u(t)=\sin(\omega t)\,\gamma(t)$$
We can rewrite the transfer function \(\eqref{eq:transferpoles}\) by substituting the poles from \(\eqref{eq:sigmaomegad}\)
$$\begin{align}
H(s)&=K\frac{1}{(s-p)(s-p^\ast)}
=K\frac{1}{s^2-s(p+p^\ast)+p\,p^\ast}\overset{\mathrm{subst\ }p,p\ast}\Rightarrow\nonumber\\
&=K\frac{1}{s^2-s(
\omega_n\left(-\zeta + j\sqrt{1-\zeta^2}\right) +
\omega_n\left(-\zeta – j\sqrt{1-\zeta^2}\right)
)+p\,p^\ast}\overset{\mathrm{subst\ }pp^\ast={\omega_n}^2}\Rightarrow\nonumber\\
&=K\frac{1}{s^2-s\omega_n\left(
\left(-\zeta \cancel{+j\sqrt{1-\zeta^2}}\right) +
\left(-\zeta \cancel{-j\sqrt{1-\zeta^2}}\right)
\right)+{\omega_n}^2}\nonumber\\
&=K\frac{1}{s^2+2\zeta\omega_n s +{\omega_n}^2}\label{eq:case3a_newhs}
\end{align}$$
In Evaluating Transfer Functions, we derived the frequency response as
$$y_{ss}(t)=|H(j\omega)|\,\sin(\omega t+\angle H(j\omega))\,\gamma(t)$$
This transfer function with the poles at \(p\) and \(p^\ast\), evaluated for \(s=j\omega\) can be visualized with vectors from the poles to \(j\omega\).

z-plane complex poles jw
Transfer function evaluated at \(s=j\omega\) for underdamped case/figcaption>

Substitute \(s=j\omega\) into the transfer function \(\eqref{eq:case3a_newhs}\)
$$\begin{align}
H(j\omega)&=K\frac{1}{(j\omega)^2+2\zeta\omega_n (j\omega) +{\omega_n}^2}
=K\frac{1}{({\omega_n}^2-\omega^2)+j(2\zeta\omega_n \omega)}
\end{align}$$
The transfer function can be expressed in polar form using Euler’s formula as
$$\begin{gather}\left\{
\begin{aligned}
H(s) &= |H(s)|\ e^{j\angle{H(s)}}\\\\
|H(s)| &= K\frac{1}{\sqrt{({\omega_n}^2-\omega^2)^2+(2\zeta\omega_n \omega)^2}}\\
\angle{H(s)}&=-\mathrm{atan2}\left(2\zeta\omega_n \omega,\ {\omega_n}^2-\omega^2\right)\\
\end{aligned}
\right.\end{gather}\label{eq:case3b_polar}$$
The graph shows the magnitude of the output for different values of \(R\).  The magnitude of the frequency response demonstrates resonant behavior. Note the voltage amplification around the natural frequency \(\omega_n\) .

own work; requires svg capable browser
Bode magnitude for underdamped case

The corresponding Nyquist plot shows that the system gets less stable as the resistor value decreases

own work; requires svg enabled browser
Nyquist plot for underdamped case

Appendix

Step response, in GNU/Octave

clc; close all; clear all; format short eng
L=47e-3; # 47mH
C=47e-9; # 47nF
#Rvector = [3.9e3]; # seperate real poles
#Rvector = [2e3]; # coinciting real poles
#Rvector = [220 820 1500]; # conjugate complex poles
Rvector = [0]; # conjugate complex poles on im-axis
w=logspace(3,5,200); #*e.^(sigma*t)
f=w/(2*pi);
for R = Rvector
 wn=1/sqrt(L*C);
 zeta=R/2*sqrt(C/L)
 t=linspace(0,2e-3,200);
 if (zeta < 1) # complex conjugate poles
 sigma=wn*zeta;
 wd=wn*sqrt(1-zeta^2);
 u=1 - sqrt(sigma^2+wd^2)/wd .* exp(-sigma*t) .* cos(wd*t-atan(sigma/wd));
 hold on; h=plot(t,u); hold off;
 endif
 if (zeta == 1) # coninciting real poles
 p=wn*(-zeta+sqrt(zeta^2-1));
 u=1 + (p*t-1).*e.^(p*t);
 hold on; h=plot(t,u); hold off;
 endif
 if (zeta > 1) # real poles
 p1=wn*(-zeta+sqrt(zeta^2-1));
 p2=wn*(-zeta-sqrt(zeta^2-1));
 u = 1 + p2/(p1-p2)*e.^(p1*t) + p1/(p2-p1)*e.^(p1*t);
 hold on; h=plot(t,u); hold off;
 endif
endfor
axis([min(t) max(t) 0 2]); #1.75
xlabel('time [s]'); ylabel('|h(t)|');

t=['Step Response(t'];
t2=['), C=' num2str(C*1e9) 'nF, L=', num2str(L*1e3),'mH'];
if(length(Rvector)==1)
 t=[t t2 ', R=' num2str(R/1e3) 'k\Omega']
else
 t=[t ',R' t2];
 legend(strread(num2str(Rvector,3),'%s'));
endif
t = [t ];
title(t, "fontsize", 15);</pre>
<h3 id="octavebode">Bode magnitude, in GNU/Octave</h3>
<pre class="brush: matlab gutter: true; toolbar: off; tab-size: 4">clc; close all; clear all; format short eng
L=47e-3; # 47mH
C=47e-9; # 47nF
#Rvector = [3.9e3]; # seperate real poles
#Rvector = [2e3]; # coinciting real poles
#Rvector = [220 820 1500]; # conjugate complex poles
Rvector = [0]; # conjugate complex poles on im-axis
f=logspace(1,6,200);
w=2*pi*f;
for R = Rvector
 wn=1/sqrt(L*C);
 zeta=R/2*sqrt(C/L)
 if (zeta == 0) # complex conjugate poles on imaginary axis
 u=20*log10(wn.^2) - 20*log10(wn.^2-w.^2);
 hold on; h=semilogx(f,u); hold off;
 hold on; 
 plot([wn/(2*pi) wn/(2*pi)], get(gca,'YLim'),'k--');
 text(wn/(2*pi)*1.1,30,'|p|/2\pi');
 hold off
 poles = [-wn*zeta+sqrt(1-zeta^2)*j, -wn*zeta-sqrt(1-zeta^2)*j ];
 endif
 if (zeta < 1 && zeta>0) # complex conjugate poles on left side of s-plane
 u=20*log10(wn.^2) - 20*log10(sqrt((wn.^2-w.^2).^2+(2*zeta*wn*w).^2));
 hold on; h=semilogx(f,u); hold off;
 hold on; 
 plot([wn/(2*pi) wn/(2*pi)], get(gca,'YLim'),'k--');
 text(wn/(2*pi),25,'\omega_n/2\pi');
 hold off
 poles = [-wn*zeta+sqrt(1-zeta^2)*j, -wn*zeta-sqrt(1-zeta^2)*j ];
 endif
 if (zeta == 1) # coninciting real poles
 p=1/sqrt(L*C);
 u=20*log10(p.^2) - 40*log10(sqrt(w.^2+p.^2));
 hold on; h=semilogx(f,u); 
 plot([wn/(2*pi) wn/(2*pi)], get(gca,'YLim'),'k--');
 text(wn/(2*pi),5,'|p|/2\pi');
 f1=p/(2*pi);
 fmax=max(f);
 asymp=-40*log10((fmax-f1)/f1);
 plot([min(f) f1 fmax],[0 0 asymp ],'k--');
 hold off
 poles=[-wn*zeta -wn*zeta];
 endif
 if (zeta > 1) # separate real poles
 p1=wn*(-zeta+sqrt(zeta^2-1));
 p2=wn*(-zeta-sqrt(zeta^2-1));
 u=20*log10(p1*p2./(sqrt(w.^2+p1.^2).*sqrt(w.^2+p2.^2))); 
 figure(1);
 hold on; h=semilogx(f,u); hold off;
 hold on; 
 f1=-p1/(2*pi); f2=-p2/(2*pi);
 plot([f1 f1], get(gca,'YLim'),'k--');
 plot([f2 f2], get(gca,'YLim'),'k--');
 fmax=max(f);
 asymp1=0 - 20*log10((f2-f1)/f1);
 asymp2=asymp1 - 40*log10((fmax-f2)/f2);
 plot([min(f) f1 f2 fmax],[0 0 asymp1 asymp2],'k--');
 text(f1,5,'|p1|/2\pi');
 text(f2,5,'|p2|/2\pi');
 hold off
 poles=[p1+0j p2+0j];
 endif
endfor
figure(1);
grid off;
axis([min(f) max(f) -80 40]);
xlabel('frequency [Hz]'); ylabel('20log| H(t)|');
leg=strread(num2str(Rvector,4),'%s');
if (zeta>=1)
 leg=[leg;'asymptote'];
endif
t=['Bode Magnitude in dB(f'];
t2=['), C=' num2str(C*1e9) 'nF, L=', num2str(L*1e3),'mH'];
if(length(Rvector)==1)
 t=[t t2 ', R=' num2str(R/1e3) 'k\Omega']
else
 t=[t ',R' t2];
 legend(leg);
endif
t = [t ];
title(t, "fontsize", 15);
Embedded software developer
Passionately curious and stubbornly persistent. Enjoys to inspire and consult with others to exchange the poetry of logical ideas.

One Reply to “RLC Low-pass Filter”

  1. i’ve studied the subject for few weeks now and this is the best materials I found so far. thanks for taking your time!

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.