In[]:=
eqn=({vg0==vin-4khr^2vs2,​​vf0==vg0-2rvf1-vf2,​​0==-g(vf0)+vf1-icf1eq,​​0==-g(vf1)+vf2-icf2eq,​​vs0==vf2-2rvs1-vs2,​​0==-g(vs0)+vs1-ics1eq,​​0==-g(vs1)+vs2-ics2eq}/.​​{vf1tf1+icf1eq,​​vf2tf2+icf2eq,​​vs1ts1+ics1eq,​​vs2ts2+ics2eq})​​slnp=(Solve[eqn,{vg0,vf0,vs0,tf1,tf2,ts1,ts2}][[1]]//FullSimplify)
Out[]=
{vg0-4kh
2
r
(ics2eq+ts2)+vin,vf0-icf2eq-2r(icf1eq+tf1)-tf2+vg0,0tf1-gvf0,0-g(icf1eq+tf1)+tf2,vs0icf2eq-ics2eq+tf2-2r(ics1eq+ts1)-ts2,0ts1-gvs0,0-g(ics1eq+ts1)+ts2}
Out[]=
vg0
-4kh
2
r
(ics2eq+g(ics1eq+4ics2eqr+
2
g
(icf1eq+ics1eq+2(icf2eq+ics2eq)r)+g(icf2eq+ics2eq+2ics1eqr+4ics2eq
2
r
)))+
2
(1+
2
g
+2gr)
vin
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,vf0-
icf2eq+2r(icf1eq+2ics2eqkhr)+
3
g
(icf1eq+4icf1eqkh
2
r
)+g(icf1eq+4icf1eq
2
r
+2r(icf2eq+2khr(ics1eq+2ics2eqr)-vin))+
2
g
(icf2eq+4icf1eqr+4icf2eqkh
2
r
-vin)-vin
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,vs0-
-icf2eq+ics2eq+2ics1eqr+g(-icf1eq+ics1eq-2icf2eqr+2ics2eqr+4ics1eq
2
r
)+
3
g
(ics1eq+4ics1eqkh
2
r
)+
2
g
(ics2eq+4ics1eqr+4ics2eqkh
2
r
-vin)
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,tf1-
(g+
3
g
)(gicf1eq+icf2eq)+2g(icf1eq+2
2
g
icf1eq+gicf2eq)r+4g(gicf1eq+(g(g(gicf1eq+icf2eq)+ics1eq)+ics2eq)kh)
2
r
+8
2
g
ics2eqkh
3
r
-g(1+
2
g
+2gr)vin
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,tf2
g(icf1eq(1+
2
g
+2gr)+g(-4kh
2
r
(gics1eq+ics2eq+2gics2eqr)-icf2eq(1+g(g+2r+4gkh
2
r
))+vin+g(g+2r)vin))
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,ts1
g(icf2eq-ics2eq-g(-icf1eq+ics1eq+
2
g
ics1eq+gics2eq)-2(ics1eq+g(-icf2eq+2gics1eq+ics2eq))r-4g(ics1eq+g(gics1eq+ics2eq)kh)
2
r
+
2
g
vin)
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))
,ts2
g(ics1eq+g(icf2eq-ics2eq+2ics1eqr+g(icf1eq+ics1eq+2icf2eqr-2ics2eqr)+
2
g
(-ics2eq(1+4kh
2
r
)+vin)))
1+g(4r+g(2+
2
g
+4gr+4(1+
2
g
kh)
2
r
))

