Filter

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Einführung

Als Filter bezeichnet man in der Elektronik eine Schaltung, die die Frequenzanteile eines Signals unterschiedlich stark abschwächt oder betont. Im Bereich der Signalverarbeitung mit Software werden Filter mathematisch nachgebildet.

Tiefpass

Ein TP filtert Frequenzen oberhalb der Grenzfrequenz weg. Der einfachste passive (analoge) Tiefpass besteht aus einer R/C-Kombination.

Die Übertragungskennlinie eines Tiefpasses mit [math]\displaystyle{ f_g }[/math] = 1.59kHz
       VCC     ___
      o-------|___|----+------o
                       |
                       |
                      ---
                      ---
                       |
                       |
      o----------------+------o
        GND

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)


Grenzfrequenz

[math]\displaystyle{ f_g = \frac{1}{2 \pi \cdot R \cdot C} }[/math]


Bei der Grenzfrequenz [math]\displaystyle{ f_g }[/math] besteht zwischen Eingangssignal und Ausgangssignal eine Phasenverschiebung von 45°. Ausserdem ist die Ausgangsspannung zur Eingangspannung um 3dB abgeschwächt.

Der einfachste digitale Tiefpass ist ein rückgekoppelter Akkumulator vom Typ Y(t+1) = Y(t)*(1-k) + I*k, wobei I der Inputwert, k der Dämpfungswert und Y der Ausgangswert sind.

Hochpass

Ein HP filtert Frequenzen unterhalb seiner Grenzfrequenz weg, d.h. er lässt Frequenzen oberhalb passieren. Analog zum Tiefpass, kann auch hier eine einfache passiver Variante mit einem RC-Glied realisiert werden:

       VCC     ||
      o--------||------+------o
               ||      |
                      .-.
                      | |
                      | |
                      '-'
                       |
      o----------------+------o
        GND

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Bandpass

Ein BP lässt sich als Kombination von HP und TP auffassen. Er lässt Frequenzen zwischen zwei Grenzwerten durch.

Notch-Filter

Das Notch-Filter nimmt einen definierten, sehr schmalbandigen Frequenzbereich aus dem Spektrum des Eingangssignals heraus. Sie können als FIR- oder IIR-Filter ausgeführt sein. Eine mögliche Realisation besteht in der Verwendung eines Resonanzfilters oder Kammfilters.

Reso-Filter

Ein Resonanzfilter schwingt auf einer bestimmten Frequenz und wird durch das Eingangssignal mehr oder weniger stark angeregt. Frequenzen nahe der Resonanzfrequenz werden besonders betont. Theoretisch wird die Übertragungsfunktion für diese Frequenzen vollständig Null, praktisch wird dies für reale, verlustbehaftete Bauteile aber nicht erreicht. Resonanzfilter sind praktisch immer IIR-Filter. Resonanzfilter werden zur Verstärkung oder Abschwächung eines Frequenzbereiches genutzt.

Kamm-Filter

Durch zeitversetze gegenphasige Überlagerung eines Eingangssignals mit einer Kopie entsteht ein Kammfilter, bei dem sich alle die Frequenzen auslöschen, bei denen die Periodendauer im Bereich der Verzögerung liegt.

Realisierung

Analog

Analoge Filter werden aus elektronischen oder mechanischen Bauteilen aufgebaut. In der Elektronik dienen sie der analogen Signalbearbeitung, in der Mechanik der Beeinflussung von Schwingungen. Beispielsweise werden durch Verkettung von schwingenden Feder-Masse-Systemen akustische Dämpfer ausgebildet.

Analoge Filter haben bis auf eine systembedingte Anstiegszeit keine Reaktionsverzögerung bzw Latenz.

Digital

Hier unterscheiden wir im Wesentlichen zwischen IIR- und FIR-Filtern. Der Algorithmus und der Rechenaufwand ist - wie die Effizienz - bei beiden Formen ist sehr verschieden. Speziell beim IIR muss man aufpassen, dass die Filterstufen nicht übersteuern, da IIR-Filter einen Energiespeicher besitzen und damit grundsätzlich instabil sein können.

Digitale Filter haben gegenüber analogen Filtern neben einer diskreten Anstiegszeit mitunter eine rechenzeitbedingte Latenz, d.h. sie geben eine Signaländerung die am Eingang anliegt, nicht sofort an den Ausgang weiter.

Aufbau der Digitalfilter

Ein digitales Filter besteht allgemein aus einem Speicher, in den nacheinander die einzelnen Daten eines Datenstromes hineingeladen- und bedarfsweise mit Koeffizienten multipliziert werden. Die Summe über einen definierten Bereich, der Zahl der sog. Taps, ist der Filterwert, der gfs. noch durch die Zahl der Taps oder den maximalen Wert, der sich aus der Addition ergeben kann, dividiert wird. Die Zahl der Taps ist maßgeblich für die Güte und den Frequenzgang des Filters.

