Pásmová propust
Zadání aproximační úlohy a transformace tolerančního schématu daného filtrtu pásmové propusti (BP) na nornmovanou dplní propust (NLP).
> | f_s3:=1000: f_p3:=1100: fp3:=3000: fs3:=4000: ap3:=3: as3:=25: |
> | infolevel[syntfil]:=3: |
> | x3:=BP2NLP(f_s3,f_p3,fp3,fs3,ap3,as3); |
> | infolevel[syntfil]:=1: |
Filter specification:
f_s = 1000.000000 Hz
f_p = 1100.000000 Hz
fp = 3000.000000 Hz
fs = 4000.000000 Hz
ap = 3.000000 dB
as = 25.000000 dB
Non-symetrical BP was entered.
New stopband frequency was calculated fs = 3300.000000 Hz.
fm = 1816.590212 Hz
delta_fp = 1900.000000 Hz
delta_fs = 2300.000000 Hz
Specification of NLP:
Os = 1.210526 1/s
ap = 3.000000 dB
as = 25.000000 dB
Díky nastavení proměnné infolevel[syntfil]:=3 je jednak vykresleno toleranční schéma, a jednak jsou vypsány přepočítané mezní kmitočty na střední kmitočet a šířku propustného pásma a šířku mezí nepropustného pásma.
> |
Alternativní zadání tolerančního schématu pomocí středního kmitočtu, šířky propustného pásma a šířku mezí nepropustného pásma
Výpočet stupňů a nových útlumů v nepropustném pásmu pro všechny typy standardních aproximací.
> | Nb3:=ButterworthNLPOrder(x3); |
> | Butterworth_asnew(Nb3); |
> | Nch3:=ChebyshevNLPOrder(x3); |
> | Chebyshev_asnew(Nch3); |
> | Nc3:=CauerNLPOrder(x3); |
> | Cauer_asnew(Nc3); |
Výpočet pólů a nul přenosu NLP pro vybranou aproximaci. Toto je potřebné pro následnou kaskádní syntézu ARC (aktivní RC) struktury filtru.
> | Gc3,poles3:=ChebyshevPoles(Nch3); |
Výpočet provozního činitele přenosu, charakteristické funkce a nul přenosu pro vybranou aproximaci. Toto je potřevné pro následnou syntézu příčkové LC struktury filtru.
> | g3,chf3,zer3:=InvChebyshevB(Nch3,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/g3)(omega),omega=0..5); |
Výpočet modulu přenosu pro mez propustného pásma (měl by samozřejmě vyjít jako zadané ap - kontrola).
> | evalf(MagnitudeHdB(1/g3)(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/g3)(x3[1])); |
Vypořtení a zároveň vykreslení modulové charakteristiky NLP pro základní Inverzní Čebyševovy aproximace (typ A). Oproti typu B, kde je poslední nula přenosu posunuta do nekonečna je zde tato nula na reálném končném kmitočru.
> | plot([MagnitudeHdB(1/g3)(omega),MagnitudeHdB(1/InvChebyshev(Nch3,p)[1])(omega)],omega=0..8,legend=["A","B"]); |
Výpočet modulu přenosu pro mez propustného pásma, zde musí vyjít také stejně, tj. jako ap .
> | evalf(MagnitudeHdB(1/InvChebyshev(Nch3,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/InvChebyshev(Nch3,p)[1])(x3[1])); |
> |
Vykreslení modulu "lineárně", fáze a skupinového zpoždění NLP
> |