Filtern

Umsetzung von FIR Filtern

Wie wird die Umsetzung von FIR Filtern durchgeführt? Diese Frage werde ich nun in diesem Blogpost nachgehen. Ich hatte im Blogpost Kann man Signale filtern schon einen Teil dazu geschrieben und möchte nun auf ein paar Details eingehen.

Erklärung

FIR Filter bestehen aus drei Hauptkomponenten:
  1. Verzögerung Zwischenspeicher (Flip-Flops)
  2. Skalierung über Koeffizienten
  3. Addierung über Summierer
In den Verzögerungen (die Taps) werden die zeitdiskreten Signalwerte zwischengespeichert. Die Anzahl dieser hintereinander geschalteten Verzögerungen bestimmt die Länge des FIR-Filters. Jede Verzögerung hat eine eigene Skalierung, der Wert des Taps. Das Ergebnis aller skalierten und verzögerten Werte ergibt dann durch Addition den entsprechenden Ausgangswert. Zur Verdeutlichung hier eine exemplarische Darstellung:
Fir Filter
Nun ist es bei sehr schnellen Eingangssignalen manchmal notwendig, ein Signal mit seiner Taktrate weiterzuverarbeiten. Diese Fähigkeit besitzt ein FPGA, da er massiv parallel arbeiten kann. Die im Prinzipbild dargestellten Teile lassen sich 1:1 in eine VHDL-Struktur bringen. Das bedeutet jedoch einen sehr großen Aufwand an Ressourcen.
Ist die Abtastrate des Eingangssignals jedoch langsamer, als der Systemtakt, können im entsprechenden Verhältnis mehrere Berechnungen pro Abtasttakt durchgeführt werden. Ist das Verhältnis Systemtakt:Eingangstakt zum Beispiel 1:10, so kann das Signal 10 mal pro Eingangstakt verarbeitet werden. Also würde es für ein FIR Filter mit 11 Koeffizienten reichen.

Zusammenfassung

Eine geschickte Wahl von Eingangstakt zu Systemtakt ermöglicht es also ein FIR-Filter mit weniger Ressourcen aufzubauen. Manchmal ist das Nutzsignal im Verhältnis zur Abtastrate klein, dann lohnt es sich, mehrstufig von einem hohen Abtastwert zu einem niedrigen Abtastwert zu kommen. In jeder Stufe kann dann die Anzahl der Koeffizienten erhöht werden.
In einem Projekt diese Eigenschaft genau ausgenutzt und kann es nur weiterempfehlen. Ich hatte dort mit Zehntelband Filtern gearbeitet. Das bedeutet, es die Abtastrate wurde von Stufe zu Stufe um Faktor 10 reduziert, so dass die eingesetzt Filter immer länger und damit besser werden konnten.
Hier kommt es allerdings auf eine gute Auswahl der Koeffizienten an, zumal in diesem Projekt das auf der Gleichspannungsanteil des Signals nicht verändert werden durfte, und das ohne Gleitkommarechnung.