4 wxMaxima | |
→ | 4.14 Beispiele |
Für den Bandpass entsprechend der obigen Abbildung mit
sind folgende Größen gesucht:
Zunächst wird die Übertragungsfunktion bestimmt:
Daraus wird der Amplitudengang bestimmt:
Am Maximum des Amplitudenganges über der Kreisfrequenz ist die erste Ableitung des Amplitudenganges nach der Kreisfrequenz 0:
Aus dem Maximalwert des Amplitudenganges wird der Wert für den Amplitudengang bei der Grenzfrequenz bestimmt:
Zur Vereinfachung der weiteren Berechnungen wird eine Normierung der Kreisfrequenz auf die Maximums-Kreisfrequenz vorgenommen:
Um die Grenz-Kreisfrequenz zu finden, muss die Nullstelle der Funktion f(x) gesucht werden:
Da für das Netzwerk R1=R2 und C1=C2 ist, wird R1=R2=R und C1=C2=C eingesetzt, um die Berechnungen zu vereinfachen.
Für die o.g. Größen werden folgende Variablennamen in Maxima verwendet:
Zunächst wird eine Funktion definiert, um den Gesamtwiderstand zweier parallel geschalteter Widerstände zu ermitteln:
para(a,b):=(a*b)/(a+b);
Die Formel für die Berechnung des komplexen Widerstandes eines Kondensators wird in ZC gespeichert:
ZC: 1/(%i*w*C);
In der Variablen G wird die Formel für die komplexe Spannungsübertragungsfunktion gespeichert:
G: (para(ZC,R+ZC))*(R)/((R+para(ZC,R+ZC))*(R+ZC));
In der Variablen aG wird ein Berechnungsterm für den
Amplitudengang (Betrag der Spannungsübertragungsfunktion)
hinterlegt.
Der Betrag komplexer Größen wird in Maxima mit der Funktion
cabs() gebildet, nicht abs().
Zusätzlich zur Betragsbildung soll eine Vereinfachung erfolgen.
aG: fullratsimp(cabs(G));
Die Ableitung des Amplitudenganges nach der Kreisfrequenz wird in daG hinterlegt, auch hier wird vereinfacht:
daG: fullratsimp(diff(aG, w));
Für Extrema ist die Ableitung des Amplitudenganges nach der Kreisfrequenz 0.
solve(daG = 0, w);
Da unsere Kreisfrequenz ein reeller positiver Wert sein muss, ist von den 7 angebotenen mathematischen Lösungen nur die vierte technisch sinnvoll.
Wir speichern diese Lösung in der Variablen wm:
wm: rhs(%o6[4]);
Die gefundene Kreisfrequenz setzen wir in die Formel für den Amplitudengang ein, um das Maximum zu berechnen:
Gm: at(aG, w=wm);
Der maximale Amplitudengang wird durch die Wurzel aus 2 geteilt.
Gg: Gm / sqrt(2);
Da wir die untere und obere Grenzkreisfrequenz als Vielfache der Maximums-Kreisfrequenz ausdrücken wollen, normieren wir den Amplitudengang auf die Maximums-Kreisfrequenz und speichern das Ergebnis in naG.
naG: ratsubst(x/(R*C), w, aG);
Die Nullstellen von f(x) werden numerisch gesucht.
x01: find_root(naG - Gg, x, 0.001, 1); x02: find_root(naG - Gg, x, 1, 1000);
Nach sinnvollen Runden der x-Werte für die Grenzkreisfrequenzen können wir unsere Ergebnisse zusammenfassen:
Um den Amplitudengang zu plotten, definieren wir zunächst eine Funktion, die den Logarithmus einer Zahl zur Basis 10 berechnet:
log10(x):=log(x)/log(10);
Nun können wir den Amplitudengang in dB über der normierten Frequenz bzw. Kreisfrequenz plotten:
plot2d( 20*log10(naG), [x, 0.001, 1000], [gnuplot_preamble, "set logscale x;"], [xlabel, "f / f_g"], [ylabel, "|G(f)| / dB"], [nticks, 1000] );