In[]:=
coef=Table[Coefficient[{vg0,vf0,vs0,tf1,tf2,ts1,ts2}[[i]]/.slnp,{vin,icf1eq,icf2eq,ics1eq,ics2eq}],{i,1,7}]//Simplify;Style[TableForm[Prepend[MapThread[Prepend,{coef,{vg0,vf0,vs0,tf1,tf2,ts1,ts2}}],{" ",vin,icf1eq,icf2eq,ics1eq,ics2eq}]],FontSize18]
Out[]=
In[]:=
ClearAll["Global`*"];​​ClearState[]:=Block[{},​​icf1eq=0;​​icf2eq=0;​​ics1eq=0;​​ics2eq=0;​​];​​CalcCoeff[fc_,r_,kh_,fs_]:=Block[{w},​​g=Tan[π*fc/fs];​​gSq=g*g;​​gCb=g*gSq;​​gQr=g*gCb;​​rSq=r*r;​​twor=2*r;​​twogr=g*twor;​​fourgr=2*g*twor;​​gSqoneplusfourkhrSq=gSq*(1+4*kh*rSq);​​fourgSqrplusfourgrSq=fourgr*(g+r);​​gsum1=-g*(g+twor+fourgSqrplusfourgrSq+g*gSqoneplusfourkhrSq);​​​​D1=1/(1+g*(4*r+g*(2+gSq+fourgr+4*(1+gSq*kh)*rSq)));​​D2=1/(1+fourgr+4*gCb*r+gSq*(2+4*rSq)+gSq*gSqoneplusfourkhrSq);​​​​gtf10=g*(1+gSq+twogr)*D1;​​gtf11=gsum1*D1;​​gtf12=-g*(1+twogr+gSqoneplusfourkhrSq)*D1;​​gtf13=-fourgr*g*kh*D1;​​gtf14=-fourgr*kh*r*(1+twogr)*D2;​​​​gtf20=g*gtf10;​​gtf21=gtf10;​​gtf22=g*gtf12;​​gtf23=g*gtf13;​​gtf24=g*gtf14;​​​​gts10=gCb*D1;​​gts11=gSq*D1;​​gts12=g*(1+twogr)*D1;​​gts13=gsum1*D2;​​gts14=gtf12;​​​​gts20=g*gts10;​​gts21=g*gts11;​​gts22=g*gts12;​​gts23=gtf10;​​gts24=gtf22;​​];​​Tick[t_,vin_]:=​​Block[{},​​tf1=gtf10*vin+gtf11*icf1eq+gtf12*icf2eq+gtf13*ics1eq+gtf14*ics2eq;​​tf2=gtf20*vin+gtf21*icf1eq+gtf22*icf2eq+gtf23*ics1eq+gtf24*ics2eq;​​ts1=gts10*vin+gts11*icf1eq+gts12*icf2eq+gts13*ics1eq+gts14*ics2eq;​​ts2=gts20*vin+gts21*icf1eq+gts22*icf2eq+gts23*ics1eq+gts24*ics2eq;​​​​vg0=-4*kh*r^2*(ics2eq+ts2)+vin;​​vf0=-icf2eq-2*r*(icf1eq+tf1)-tf2+vg0;​​vf1=icf1eq+tf1;​​vf2=icf2eq+tf2;​​vs0=icf2eq-ics2eq+tf2-2*r*(ics1eq+ts1)-ts2;​​vs1=ics1eq+ts1;​​vs2=ics2eq+ts2;​​​​icf1eq=icf1eq+2*tf1;​​icf2eq=icf2eq+2*tf2;​​ics1eq=ics1eq+2*ts1;​​ics2eq=ics2eq+2*ts2;​​​​Return[{t,vin,vf2,vf1,vf0,vs2}]​​];​​sr=44100.0;​​h=1.0/sr;​​cutoff=200.0;​​r=0.01​​kh=0.1​​​​MySaw[x_]:=2(x-Floor[x]-0.5);​​MyOsc[x_]:=1MySaw[200x];​​​​CalcCoeff[cutoff,r,kh,sr];​​ClearState[];​​tp1=Table[Tick[t,MyOsc[t]],{t,0,0.01,h}];​​ListPlot[Table[tp1[[All,{1,i}]],{i,2,6}],JoinedTrue,PlotRangeAll,PlotLabel"Linear SVF =",PlotLegends{"input","LPF2","BPF2","HPF2","LPF4"}]
Out[]=
0.01
Out[]=
0.1