FIR Filter Design by Windowing: Konzepte und das rechteckige Fenster

Problem No. 1 on Windowing Technique in FIR Filter - Discrete Time Signal Processing (Dezember 2018).

Anonim

FIR Filter Design by Windowing: Konzepte und das rechteckige Fenster


In diesem Artikel werden die grundlegenden Konzepte des digitalen Filterdesigns erläutert. Wir werden auch kurz die Vorteile von FIR-Filtern gegenüber IIR-Designs diskutieren, z. B. Stabilität und die lineare Phasenantwort. Schließlich werden wir eine Einführung in die Entwicklung von FIR-Filtern über die Fenstermethode geben.

Warum brauchen wir Filter? Text-align: justify;> Filter werden in einer Vielzahl von Anwendungen verwendet. Meistens besteht das Endziel der Verwendung eines Filters darin, eine Art von Frequenzselektivität für das Spektrum des Eingangssignals zu erreichen.

Nehmen wir als Beispiel an, dass ein 50-Hz-Rauschen auf das von einem Sensor erzeugte Signal fällt. Die Rauschkomponente kann stark genug sein, um die Messgenauigkeit zu begrenzen. Der Ausgang des Sensors wird üblicherweise von einem ADC in ein digitales Signal umgewandelt, um von einem DSP oder einem Mikrocontroller verarbeitet zu werden. Daher können wir einen digitalen Filter nach dem ADC verwenden, um die Rauschkomponente zu eliminieren. In diesem speziellen Beispiel kann ein Kerbfilter, das bei 50 Hz zentriert ist, verwendet werden, um das Rauschen zu unterdrücken.

An diesem Punkt lohnt es sich, den Frequenzgang eines praktischen Filters zu überprüfen. Abbildung (1) zeigt ein Beispiel eines praktischen Tiefpassfilters. In diesem Beispiel werden Frequenzkomponenten im Durchlassbereich von DC bis $$ \ omega_ {p} $$ fast ohne Dämpfung durch den Filter laufen. Die Komponenten im Stoppband oberhalb von $$ \ omega_ {s} $$ erfahren eine signifikante Dämpfung. Beachten Sie, dass der Frequenzgang eines praktischen Filters im Durchlassbereich oder im Sperrbereich nicht absolut flach sein kann. Wie in Abbildung (1) gezeigt, sind einige Wellen unvermeidlich und die Übergangsbande, $$ \ omega_ {p} <\ omega <\ omega_ {s} $$, kann in der Praxis nicht unendlich scharf sein.

In der Tat

Abbildung (1) Frequenzgang eines praktischen Tiefpassfilters. Bild mit freundlicher Genehmigung der Universität von Michigan (PDF).

allgemeine Überlegungen

Das digitale Filterdesign umfasst vier Schritte:

1) Bestimmung der Spezifikationen

Zuerst müssen wir feststellen, welche Spezifikationen benötigt werden. Dieser Schritt hängt vollständig von der Anwendung ab. Im Beispiel des 50-Hz-Rauschens am Ausgang des Sensors müssen wir wissen, wie stark die Rauschkomponente relativ zum gewünschten Signal ist und wie stark wir das Rauschen unterdrücken müssen. Diese Information ist notwendig, um den Filter mit der minimalen Reihenfolge für diese Anwendung zu finden.

2) Finden einer Übertragungsfunktion

Mit bekannten Designspezifikationen müssen wir eine Übertragungsfunktion finden, die die erforderliche Filterung bereitstellt. Die rationale Übertragungsfunktion eines digitalen Filters ist wie in Gleichung (1).

$$ H (z) = \ frac {\ Summe_ {k = 0} ^ {M-1} b_ {k} z ^ {- k}} {\ Summe_ {k = 0} ^ {N-1} a_ { k} z ^ {- k}} $$

Gleichung (1)

Dieser Schritt berechnet die Koeffizienten $$ a_ {k} $$ und $$ b_ {k} $$ in Gleichung (1).

3) Wählen einer Realisierungsstruktur

