54861.jpg

Auf einen Blick

Systementwickler setzen in ihren Applikationen überwiegend FIR-Filter (finite impulse response) ein. Ihr Verhalten ist gut bekannt, und sie werden durch leistungsfähige Tools für Design und IP-Implementierung unterstützt. Dieser Beitrag beschreibt den Entwurf von Polyphasen-IIR-Filtern (infinite impulse response) höherer Ordnung mit sehr geringem Aufwand zur Implementierung in DSP48E1-Slices oder Logik.

Der Hauptnachteil von IIR-Filtern besteht darin, dass ihr Einsatz gewisse Spezialkenntnisse beim Umgang mit den Design-Tools und mit hand-codiertem RTL erfordert. Doch moderne Tools wie der Xilinx System Generator können HDL automatisch generieren, nachdem man die Architektur des Filters festgelegt und als Festkomma-Notierung abgelegt hat.

Werfen wir einen genaueren Blick auf High-performance Polyphasen-IIR-Filter und deren Implementierung mit sehr geringen FPGA-Ressourcen. Diese Filterstrukturen haben die Eigenschaft, dass man mit ihnen Filter der Ordnung NK+1 mit nur K Multiplikationen implementieren kann. Auch lässt sich zeigen, dass diese Filter eine sehr geringe Empfindlichkeit gegenüber der Koeffizienten-Quantisierung haben. Dies führt zu effizienten Festkomma-Implementierungen. Außerdem ist die maximale Verstärkung an jedem Knoten einer Filterstufe begrenzt (bounded): Es ist nur 1 Bit an Headroom zur Berechnung der Zwischenwerte erforderlich.

In diesem Beitrag präsentieren wir eine generelle Filterarchitektur, die sich für Pipelining und Mapping auf die Xilinx DSP48E1 Slices der Serie 7 eignet. Die Architektur umfasst auch eine Reihe von elliptischen Filtern fünfter Ordnung ohne Multiplier. Sie lassen sich zur effizienten Polyphasen-Interpolation und Dezimation auf wenigen FPGA-Logik-Slices einsetzen.

Mit Matlab kann man ein IIR-Filter-Design in eine Reihe von Sektionen niedrigerer Ordnung zerlegen. Eine solche Kaskade zeigt bessere numerische Eigenschaften, als es bei der direkten Implementierung der Differenzengleichung höherer Ordnung der Fall ist. Im Allgemeinen werden biquadratische Sektionen zweiter Ordnung (SOS) für die Filter niedrigerer Ordnung gewählt und mit Hilfe der Direct-Form-1 Struktur implementiert. Jede SOS-Sektion erfordert vier Multiplikationen, drei Additionen und eine gewisse Rundung, um die Bitbreite des folgenden Filters in der Kaskade zu reduzieren.

Bild 1: Parallele Konfiguration eines IIR-Filters (oben). Jeder Zweig besteht aus einer Kaskade von elementaren Filtern, wie im unteren Kasten dargestellt.

Bild 1: Parallele Konfiguration eines IIR-Filters (oben). Jeder Zweig besteht aus einer Kaskade von elementaren Filtern, wie im unteren Kasten dargestellt.Ensilica/Xilinx

Die praktische Festkomma-Implementierung erfordert meist einen weiteren Multiplikator zur besseren Skalierung zwischen den Sektionen. Allerdings ist die Dekomposition der Kaskade keine effiziente Architektur für Interpolatoren oder Dezimatoren, da sie nicht die Vorteile der Polyphasen-Dekomposition nutzt. Bei der Interpolation werden die Eingangsdaten durch das Einfügen von N-1 Nullwerten zwischen den Samples hochgetaktet (upsampling). Damit erhöht sich die Eingangsrate vor dem Filter auf den Wert der Ausgangsrate. Die IIR-Filter-Kaskade kann jedoch wegen der Feedback-Pfade in jeder SOS-Sektion die Nullwerte im Eingang nicht zur Reduzierung des Rechenaufwandes nutzen.

IIR-Filter für Polyphasen-Dekomposition

Gleichung 1

Gleichung 1Ensilica/Xilinx

