$$ \begin{bmatrix} \vdots & & & & & \vdots & & & \vdots \\ \dots & & & & & \dots & & & \dots \\ \vdots & & & & & \vdots & & & \vdots \\ \dots & & & & & \dots & \dots & & \dots \\ \vdots & & & & & \vdots & & & \vdots \end{bmatrix} \begin{bmatrix} \vdots \\ V_{out}(s) \\ \vdots\\ \\ \vdots \end{bmatrix} = \begin{bmatrix} \vdots \\ \\ \vdots \\ V_{in}(s)\\ \vdots \end{bmatrix} $$
$$T(j \omega)=\frac{ V_{out}(j \omega)}{ V_{in}(j \omega)}=\frac{\sum\limits_{i=0}^{2n} a_i(j \omega)^i}{\sum\limits_{i=0}^{2n} b_i(j \omega)^i}$$
met $n$ het aantal knopen in het circuit. Het feit dat er in de som $2n$ voorkomt is omdat er in elk van de elementen van de matrix zowel een spoel als een condensator kan voorkomen. Veel circuits hebben echter geen spoelen (omdat deze moeilijk in te bouwen zijn op geïntegreerde schakelingen. In dat geval kunnen we de oplossing verder vereenvoudigen tot:
$$T(j \omega)=\frac{ V_{out}(j \omega)}{ V_{in}(j \omega)}=\frac{\sum\limits_{i=0}^{n} a_i(j \omega)^i}{\sum\limits_{i=0}^{n} b_i(j \omega)^i}$$
$$T(j \omega)=\frac{ V_{out}(j \omega)}{ V_{in}(j \omega)}=\frac{\sum\limits_{i=0}^{n} a_i(j \omega)^i}{\sum\limits_{i=0}^{n} b_i(j \omega)^i}= \frac{\prod\limits_{i=0}^{n} (j \omega- n_i)}{\prod\limits_{i=0}^{n} (j \omega-p_i)}$$
$$T(j \omega)= \frac{\prod\limits_{i=0}^{n} (j \omega- n_i)}{\prod\limits_{i=0}^{n} (j \omega-p_i)}= T_1(j \omega) \times T_2(j \omega) \times T_3(j \omega) \times \dots \times T_n(j \omega) $$
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 5 8 opamp
C1 2 5 1.6nF
C2 3 0 1.6nF
Rkx 5 4 100k
Rx 4 0 100k
Vin 1 0 AC 0.5 0 DC 0
VPOS 8 0 DC +2.5V
VNEG 9 0 DC -2.5V
De verschillende filters die we in dit hoofdstuk zullen ontwerpen zijn:
Op het eerste gezicht lijkt een allesdoorlaatfilter niet echt nuttig maar het belang hiervan zit hem in de invloed op de fase van het signaal.
Hiervoor gaan we typisch de transferfunctie herschrijven als functie van de parameter S, die gelijk is aan:
$$S=\frac{i \omega}{\omega_o} $$
$$i \omega - p_i =\frac{i \omega}{\omega_o}- \frac{p_i}{\omega_o} = S - \frac{p_i}{\omega_o} $$
$$i \omega - n_i =\frac{i \omega}{\omega_o}- \frac{n_i}{\omega_o} = S - \frac{n_i}{\omega_o} $$
De frequentietransformatie die we hiervoor gebruiken is:
$$S=\frac{\omega_o}{i \omega} $$
De frequentietransformatie die we hiervoor gebruiken is:
$$S=\frac{1}{\omega_2-\omega_1}\frac{(i \omega)^2 + \omega_1\omega_2}{i \omega} $$
De verschillende filters die we in dit hoofdstuk zullen ontwerpen zijn:
Als eerste voorbeeld ontwerpen we een analoge 3de orde laagdoorlaatfilter van het type Butterworth met afsnijfrequentie 1 MHz. De transferfunctie $H(s)$ of $H(j\omega)$ die we bekomen is:
$$ H(s) = \frac{\sum\limits_{n=0}^M b_n s^n}{\sum\limits_{n=0}^N a_n s^n} = \frac{\sum\limits_{n=0}^0 b_n s^n}{\sum\limits_{n=0}^3 a_n s^n}$$
$a_n$ en $b_n$ zijn de coëfficiënten van de veeltermen in de transferfunctie. 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 coëfficiënten:
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)
De transferfunctie is:
met:
met S voor een laagdoorlaatfilter:
De amplitude voor $\omega=\omega o$ is:
Boven deze frequentie daalt deze functie als:
$$ G^2_n(\omega)=\frac{1}{1+\epsilon^2 T_n^2(S)}$$
$$ T_n(x)=\cos(n \arccos(x) )$$
$$ S=\frac{j \omega}{\omega_o}$$
$$ |G_n(\omega=\omega_o)|=\frac{1}{\sqrt{1+\epsilon^2}}$$
$$ |G_n(S)| \approx \frac{1}{\epsilon^2 2^{n-1} | S|^n }$$
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
Voor de integratie van filters op geïntegreerde schakelingen worden vaak geschakelde condensatoren (Switched Capacitors) gebruikt omwille van de volgende reden:
$$i=f C_s (V_{in}-V_{out})$$
$$R=\frac{1}{f C_s }$$
$$i=f C_s (V_{in}-V_{out})$$
$$R=\frac{1}{f C_s }$$