De transfer functie van een eerste orde blok is:
$$ V_{out}=-\frac{b_1(j \omega) +b_0}{a_1(j \omega) +a_0} V_{in}$$
De transfer functie van een tweede orde blok is:
$$ V_{out} = - \frac{b_2 (j \omega)^2 + b_1(j \omega) +b_0}{a_2 (j \omega)^2 + a_1(j \omega) +a_0} V_{in}$$
* Sallen and Key Low pass filter
R1 1 2 10k
R2 2 3 10k
XOpAmp 3 4 8 9 4 8 opamp
C1 2 4 2.2nF
C2 3 0 1.1nF
Vin 0 1 0 SIN(0V 1VPEAK 10KHZ)
* SUPPLY VOLTAGES
VPOS 8 0 DC +2.5V
VNEG 9 0 DC -2.5V
Wanneer we het circuit van listing xxx simuleren op basis van een ideale opamp (GBW=10MHz, versterking van 100K en een POLE bij 100Hz), krijgen we resultaat als in xxx.
Should be unit less
Should be unit less
Als eerste voorbeeld ontwerpen we een analoge 3de orde laagdoorlaatfilter van het type Butterworth met afsnijfrequentie 1 MHz. De transferfunktie $H(s)$ of $H(j\omega)$ die we bekomen is:
$$ H(s) = \frac{\sum_{n=0}^M b_n s^n}{\sum_{n=0}^N a_n s^n} = \frac{\sum_{n=0}^0 b_n s^n}{\sum_{n=0}^3 a_n s^n}$$
$a_n$ en $b_n$ zijn de coeficienten van de veeltermen in de transferfunktie. Aangezien we hier een derde orde laagdoorlaatfilter ontwerpen is $M=0$ en $N=3$. Voor deze oefening is het resultaat van de berekening van deze coefficienten:
Veelterm coefficienten teller: M= 0 b[ 0 ] = 2.4805021344239852e+20 Veelterm coefficienten noemer: N= 3 a[ 3 ] = 1.0 a[ 2 ] = 12566370.614359174 a[ 1 ] = 78956835208714.88 a[ 0 ] = 2.4805021344239852e+20
Een plot van deze transferfunctie zien we in {numref}filter_Fig8. We stellen inderdaad vast dat de versterking (Gain) heel erg vlak is tot 1 MHz en daarna met 60 dB per decade afneemt.
Lijst der nullen: M= 0 Lijst der polen: N= 3 p[ 1 ] = (-3141592.6535897935+5441398.092702653j) p[ 2 ] = (-6283185.307179586-0j) p[ 3 ] = (-3141592.6535897935-5441398.092702653j)
Veelterm coefficienten teller: M= 0 b[ 0 ] = 9.792629913129003e+33 Veelterm coefficienten noemer: N= 5 a[ 5 ] = 1.0 a[ 4 ] = 20332814.76926104 a[ 3 ] = 206711678220539.9 a[ 2 ] = 1.2988077794177306e+21 a[ 1 ] = 5.043559043399954e+27 a[ 0 ] = 9.792629913129004e+33
Lijst der nullen: M= 0 Lijst der polen: N= 5 p[ 1 ] = (-1941611.0387254667+5975664.329483111j) p[ 2 ] = (-5083203.69231526+3693163.6609809133j) p[ 3 ] = (-6283185.307179586-0j) p[ 4 ] = (-5083203.69231526-3693163.6609809133j) p[ 5 ] = (-1941611.0387254667-5975664.329483111j)
Veelterm coefficienten teller: M= 7 b[ 7 ] = 6.334013983218556e+58 b[ 6 ] = 0.0 b[ 5 ] = 0.0 b[ 4 ] = 0.0 b[ 3 ] = 0.0 b[ 2 ] = 0.0 b[ 1 ] = 0.0 b[ 0 ] = 0.0 Veelterm coefficienten noemer: N= 14 a[ 14 ] = 1.0 a[ 13 ] = 1129455138.528784 a[ 12 ] = 7.760089165897884e+17 a[ 11 ] = 3.654151505077993e+26 a[ 10 ] = 1.293535546920629e+35 a[ 9 ] = 3.5017090931362664e+43 a[ 8 ] = 7.334620231296047e+51 a[ 7 ] = 1.1783749530590898e+60 a[ 6 ] = 1.4477960023023706e+68 a[ 5 ] = 1.3643931993116192e+76 a[ 4 ] = 9.948728770520122e+83 a[ 3 ] = 5.547604782936569e+91 a[ 2 ] = 2.325495035605259e+99 a[ 1 ] = 6.681091689314365e+106 a[ 0 ] = 1.1676379112645588e+114
Lijst der nullen: M= 7 z[ 1 ] = 0j z[ 2 ] = 0j z[ 3 ] = 0j z[ 4 ] = 0j z[ 5 ] = 0j z[ 6 ] = 0j z[ 7 ] = 0j Lijst der polen: N= 14 p[ 1 ] = (-9467553.01746494-62713329.10036281j) p[ 2 ] = (-30211474.606362037-61659756.49600357j) p[ 3 ] = (-58777850.02496373-58866599.60061156j) p[ 4 ] = (-125663706.14359173-62831853.07179589j) p[ 5 ] = (-58777850.02496373+58866599.60061156j) p[ 6 ] = (-30211474.606362037+61659756.49600357j) p[ 7 ] = (-9467553.01746494+62713329.10036281j) p[ 8 ] = (-46458057.493502825+307739438.435567j) p[ 9 ] = (-126488603.88224223+258155439.82934594j) p[ 10 ] = (-167660324.09626448+167913476.98651484j) p[ 11 ] = (-125663706.14359173+62831853.07179589j) p[ 12 ] = (-167660324.09626448-167913476.98651484j) p[ 13 ] = (-126488603.88224223-258155439.82934594j) p[ 14 ] = (-46458057.493502825-307739438.435567j)
Veelterm coefficienten teller: M= 7 b[ 7 ] = 1.082225670413975e+53 b[ 6 ] = 0.0 b[ 5 ] = 0.0 b[ 4 ] = 0.0 b[ 3 ] = 0.0 b[ 2 ] = 0.0 b[ 1 ] = 0.0 b[ 0 ] = 0.0 Veelterm coefficienten noemer: N= 14 a[ 14 ] = 1.0 a[ 13 ] = 169418270.77931747 a[ 12 ] = 7.027364430041076e+17 a[ 11 ] = 1.0074611841037228e+26 a[ 10 ] = 2.1017496540749808e+35 a[ 9 ] = 2.488471395316168e+43 a[ 8 ] = 3.4683129207221617e+52 a[ 7 ] = 3.2679992552874596e+60 a[ 6 ] = 3.4107645311434367e+69 a[ 5 ] = 2.406576000783415e+77 a[ 4 ] = 1.998855398085796e+86 a[ 3 ] = 9.422413939327687e+93 a[ 2 ] = 6.463381596708082e+102 a[ 1 ] = 1.5323607880306775e+110 a[ 0 ] = 8.894760315452719e+118
Lijst der nullen: M= 7 z[ 1 ] = 0j z[ 2 ] = 0j z[ 3 ] = 0j z[ 4 ] = 0j z[ 5 ] = 0j z[ 6 ] = 0j z[ 7 ] = 0j Lijst der polen: N= 14 p[ 1 ] = (-3949021.641305336-295726397.242198j) p[ 2 ] = (-11200424.836296545-298982612.7578789j) p[ 3 ] = (-16539450.539423024-305061656.189032j) p[ 4 ] = (-18849555.92153874-313026248.8897938j) p[ 5 ] = (-16539450.539423024+305061656.189032j) p[ 6 ] = (-11200424.836296545+298982612.7578789j) p[ 7 ] = (-3949021.641305336+295726397.242198j) p[ 8 ] = (-4439819.935339821+332480313.6424786j) p[ 9 ] = (-12304586.93699407+328456965.2578802j) p[ 10 ] = (-17426275.57876118+321418687.7969175j) p[ 11 ] = (-18849555.92153874+313026248.8897938j) p[ 12 ] = (-17426275.57876118-321418687.7969175j) p[ 13 ] = (-12304586.93699407-328456965.2578802j) p[ 14 ] = (-4439819.935339821-332480313.6424786j)
Veelterm coefficienten teller: M= 0 b[ 0 ] = 2.298652790795694e+24 Veelterm coefficienten noemer: N= 3 a[ 3 ] = 1.0 a[ 2 ] = 92822184.81844565 a[ 1 ] = 5.168208012246375e+16 a[ 0 ] = 2.2986527907956946e+24
Lijst der nullen: M= 0 Lijst der polen: N= 3 p[ 1 ] = (-23205546.204611413+221335928.5095666j) p[ 2 ] = (-46411092.40922282-0j) p[ 3 ] = (-23205546.204611413-221335928.5095666j)
Veelterm coefficienten teller: M= 0 b[ 0 ] = 1.0669416336250132e+69 Veelterm coefficienten noemer: N= 8 a[ 8 ] = 1.0 a[ 7 ] = 524820305.9616953 a[ 6 ] = 1.2746966037803576e+18 a[ 5 ] = 5.1937707944741785e+26 a[ 4 ] = 5.104888759746549e+35 a[ 3 ] = 1.45769782715832e+44 a[ 2 ] = 6.590270478283454e+52 a[ 1 ] = 1.0103634193419598e+61 a[ 0 ] = 1.3431999354717115e+69
Lijst der nullen: M= 0 Lijst der polen: N= 8 p[ 1 ] = (-19974783.518686887+746281824.2305412j) p[ 2 ] = (-56883370.83720408+632667181.5530242j) p[ 3 ] = (-85131980.59479763+422734695.6263414j) p[ 4 ] = (-100420018.03015907+148444684.39010677j) p[ 5 ] = (-100420018.03015907-148444684.39010677j) p[ 6 ] = (-85131980.59479763-422734695.6263414j) p[ 7 ] = (-56883370.83720408-632667181.5530242j) p[ 8 ] = (-19974783.518686887-746281824.2305412j)
Veelterm coefficienten teller: M= 0 b[ 0 ] = 1.780752121671573e+16 Veelterm coefficienten noemer: N= 2 a[ 2 ] = 1.0 a[ 1 ] = 121560720.41014235 a[ 0 ] = 2.5153792295277244e+16
Lijst der nullen: M= 0 Lijst der polen: N= 2 p[ 1 ] = (-60780360.20507117+146490750.93199244j) p[ 2 ] = (-60780360.20507117-146490750.93199244j)
Veelterm coefficienten teller: M= 2 b[ 2 ] = 1.0 b[ 1 ] = 0.0 b[ 0 ] = 0.0 Veelterm coefficienten noemer: N= 2 a[ 2 ] = 1.0 a[ 1 ] = 10882.796185405305 a[ 0 ] = 39478417.60435742