Die hier vorgestellten Filterschaltungen basieren auf der parallelen Filter-Architektur zur Dekomposition nach Bild 1. In dieser parallelen Form wird das Filtersignal in jedem Zweig gegenüber dem vorhergehenden Zweig verzögert. Außerdem sind die Filter in jedem Zweig auf N-Band-Auslegung beschränkt. Die Verzögerungen in jedem Zweig entsprechen der Abtastrate am Ein- und Ausgang, doch hat jedes An(zN)-Filter Terme, die nur Potenzen von z-N aufweisen. Das heißt, die Differenzengleichung verwendet nur jedes N-te Ein/Ausgangs-Sample und ignoriert alle Zwischenwerte. Die Transferfunktion ist gegeben durch die Summe der Verzögerungen der N-Band-Allpassfilter An(zN) (Gleichung 1).

Gleichung 2

Gleichung 2Ensilica/Xilinx

Man kann nun jedes Allpassfilter als Kaskade von elementaren Allpass-Sektionen darstellen, wie in Bild 1 gezeigt. Die Gesamtzahl der Allpass-Sektionen ist K, und die Ordnung von H(z) ist NK+1 (Gleichung 2).

Bild 2 zeigt eine elementare Allpass-Sektion, die als Direct-Form 1 implementiert ist. Sie besteht aus zwei N-Sample Verzögerungsgliedern und nur einem Koeffizienten-Multiplikator. Abgesehen davon, dass dies die kanonische Form von Multiplikatoren ist, bringt diese Anordnung noch weitere Vorteile – nämlich, dass sie effizient auf DSP-Slices übertragbar ist und bei Kaskadierung die Verzögerungsressourcen gut nutzt.

Bild 2: Elementare Allpass-Sektion.

Bild 2: Elementare Allpass-Sektion. Ensilica/Xilinx

Interpolation und Dezimation

Diese Filterarchitektur passt sehr gut zu den Dezimator- und Interpolatorstrukturen nach Bild 3. Die Wechselschalter, die bei jedem Sample der höheren Abtastrate auslösen, ersetzen hier die Verzögerungsglieder in Bild 1.

Zur Interpolation und Dezimation mit dem Faktor N kann man den Entwurf entweder auf die optimale Struktur nach Bild 3 aufsetzen oder eine Kaskade von Primfaktor-Konversionen verwenden. Die Dekomposition in Primfaktoren kann das Problem der Koeffizientenoptimierung vereinfachen, denn dabei sind weniger freie Variable involviert. Außerdem liegt die resultierende Filterkaskade ohnehin sehr dicht am Optimum. In vielen Applikationen ist die geforderte Umsetzung der Abtastrate eine Zweierpotenz. Dies lässt sich erreichen, indem man wiederholt mit dem Faktor Zwei interpoliert oder dezimiert.

Bild 3: Dezimation (links) und Interpolation (rechtes Diagramm).

Bild 3: Dezimation (links) und Interpolation (rechtes Diagramm).Ensilica/Xilinx

Betrachten wir deshalb den Spezialfall N = 2. Es lässt sich zeigen, dass das Tiefpassfilter vom Typ N = 2 nach Bild 3 ein Filter fünfter Ordnung ist, obwohl es aus zwei Allpass-Sektionen zweiter Ordnung und einem Verzögerungsglied besteht. Damit wird klar, dass im Idealfall nur zwei Multiplikationen und fünf Additionen erforderlich sind, um dieses IIR-Filter fünfter Ordnung zu realisieren – gegenüber zehn Multiplikationen und acht Additionen bei der Implementierung als SOS.

Doch es sind noch weitere Einsparungen möglich, wenn man die Dezimation mit dem Faktor Zwei ins Auge fasst. Dabei ist für jedes Eingangs-Sample nur ein Zweig aktiv. Das ist gleichbedeutend mit der Aufteilung der Eingangssequenz in zwei Teilsequenzen mit halber Abtastrate, die jeweils die geraden und ungeraden Samples enthalten. Diese werden anschließend an die Allpass-Zweige gelegt und aufsummiert. Außerdem können die Verzögerungsglieder in jeder elementaren Sektion mit der niedrigeren Rate arbeiten, was die Speicheranforderungen halbiert. Dieses Signal lässt sich als Pipeline effizient auf ein DSP-Slice übertragen, wenn ein externer Addierer eingesetzt wird, um die Ausgänge der beiden Filterzweige zu akkumulieren.

Bild 4: Dezimation mit dem Faktor Zwei, übertragen auf Xilinx DSP48E1.

