# How to calculate phase shift of a low-pass filter's output?

I'm simulating a basic low-pass RC filter in Proteus, and I need to find the phase shift of the output at varying frequencies. I've plotted a frequency response graph which shows the phase against frequency, but it doesn't show specific values. I can get rough values by just looking at the graph, but I need a precise answer. Can anyone show me a way to actually calculate the phase shift of the output? (Using Proteus, MATLAB, or just a calculation if possible)

Edit: I've tried a couple of calculations that I've seen while researching this, but I believe that the phase should be 0 at 10Hz, and neither calculation gives me that. I tried: arctan(fRC) and -arctan(f/20)

• "I made a plot, but it doesn't show specific values"<-- doesn't sound like you made a proper plot, then. Show your plot, explain what is missing. And: RC low pass filter phase response calculation is really textbook homework problem first semester stuff, so I'm 100% you at least have an approach that you can share with us. – Marcus Müller Mar 26 at 11:17
• @MarcusMüller I've added my plot above. As you can see I could use it to get a rough idea of the values but I'm looking for specific values of phase at each frequency. I can't seem to find any way of doing this. I was also wondering if this is the correct plot because it does say gain on the y axis, but the shape matches other examples I've seen for phase plots – Sam Mar 26 at 11:55
• @MarcusMüller After carrying on, I think I've realised that this is just a gain plot but not dB gain, how can I make the phase plot? – Sam Mar 26 at 12:32

Well, we know that:

$$\mathcal{H}\left(\text{s}\right):=\frac{\text{V}_\text{out}\left(\text{s}\right)}{\text{V}_\text{in}\left(\text{s}\right)}=\frac{\frac{1}{\text{sC}}}{\frac{1}{\text{sC}}+\text{R}}=\frac{1}{1+\text{sCR}}\tag1$$

Now, substitute $$\\text{s}=\text{j}\omega\$$ where $$\\text{j}^2=-1\$$ and $$\\omega=2\pi\text{f}\$$. And after that find $$\\left|\underline{\mathcal{H}}\left(\text{j}\omega\right)\right|\$$ and $$\\arg\left(\underline{\mathcal{H}}\left(\text{j}\omega\right)\right)\$$.

EDIT

So, we get:

• $$\left|\underline{\mathcal{H}}\left(\text{j}\omega\right)\right|=\frac{1}{\left|1+\text{j}\omega\text{CR}\right|}=\frac{1}{\sqrt{1+\left(\omega\text{CR}\right)^2}}\tag2$$
• $$\arg\left(\underline{\mathcal{H}}\left(\text{j}\omega\right)\right)=\arg\left(1\right)-\arg\left(1+\text{j}\omega\text{CR}\right)=-\arctan\left(\omega\text{CR}\right)\tag3$$
• Thanks for this, I realised what was throwing me off now. When I was calculating −arctan(ωCR), I was using my nF value of C and forgetting to convert it to Farads. So the phase at 10Hz (using a 1kHz resistor and 15.9nF cap) would be -arctan(20π x 1000 x (1.59E-8)) = -0.057? Is this right? Also would the units then be degress or radians? – Sam Mar 26 at 14:45
• @Sam When you use $\omega$ it will be in radians. – Jan 2 days ago

You need a bit of maths that uses arctangent, resistance, capacitance, and frequency. Oh, and conversion from Hertz to radians per second.

If this is a theoretical exercise you can get precise values from the simulation, or from mathematical theory. For example, take the values used to generate that plot, and curve-fit or interpolate them.

But if you intend to actually build the thing, you'll have to use real components, with real tolerances, and the actual phase shift will be consequent on them, however accurately you calculated the theoretical value.

You need to think about this in context of how precise an answer you need (which you haven't told us). Is it even possible with 1% resistors and 2% capacitors, for example?

You might run a Monte-Carlo simulation with random variations within the tolerance of each component and look at the spread of results.