Sie sind auf Seite 1von 9

Digitale Signalverarbeitung

Erfassung von analogen Signalen

FASDFIR
Ein digitales Antialiasinglter

Autor: Release: Datum:

Benjamin Meier V1.0.01 28. Juni 2012

In der digitalen Signalverarbeitung ist das Erfassen von Signalen eine Zentrale und oft kritische Aufgabe. Die Wahl der Abtastfrequenz ist ein Dilemma, dieses Dokument besch aftigt sich mit Methoden zum Entsch arfen des Problems. Dieses Dokument beschreibt eine Methode zum Dezimieren der Abtastfrequenz mit einem digitalen Antialiasinglter. Es wird ein Algorithmus zur Dezimierung mit integriertem FIR-Antialiasinglter vorgestellt.

Inhaltsverzeichnis
1 Einleitung 1.1 Berechnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Das digitale Antialiasinglter 2.1 FIR-Downsampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Optimierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Der 3.1 3.2 3.3 Algorithmus Ausf uhrungen des Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulationen des FASDFIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dezimierungsfaktor vs. Rechenaufwand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 3 6 6 7 7

Inhaltsverzeichnis

1 Einleitung
Digitale Datenerfassung hat in der Elektronik eine immer gr osser werdende Bedeutung. Moderne Systeme arbeiten nahezu ausschliesslich mit digitalisierten Signalen. Ein zentraler Aspekt bei der Erfassung von zeitkontinuierlichen Gr ossen ist das Abtasttheorem. Die Bandbreite darf nicht gr osser sein als die halbe Abtastfrequenz. Dieses Kriterium kann einerseits durch Vorschalten eines geeigneten analogen Filters, andererseits durch w ahlen einer entsprechend hohen Abtastfrequenz erreicht werden. Die Wahl der Abtastrate ist ein Dilemma. Eine hohe Abtastfrequenz erfordert ein entsprechend schnelles digitales System zur Verarbeitung der Daten, eine tiefe Abtastfrequenz erfordert ein entsprechend steilankiges Antialiasinglter. Durch Einsatz eines Sigma-Delta AD-Wandlers kann ein Teil des Problems gel ost werden. Diese speziellen ADWandler tasten das Eingangssignal mit einer hohen Frequenz ab, ltern dieses Signal intern digital und liefern am Ausgang eine um ein Vielfaches kleinere Abtastrate. Diese AD-Wandler sind gewissermassen daf ur geschaffen, die Anfordernugen an das Antialiasinglter zu reduzieren. In der Regel reicht nun ein einfaches RC-Glied als Antialiasinglter. Das vom AD-Wandler gelterte Signal hat jetzt eine reduzierte Bandbreite. F ur viele Applikationen ist diese meist vom AD-Wandler gegebene Bandbreite immernoch zu hoch. Das Signal muss noch zus atzlich geltert werden. Dies kann auf der analogen Seite geschechen, wodurch jedoch der positive Eekt des Oversampling-Wandlers wieder vernichtet wird. Deshalb sind wir bem uht, diese Filterung auf der digitalen Seite durchzuf uhren. Dieses Dokument befasst sich mit digitalen Filtern zur Reduktion der Bandbreite und der Abtastfrequenz. Insbesondere wird hierzu ein geeigneter Algorithmus f ur Echtzeitsysteme vorgestellt. Der Name des Algorithmus ist FASDFIR (f ur engl. fast anti-aliasing sample decimator with nite impulse response).

1.1 Berechnungen
Die Berechnungen zu den Filtern wurden mit der freien Software GNU Octave erstellt. Die entsprechenden Skripts sind ebenfalls frei verf ugbar. Es soll hier jedoch angemerkt sein, dass zum Dimensionieren von digitalen Filtern das kommerzielle Programm MATLAB hervorragend geeignet ist.

KAPITEL 1. EINLEITUNG

2 Das digitale Antialiasinglter


Angenommen es soll ein analoges Signal mit einer Bandbreite von 500Hz erfassen, doch Leider ist das Signal mit starkem Rauschen u berlagert. In diesem Fall ist ein analoges Antialiasinglter unbedingt notwendig. Die minimale Abtastfrequenz zur korrekten Erfassung des Signals liegt bei fs = 1k Hz .
mi n

