Einleitung
Low-Pass-Filter
High-Pass-Filter
Software zum
FIR-Basteln
Filter verändern Signale, indem
sie
z.B. aus dem Eingangssignal einzelne Frequenzen herausfiltern oder
Bestandteile
des Eingangssignals neu kombinieren.
Ein digitales Filter wird mit einem
kontinuierlichen
Zahlenstrom gefüttert, das das digitale Abbild eines analogen
Signals
ist. Es erzeugt daraus einen Ausgansgdatenstrom, der i.d.R. aus
genausovielen
Zahlen besteht.
Das FIR-Filter (finite impulse response filter bzw. finite-duration impulse response filter) ist eines der Arbeitspferde der digitalen Signalverarbeitung. Im ihm lassen sich z.B.
Ein FIR-Filter besteht aus einer Kette identischer Stufen. Als Hardware-Gerät wäre jede Stufe ein Register (Latch), ein Multiplikator und ein Addierer. Die Anzahl der Stufen hängt von der Anwendung ab. Ein simples Hochpassfilter kommt mit 2 Stufen aus, die Pulskompression in einem GPS-Empfänger benötigt 1024 Stufen.
Die eigentliche Filterfunktion wird
durch
die Multiplikatoren Cx bestimmt.
Die nachfolgend abgebildete 4-stufige
Schaltung kann
je nach verwendeten Multiplikatoren (C1 ... C4) ganz unterschiedliche
Funktionen haben.
In der analogen Zeit waren die Latches
Verzögerungsleitungen identischer Verzögerungszeit. Heute
sind
es Register, die eine Eimerkette (ein Schieberegister für ganze
Zahlen)
bilden. Die Zahlen des Eingangsdatenstromes werden von Latch zu Latch
durchgereicht.
Der obere rechte Ausgang hinter dem letzten Latch ist offen. Hier
beendet
der originale Datenstrom seine Existenz.
An den vier gelben Multiplikatoren liegen
also gleichzeitig mehrere (in diesem Falle 4) benachbarte Zahlen aus
dem
Datenstrom an. Diese Werte werden mit festen Multiplikatoren (C4..C1)
multipliziert
die Produkte werden zusammenaddiert und diese Summe ist der neue
Ausgangswert
des Filters. Mit jedem neuen Eingangswert, der in die Latch-Kette
geschoben
wird, ergibt sich ein neuer Ausgangswert am unteren rechten Ausgang. So
besteht der Ausgangsdatenstrom aus genausoviel Zahlen wie der
Eingangsdatenstrom.
In der Programmiersprache Pascal lässt sich ein FIR-Filter z.B. wie folgt darstellen:
for k:=0 to ende
do
Ausgang[k]:= Eingang[k]*C4
+ Eingang[k+1]*C3 + Eingang[k+2]*C2 + Eingang[k+3]*C1;
wobei der Eingangsdatenstrom im
Daten-Array
Eingang
liegt, und der Ausgangsdatenstrom in das Daten-Array Ausgang
geschrieben
wird.
FIR-Filter unterschiedlicher Funktion
unterscheiden
sich nur hinsichtlich der Anzahl ihrer Stufen, und in den Werten der
festen
Multiplikatoren Cx.
In einem FIR-Filter gibt es keinerlei
Rückkopplungen.
Die Information fließ nur von links nach rechts und von oben nach
unten (bezogen auf die oben stehende Schaltung). Dadurch kann ein
FIR-Filter
nicht in's Schwingen geraten. Das klingt zwar gut, hat aber auch
handfeste
Nachteile. Schließlich sind herkömmliche Frequenzfilter (
z.B.
LC-Filter) ja gerade schwingfähige Gebilde.
Für Frequenzfilterungen sind deshalb
Filter mit Rückkoppelleitungen manchmal besser geeignet. Der
Standardtyp ist
hier das Infinite Impulse Response Filter
(IIR).
Die nachfolgende Grafik zeigt ein das Frequenzverhalten mit einem 15-stufigen FIR realisiertes Low-Pass-Filter im Frequenzbereich von 0 Hz bis zur halben Samplefrequenz. Dargestellt sind:
Die Multiplikatoren für die 15
Stufen
sind:
0,02 / 0,08 / 0,03 / 0 / -0,07 / -0,16
/ -0,22 / -0,25 / -0,22 / -0,16 / -0,07 / 0 / 0,03 / 0,08 / 0,02
Wer sie in ein Diagramm einträgt,
wird feststellen, das es sich um Werte einer sin(x)/x-Funktion handelt
Die nachfolgende Grafik zeigt ein das Frequenzverhalten mit einem 15-stufigen FIR realisiertes High-Pass-Filter im Frequenzbereich von 0 Hz bis zur halben Samplefrequenz. Dargestellt sind:
Die Multiplikatoren für die 15
Stufen
sind:
0,02 / -0,08 / 0,03 / 0 / -0,07 / 0,16
/ -0,22 / 0,25 / -0,22 / 0,16 / -0,07 / 0 / 0,03 / -0,08 / 0,02
Wer diese Werte mit den Multiplikatoren
des obigen Low-Pass-Filters vergleicht, wird feststellen, dass einfach
jeder
zweite
Multiplikator invertiert wurde.
Ich habe mir ein keines Windows-Softwaretool geschrieben, mit dem man bis zu 15-Stufige FIR-filter austesten kann. Es lassen sich die 15 Multiplikatoren der 15 Stufen einstellen, und es wird der Frequenz- und Phasengang des Filters grafisch angezeigt. Damit wurde auch die obigen Grafiken erstellt. Die Software ist zwar nur ein Spielzeug, aber wer mit FIR-Filtern ein wenig spielerisch experimentieren will, kann die Software dazu gern benutzen.
zurück zu DSP , 16-Bit-PICs , PIC-Prozessoren , Elektronik , Homepage
Autor: sprut
erstellt am: 08.02.2006
letzte Änderung: 08.02.2006