Design des Butterworth-Hochpassfilters

Ich versuche, einen Butterworth-Hochpassfilter mit einer Grenzfrequenz von 8 kHz und einer Abklingrate von 60 dB/Dekade zu entwerfen und später zu implementieren.

Für diesen Filter ω C = 50265.4824 R A D / S (Umrechnung von Hz)

Bisher habe ich die Reihenfolge des erforderlichen Filters wie folgt bestimmt:

Ö R D e R = gewünschtes Abrollen 20 D B / D e C A D e
= 60 D B / D e C A D e 20 D B / D e C A D e = 3 R D  Bestellfilter

Ich werde diese Gleichung für einen normalisierten Tiefpassfilter dritter Ordnung verwenden:

H L N ( S L N ) = A 0 B 0 + B 1 S L N + B 2 S L N 2 + S L N 3

und ich habe erhalten B N Begriffe aus der folgenden Tabelle, die von GE Carlson-Signalen und linearer Systemanalyse stammen:

Filterkoeffizienten

also haben wir B 0 = 1 , B 1 = 2 , B 2 = 2

Als nächstes möchte ich diese Übertragungsfunktion in die eines Hochpassfilters umwandeln, also werde ich ersetzen

S L N
von
ω C S

mit A 0 = B 0 × G D C = 1 × 1 = 1

ergebend

H L N ( ω C S ) = 1 1 + 2 ω C S + 2 ω C 2 S 2 + ω C 3 S 3

Ich bin hier ein wenig verloren, wie wir es jetzt getan haben S N Begriffe als 1 über im Nenner. Um die Form der Übertragungsfunktion wieder normal zu machen, habe ich den kleinsten gemeinsamen Nenner bekommen, der dann ergibt:

H L N ( ω C S ) = S 3 S 3 + 2 ω C S 2 + 2 ω C 2 S + ω C 3

Verwenden der Bode-Plot-Funktion in Matlab:

wc = 50265.4824;
num = [1]
den = [1 2*wc 2*wc^2 wc^3]
opts = bodeoptions('cstprefs');
opts.FreqUnits='Hz';
G = tf(num, den)
bode(G,opts), grid;

Bode-Diagramm der Übertragungsfunktion

Dies ist eindeutig nicht korrekt, da das, was im Magnitudendiagramm angezeigt wird, das eines Tiefpasses und nicht eines Hochpasses ist, also habe ich irgendwo einen Fehler gemacht. Jede Hilfe wäre sehr willkommen!

Sie meinten Tiefpassfilter und wie ist GDC = 1
Ich bin offensichtlich sehr verwirrt. GDC liegt der Gewinn bei ω = 0 ? Für einen Hochpassfilter wollen wir also keine Verstärkung bei 0?
wahr, aber Sie zeigen die Antwort eines LPF
Ich bin sicher, andere können Ihnen bei Ihrer akademischen Übung helfen, aber für praktische Lösungen gibt es bessere Möglichkeiten.
h = tf([1 0 0 0],[1 2 2 1]);

Antworten (2)

Es lohnt sich, die MATLAB-Referenz für Übertragungsfunktionen zu konsultieren.

Wenn Sie s^3 im Zähler haben möchten, müssen Sie festlegen

num = [ 1 0 0 0 ];

Das gibt Ihnen 3 Nullen am Ursprung.

h = tf([1 0 0 0],[1 2 2 1]); (MATLAB)

Eine bessere Möglichkeit besteht darin, das FilterPRO-Tool von TI (kostenlos) zu verwenden und Bessel 8. Ordnung mit einem Quad-Operationsverstärker in Betracht zu ziehen. Wählen Sie Bauteiltoleranzen.

Für Einzelversorgung gnd auf Vcc/2 ändern.

Wählen Sie Rail-to-Rail-Eingangs- und Ausgangs-OAs, skalieren Sie die Werte auf den 100-K-Bereich und gleichen Sie den Eingang R für Offset-Ströme aus, falls vorhanden.

Geben Sie hier die Bildbeschreibung ein