Bild 4: Dezimation mit dem Faktor Zwei, übertragen auf Xilinx DSP48E1.Ensilica/Xilinx

Somit ist nur ein DSP48E1 Slice erforderlich, um ein IIR-Filter fünfter Ordnung mit Dezimationsfaktor Zwei zu realisieren. Dies ist in Bild 4 dargestellt. Ähnliche Gesichtspunkte gelten für die Interpolation, wobei die Filter jedes Zweigs abwechselnd zeitversetzte Ausgangs-Samples liefern.

Nochmals: Es ist nur ein DSP-Slice zur Interpolation mit dem Faktor Zwei erforderlich. Die Bezeichnung der Ports A, B, C, D und P folgt der Nomenklatur der Xilinx Serie 7. Man kann die DSP-Slices so kaskadieren, dass sie Filter höherer Ordnung implementieren. Und wegen der Auslegung mit zwei Zweigen sind dabei die Pipeline-Verzögerungen in jedem Zweig gleich. Man beachte, dass ein DSP-Slice nicht als volle Pipeline ausgebildet werden kann. Dies würde drei interne Register erfordern. Der Feedback-Pfad liefert aber nur die Verzögerung von zwei Registern.

Die Verwendung des Registers M in der gezeigten Position sorgt für eine höhere Frequenz und geringeren Leistungsverbrauch als mit Registern an den Eingängen. Für N = 3 und höhere Werte sollte es somit möglich sein, mit einem DSP-Slice die maximale Betriebsfrequenz zu erzielen. Es ist auch möglich, das maximale DSP-Slice Pipelining dadurch zu erreichen, dass man das Filter in zweikanaligem TDM-Modus (time division) betreibt. Dabei verdoppelt sich die Zahl der Verzögerungsglieder, der Feedback-Pfad A nutzt die Register A1 und A2 im Slice, und die Verzögerung am Eingang C erhöht sich von 3 auf 5.

Quantisierung und Headroom

Derartige N-Band-Strukturen werden auch als WDF-Filter (wave digital filter) bezeichnet, denn sie emulieren eine zweifach terminierte verlustlose Kettenschaltung der klassischen analogen Filterung. Das Design solcher Filter mit elliptischer Charakteristik wird in der Literatur ausführlich behandelt.

Dieses Verfahren, zusammen mit bilinearer Transformation zur Vermittlung zwischen der analogen und der digitalen Welt, bietet somit eine außerordentlich leistungsfähige Methode zum Entwurf von digitalen elliptischen und Butterworth-Filtern. Ein weiterer Vorteil ihrer Ableitung aus der Kettenschaltung ist die geringe Empfindlichkeit dieser Filterstrukturen gegenüber der Koeffizienten-Quantisierung.

Alles in Allem ist die 18-Bit-Wortlänge der Koeffizienten mehr als ausreichend zur Implementierung von Filtern mit 100-dB-Sperrbandforderungen – ohne Verlust der Equiripple-Eigenschaften. Analysen der Verstärkungscharakteristik einer elementaren Sektion im eingeschwungenen Zustand zeigen, dass die maximale Verstärkung am schlechtesten Rechenknoten den Wert 2,0 hat, gemessen am Pre-Adder-Ausgang. Das hat bedeutende Konsequenzen für die Festkomma-Implementierung, denn dies bedeutet, dass nur ein einziges zusätzliches Bit am Pre-Adder-Ausgang benötigt wird.

Ein Xilinx DSP48E1 Slice hat keine Sättigungslogik am Pre-Adder-Ausgang. Deshalb erlaubt die Begrenzung der Eingänge A und D auf 24 Bit einen Filterbetrieb ohne numerischen Overflow und, noch wichtiger, bis zur maximalen internen Präzision des DSP-Slice. Obwohl die Steady-State-Verstärkung auf 2,0 begrenzt ist, können die Transienten einer Sprungantwort den Wert 2,0 überschreiten. Aus diesem Grunde ist es empfehlenswert, zum sicheren Betrieb nur 23 Bit mit Vorzeichenerweiterung zu verwenden.