Wenn wir nun ein Antialiasinglter entwerfen spielt die eektive Abtastfrequenz eine zentrale Rolle. Je h oher diese gew ahlt wird, desto kleiner ist die n otige Steilheit des Filters. Wenn wir unser Signal mit fs = 40k Hz abtasten ist der Sperrbereich des Filters auf 20kHz zu dimensionieren. Ein geeignetes Antialiasinglter ist mit modernen Mitteln relativ einfach realisierbar. Damit die Anforderungen an das Antialiasinglter noch geringer werden, kann ein Sigma-Delta-AD-Wandler eingesetzt werden. Unabh angig von der Wahl des AD-Wandlers resultiert hier ein digitales Signal mit einer Abtastfrequenz von fs = 40k Hz . Dieses Signal erfordert je nach Wortgr osse ein recht leistungsf ahiges digitales System. Eine tiefere Abtastfrequenz ist anzustreben, muss jedoch durch Einsatz eines entsprechenden Antialiasinglters bezahlt werden. Damit das digitale System nicht u onnen wir eine sogenannte Dezimierung durchf uhren. Bei berlastet wird, k der Dezimierung wird die Abtastfrequenz digital auf einen Bruchteil der eingehenden Abtastfrequenz reduziert. In unserem Beispiel w are eine Abtastrate von fout = 2:5k Hz also ein sechzehntel der eigentlichen Abtastfrequenz sicher keine schlechte Wahl. Im einfachsten Fall nehmen wir einfach nur jeden sechzehnten Abtastwert zur weiteren Verarbeitung. Dadurch reduziert sich der Rechenaufwand um Faktor 16. Genau wie werte- und zeitkontinuierliche Signale (analoge Signale) k onnen auch zeit- und wertediskrete Signale (h aug digitale Signale) abgetastet werden. Genauso wie beim Abtasten eines analogen Signals muss jedoch das Abtasttheorem eingehalten werden. Unser digitales Signal muss vor dem neu Abtasten (vor der Dezimierung) geltert werden, mit einem Antialiasinglter. Weil das abgetastete Signal ein digitales Signal ist, wird auch das Antialiasinglter ein Digitallter sein. Als digitales Antialiasinglter ist prinzipiell jedes digitale Tiefpasslter geeignet, mit allen bekannten Vor- und Nachteilen. Die Grundlagen der digitalen Signalverarbeitung sind zur vollst andigen Verst andnis erforderlich. Diese Grundlagen werden im Buch Digitale Signalverarbeitung von Daniel von Gr unigen, erschienen beim Hanser-Verlag, hervorragend erkl art.

2.1 FIR-Downsampling
Digitale Filter werden oft als Filter mit endlicher Impulsantwort (FIR, engl. Finite Impulse Response) ausgef uhrt. Gegen uber den rekursiven Filtern (IIR, engl. Innite Impulse Response) bieten die FIR-Filter einige Vorteile wie konstante Gruppenlaufzeit und Stabilit at. Diese Vorteile m ussen jedoch durch meist h oheren Rechenaufwand erkauft werden. Im Folgenden besch aftigen wir uns ausschliesslich mit FIR-Filtern, denn die im Folgenden beschriebenen Optimierungen sind ausschliesslich f ur Filter mit endlicher Impulsantwort m oglich.

2.2 Optimierungen
Normalerweise muss ein Algorithmus f ur ein Digitallter pro Eingangswert einen Ausgangswert liefern. Dies geschieht im Idealfall mit einer konstanten deterministischen Verz ogerungszeit, welche m oglichst gering sein soll. F ur ein FIR der Ordnung N werden die jeweils neuesten N + 1 Eingangswerte (Samples) in einer Delay-Line gespeichert. Um nun den Ausgangswert des Filters zu erhalten m ussen die N + 1 Werte mit den N + 1 Koezienten des Filters (also mit der Impulsantwort) skalar multipliziert und alle zusammen Addiert werden.

KAPITEL 2. DAS DIGITALE ANTIALIASINGFILTER

Doch eigentlich ben otigen wir am Ausgang des digitalen Antialiasinglters nicht nach jedem neuen Eingangswert einen Wert sondern nur alle d Eingangswerte, wobei d der Dezimierungsfaktor also das Verh altnis von der Abtastrate des analogen Signals zur neuen Abtastrate ist. Wenn dieses Verh altnis beispielsweise 16 ist, so muss die oben genannte skalare Multiplikation nur 1 von 16 mal ermittelt werden. Statt die anderen 15 von 16 Skalarprodukte zu errechnen und anschliessend das Resultat nicht zu verwenden, lassen wir deren Berechnung ganz weg. Jedes eingehende Sample wird in die Delay-Line geschoben. Nach d Samples wird das Skalarprodukt der Impulsantwort und der Delay-Line berechnet und aufsummiert es resultiert ein Ausgangssample. Wenn nun die L ange der Impulsantwort N + 1 gerade dem Dezimierungsfaktor d entspricht, kann die Delay-Line prinzipiell weggelassen werden. Statt die Werte zu speichern und sp ater mit dem Koezienten-Vektor zu verrechnen, wird jedes eingehende Sample direkt mit dem entsprechenden Koezienten verrechnet. Anstelle der Delay-Line muss einzig ein Speicher f ur die Summenbildung angelegt werden. Diese Optimierung ist die Grundlage f ur den FASDFIR-Algorithmus. Nun sind wir leider durch die Optimierung an eine begrenzte Ordnung des FIR N = d 1 gebunden. Je kleiner die Ordnung eines FIR, desto geringer ist die Steilheit (Dualit at zwischen Frequenz- und Zeitbereich). Die Steilheit des digitalen Antialiasinglters ist in diesem Fall fest gegeben. Diese Einschr ankung ist absolut nicht praxistauglich. Der Autor empelt die Ordnung im Bereich von N = 16::32 d zu w ahlen. Mit einem solchen Filter kann (nat urlich Abh angig von der gew ahlten Durchlassfrequenz) problemlos eine Sperrd ampfung von 80 bis 120dB erreicht werden.
1 0.5 0 1 0.5 0 1 0.5 0 1 0.5 0 1 0.5 0 1 0.5 0 1 0.5 0 1 0.5 0 1 Out 0.5 0 Zeit FIR 1 FIR 8 FIR 7 FIR 6 FIR 5 FIR 4 FIR 3 FIR 2

