Das in der Frage gestellte Problem scheint keine geschlossene Lösung zu haben. Wie in der Frage erwähnt und in anderen Antworten gezeigt, kann das Ergebnis zu einer Reihe entwickelt werden, die mit jedem symbolischen mathematischen Werkzeug wie Mathematica erreicht werden kann. Die Begriffe werden jedoch ziemlich kompliziert und hässlich, und es ist unklar, wie gut die Annäherung ist, wenn wir Begriffe bis zur dritten Ordnung einbeziehen. Da wir keine genaue Formel erhalten können, ist es möglicherweise besser, die Lösung numerisch zu berechnen, was im Gegensatz zur Näherung ein (fast) genaues Ergebnis liefert.
Darum geht es in meiner Antwort jedoch nicht. Ich schlage einen anderen Weg vor, der eine genaue Lösung ergibt, indem die Problemformulierung geändert wird. Nach einer Weile des Nachdenkens stellt sich heraus, dass es die Angabe der Mittenfrequenz und die Angabe der Bandbreite als Verhältnis (oder gleichwertig in Oktaven) ist, die die mathematische Unlösbarkeit verursacht. Es gibt zwei Wege aus dem Dilemma heraus:ω0
- Geben Sie die Bandbreite des zeitdiskreten Filters als Differenz der Frequenzen , wobei und die unteren bzw. oberen Bandkanten des zeitdiskreten Filters sind.ω 1 ω 2Δω=ω2−ω1ω1ω2
- das Verhältnis an und anstelle von eine der beiden oder .ω 0 ω 1 ω 2ω2/ω1ω0ω1ω2
In beiden Fällen ist eine einfache analytische Lösung möglich. Da es wünschenswert ist, die Bandbreite des zeitdiskreten Filters als Verhältnis (oder äquivalent in Oktaven) vorzuschreiben, werde ich den zweiten Ansatz beschreiben.
Definieren wir die Kantenfrequenzen und des zeitkontinuierlichen Filters durchΩ 2Ω1Ω2
|H(jΩ1)|2=|H(jΩ2)|2=12(1)
mit , wobei die Übertragungsfunktion eines Bandpassfilters zweiter Ordnung ist:Ω2>Ω1H(s)
H(s)=ΔΩss2+ΔΩs+Ω20(2)
mit und . Beachten Sie, dass und für .ΔΩ=Ω2−Ω1Ω20=Ω1Ω2H(jΩ0)=1|H(jΩ)|<1Ω≠Ω0
Wir verwenden die bilineare Transformation, um die und des zeitdiskreten Filters auf die und des zeitkontinuierlichen Filters . Ohne Verlust der Allgemeinheit können wir wählen . Für unsere Zwecke nimmt die bilineare Transformation dann die Form anω1ω2Ω1Ω2Ω1=1
s=1tan(ω12)z−1z+1(3)
entsprechend der folgenden Beziehung zwischen zeitkontinuierlichen und zeitdiskreten Frequenzen:
Ω=tan(ω2)tan(ω12)(4)
Aus wir durch Setzen von . Mit und berechnet aus , erhalten wir die Übertragungsfunktion des analogen Prototypfilters aus . Durch Anwenden der bilinearen Transformation wir die Übertragungsfunktion des zeitdiskreten Bandpassfilters:(4)Ω2ω=ω2Ω1=1Ω2(4)(2)(3)
Hd(z)=g⋅z2−1z2+az+b(5)
mit
gabc=ΔΩc1+ΔΩc+Ω20c2=2(Ω20c2−1)1+ΔΩc+Ω20c2=1−ΔΩc+Ω20c21+ΔΩc+Ω20c2=tan(ω12)(6)
Zusammenfassung:
Die Bandbreite des zeitdiskreten Filters kann in Oktaven (oder im Allgemeinen als Verhältnis) angegeben werden, und die Parameter des analogen Prototypfilters können genau berechnet werden, so dass die angegebene Bandbreite erreicht wird. Anstelle der Mittenfrequenz wir die Bandkanten und . Die durch definierte Mittenfrequenz ist ein Ergebnis des Entwurfs.ω0ω1ω2|Hd(ejω0)|=1
Die notwendigen Schritte sind wie folgt:
- Geben Sie das gewünschte Verhältnis der Bandkanten und einer der Bandkanten an (was natürlich der einfachen Angabe von und ).ω2/ω1ω1ω2
- Wählen Sie und bestimmen Sie aus . Berechnen Sie und des analogen Prototypfilters .Ω1=1Ω2(4)ΔΩ=Ω2−Ω1Ω20=Ω1Ω2(2)
- Bewerten Sie die Konstanten , um die zeitdiskrete Übertragungsfunktion .(6)(5)
Beachten Sie, dass bei dem allgemeineren Ansatz, bei dem und angegeben werden, die tatsächlichen Bandkanten und ein Ergebnis des Entwurfsprozesses sind. In der vorgeschlagenen Lösung können die Bandkanten angegeben werden und ist ein Ergebnis des Entwurfsprozesses. Der Vorteil des letzteren Ansatzes besteht darin, dass die Bandbreite in Oktaven angegeben werden kann und die Lösung genau ist, dh der resultierende Filter hat genau die angegebene Bandbreite in Oktaven.ω0Δω=ω2−ω1ω1ω2ω0
Beispiel:
eine Bandbreite von einer Oktave an und wählen Sie die untere Bandkante als . Dies ergibt eine obere Bandkante . Die Bandkanten des analogen Prototypfilters sind und von (mit ) . Dies ergibt und . Mit wir für die zeitdiskrete Übertragungsfunktionω1=0.2πω2=2ω1=0.4πΩ1=1(4)ω=ω2Ω2=2.2361ΔΩ=Ω2−Ω1=1.2361Ω20=Ω1Ω2=2.2361(6)(5)
Hd(z)=0.24524⋅z2−1z2−0.93294z+0.50953
Dies erreicht genau eine Bandbreite von 1 Oktave und die angegebenen Bandkanten, wie in der folgenden Abbildung gezeigt:
Numerische Lösung des ursprünglichen Problems:
Aus den Kommentaren geht hervor, dass es wichtig ist, die Mittenfrequenz genau angeben zu können, für die erfüllt ist. Wie bereits erwähnt, ist es nicht möglich, eine exakte Lösung in geschlossener Form zu erhalten, und eine Serienentwicklung erzeugt ziemlich unhandliche Ausdrücke.ω0|Hd(ejω0)|=1
Der Klarheit halber möchte ich die möglichen Optionen mit ihren Vor- und Nachteilen zusammenfassen:
- geben Sie die gewünschte Bandbreite als Frequenzdifferenz und geben ; In diesem Fall ist eine einfache Lösung in geschlossener Form möglich.Δω=ω2−ω1ω0
- die Bandkanten und (oder gleichwertig die Bandbreite in Oktaven und eine der Bandkanten) an. Dies führt auch zu einer einfachen Lösung in geschlossener Form, wie oben erläutert, aber die Mittenfrequenz ist ein Ergebnis des Entwurfs und kann nicht angegeben werden.ω1ω2ω0
- Geben Sie die gewünschte Bandbreite in Oktaven und die Mittenfrequenz (wie in der Frage gestellt). Es ist weder eine Lösung in geschlossener Form möglich, noch gibt es (vorerst) eine einfache Annäherung. Aus diesem Grund halte ich es für wünschenswert, eine einfache und effiziente Methode zu haben, um eine numerische Lösung zu erhalten. Dies wird unten erklärt.ω0
Wenn angegeben wird, verwenden wir eine Form der bilinearen Transformation mit einer Normalisierungskonstante, die sich von der in und :ω0(3)(4)
Ω=tan(ω2)tan(ω02)(7)
Wir definieren . Bezeichnen Sie das angegebene Verhältnis der Bandkanten des zeitdiskreten Filters alsΩ0=1
r=ω2ω1(8)
Mit wir von undc=tan(ω0/2)(7)(8)
r=arctan(cΩ2)arctan(cΩ1)(9)
Mit kann in folgender Form umgeschrieben werden:Ω1Ω2=Ω20=1(9)
f(Ω1)=rarctan(cΩ1)−arctan(cΩ1)=0(10)
Für einen gegebenen Wert von diese Gleichung mit einigen Newton-Iterationen für gelöst werden . Dazu benötigen wir die Ableitung von :rΩ1f(Ω1)
f′(Ω1)=c(r1+c2Ω21+1c2+Ω21)(11)
Mit wissen wir, dass im Intervall . Obwohl es möglich ist, intelligentere Anfangslösungen zu entwickeln, stellt sich heraus, dass die anfängliche Schätzung für die meisten Spezifikationen gut funktioniert und nach nur Iterationen der Newtonschen Methode zu sehr genauen Lösungen führt :Ω0=1Ω1(0,1)Ω(0)1=0.14
Ω(n+1)1=Ω(n)1−f(Ω(n)1)f′(Ω(n)1)(12)
Mit das mit einigen Iterationen von , können wir und , und wir verwenden und , um die Koeffizienten von zu berechnen das zeitdiskrete Filter. Beachten Sie, dass die Konstante jetzt durch .Ω1(12)Ω2=1/Ω1ΔΩ=Ω2−Ω1(5)(6)cc=tan(ω0/2)
Beispiel 1:
wir und eine Bandbreite von Oktaven an. Dies entspricht einem Verhältnis . Mit einer anfänglichen Schätzung von führten Iterationen der Newtonschen Methode zu einer Lösung , aus der die Koeffizienten der zeitdiskreten Zeit wie oben erläutert berechnet werden können. Die folgende Abbildung zeigt das Ergebnis:ω0=0.6π0.5r=ω2/ω1=20.5=2–√=1.4142Ω1=0.14Ω1=0.71
Der Filter wurde mit diesem Matlab / Octave-Skript berechnet:
% Spezifikationen
bw = 0,5; % gewünschte Bandbreite in Oktaven
w0 = 0,6 * pi; % Resonanzfrequenz
r = 2 ^ (bw); % Verhältnis der Bandkanten
W1 = 0,1; % anfängliche Vermutung (funktioniert für die meisten Spezifikationen)
Nit = 4; % # Newton-Iterationen
c = tan (w0 / 2);
% Newton
für i = 1: Nit,
f = r * atan (c * W1) - atan (c / W1);
fp = c * (r / (1 + c ^ 2 * W1 ^ 2) + 1 / (c ^ 2 + W1 ^ 2));
W1 = W1 - f / fp
Ende
W1 = abs (W1);
wenn (W1> = 1), Fehler ('Konvergenz fehlgeschlagen. Wert der anfänglichen Vermutung reduzieren.'); Ende
W2 = 1 / W1;
dW = W2 - W1;
% zeitdiskreter Filter
Skala = 1 + dW * c + W1 * W2 * c ^ 2;
b = (dW * c / Skala) * [1,0, -1];
a = [1, 2 * (W1 * W2 * c ^ 2-1) / Skala, (1-dW * c + W1 * W2 * c ^ 2) / Skala];
Beispiel 2:
Ich füge ein weiteres Beispiel hinzu, um zu zeigen, dass diese Methode auch Spezifikationen behandeln kann, für die die meisten Näherungen unsinnige Ergebnisse liefern. Dies ist häufig der Fall, wenn sowohl die gewünschte Bandbreite als auch die Resonanzfrequenz groß sind. Entwerfen wir einen Filter mit und Oktaven. Vier Iterationen der Newtonschen Methode mit einer anfänglichen Schätzung ergeben einen Endwert von , dh eine Bandbreite des analogen Prototyps von Oktaven. Das entsprechende zeitdiskrete Filter hat die folgenden Koeffizienten und sein Frequenzgang ist in der folgenden Darstellung dargestellt:ω0=0.95πbw=4Ω(0)1=0.1Ω1=0.00775log2(Ω2/Ω1)=log2(1/Ω21)≈14
b = 0,90986 * [1,0, -1];
a = [1,00000 0,17806 -0,81972];
Die resultierenden halben Leistungsbandkanten sind und , die tatsächlich genau Oktaven (dh ein Faktor von ) voneinander entfernt sind.ω1=0.062476πω2=0.999612π416