Von der idealen Antwort zum praktischen Filter
Hamming präsentierte eine vierschrittige Entwurfsmethode für FIR-Filter unter Verwendung von Fourier-Reihen.
Schritt 1: Geben Sie die ideale Antwort an
Definieren Sie H_ideal(f): die genaue Frequenzantwort, die Sie möchten. Für einen Tiefpassfilter: H = 1 für f < f_c, H = 0 für f > f_c. Dies ist eine Schrittfunktion im Frequenzbereich.
Schritt 2: Berechnen Sie Fourier-Koeffizienten
Erweitern Sie H_ideal(f) als eine Fourier-Reihe in der Frequenzvariablen. Die Koeffizienten c_k sind die idealen Impulsantwort-Werte des Filters:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Für einen Tiefpassfilter mit Grenzfrequenz f_c: c_k = sin(2πf_c·k) / (πk) für k ≠ 0, c_0 = 2f_c.
Diese Impulsantwort ist unendlich — die sinc-Funktion erstreckt sich für immer in der Zeit. Ein praktischer Filter benötigt eine endliche Anzahl von Koeffizienten.
Schritt 3: Kürzen Sie auf 2N+1 Begriffe
Behalten Sie nur Koeffizienten c_k für |k| ≤ N. Dieses rechteckige Fenster von 2N+1 Begriffen ist die einfachste Kürzung. Es erzeugt das Gibbs-Phänomen: ≈9% Überschwingen in der Nähe der Grenzfrequenz.
Schritt 4: Wenden Sie ein Fenster an
Multiplizieren Sie die gekürzte Koeffizienten mit einer Fensterfunktion w_k, um das Gibbs-Überschwingen zu reduzieren:
c̃_k = c_k · w_k
Die gefensterten Koeffizienten c̃_k definieren den praktischen Filter.
Berechnung von Fourier-Koeffizienten
Die Fourier-Koeffizientenformel c_k = sin(2πf_c·k) / (πk) für einen Tiefpassfilter mit Grenzfrequenz f_c gibt die Impulsantwort an.
Für einen Bandpassfilter mit unterer Grenzfrequenz f_l und oberer Grenzfrequenz f_u ist der Fourier-Koeffizient für die ideale Antwort: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Wie Fenster das Gibbs-Überschwingen reduzieren
Eine Fensterfunktion w_k verjüngt die gekürzte Koeffizientenfolge von ihrem Zentralwert auf Null an den Rändern. Die Verjüngung entfernt die scharfen Kanten, die durch rechteckige Kürzung eingeführt wurden.
Warum Verjüngung funktioniert
Das Gibbs-Überschwingen entsteht, weil die Fourier-Transformation des rechteckigen Fensters (die sinc-Funktion) große Nebenkeulen aufweist. Diese Nebenkeulen addieren sich in der Nähe der Unstetigkeit, um das ≈9%-Überschwingen zu erzeugen.
Ein glattes Fenster hat eine Fourier-Transformation mit kleineren Nebenkeulen. Die Multiplikation der Koeffizienten mit dem Fenster faltet die ideale Frequenzantwort mit der Fourier-Transformation des Fensters. Kleinere Nebenkeulen → weniger Welligkeit.
Häufige Fenster
Rechteckig (kein Fenster): Nebenkeulen ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Nebenkeulen ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Nebenkeulen ≈ −41 dB, erste Nebenkeule ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Einstellbar: α kontrolliert die Nebenkeulenebene, wodurch ein Design die Nebenkeuelhöhe gegen die Übergangsbandbreite eintauschen kann.
Der Fenster-Kompromiss
Jedes Fenster erzeugt einen Kompromiss: Das Unterdrücken von Nebenkeulen verbreitert immer die Hauptkeule.
Eine breitere Hauptkeule bedeutet ein breiteres Übergangsbandbreite — der Frequenzbereich zwischen Durchlassband & Sperrband.
Hamming formalisierte dies in Bezug auf Kaisers Entwurfsparameter:
- δ: zulässige Welligkeit (vertikale Toleranz vom Ideal — wie viel die Antwort von 0 oder 1 abweichen kann)
- ΔF: Übergangsbandbreite (horizontale Toleranz — wie eng der Übergang von Durchlass zu Sperr sein kann)
Kaisers Methode findet sowohl N (Anzahl der Koeffizienten) als auch α (der Fensterschalenparameter) nur aus δ und ΔF. Kein Erraten des Fenstertyps.
Von Spezifikationen zu Koeffizienten
Kaisers Methode nimmt zwei Spezifikationen — δ (Ripple-Toleranz) und ΔF (Übergangsbandbreite) — und erzeugt sowohl N als auch die Fenster-Koeffizienten ohne Versuch und Irrtum.
Die Entwurfssequenz
1. Berechnen Sie A = −20·log₁₀(δ) (Dämpfung in dB)
2. Berechnen Sie den Formenparameter α:
- Wenn A > 50: α = 0.1102·(A − 8.7)
- Wenn 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)
- Wenn A < 21: α = 0 (rechteckiges Fenster)
3. Berechnen Sie N = (A − 8) / (2.285 · 2πΔF)
4. Berechnen Sie die Kaiser-Fenster-Gewichte: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Multiplizieren Sie die idealen Fourier-Koeffizienten mit den Fenster-Gewichten
6. Bewerten Sie die resultierende Übertragungsfunktion und überprüfen Sie die Ripple gegen δ. Falls die Ripple δ überschreitet (Kanteninterferenz), wiederholen Sie mit einer kleineren Toleranz.
Hamming vermerkte: Kaiser kam zum Exponent 0.4, indem er 0.5 (zu groß) versuchte und feststellte, dass 0.4 gut passte. Der Computer diente als experimentelles Werkzeug für theoretische Forschung.
Anwendung von Kaisers Methode
Die Bessel-Funktion I₀(x) erscheint in Kaisers Fensterformel. Sie berechnet sich als eine schnell konvergierende Reihe:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Für kleine x konvergiert die Reihe in wenigen Begriffen wegen des m!² im Nenner.