Jiné volby

Následuje ukázka možných voleb parametrů a následného výpisu funkce ARCSynt . Jak je patrné, lze jednotlivé paramery zadávat ve formě seznamu a tak je specifikovat zvlášť pro jednotlivé bloky. Pokud budeme specifikovat parametr 'arcblock1'=true, pak  funkce ARCSynt  volá místo funkce ARCBlock  funkci ARCBlock 1 a výpočet rozdělení zesílení je podstatně jednodušší. Zesílení se rozdělí na všechny bloky rovnoměrně a pokud bude rovno jedné, pak je základní zesílení každého bloku právě jedna. Při této volbě můžeme pomocí nastavení infolevel[syntfil]:=2;  opět vypsáno zesílení jednotlivých bloků. Podrobnější výpis rozdělení zesílení není pro tuto volbu k dispozici. Při této volbě ( 'arcblock1'=true ) však zesílení jednotlivých bloků nevyjde optimálně pro vyrovnanou dynamiku celého filtru, nicméně ve většině případů dostaneme naopak lepší výsledky kmitočtových charakteristik celého filtru při uvažování reálných vlastností OZ (zejména vlivu jejich mezních kmitočtů).  

>    infolevel[syntfil]:=3:

>    opt2_lp:=table(['C1'=33e-9, 'C2'=33e-9, 'R'=1e4, 'h0'=1, 'type'=[LP3,LP2,LP1,LP1], 'ft'=1e6, 'A0'=1e5, 'arcblock1'=true]):

>    ARC2_lp:=ARCSynt(lp,opt2_lp):

ARCBlock1:

Amplification of particular blocks h0 = [1.000000, 1.000000, 1.000000, 1.000000].

********************** Number of blok: 1 **********************

Warning, ARCSyntLP: 'LP3' circuit is used, therefore entered argument['C2'] will be discounted.

********************** Number of blok: 2 **********************

Warning, ARCSyntLP: 'LP2' circuit is used, therefore entered argument['C2'] will be discounted.

********************** Number of blok: 3 **********************

syntfil/ARCSyntLP1:

Parameters of calculations: method="min. Gamma"; c=1.000000; r_opt=1.000000; alpha=0.500000; h0max=K=2.000000

********************** Number of blok: 4 **********************

syntfil/ARCSyntLP1:

Parameters of calculations: method="min. Gamma"; c=1.000000; r_opt=0.768127; alpha=0.405886; h0max=K=2.463746

********************** Number of blok: 5 **********************

***************************************************************

ARCSynt: Used circuit types in particular blocks: [LP3, LP2, LP1, LP1, LP0].

`block `(1), [R = .1e5, R3 = 4821.6, R2 = 2565.5, R1 = 4821.6, C1 = .33e-7, Ck = .13203e-9, ft = .1e7, type = LP3, A0 = .1e6]

`block `(2), [R = .1e5, R3 = 4821.6, R2 = 3147.1, R1 = 4821.6, C1 = .33e-7, ft = .1e7, type = LP2, A0 = .1e6]

`block `(3), [R12 = 9643.2, R = .1e5, R3 = 10000., C2 = .33e-7, R2 = 4821.6, R11 = 9643.2, C1 = .33e-7, ft = .1e7, type = LP1, A0 = .1e6]

`block `(4), [R12 = 9259.9, R = .1e5, R3 = 14637., C2 = .33e-7, R2 = 4225.8, R11 = 13554., C1 = .33e-7, ft = .1e7, type = LP1, A0 = .1e6]

`block `(5), [R1 = 4821.6, C1 = .33e-7, type = LP0]

`type=ARC`

Pokud nechceme pro daný blok specifikovat parametr, který je zadán ve formě seznamu, lze na daném místě uvést jiný typ proměnné, např. symbol  (non) místo čísla a opačně.

>    infolevel[syntfil]:=2:

>    ARCSynt(lp,table(['C1'=33e-9, 'C2'=[non,33e-9,33e-9,15e-9], 'h0'=[5,2,1,1], 'type'=[LP3,LP2,LP1,0,0]])):

Warning, ARCSynt: Number of operands of 2nd argument[type] is greater then number of blocks in structure.

ARCBlock:

Amplification of particular blocks h0 = [6.393639, 2.000000, 1.000000, 0.782027].

********************** Number of blok: 1 **********************

Warning, ARCSyntLP3: 2nd argument[ft] should be entered for proper design of LP3 circuit

********************** Number of blok: 2 **********************

