Electronic – Unexpected behavior of the Sallen-Key second order filter

filterlow passmultisim

I met an unexpected behavior when I simulated under Multisim (National Instruments) the Sallen-Key circuit given on the image below.

Sallen-Key Low-pass filter order 2

The circuit is designed to receive a 1.8kHz modulated sin wave as input.
The equations are :

  • \$ H(j\omega) = \frac{k}{-\left(\frac{\omega}{\omega_0}\right)^2+j\frac{1}{Q}\frac{\omega}{\omega_0}+1}\$
  • \$k = 1+\frac{R_b}{R_a}\$
  • \$f_0 = \frac{1}{2\pi\sqrt{mn}R_1C_1} \$
  • \$Q= \frac{\sqrt{mn}}{m+1+mn(1-K)}\$

Values that are imposed to me are :

  • \$ n = 1 \$
  • \$ C_1 = 100 nF\$
  • \$ R_a = 1 k\Omega \$

For my situation, I choose and/or calculate the following values :

  • \$R_b = R_1 = R_a = 1k\Omega \$
  • \$mR_1 = 470\Omega\$
  • \$C_1 = nC_1 = 100 nF \$
  • \$ f_0 = 2300 Hz \$
  • \$ Q = \frac{\sqrt{2}}{2} \$

So, the circuit schematic is the following

Sallen-Key schematic circuit

And the Bode plot simulation gives :

Bode plot simulation

And I just do not know how it's possible to rise after \$ f_0 \$

If someone see the where is the problem.

Thank you in advance to any one who may be able to give me some ideas.

Here is the schematic netlist (I changed some values but behavior is nearly the same)

** PasseBasOrdre2 **
* 
* NI Multisim to SPICE Netlist Export
* Generated by: Dim
* Mon, Nov 18, 2013 20:46:37 
*

*## Multisim Component U1 ##*

xU1 1 3 VPOS VNEG BasculeSeuil 5T_VirtualU1 params: Vos=0.001 Ibias=8e-008 Ioffset=2e-008

Av=200000 BW=100000000 SR=1000000 CMRR=100 Iomax=0.025 Rin=10000000 Rout=10

.subckt 5T_VirtualU1  In_p In_n Vpos Vneg Out params: Av=200k BW=20Meg CMRR=100

+SR=1Meg Rout=75 Iomax=25m Rin=100meg Vos=0.1m Ibias=1n Ioffset=1p

.param Rp1=1e6

.param Rs1=1e6

.param K_Is2a=sqrt(Av)/Rs1

.param K_Is2b=sqrt(Av)/Rp1

.param Cp1={Av/(2*pi*BW*Rp1)}

.param CMRR_lin=10**(CMRR/20)

Rin In_p In_n {Rin}

Bcm 4 3 V = { V(cm)/CMRR_lin}

Voff In_p 4 {Vos}

Ibias1 In_p 0 {Ibias}

Ibias2 In_n 0 {Ibias}

Ioffset In_p In_n {Ioffset/2}

Rcm1 In_p cm 10meg

Rcm2 In_n cm 10meg

BIs1a vref vs2a I = { K_Is2a*(V(3)-V(In_n)) }

Rs1 vs2a vref {Rs1}

BIs2b vref vs2b I = { K_Is2b*(V(vs2a)-v(vref)) }

Rp1 vs2b vref {Rp1}

VCp1sense vs2b vs2b_ 0

Cp1 vs2b_ vref {Cp1}

D3 vs2b_ 8 Limit_Diode  

D4 8 vpos Limit_Diode  

B_SRp 8 vpos I={I(VCp1sense)- (Cp1*SR)}

D5 10 vs2b_ Limit_Diode

D6 Vneg 10 Limit_Diode

B_SRn Vneg 10 I={-1*I(VCp1sense)-(Cp1*SR)}

DVpclip vs2b_ Vpos V_limit

DVnclip Vneg vs2b_ V_limit

Bout vref out_ I={(V(vs2b)-v(vref))/Rout}

Rout vref out_ {Rout}

Voutsense out_ out 0

D9 out 15 Limit_Diode  

D10 15 vpos Limit_Diode  

B_outp 15 vpos I={I(Voutsense)- Iomax}

D11 16 out Limit_Diode

D12 vneg 16 Limit_Diode

B_outn vneg 16 I={-1*I(Voutsense)-Iomax}

R5 Vpos mid 1000000

R6 mid Vneg 1000000 

Eref vref 0 mid 0 1

.MODEL Limit_Diode  D (IS= 1.0e-12)

.MODEL V_limit D(n=0.1)

.ends

*## Multisim Component R3 ##*

rR3 1 2 1000 vresR3  

.model vresR3 r(  )

*## Multisim Component V3 ##*

vV3 0 VNEG dc 5 ac 0 0
+           distof1 0 0
+           distof2 0 0

*## Multisim Component V2 ##*

vV2 VPOS 0 dc 5 ac 0 0
+           distof1 0 0
+           distof2 0 0

*## Multisim Component V1 ##*

vV1 4 0 dc 0 ac 1 0
+      distof1 0 0
+      distof2 0 0
+      sin(0 {1*1.414213562} 1800 0 0 0)

*## Multisim Component R4 ##*

rR4 2 4 390 vresR4  

.model vresR4 r(  )

*## Multisim Component R1 ##*

rR1 3 0 68000 vresR1  

.model vresR1 r(  )

*## Multisim Component R2 ##*

rR2 BasculeSeuil 3 33000 vresR2  

.model vresR2 r(  )

*## Multisim Component C2 ##*

cC2 1 0 1e-007

*## Multisim Component C1 ##*

cC1 BasculeSeuil 2 1e-007

Best Answer

You don't have the grounding set up correctly. Right now, you're running the circuit around the op-amp's negative supply rail so it's clipping off the bottom part of the waveform. You need to convert this to a split rail design. This can be done by either changing the opamp supplies from 5v and 0v to +2.5v and -2.5v or changing the ground of the rest of the circuit to +2.5v. And try using a 1vrms input signal as 5vrms will exceed your supply rails.