Die Filterkoeffizienten rühren aus der Überlagerung mit Schwingungen genau der Frequenzen, die man selektieren möchte. Im einfachsten Fall multipliziert man einen eingehenden Datenstrom mit einer COS-Schwingung (im komplexen Fall auch zusätzlich mit der Sinus-Schwingung) und erhält eine Resonanz: Frequenzen im Datenstrom, die genau der Filterfrequenz entsprechen, werden vollständig durchgelassen. Frequenzen links und rechts davon mit zunehmender Abweichung der Filterfrequenz immer schlechter. Durch Überlagerung mehrerer solcher Frequenzen erhält man eine Addition der COS-Funktionen und immer mehr Frequenzen werden durch das Filter durchgelassen. Mathematisch kann man dies allgemein formulieren und z.B. für alle Frequenzen abwärts gegen Null integrieren, wodurch man einen Tiefpass erhält.

Die Filterkoeffizienten sind selbst überlagerbar, d.h. wenn man von einem Koeffizientensatz eines Tiefpasses, der auf 100kHz ausgelegt wurde, einen TP-Koeffizientensatz, welcher auf 1kHz ausgelegt wurde, abzieht, erhält man automatisch ein Bandpassfilter 1kHz-100kHz.

Beispiel

Zuerst berechnen wir die Filterkoeffizienten mithilfe folgender Daten:

  1. Filterart
  2. Ordnung
  3. Sample-Frequenz
  4. Grenzfrequenz.

Für die "analogen Koeffizienten" findet man z. B. im Tietze-Schenk Tabellen (nach Art und Ordnung sortiert). Diese rechnet man in "digitale Koeffizienten" um (Verhältnis Sample-Frequenz / Grenzfrequenz geht mit ein). Die Eingangsdaten werden mit diesen Koeffizienten im eigentlichen Filteralgorithmus verarbeitet.

Gleich mal ein Beispiel: krit.Filter, 2.Ordnung, Samplefreq 100Hz, Grenzfreq 2Hz (Verhältnis 50:1)

float afc[] = {
 /* analoge Filterkoeff.                                          Art     Ordnung */
    1.287188506, 0.414213562, 0.0,                             /* Krit.   2.      */
    0.869958884, 0.189207115, 0.0,                             /* Krit.   4.      */
    0.699891558, 0.122462048, 0.0,                             /* Krit.   6.      */
    0.601690062, 0.090507733, 0.0,                             /* Krit.   6.      */
    1.3617,      0.6180,      0.0,                             /* Bessel  2.      */
    1.3397,      0.4889, 0.7743, 0.3890, 0.0,                  /* Bessel  4.      */
    1.2217,      0.3887, 0.9686, 0.3505, 0.5131, 0.2756, 0.0,  /* Bessel  6.      */
    0.0
};

Ergebnis:

 AFC: A0= 0.870000   A1= 0.189200
 DFC: C1=-1.494553   C0= 0.558423  D0= 0.015967   D1= 0.031934  D2= 0.015967
 (das sind die gesuchten fünf Werte)
 
 DFC: 0x5fa7  0x8ef4  0x0416  0x82d  0x0416 (skaliert mit -16384 bzw. +65536)

Für höhere Ordnungen speisen wir das Ergebnis wiederholt (Ordnung / 2 mal) durch den Filter, allerdings (außer beim krit. Filter) jede Stufe mit anderen Koeffizienten.

Fensterung

Da die einkommenden Daten nicht immer ganzzahlig in die Tap-Zahl sowie die einzelnen selekttierten Frequenzen passen, ergeben sich Verzerrungen, die man lindern kann, wenn man den Datenstrom mit einer Fensterfunktion weich ein- und aublendet. Beispiele dafür sind die COS-basierten Funktionen "Hamming", "Blackman-Harris und "von Hann", das oft fälschlich als "Hanning" bezeichnet wird, sowie die weithin gebräuchlichen unterschiedlichen Versionen des Kaiser-Fensters, das auf Besselfunktionen beruht.

Ihnen allen gemein ist, dass die verwendete Funktion zum Rand hin abfällt, d.h. ein eingehender Datenstrom sich langsam in die Gesamtrechnung "hineinschleicht" ohne größere Sprünge zu bewirken. Dieser Vorgang stellt einen Kompromiss zwischen zufälliger = nicht kontrollierbarer und gezielten = kontrollierbarer Datenverfälschung dar und ist Gegenstand der jeweiligen Optimierung innerhalb der konkreten Aufgabenstellung.

geeignete Literatur

www.digitalfilter.com

Dough Coulter: Digital Audio Processing

Tietze / Schenk: Schaltungstechnik

Fortsetzung / Erweiterung folgt...

Links

Anwendungen

  • Entfernen von Störsignalen aus einem Nutzsignal (z. B. bei einem Funkempfänger)
  • Unterdrückung eines Wechselpannungsanteils
  • Anti-Aliasing -> siehe Abtasttheorem
  • Auftrennung in unterschiedliche Bänder