Nun, da $$ H (z) $$ bekannt ist, sollten wir die Realisierungsstruktur wählen. Mit anderen Worten, es gibt viele Systeme, die die erhaltene Übertragungsfunktion geben können, und wir müssen die geeignete auswählen. Zum Beispiel kann irgendeine Form der direkten Form I, II, Kaskade, parallel, transponiert oder Gitter verwendet werden, um eine bestimmte Übertragungsfunktion zu realisieren. Der Hauptunterschied zwischen den zuvor erwähnten Realisierungsstrukturen ist ihre Empfindlichkeit gegenüber der Verwendung einer endlichen Länge von Bits. Beachten Sie, dass wir im endgültigen digitalen System eine endliche Länge von Bits verwenden werden, um ein Signal oder einen Filterkoeffizienten darzustellen. Einige Realisierungen, wie etwa direkte Formen, sind sehr empfindlich gegenüber einer Quantisierung der Koeffizienten. Kaskaden- und Parallelstrukturen zeigen jedoch eine geringere Empfindlichkeit und sind bevorzugt.

4) Implementieren des Filters

Nach der Entscheidung, welche Realisierungsstruktur zu verwenden ist, sollten wir den Filter implementieren. Sie haben mehrere Möglichkeiten für diesen Schritt: eine Software-Implementierung (z. B. ein MATLAB- oder C-Code) oder eine Hardware-Implementierung (z. B. ein DSP, ein Mikrocontroller oder ein ASIC).

Dieser Artikel konzentriert sich auf den zweiten Schritt beim Entwurf eines FIR-Filters.

FIR-Filter

Ein FIR-Filter ist ein Spezialfall der Gleichung (1), wobei $$ a_ {0} = 1 $$ und $$ a_ {k} = 0 $$ für $$ k = 1, …, N-1 $ $, daher erhalten wir:

$$ H (z) = \ Summe_ {k = 0} ^ {M-1} b_ {k} z ^ {- k} $$

Gleichung (2)

Die direkte Formrealisierung der Gleichung (2) für M = 3 ist in Fig. 2 gezeigt. Wie in dieser Figur gezeigt, kann ein digitaler Filter unter Verwendung von nur drei Elementen implementiert werden:

  1. Zusatz
  2. Multiplikation mit einer Konstante (notwendig für die Implementierung der Koeffizienten)
  3. Verzögerungsblöcke

Abbildung (2) Direkte Form eines FIR-Filters der Ordnung 2

In Abbildung (2) gibt es drei Koeffizienten und zwei Verzögerungszellen. Beachten Sie, dass dieser Filter von der Reihenfolge 2 ist, die Anzahl der Verzögerungszellen, nicht 3, die Anzahl der Koeffizienten.

Ein FIR-Filter hat gegenüber einem IIR-Design zwei wichtige Vorteile:

Erstens, wie in Fig. 2 gezeigt, gibt es keine Rückkopplungsschleife in der Struktur eines FIR-Filters. Da keine Rückkopplungsschleife vorhanden ist, ist ein FIR-Filter von Natur aus stabil. In der Zwischenzeit müssen wir für einen IIR-Filter die Stabilität überprüfen.

Zweitens kann ein FIR-Filter eine lineare Phasenantwort bereitstellen. Tatsächlich ist eine lineare Phasenantwort der Hauptvorteil eines FIR-Filters gegenüber einem IIR-Design - ansonsten würde für dieselben Filterspezifikationen ein IIR-Filter zu einer niedrigeren Ordnung führen.

Um ein FIR-Filter mit linearer Phase zu erhalten, müssen wir Symmetrie im Zeitbereich bereitstellen, dh $$ b (n) = \ pm b (M-1-n) $$. Nehmen Sie im Beispiel in Abbildung (2) an, dass $$ b_ {0} = b_ {2} $$, daher Gleichung (2) ergibt

$$ H (z) = b_ {0} + b_ {1} e ^ {- j \ omega} + b_ {0} e ^ {- j2 \ omega} = e ^ {- j \ omega} (b_ {1 } + 2b_ {0} cos⁡ (\ omega)) $$

Gleichung (3)

Da $$ b_ {k} $$ real ist, wird die Phase von $$ H (z) $$ sein