Warning, ARCSyntLP: 'LP2' circuit is used, therefore entered argument['C2'] will be discounted.

********************** Number of blok: 3 **********************

********************** Number of blok: 4 **********************

********************** Number of blok: 5 **********************

***************************************************************

ARCSynt: Used circuit types in particular blocks: [LP3, LP2, LP1, LP1, LP0].

`block `(1), [R = 4821.6, R3 = 4821.6, R2 = 2565.5, R1 = 754.13, C1 = .33e-7, Ck = 0., ft = Float(infinity), type = LP3, A0 = Float(infinity)]

`block `(2), [R = 4821.6, R3 = 4821.6, R2 = 3147.1, R1 = 2410.8, C1 = .33e-7, ft = Float(infinity), type = LP2, A0 = Float(infinity)]

`block `(3), [R12 = 9643.2, R = 19286., R3 = 19286., C2 = .33e-7, R2 = 4821.6, R11 = 9643.2, C1 = .33e-7, ft = Float(infinity), type = LP1, A0 = Float(infinity)]

`block `(4), [R12 = 11447., R = 33239., R3 = 25402., C2 = .15e-7, R2 = 8025.6, R11 = 14377., C1 = .33e-7, ft = Float(infinity), type = LP1, A0 = Float(infinity)]

`block `(5), [R1 = 4821.6, C1 = .33e-7, type = LP0]

`type=ARC`

Pokud bychom chtěli provést syntézu pouze jedenoho bloku, lze to uskutečnit následujícím příkazem. Nejprve použijeme příkaz ARCBlock  pro rozdělení zesílení na jednotlivé bloky. Zesílení lze zadat opět jako číslo (celkové zesílení filtru) nebo pomocí seznamu čísel, ve kterém lze specifikovat přídavná zesílení jednotlivých bloků. Vlastní výpočet obvodu je v našem případě (dolní propusti) proveden pomocí funkce ARCSynt_LP . Volba paramerů se i zde zadává ve formě tabulky.  

>    lp_BL:=ARCBlock(lp,[5,2,1,1]);

>    ARC1b_lp:=ARCSyntLP(lp_BL[1],table(['C1'=33e-9, 'R'=1e4, 'type'=LP2]));

>    infolevel[syntfil]:=1:

lp_BL := TABLE([1 = TABLE([Q = .53208888623795607040, h0 = 6.3936387260521773126, omega_0 = 6284.8432198519983427]), 2 = TABLE([Q = .65270364466613930230, h0 = 2., omega_0 = 6284.8432198519983427]), 3 ...
lp_BL := TABLE([1 = TABLE([Q = .53208888623795607040, h0 = 6.3936387260521773126, omega_0 = 6284.8432198519983427]), 2 = TABLE([Q = .65270364466613930230, h0 = 2., omega_0 = 6284.8432198519983427]), 3 ...
lp_BL := TABLE([1 = TABLE([Q = .53208888623795607040, h0 = 6.3936387260521773126, omega_0 = 6284.8432198519983427]), 2 = TABLE([Q = .65270364466613930230, h0 = 2., omega_0 = 6284.8432198519983427]), 3 ...
lp_BL := TABLE([1 = TABLE([Q = .53208888623795607040, h0 = 6.3936387260521773126, omega_0 = 6284.8432198519983427]), 2 = TABLE([Q = .65270364466613930230, h0 = 2., omega_0 = 6284.8432198519983427]), 3 ...
lp_BL := TABLE([1 = TABLE([Q = .53208888623795607040, h0 = 6.3936387260521773126, omega_0 = 6284.8432198519983427]), 2 = TABLE([Q = .65270364466613930230, h0 = 2., omega_0 = 6284.8432198519983427]), 3 ...

ARC1b_lp := TABLE([R = .1e5, R3 = 4821.6048106517299142, R2 = 2565.5223335792500378, R1 = 754.12531380685047514, C1 = .33e-7, ft = infinity, type = LP2, A0 = infinity])

Jelikož jsme volili stejné parametry jako v předchozím případě, musíme dostat samozřejmě i shodný výsledek.

>    eval(ARC2_lp[1]);

TABLE([R = .1e5, R3 = 4821.6048106517299142, R2 = 2565.5223335792500378, R1 = 4821.6048106517299142, C1 = .33e-7, Ck = .13203483017960783362e-9, ft = .1e7, type = LP3, A0 = .1e6])

Toto lze provést pro každý blok s vyjímkou bloku prvního řádu, který se počítá (velikot odporu) přímo v hlavní proceduře ARCSynt .