Abbildung 2.1: Acht zeitlich versetzte FIR-Filter mit identischer Impulsantwort. W urden wir nun die relativ lange Impulsantwort eines brauchbaren Tiefpass-FIR mit der obigen Optimierung berechnen, h atten wir zu wenige Ausgangssamples. Wenn wir die Ordnung so stark einschr anken, dass die Optimierung korrekt angewendet werden kann, k onnen die Filterspezikationen nicht eingehalten werden.

KAPITEL 2. DAS DIGITALE ANTIALIASINGFILTER

Nun wenden wir einen weiteren Trick an. Statt das Filter mit der Optimierung nur einmal zu implementieren, +1 mal). Die Filter werden dann zeitlich Versetzt gestartet und imlpementieren wir es mehrmals (und zwar genau Nd liefern in der Folge auch zeitlich Versetzt einen Ausgangswert. Dieses Verfahren ist im Bild 2.1 dargestellt. Durch diesen Trick erhalten wir den eigentlichen FASDFIR-Algorithmus. Der Aufwand ist ungef ar gleich dem Aufwand zur konventionellen Berechnung eines FIR zu den neuen Abtastzeitpunkten. Der FASDFIR-Algorithmus hat jedoch den wesentlichen Vorteil, dass die Berechnung f ur jedes Sample unmittelbar erfolgt und somit f ur jedes Sample ungef ahr derselbe Rechenaufwand anf allt. Dadurch eignet sich der Algorithmus f ur Echtzeitsysteme. Die in Bild 2.1 dargestellte Impulsantwort geh ort einem FIR-Filter 512. Ordnung, welches die Bandbreite ungef ahr auf 1=16 der Eingangs-Abtastfrequenz begrenzt.

KAPITEL 2. DAS DIGITALE ANTIALIASINGFILTER

3 Der Algorithmus
Aus den zuvor beschriebenen Optimierungen ist ein Algorithmus zur Dezimierung entstanden. Der Algorithmus tr agt den Namen FASDFIR, eine Abk urzung f ur die englische Bezeichnung fast anti-aliasing sample decimator with nite impulse response . Der Algorithmus ist ein schneller Algorithmus zur Dezimierung mit einem integrierten Antialiasinglter mit endlicher Impulsantwort. Im Folgenden wird die Basisversion des Algorithmus in C abgedruckt. /* * * \brief Q31 FASDFIR a l g o r i t h m */ void f a s d f i r ( q31 t sample ) { int i ; int a = f a s d f i r o f f s e t ; // c o n v o l v e e a c h s a m p l e w i t h t h e c o r r e s p o n d i n g c o e f f i c i e n t f o r ( i = 0 ; i < f a s d f i r N U M F I R S ; i++ ) { // c o n v o l v e t h e c u r r e n t s a m p l e f a s d f i r b u f f e r [ i ] = ( ( ( ( q63 t ) f a s d f i r c o e f f [ a ] * sample ) + ( ( q 6 3 t ) f a s d f i r b u f f e r [ i ] << 3 2 ) ) >> 3 2 ) ; a += fasdfir SAMPLE RATE RATIO ; i f ( a >= f a s d f i r L E N G T H ) a = f a s d f i r L E N G T H ;

// i f a s a m p l e n e e d s t o be o u t p u t i f ( ( f a s d f i r o f f s e t % fasdfir SAMPLE RATE RATIO ) == ( fasdfir SAMPLE RATE RATIO 1 ) ) { // c a l c u l a t e t h e s a m p l e i n d e x i = ( fasdfir LENGTH f a s d f i r o f f s e t ) / fasdfir SAMPLE RATE RATIO ; // o u t p u t t h e s a m p l e ProcessOutSample ( f a s d f i r b u f f e r [ i ] ) ; // r e s e t t h e s a m p l e f a s d f i r b u f f e r [ i ] = 0; } // s h i f t t h e i m p u l s e r e s p o n s e fasdfir offset = ( fasdfir offset + 1 ); i f ( f a s d f i r o f f s e t >= f a s d f i r L E N G T H ) f a s d f i r o f f s e t = 0 ; }

3.1 Ausf uhrungen des Algorithmus


Die Basisversion des Algorithmus ist in C geschrieben. Prinzipiell kann der Algorithmus in beliebige Programmiersprachen u bersetzt werden.

KAPITEL 3. DER ALGORITHMUS

Der Code wurde f ur die weit verbreiteten ARM-Cores zus atzlich manuell Assembliert und weitgehend optimiert. Die ASM-Variante ist auf Zweierpotenzen als Dezimierungsfaktoren eingeschr ankt. Zudem m ussen die Koezienten des Filters doppelt abgelegt werden.

3.2 Simulationen des FASDFIR


Der Basisalgorithmus wurde mit der Software f ur numerische Berechnungen GNU Octave simuliert. Zum Vergleich wurde dasselbe Digitallter mit einer normalen Faltung auf der vollen Abtastrate appliziert. Das Resultat der Simulation ist in Bild 3.1 dargestellt. Es zeigt grunds atzlich die korrekte Funktionsweise des FASDFIR-Algorithmus.

Abbildung 3.1: Simulation des FASDFIR.

3.3 Dezimierungsfaktor vs. Rechenaufwand


Angenommen ein geeignetes FIR zur Dezimierung der Abtastrate um Faktor zwei habe eine minimale Ordnung von 63. Implementiert in Form eines FASDFIR ben otigen wir genau (63 + 1)=2 = 32 Summenspeicher. Die Dimensionierung eines FIR mit analogen Anforderungen zur Dezimierung um den Faktor zehn hat auch eine f unffach h ohere minimale Ordnung, also % 320. Dieses Filter kann ebenfalls in einem FASDFIR implementiert werden. Interessanterweise ist durch den h oheren Dezimierungsfaktor bei gleichzeitig h oherer Ordnung der Rechenaufwand gleich wie beim vorherigen Filter, es ben otigt 320=10 = 32 Summenspeicher. Der Rechenaufwand des FASDFIR ist also unabh angig vom Dezimierungsfaktor. Der Rechenaufwand und somit die Anforderungen an das digitale System sind prim ar von der Steilheit und Welligkeit des Filters abh angig. Um die Anforderungen an das digitale System zu reduzieren, m ussen also die Filterspezikationen gemildert werden. Die Sperrfrequenz ist durch das Abtasttheorem fest vorgegeben, folglich muss ein ezienteres Filter durch gr ossere Welligkeit bzw. D amfpung im Durchlassbereich erkauft werden.

KAPITEL 3. DER ALGORITHMUS

3.3.1 Kaskade
Es ist naheliegend, mehrere solche FASDFIR-Downsampler hintereinander zu schalten, statt eines einzigen Downsamplers mit dem gew unschten Dezimierungsfaktor. Wie oben gezeigt wurde, kann ein Downsampler mit einem beliebigen Dezimierungsfaktor mit demselben Rechenaufwand erstellt werden. Eine Kaskadenstruktur f uhrt in jedem Fall zu h oherem Rechenaufwand. F ur extreme Dezimierungsfaktoren kann eine Kaskadenstruktur tzotzdem interessant werden, da die Ordnung der einzelnen Stufen und somit der ben otigte Speicherplatz f ur die Filterkoezienten reduziert wird. F ur Filterstufen mit gleichem Dezimierungsfaktor k onnen in der Regel dieselben koezienten verwendet werden, was den ben otigten Koezientenspeicher auf ein Minimum reduziert, einhergehend mit dem erh ohten Rechenaufwand und nat urlich erh ohter Anzahl Summenspeicher. F ur die meisten Applikationen ist eine Kaskadenstruktur also v ollig ungeeignet, da mit einer Kaskade die Anforderungen an das digitale System steigen.

3.3.2 Nicht ideale Eekte


Ein digitales System hat den grossen Vorteil der Langzeitstabilit at und Programmierbarkeit. Diese Vorteile sind mit dem Nachteil der nicht idealen Eekte der begrenzten Wortbreite und folglich auch des Quantisierungsrauschens verbunden. Wie bei jedem digitalen Filter muss auch bei der FASDFIR-Implementation daf ur gesorgt werden, dass kein Uberlauf im Digitalrechner entsteht.

KAPITEL 3. DER ALGORITHMUS