Von der idealen Antwort zu einer praktischen Filter
Hamming stellte ein vierstufiges Designverfahren für IIR-Filter mit Fourier-Reihen vor.
Schritt 1: Angabe der idealen Antwort
Definieren Sie H_ideal(f): die genaue Frequenzantwort, die Sie möchten. Für einen Tiefpass: H = 1 für f < f_c, H = 0 für f > f_c. Dies ist eine Schrittfunction im Frequenzbereich.
Schritt 2: Berechnung der Fourier-Koeffizienten
Erweitern Sie H_ideal(f) als Fourier-Reihe in der Frequenzvariable. Die Koeffizienten c_k sind die Impulsantwortwerte des Filters:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Für einen Tiefpass mit Schwellenwert 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 im Zeitbereich. Ein praktischer Filter benötigt eine endliche Anzahl von Koeffizienten.
Schritt 3: Auf 2N+1 Begriffe einschränken
Behalten Sie nur Koeffizienten c_k für |k| ≤ N. Dieses rechteckige Fenster mit 2N+1 Begriffen ist die einfachste Abschneidung. Es erzeugt das Gibbs-Phänomen: ≈9% Überschreitung in der Nähe der Schwellenwert.
Schritt 4: Anwendung eines Fensters
Multiplizieren Sie die gekürzten Koeffizienten mit einer Fensterfunktion w_k, um Gibbs-Überschreitungen zu reduzieren:
c̃_k = c_k · w_k
Die mit einem Fenster versehenen Koeffizienten c̃_k definieren den praktischen Filter.
Berechnung der Fourier-Koeffizienten
Die Fourier-Koeffizientenformel c_k = sin(2πf_c·k) / (πk) für einen Tiefpass mit Schwellenwert f_c gibt die Impulsantwort.
Für einen Bandpassfilter mit unterem Schwellenwert f_l und oberem Schwellenwert f_u beträgt der Fourier-Koeffizient für die ideale Antwort: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Wie Fenster Gibbs-Uberschuss reduzieren
Eine Fensterfunktion w_k verjüngt die abgeschnittene Koeffizientenreihe von ihrem zentralen Wert zu null an den Rändern. Der Verjüngung entfernt die scharfen Kanten, die durch rechteckige Abschneiden eingeführt werden.
Warum Verjüngung funktioniert
Gibbs-Uberschuss tritt auf, weil der Fourier-Transform der rechteckigen Fenster (die Sinc-Funktion) große Nebenspektren hat. Diese Nebenspektren fügen sich in der Nähe der Diskontinuität zusammen, um den ≈9% Uberschuss zu erzeugen.
Ein glattes Fenster hat eine Fourier-Transform mit kleineren Nebenspektren. Die Multiplikation der Koeffizienten durch das Fenster convolutet die ideale Frequenzantwort mit der Fourier-Transform des Fensters. Kleine Nebenspektren → weniger Rippen.
Gemeinsame Fenster
Rechteckiges (keine Fensterung): Nebenspektren ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Nebenspektren ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Nebenspektren ≈ −41 dB, erstes Nebenspektrum ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Einstellbar: α bestimmt die Höhe der Nebenspektren, wodurch eine Konfiguration ermöglicht wird, bei der die Nebenleistung gegen die Übergangsbreite getauscht wird.
Das Fenster-Abwägen
Jedes Fenster setzt ein Abwägen voraus: Die Unterdrückung von Nebenspektren erweitert immer die Hauptloch.
Ein breiteres Hauptloch bedeutet eine breitere Übergangsbreite - der Bereich der Frequenzen zwischen Passband und Stopband.
Hamming hat dies in den Parametern der Kaiser-Design formuliert:
- δ: zulässige Rippe (vertikale Toleranz von ideal - wie sehr die Antwort von 0 oder 1 abweichen kann)
- ΔF: Übergangsbreite (horizontale Toleranz - wie schmal die Übergänge von Pass zu Stop ist)
Kaisers Methode bestimmt sowohl N (Anzahl der Koeffizienten) als auch α (das Fensterformparameter) allein aus δ und ΔF. Kein Vermutung über den Fenstertyp.
Von Spezifikationen zu Koeffizienten
Kaisers Methode nimmt zwei Spezifikationen - δ (Rippeltoleranz) und ΔF (Übergangsbreite) - und produziert sowohl N als auch die Fensterkoeffizienten ohne Versuch und Irrtum.
Die Gestaltungsschleife
1. Berechnen Sie A = −20·log₁₀(δ) (Abschwächung in dB)
2. Berechnen Sie das Formparameter α:
- 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-Fenstergewichte: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Multiplizieren Sie die idealen Fourierkoeffizienten mit den Fenstergewichten
6. Bewerten Sie die resultierende Übertragungsfunktion und prüfen Sie die Rippel gegen δ. Wenn die Rippel δ (Kantenbeeinflussung) übersteigt, wiederholen Sie mit kleinerem Toleranzbereich.
Hamming bemerkte: Kaiser kam zum Exponenten 0.4, indem er 0.5 (zu groß) ausprobierte und fand, dass 0.4 gut passte. Der Computer diente als experimentelles Werkzeug für theoretische Forschung.
Anwendung von Kaisers Methode
Die Besselfunktion I₀(x) tritt in Kaisers Fensterformel auf. Sie berechnet sich als schnell konvergierende Reihe:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Für kleine x konvergiert die Reihe in wenigen Termini aufgrund des m!² im Nenner.