Synteza filtru C 06 20 b , Theta=49.

Realizace s OTA , funkcni simulace

LC prototyp

  Prvky LC prototypu:

>    restart;

>    rg:= 1: c1:= 1.09341: l2:= 1.094878: c2:= 0.279112: c3:= 1.645566: l4:= 0.950813: c4:= 0.544587:

>    c5:= 1.668723: l6:= 0.892775: r2:= 2/3:

Simulace

>    with(Syrup);

[deindex, makeckttable, printdeck, reindex, syrup]

>    obvod:= TEXT(

>    `LC Cauer C06`,

>    `V1  1  0   V1`,
`Rg  1  2   rg`,

>    `C1  2  0   c1`,

>    `C2  2  3   c2`,
`L2  2  3   l2`,
`C3  3  0   c3`,
`C4  3  4   c4`,
`L4  3  4   l4`,
`C5  4  0   c5`,
`L6  4  5   l6`,

>    `RL  5  0  r2`,

>    `.end`) :

>    AA:= syrup(obvod, ac):

Syrup/parsedeck:   Analyzing SPICE deck "LC Cauer C06" (ignoring this line)

>    HLC:= collect(simplify(subs(AA,  v[5]/V1)),s,recursive,factor);

HLC := 1004792944284000000*(225259960716175158+35644343710334112*s^4+185477697278316553*s^2)/(565849047893259535674697242180000000+1995273825758256065322548142943949700*s+427297572779999132664916246392...
HLC := 1004792944284000000*(225259960716175158+35644343710334112*s^4+185477697278316553*s^2)/(565849047893259535674697242180000000+1995273825758256065322548142943949700*s+427297572779999132664916246392...
HLC := 1004792944284000000*(225259960716175158+35644343710334112*s^4+185477697278316553*s^2)/(565849047893259535674697242180000000+1995273825758256065322548142943949700*s+427297572779999132664916246392...
HLC := 1004792944284000000*(225259960716175158+35644343710334112*s^4+185477697278316553*s^2)/(565849047893259535674697242180000000+1995273825758256065322548142943949700*s+427297572779999132664916246392...

póly:

>    XLC:= evalf(solve(denom(HLC)=0,s));

XLC := -.6587715883e-1+1.028755656*I, -.2401138437+.8428345394*I, -.4407443765+.3509710891*I, -.4407443765-.3509710891*I, -.2401138437-.8428345394*I, -.6587715883e-1-1.028755656*I
XLC := -.6587715883e-1+1.028755656*I, -.2401138437+.8428345394*I, -.4407443765+.3509710891*I, -.4407443765-.3509710891*I, -.2401138437-.8428345394*I, -.6587715883e-1-1.028755656*I

>    MHLC:= evalc(abs(subs(s=I*omega, HLC))):
MHLCd:= 20*log10(MHLC):

>    with(plots):

Warning, the name changecoords has been redefined

>    plot(MHLCd, omega=0....4, thickness=2);

[Maple Plot]

Popis prototypu - obvodové rovnice

Rovnice "zdrojové" větve:

                                  ig:= 1/rg*(ug - u1); -> vg:= R/rg*(ug - u1);

Rovnice 1.větve:       

                                  u1:= 1/(p*c1*R)*(vg - vl2 - p*c2*R*(u1 - u3));

Rovnice 2.větve:

                                 vl2:= R/(p*l2)*(u1 - u3);

Rovnice 3.větve:

                                 u3:= 1/(p*c3*R)*(vl2 - vl4 + p*c2*R*(u1-u3) - p*c4*R*(u3-u5));

Rovnice 4.větve:

                                vl4:= R/(p*l4)*(u3 - u5);

Rovnice 5.větve:

                                 u5:= 1/(p*c5*R)*(vl4 - v6 + p*c4*R*(u3 - u5));

Rovnice 6.větve:

                                v6:= R/(p*l6)*(u5 - u7);

Rovnice 7.větve:

                                u7:= r2/R*v6;

Návrh

Výpočet integrátorů:

>    R:= r2;  gm1:= 1; ci1:= solve(1/(c1*R)=gm1/ci1, ci1);

R := 2/3

gm1 := 1

ci1 := .7289400002

>    gm2:=1; ci2:= solve(R/l2=gm2/ci2, ci2);

gm2 := 1

ci2 := 1.642317000

>    gm3:=1; ci3:= solve(1/(c3*R)=gm3/ci3, ci3);

gm3 := 1

ci3 := 1.097044000

>    gm4:= 1; ci4:= solve(R/l4=gm4/ci4, ci4);

gm4 := 1

ci4 := 1.426219500

>    gm5:=1; ci5:= solve(1/(c5*R)=gm5/ci5, ci5);

gm5 := 1

ci5 := 1.112482000

>    gm6:= 1; ci6:= solve(R/l6=gm6/ci6, ci6);

gm6 := 1

ci6 := 1.339162500

Výpočet koncových větví:

vstupní větev:

>    gmo2:= 1; gmo1:= solve(R/rg=gmo1/gmo2, gmo1);

gmo2 := 1

gmo1 := 2/3

výstupní větev:

>    gmo4:= 1; gmo3:= solve(r2/R=gmo3/gmo4, gmo3);

gmo4 := 1

gmo3 := 1

Vazební kondenzátory:

>    c2n:= c2*R*gm2; c4n:= c4*R*gm4;

c2n := .1860746667

c4n := .3630580000

Simulace

>    obvod2:= TEXT(

>    `FS C06 - VM`,

>    `V1   1  0   V1`,

>    `Go1 2  0  1  3  -gmo1`,

>    `Go2 2  0  0  2  -gmo2`,

>    `G1   3  0  2  4  -gm1`,
`C1   3  0           ci1`,
`G2   4  0  3  5  -gm2`,
`C2   4  0           ci2`,
`C22  3  5          c2n`,
`G3   5  0  4  6  -gm3`,
`C3   5  0           ci3`,
`G4   6  0  5  7  -gm4`,
`C4   6  0           ci4`,
`C44 5  7           c4n`,
`G5   7  0  6  8  -gm5`,
`C5   7  0           ci5`,
`G6   8  0  7  9  -gm6`,
`C6   8  0           ci6`,
`Go3 9  0  8  0  -gmo3`,
`Go4 9  0  0  9  -gmo4`,

>    `.end`) :

>    AB:= syrup(obvod2, ac):

Syrup/parsedeck:   Analyzing SPICE deck "FS C06 - VM" (ignoring this line)

syrup:   There may be an unconnected component.
The following component(s) have zero current: {V1}.

>    H:= collect(simplify(subs(AB, v[9]/V1)),s,recursive,factor);

H := 10292540457846800000*(9211401053880480*s^4+47932133890064201*s^2+58212878161095807)/(8634653147976010649769645842966480376*s^5+5781601748611964815432977564607059504*s^6+159044137266766988830805906...
H := 10292540457846800000*(9211401053880480*s^4+47932133890064201*s^2+58212878161095807)/(8634653147976010649769645842966480376*s^5+5781601748611964815432977564607059504*s^6+159044137266766988830805906...
H := 10292540457846800000*(9211401053880480*s^4+47932133890064201*s^2+58212878161095807)/(8634653147976010649769645842966480376*s^5+5781601748611964815432977564607059504*s^6+159044137266766988830805906...
H := 10292540457846800000*(9211401053880480*s^4+47932133890064201*s^2+58212878161095807)/(8634653147976010649769645842966480376*s^5+5781601748611964815432977564607059504*s^6+159044137266766988830805906...
H := 10292540457846800000*(9211401053880480*s^4+47932133890064201*s^2+58212878161095807)/(8634653147976010649769645842966480376*s^5+5781601748611964815432977564607059504*s^6+159044137266766988830805906...

póly:

>    XH:= evalf(solve(denom(H)=0,s));

XH := -.6587715891e-1+1.028755655*I, -.2401138437+.8428345396*I, -.4407443765+.3509710892*I, -.4407443765-.3509710892*I, -.2401138437-.8428345396*I, -.6587715891e-1-1.028755655*I
XH := -.6587715891e-1+1.028755655*I, -.2401138437+.8428345396*I, -.4407443765+.3509710892*I, -.4407443765-.3509710892*I, -.2401138437-.8428345396*I, -.6587715891e-1-1.028755655*I

>    XLC;

-.6587715883e-1+1.028755656*I, -.2401138437+.8428345394*I, -.4407443765+.3509710891*I, -.4407443765-.3509710891*I, -.2401138437-.8428345394*I, -.6587715883e-1-1.028755656*I
-.6587715883e-1+1.028755656*I, -.2401138437+.8428345394*I, -.4407443765+.3509710891*I, -.4407443765-.3509710891*I, -.2401138437-.8428345394*I, -.6587715883e-1-1.028755656*I

Dynamika:

>    H2:= collect(simplify(subs(AB, v[2]/V1)),s,recursive,factor): MH2:= evalc(abs(subs(s=I*omega, H2))):

>    H3:= collect(simplify(subs(AB, v[3]/V1)),s,recursive,factor): MH3:= evalc(abs(subs(s=I*omega, H3))):

>    H4:= collect(simplify(subs(AB, v[4]/V1)),s,recursive,factor): MH4:= evalc(abs(subs(s=I*omega, H4))):

>    H5:= collect(simplify(subs(AB, v[5]/V1)),s,recursive,factor): MH5:= evalc(abs(subs(s=I*omega, H5))):

>    H6:= collect(simplify(subs(AB, v[6]/V1)),s,recursive,factor): MH6:= evalc(abs(subs(s=I*omega, H6))):

>    H7:= collect(simplify(subs(AB, v[7]/V1)),s,recursive,factor): MH7:= evalc(abs(subs(s=I*omega, H7))):

>    H8:= collect(simplify(subs(AB, v[8]/V1)),s,recursive,factor): MH8:= evalc(abs(subs(s=I*omega, H8))):

Grafy:

>    with(plots):

>    MH:= evalc(abs(subs(s=I*omega, H))):

>    MHd:= 20*log10(MH):

>    plot([MHLCd,MHd], omega=0....1.1, thickness=2, color=[blue,red]);

[Maple Plot]

>    plot([MH,MH2,MH3,MH4,MH5,MH6,MH7,MH8], omega=0....1.1, thickness=2);

[Maple Plot]

>   

>   

>   

Kmitočtové a impedanční odnormování:

Normovací kmitočet

>    fn:= 4*10^6:

>    omega[n]:= 2*Pi*fn;

>    gmn:= 0.30*10^(-3);

omega[n] := 8000000*Pi

gmn := .3000000000e-3

>    Ci1:= ci1*gmn/omega[n]; evalf(Ci1*1e12);

Ci1 := .2733525001e-10*1/Pi

8.701080317

>    Ci2:= ci2*gmn/omega[n]; evalf(Ci2*1e12);

Ci2 := .6158688750e-10*1/Pi

19.60371515

>    Ci3:= ci3*gmn/omega[n]; evalf(Ci3*1e12);

Ci3 := .4113915000e-10*1/Pi

13.09499815

>    Ci4:= ci4*gmn/omega[n]; evalf(Ci4*1e12);

Ci4 := .5348323125e-10*1/Pi

17.02424125

>    Ci5:= ci5*gmn/omega[n]; evalf(Ci5*1e12);

Ci5 := .4171807500e-10*1/Pi

13.27927570

>    Ci6:= ci6*gmn/omega[n]; evalf(Ci6*1e12);

Ci6 := .5021859375e-10*1/Pi

15.98507486

>    C2:= c2n*gmn/omega[n]; evalf(C2*1e12);

C2 := .6977800001e-11*1/Pi

2.221102724

>    C4:= c4n*gmn/omega[n]; evalf(C4*1e12);

C4 := .1361467500e-10*1/Pi

4.333685649

>    Gmi:= gm1*gmn;  # i=1,2,..,6;

Gmi := .3000000000e-3

>    Gmo1:= gmo1*gmn; Gmo2:= gmo2*gmn; Gmo3:= gmo3*gmn; Gmo4:= gmo4*gmn;

Gmo1 := .2000000000e-3

Gmo2 := .3000000000e-3

Gmo3 := .3000000000e-3

Gmo4 := .3000000000e-3

>