Für einige Datenquellen, etwa 24-Bit-Musikprogramme, kann man den vollen Dynamikbereich nutzen, wenn man die Signalcharakteristik im Voraus kennt. Wenn die Eingangsdaten weniger als 24 Bit beanspruchen, sollte man sie in der vorliegenden Wortkonfiguration belassen und damit einige fraktionale Bit bereitstellen. So ist bei 16-Bit-Eingangsdaten ein Schutzbit eine gute Wahl, also 16 Datenbit und sieben fraktionale Bit. Im Allgemeinen genügen drei bis vier Fractional Bit für gute Genauigkeit im Vergleich zum Gleitkommaformat.

Generierung der Filterkoeffizienten

Bild 5: FIR-Filter 21. Ordnung und WDF-Filter fünfter Ordnung mit gleicher Sperrband- (linkes Diagramm) und Passband-Spezifizierung (rechtes Diagramm).

Bild 5: FIR-Filter 21. Ordnung und WDF-Filter fünfter Ordnung mit gleicher Sperrband- (linkes Diagramm) und Passband-Spezifizierung (rechtes Diagramm). Ensilica/Xilinx

Bild 5 zeigt ein WDF-Filter fünfter Ordnung mit zwei Koeffizienten a0 = 0,1380 und a1 = 0,5847. Es hat ein normalisiertes Durchlassband von 0,125. Im Vergleich dazu ein FIR-Filter mit 22 Anzapfungen, das nach Parks-McClellan entworfen wurde, um dieselbe Welligkeit im Durchlassbereich und dieselbe Dämpfung im Sperrbereich zu erzielen. Die Ergebnisse belegen einen typischen Spareffekt mit dem Faktor Vier, bezogen auf die Filter-Ordnung. Das WDF-Filter benötigt nur zwei Multiplikationen gegenüber elf für das FIR-Filter (unter Berücksichtigung der Symmetrie).

In einem Halbband-WDF sind die Welligkeiten im Sperr- und Durchlassband nicht unabhängig voneinander. Doch führt die Einstellung einer realistischen Sperrdämpfung zu einer vernachlässigbaren Welligkeit im Durchlassbereich, beispielsweise von 10-6 dB für das Filter nach Bild 5. Das FIR-Filter hat insofern einen Vorteil, da man bei ihm diese beiden Designparameter unabhängig voneinander spezifizieren kann. Damit lässt sich eine größere Welligkeit im Durchlassbereich tolerieren, um eine bestimmte Sperrband-Spezifikation bei einer gegebenen Filter-Ordnung zu erfüllen.

Als Nächstes ein Blick auf eine Lösung ohne Einsatz des DSP48E1, aber mit ausgiebiger Quantisierung der Koeffizienten, um ein Filter mit nur wenigen LEs zu realisieren. Zur Erinnerung: WDF-Filter basieren auf dem Vorbild analoger Kettenschaltungen. Deshalb lassen sich leicht Koeffizienten mit niedriger Bit-Dichte für einen Bereich von spezifizierten Durchlassbändern finden. Wo immer möglich, sollten diese Bit als kanonische Dekomposition geschrieben werden, um die Zahl der Addierer klein zu halten.

Obwohl die Sperrbanddämpfung eines Filters fünfter Ordnung mit einem Durchlassbereich von 0,19 recht bescheiden ist, erzielt man durch einfaches Kaskadieren zweier dieser Filter ein Filter zehnter Ordnung mit einer Sperrdämpfung von -78 dB.

Ressourcen-Effizienz

Die hier gezeigte Architektur für ein IIR-Filter ermöglicht das einfache Mapping der Interpolation und Dezimation. Sie realisiert eine weitaus höhere Ressourcen-Effizienz als IIR-Sektionen zweiter Ordnung, oder sogar eines FIR-Filters. Sie passt gut zur Pre-add/Multiply/Post-add Charakteristik eines DSP48E1 Slice, und sie ist sehr robust gegenüber dem Effekt der Festkomma-Quantisierung von Koeffizienten bis zu 18 Bit. Damit erreicht sie eine gut kontrollierbare Sperrdämpfung von 100 dB.

Manche Designs fünfter Ordnung ohne Multiplier sind für spezielle Durchlassbandbreiten geeignet. Man kann sie auf einige wenige Register und Addierer in Logik übertragen, um DSP-Ressourcen einzusparen.

Dr. David Wheeler

ist Technischer Direktor bei Ensilica.

(jj)

Sie möchten gerne weiterlesen?

Unternehmen

Xilinx GmbH

Willy-Brandt-Allee 4
81829 München
Germany