# LTspice not getting exactly -3dB point

Looking to answer another question on this site, to did some math and fired up LTspice to check some values and I am not able to the -3dB point.

I found the transfer function to be

$$H(s) = \cfrac{1 + \cfrac{s}{\cfrac{1}{R_2C_1}}}{1+ \cfrac{s}{\frac{1}{(R_1+ R_2)C_1}}}$$ This equation was corrected based off the answer that @ThePhoton had pointed out.

Where the $$\w_z = \frac{1}{R_2 C_1} = 10,000 \$$ and $$\ f_z = \frac{w_z}{2 \pi} = 1.592\$$ kHz

The same is done for the pole

$$\ w_p = 2000\$$ and $$\ f_p = 318.3 \$$ Hz

On the plot above, I am measuring the output at R2, I have placed cursors as closely as I can get it to the $$\f_p \$$ and $$\ f_z \$$ and if we look at the magnitude I am getting -2.83 dB and -11.14 dB respectively.

It's like I am off by ~ 0.2 dB for both, because I am expected -3dB and -13.97dB.

I must be missing something. What is it ?

edit Adding my .asc file if anyone wants to try

Version 4
SHEET 1 880 680
WIRE 128 64 48 64
WIRE 336 64 208 64
WIRE 336 80 336 64
WIRE 48 128 48 64
WIRE 336 208 336 160
FLAG 336 272 0
FLAG 48 208 0
SYMBOL voltage 48 112 R0
WINDOW 123 24 124 Left 2
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value 1
SYMATTR Value2 AC 1
SYMBOL res 224 48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 400
SYMBOL res 352 176 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R2
SYMATTR Value 100
SYMBOL cap 320 208 R0
SYMATTR InstName C1
SYMATTR Value 1µ
TEXT 14 296 Left 2 !.ac oct 10000 1 10000

• Try doing a sweep over a narrower frequency range, right around the frequency of interest. The values read from a plot are interpolated from the actual simulation data. – Elliot Alderson Nov 18 '19 at 17:04
• @ElliotAlderson At first I had 100 points per octave, then I changed it to 10,000 so that I have finer control. In both cases, I was still getting error. I just tried with the range between 300 and 1600, and I am still getting the ~0.20dB error. – efox29 Nov 18 '19 at 17:06
• Your transfer function can't be correct, you have a zero at w=0. The zero would need to be at least 1-2 decades past the pole for H(jwp) ~= 1/sqrt(2) (-3dB) – sstobbe Nov 18 '19 at 17:38
• @sstobbe ya the numerator was incorrect. I have corrected it in the question. – efox29 Nov 18 '19 at 18:18
• For your circuit the exact -3dB coner frequancy is at $$F_C = \frac{1}{2\pi \sqrt{C1^2(R1^2 + 2 R1 R2 - R2^2)}} = 331.861Hz$$ – G36 Nov 18 '19 at 20:14

First, your transfer function is not correct. You can see this must be true because your $$\H(s)\$$ has a pole at 0, while the actual response has the pole at ~300 Hz. I calculate

$$H(s) = \frac{1 + s(R_2C_1)}{1+s(R_1+R_2)C_1}$$

You could also write this as

$$H(s) = \frac{1+s/z}{1 + s/p}$$

where $$\z = 1/R_2C_1\$$ and $$\p=1/\left[(R_1+R_2)C_1\right]\$$.

Next, when you assume that the response is exactly -3 dB at the zero frequency, you assume that the pole is having no effect at that frequency. That is, you assume

$$1 + s(R_2C_1)\approx 1$$

But this isn't exactly true, so you don't get exactly -3 dB at the pole frequency.

• This! I changed R1 to 40000 so that the separation between zero and pole was larger. When I looked at the curve, I was able to measure the predicted value to a reasonable amount. This will no doubt open up some new questions for me. – efox29 Nov 18 '19 at 17:42
• The transfer function is the same, the only difference is that I expressed it as wz and wp, such that $\frac{s}{w_z}$ – efox29 Nov 18 '19 at 17:45
• @efox29, it can't be the same since your version puts the pole at 0. – The Photon Nov 18 '19 at 17:46
• Yes I see it now. It was a typo on my part. It's not actually a zero. Let me fix that. – efox29 Nov 18 '19 at 17:47
• Are you sure about N(s) = 1+ s(R2C1) ? Wouldnt it be just s(R2c1) ? – efox29 Nov 18 '19 at 17:50