$$ \ measuredangle H (z) = \ links \ {\ begin {matrix} - \ omega_ {p}
& b_ {1} + 2b_ {0} cos (\ omega)> 0 \\ - \ omega_ {p} + \ pi
& b_ {1} + 2b_ {0} cos (\ omega) <0
\ end {matrix} \ right. $$

Gleichung (4)

Daher wird die Phasenantwort linear sein. Obwohl dieses Beispiel eine lineare Phasenantwort im Fall eines Three-Tap-Filters zeigt, kann gezeigt werden, dass für einen beliebigen Wert von $$ M $$ eine Symmetrie im Zeitbereich zu einer linearen Phasenantwort führt. Dies ist eine wichtige Eigenschaft, die uns hilft, die lineare Phasenantwort eines FIR-Filters zu untersuchen, indem einfach die Werte von $$ b_ {k} $$ ohne irgendeine Berechnung berücksichtigt werden.

Der Leser mag sich wundern, warum eine lineare Frequenzantwort wichtig ist. Um Einsicht zu gewinnen, betrachten Sie den Fall der kontinuierlichen Zeit. Angenommen, der Frequenzgang eines Systems ist

$$ H (s) = \ alpha e ^ {- j \ beta \ omega} $$

Gleichung (5)

wobei $$ \ alpha $$ und $$ \ beta $$ echte Konstanten sind. Die Phasenantwort dieses Systems ist linear, dh $$ \ measuredangle H (s) = - \ beta \ omega $$.

Wenn wir $$ x (t) = Acos (\ omega_ {1} t) $$ auf dieses System anwenden, lautet die Ausgabe: $$ y (t) = \ alpha A cos (\ omega_ {1} t - \ beta \ omega_ {1}) = \ alpha x (t- \ beta) $$. Daher entspricht die lineare Phasenantwort einer konstanten Verzögerung. Ein System mit einer nichtlinearen Phasenantwort wird die Eingabe verzerren, auch wenn $$ \ left | H (s) \ right | $$ ist konstant. In einem solchen System erfahren unterschiedliche Frequenzkomponenten des Eingangs unterschiedliche Zeitverzögerungen, wenn sie das System durchlaufen. Für ein digitales System mit einer Phasenantwort von $$ \ measuredangle H (z) = - k \ omega $$, wobei $$ k $$ eine ganze Zahl ist, können wir auch beweisen, dass die lineare Phase gleich einer konstanten Verzögerung ist.

Einführung in das FIR-Filterdesign durch Windowing

Wir erklären die Fenstermethode anhand eines Beispiels. Angenommen, wir möchten einen Tiefpassfilter mit einer Grenzfrequenz von $$ \ omega_ {c} $$ entwerfen, dh der gewünschte Frequenzgang ist:

$$ H_ {d} (\ omega) = \ links \ {\ begin {matrix}
1 & \ links | \ omega \ rechts | <\ omega_ {c} \\ 0
und sonst
\ end {matrix} \ right. $$

Gleichung (6)

Um die äquivalente Zeitbereichsdarstellung zu finden, berechnen wir die inverse zeitdiskrete Fourier-Transformation:

$$ h_ {d} (n) = \ frac {1} {2 \ pi} \ int _ {- \ pi} ^ {+ \ pi} H_ {d} (\ omega) e ^ {j \ omega n} d \ Omega $$

Gleichung (7)

Durch Einsetzen von Gleichung (6) in Gleichung (7) erhalten wir:

$$ h_ {d} (n) = \ frac {1} {2 \ pi} \ int _ {- \ omega_ {c}} ^ {+ \ omega_ {c}} e ^ {j \ omega n} d \ omega = \ frac {sin⁡ (n \ omega_ {c})} {n \ pi} $$

Gleichung (8)

Gleichung (8) für $$ \ omega_ {c} = \ frac {\ pi} {4} $$ ist in Abbildung (3) gezeigt:

Abbildung (3) Impulsantwort eines idealen Tiefpassfilters mit $$ \ omega_ {c} = \ frac {\ pi} {4} $$

Abbildung (3) zeigt, dass $$ h_ {d} (n) $$ eine unendliche Anzahl von Eingabe-Samples benötigt, um eine Filterung durchzuführen und dass das System kein kausales System ist.

Die naheliegende Lösung besteht darin, die Impulsantwort zu kürzen und beispielsweise nur 21 Abtastungen der Eingabe zu verwenden und andere Koeffizienten als Null anzunehmen. Die Intuition legt nahe, dass die verkürzte Impulsantwort bei steigender Anzahl der Abtastungen näher an der idealen Impulsantwort in Abbildung (3) liegt und daher der Frequenzgang des erzielten Filters näher an Gleichung (6) liegt.

Auf der anderen Seite, wenn wir die Anzahl der Samples erhöhen, wird mehr Hardware benötigt. Wenn wir wählen, nur 21 Abgriffe der idealen Antwort zu verwenden, gibt es drei Optionen, die in den Fig. (4) bis (6) gezeigt sind.

Die erste Option ist in Abbildung (4) dargestellt. Diese Impulsantwort entspricht einem nicht-kausalen System und kann nicht verwendet werden.

Abbildung (4) Verkürzte Impulsantwort: linearphasig, aber nicht kausal

Die nächste Option ist in Abbildung (5) gezeigt, die, obwohl sie kausal ist, keine lineare Phasenantwort hat (die wichtigste Eigenschaft eines FIR-Systems).

Abbildung (5) Verkürzte Impulsantwort: kausale, aber nichtlineare Phase

Die letzte Option ist in Abbildung (6) dargestellt. Dieses System ist sowohl kausale als auch lineare Phase. Der einzige Nachteil dieses Systems ist seine Verzögerung, die $$ \ frac {M-1} {2} $$ Samples ist. Mit anderen Worten reagiert das System als Reaktion auf einen Impuls bei $ n = 0 $ nicht bis fast $$ n = \ frac {M-1} {2} $$. Diese Verzögerung kann in einigen Anwendungen zu Problemen führen.

Abbildung (6) Verkürzte Impulsantwort: kausale und lineare Phase

Die Trunkierung der Impulsantwort ist äquivalent zur Multiplikation von $$ h_ {d} (n) $$ (oder seiner verschobenen Version) mit einem rechteckigen Fenster, $ w (n) $$, das gleich eins für $ n = 0 ist, …, M-1 $$ und sonst Null. Unter Berücksichtigung der angewandten Verschiebung erhalten wir die Impulsantwort des entworfenen Filters:

$$ h (n) = h_ {d} (n- \ frac {M-1} {2}) w (n) $$

Gleichung (9)

Das Spektrum des rechteckigen Fensters wird eindeutig dazu führen, dass die Filterantwort von der idealen Antwort in Gleichung (6) abweicht. Abbildung (7) vergleicht die Antwort des entworfenen Filters mit der des idealen Filters.

Diese Abbildung zeigt, dass das entworfene Filter im Gegensatz zum idealen Filter einen glatteren Übergang vom Durchlassband zum Sperrband aufweist. Darüber hinaus gibt es einige Welligkeiten sowohl im Durchlassband als auch im Stoppband von $$ H (\ omega) $$. Wie können wir den Übergangsband schärfer machen? Wie können wir die Wellen kleiner machen? Welche anderen Optionen gibt es anstelle eines rechteckigen Fensters?

Abbildung (7) Frequenzgang des Filters durch ein rechteckiges Fenster

Zusammenfassung

  • Um einen digitalen Filter zu entwerfen, müssen wir die Koeffizienten $$ a_ {k} $$ und $$ b_ {k} $$ in Gleichung (1) finden.
  • Ein FIR-Filter ist ein Spezialfall der Gleichung (1), wobei $$ a_ {0} = 1 $$ und $$ a_ {k} = 0 $$ für $$ k = 1, …, N-1 $ $.
  • Stabilität und lineare Phasenantwort sind die zwei wichtigsten Vorteile eines FIR-Filters gegenüber einem IIR-Filter.
  • Ein linearer Frequenzgang entspricht einer konstanten Verzögerung.
  • Die Trunkierung der Impulsantwort ist äquivalent zur Multiplikation von $$ h_ {d} (n) $$ mit einem rechteckigen Fenster, $ w (n) $$, das gleich eins für $ n = 0 ist, …, M-1 $$ und sonst Null.
  • Ein breiteres Übergangsband und Welligkeiten im Durchlassbereich und im Sperrbereich sind die wichtigsten Unterschiede zwischen den idealen Filtern und denen, die mit der Fenstermethode entworfen wurden.