Bild 2.7 Prinzipschaltbild eines Filters ohne Rückführung
Man könnte dieses Prinzipschaltbild praktisch direkt in eine Schaltung übernehmen, es wären dann aber 6 Multipli¬zierer und 7 Addierer nötig, was einen sehr hohen Hard¬ware-Aufwand bedeuten würde. Dieses System wird später noch beschrieben.
Die hardwaremäßig einfachste Struktur besteht aus einem ROM zur Speicherung der Koeffizienten, einem Schiebe¬register für die Amplitudenwerte, einem Multiplizierer und einem Addierer-Akkumulator.
Bild 2.8 Struktur, Programm und Zustände eines einfachen
Filters ohne Rückführung
Hierbei sind die letzten 6 digitalisierten Amplitudenwerte in einem Schieberegistersatz, bei dem jede Stufe ein ganzes Wort faßt, gespeichert.
Zunächst wird x(n-6) mit dem Koef¬fizienten a_6 verknüpft. Das Ergebnis wird im Akkumulator abgelegt. Mit dem ersten Takt wird x(n-6) aus dem Schieberegister herausgeschoben, und x(n-5) steht am Multiplizierer an. Gleichzeitig wurde der aktuelle Ampli¬tudenwert in das Schieberegister herein¬genommen. x(n-5) wird mit a_5 multipliziert und zum Akku¬mulator dazuaddiert. Mit dem nächsten Takt wird das Schieberegister wieder um 1 weitergeschoben, wobei aber x(n-5) nicht aus dem Register hinausgeschoben wird, sondern an den Anfang des Registers zurückgeführt wird. Dieser Vorgang findet nun solange statt, bis x(n)a_0 zum Akkumulator dazuaddiert und an die erste Stelle des Schieberegisters geschoben ist. Dann steht im Akkumulator der richtige Ausgangswert, und der nächste Auswertezyklus kann beginnen.
In der Schaltung aus Bild 2.8 wurde aber noch keine Rück¬sicht auf die Verfügbarkeit geeigneter Schieberegister genommen. Die hier dargestellte Methode würde entweder mehrere parallele 1 Bit Schieberegister mit einer relativ einfachen Logik benötigen, oder ein RAM mit einer relativ komplizierten Logik. Es ist aber relativ einfach möglich, auf einem IC tausende von seriell angeordneten Speicher¬zellen anzuordnen. Hierbei würde dann aber eine serielle Verarbeitung der einzelnen Wörter nötig.
Bild 2.9. Schaltung aus Bild 2.8. mit rein serieller
Speicherung
In diesem Fall wäre jeder Amplitudenwert seriell ge¬¬speichert, obwohl es nur für x(n-6) explizit dargestellt ist. Die Multiplikationsroutine sollte hierbei nach der Addier-Schiebe-Methode durchgeführt werden, da die Daten bereits in serieller Form vorliegen. Hierbei würden die Amplitudenwerte zur Ansteuerung der Register verwendet, da diese Faktoren ohnehin geschoben werden müssen. Diese Methode ist sehr einfach für positive Zahlen, benötigt aber für vorzeichenbehaftete Zahlen, die nicht in 2er-Komplementdarstellung gespeichert sind eine relativ komplizierte Logik, weshalb meist die 2er-Komplement-Dar¬stellung gewählt wird.
Wie bereits bei der Diskussion erwähnt wurde, ist dieser Multiplizierer relativ langsam, weshalb diese Methode in dieser Ausführung bald an die Grenzen ihrer Möglichkeiten gelangt. Wenn die Schiebezeit pro Bit 100ns beträgt (=> Addierzeit des oberen Addierers < 100ns), die Wortgröße 16 Bit beträgt, und 16 Amplitudenwerte verarbeitet werden müssen (Filter 16.Ordnung), dann ist die höchste verar¬beitbare Datenrate
R=1 / (Wortgröße x Ordnung des Filters x Schiebezeit)=
=10_9 / (16 x 16 x 100) = 39062.5 Hz
Mit dieser Datenrate könnten höchstens Frequenzen bis etwa 20kHz verarbeitet werden (Abtasttheorem).
Die Datenrate kann vergrößert werden, indem man Parallel¬verarbeitung einführt.
Durch Verwendung mehrerer Schieberegister kann die Ge¬schwindigkeit proportional vergrößert werden, ebenso durch Verwendung mehrerer Arithmetikeinheiten (AE)
Bild 2.10 Struktur, Programm und Zustände eines
FIR-Filters mit 2 AE\'s
Diese Schaltung wäre nicht ganz doppelt so schnell wie die in Bild 2.9 dargestellte, wenn man die gleichen AE\'s voraus¬setzt. Hier würden x(n) bis x(n-3) und x(n-4) bis x(n-6) getrennt und gleichzeitig bearbeitet, und an¬schließend die beiden Ergebnisse addiert werden.
|