\documentclass[12pt,border=1pt,crop,multi=false,tikz,class=scrartcl]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[american]{circuitikz}
\usetikzlibrary{calc,positioning,arrows,shapes}
\renewcommand*{\familydefault}{\sfdefault}
\tikzstyle{port}=[signal,draw]
\begin{document}
\begin{circuitikz}[american,line cap=round]
\draw [semithick,scale=1.2]
(0,0) node [op amp,yscale=-1] (op1) {} node {U1}
($(op1.out)+(2.5,0)$) node [op amp,anchor=-] (op2) {} (op2.center) node {U2}
($(op1.out)!.5!(op2.-)-(0,3.5)$) node [op amp,xscale=-1] (op3) {} (op3.center) node {U3}
(op1.+) -| ++(0,1.5) to [R=R$_{\mathsf{q}}$,*-] ++(-2,0) node [ground] {}
(op1.-) to [R=R$_{\mathsf{g}}$,*-o] ++(-2,0) node [left] {V$_{\mathsf{in}}$}
(op1.-) to [short,-*] ++(0,-1) to [R=R$_1$] ++(0,-2) |- (op3.out)
($(op3.out)-(1,0)$) to [short,*-] ++(0,-1) -- ++(1,0) node [port,anchor=west] {LP}
($(op1.-)-(0,1)$) to [R=R$_2$] ++(1.9,0) -| (op1.out) to [short,*-] ++(0,1) -- ++(.5,0) node [port,anchor=west] {HP}
(op1.out) to [R,l_=R$_{\mathsf{f1}}$,-*] (op2.-) -- ++(0,1) to [C=C$_1$] ++(2,0) to [short,-*] (op2.out)
(op2.+) node [ground] {}
($(op1.+)+(0,1.5)$) to [R=R$_4$] ++(6.9,0) node (n1) {}
(op2.out) to [short,-*] ++(.5,0) |- (n1.west)
(op3.+) node [ground] {}
(op3.-) to [R=R$_{\mathsf{f2}}$,*-] ++(2.5,0) -| ($(op2.out)+(.5,0)$) to [short] ++(.5,0) node [anchor=west,port] {BP}
(op3.-) -- ++(0,1) to [C,l_=C$_2$] ++(-1.9,0) -| (op3.out)
(op3.out) to [short,*-] ++(.1,0)
;
\end{circuitikz}
\end{document}