Horní propust
Zadání aproximační úlohy - definice mezních kmitočtů.
> | f_s2:=1000:f_p2:=2000:ap2:=3:as2:=45: |
Transformace tolerančního schématu daného filtrtu horní propusti (HP) na nornmovanou dolní propust (NLP).
> | infolevel[syntfil]:=4: |
> | x2:=HP2NLP(f_s2,f_p2,ap2,as2); |
> | infolevel[syntfil]:=1: |
Filter specification:
f_s = 1000.000000 Hz
f_p = 2000.000000 Hz
ap = 3.000000 dB
as = 45.000000 dB
Specification of NLP:
Os = 2.000000 1/s
ap = 3.000000 dB
as = 45.000000 dB
Díky nastavení proměnné infolevel[syntfil]:=4 je vykresleno jednak toleranční schéma zadaného filtru, a jednak toleranční schéma odpovídající normované dolní propusti.
Výpočet stupňů a nových útlumů v nepropustném pásmu pro všechny typy standardních aproximací.
> | Nb2:=ButterworthNLPOrder(x2); |
> | Butterworth_asnew(Nb2); |
> | Nch2:=ChebyshevNLPOrder(x2); |
> | Chebyshev_asnew(Nch2); |
> | Nc2:=CauerNLPOrder(x2); |
> | Cauer_asnew(Nc2); |
Výpočet pólů a nul přenosu NLP pro zíkladní typ Cauerovy aproximace. Toto je potřebné pro následnou kaskádní syntézu ARC (aktivní RC) struktury filtru.
> | Gc2,poles2,zeros2:=CauerPolesZeros(Nc2); |
Výpočet provozního činitele přenosu, charakteristické funkce a nul přenosové funkce pro vybranou aproximaci. Toto je potřebné pro následnou syntézu příčkové LC struktury filtru.
> | g2,chf2,zer2:=CauerB(Nc2,p); |
> |
Výpočet některých ostatních aproximací
Výpočet modulu přenosové funkce dané NLP z provozního činitele přenosu a jeho vykreslení v dB v závislosti na kmitočtu.
> | plot(MagnitudeHdB(1/g2)(omega),omega=0..8,color=blue); |
Výpočet modulu přenosu pro mez propustného pásma (měl by samozřejmě vyjít jako zadané ap2 - kontrola).
> | evalf(MagnitudeHdB(1/g2)(1)); |
Výpočet modulu přenosu pro mez nepropustného pásma (měl by vyjít jako zadané asnew - kontrola, ale zvhledem k aproximace typu B vyjde menší).
> | evalf(MagnitudeHdB(1/g2)(x2[1])); |
Vypořtení a zároveň vykreslení modulové charakteristiky NLP pro základní Cauerovu aproximaci (typ A).
> | plot(MagnitudeHdB(1/Cauer(Nc2,p)[1])(omega),omega=0..8); |
Výpočet modulu přenosu pro mez propustného pásma, zde musí vyjít také stejně, tj. jako ap .
> | evalf(MagnitudeHdB(1/Cauer(Nc2,p)[1])(1)); |
Výpočet modulu přenosu pro mez nepropustného pásma, zde vyjde přesně stejně, jako asnew .
> | evalf(MagnitudeHdB(1/Cauer(Nc2,p)[1])(x2[1])); |
Vypořtení a vykreslení modulové charakteristiky NLP pro upravenou Cauerovu aproximaci (typ C). Oproti typu B, kde je poslední nula přenosu posunuta také do nekonečna (oproti základnímu typu aproximace), vychází zde ještě navíc začátek modulové charakteristiku z 0dB, což vede na stejné zakončovací rezistory příčkové LC struktury filtru.
> | g2c,chf2c,zer2c:=CauerC(Nc2,p): |
> | plot(MagnitudeHdB(1/g2c)(omega),omega=0..8,color=green); |
Zde jsou vykresleny všechny typy najednou.
> | plot([MagnitudeHdB(1/g2)(omega),MagnitudeHdB(1/Cauer(Nc2,p)[1])(omega),MagnitudeHdB(1/g2c)(omega)],omega=0..8,color=[blue,red,green],legend=["B","A","C"]); |
> |
Vykreslení modulu "lineárně", fáze a skupinového zpoždění NLP
> |