DT/IPL AG Datentechnik Information Processing Lab Versuch 207 Programmierung eines Digitalen Signalprozessors Grundlagen der digitalen Signalverarbeitung 29. März 2016 Betreuer: Marian Patrik Felder, M. Sc. TU Dortmund Fakultät Elektrotechnik und Informationstechnik AG Datentechnik Otto-Hahn-Str. 4 D-44227 Dortmund Tel. +49-231-755-2861 eMail: [email protected] i Vorwort Diese Versuchsanleitung ist das Ergebnis eines von Grund auf neu konzipierten Versuchs, der im Sommersemester 2001 zum ersten Mal angeboten wird. Unsere Zielsetzung liegt dabei ganz klar darin, den Studierenden, die diesen Versuch durchführen, einen einführenden Überblick in die Welt der digitalen Signalverarbeitung auf Basis eines digitalen Signalprozessors (DSP) zu geben. Dabei steht außer Frage, dass aufgrund der umfassenden Einsatzgebiete der digitalen Signalverarbeitung und der Komplexität, die moderne Signalverabeitungsprozessoren und -systeme heute erreicht haben, gerade einmal an der Oberfläche dieses umfassenden Themenkomplexes „gekratzt“ werden kann 1 . Unsere Themenschwerpunkte lassen sich dabei wie folgt formulieren: • Was ist eigentlich ein DSP? • Was kann man mit einem DSP machen? • Wie programmiert man einen DSP? Aufgrund der knapp bemessenen Zeit haben wir bei der Präsentation der Grundlagen in dieser Versuchsanleitung einen recht intuitiven Weg gewählt, der auf die Herleitung mathematischer Grundlagen und die Verwendung von Formeln weitestgehend verzichtet. Für eine detaillierte Darstellung sei an dieser Stelle auf die Unterlagen entsprechender Vorlesungen verwiesen. Unser Hauptanliegen besteht letztendlich darin, den PraktikumsteilnehmerInnen einen Einblick in die Methoden der Softwareentwicklung für DSP-Systeme zu geben und so dem einen oder der anderen einen möglichen Weg für eine spätere Vertiefung aufzuzeigen. Um diesem Ziel gerecht zu werden ist natürlich auch die Mitarbeit der Studierenden gefragt. Dies bedeutet ganz konkret, dass eine Teilnahme am Versuch ohne vorher die Versuchsanleitung durchgearbeitet (nicht nur überflogen!) zu haben keinen Sinn macht2 . Am Ende dieses Vorwortes angelangt, möchte ich natürlich noch allen Teilnehmern und Teilnehmerinnen viel Spaß und Erfolg bei der Durchführung des Versuches wünschen! Dortmund im April 2001 Stephan Klauke History: v1.0 Stephan Klauke im April 2001 v1.1 — im Oktober 2006 v1.2 Matthias Lechtenberg im April 2011 v1.3 Marian P. Felder im Januar 2015 v1.4 Marian P. Felder im Februar 2016 1 Auch wenn das Vorwort etwas angestaubt ist, so hat sich doch am Umgang mit DSPs nicht viel verändert, außer dass diese Moore’s Law entsprechend natürlich heute viel leistungsfähiger sind. Natürlich wurde der Versuch (wie zum Beispiel ausführlich vor dem Sommersemester 2016) überarbeitet 2 Wer die Diskussion der Vorbereitung nicht besteht, kann am Versuch nicht teilnehmen. Er wird konsequent vom Tutor ausgeschlossen. Inhaltsverzeichnis 1 Einführung in die Digitale Signalverarbeitung 1.1 Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Das Grundprinzip digitaler Signalverarbeitung . . 1.3 Die Vorteile digitaler Signalverarbeitung . . . . . . 1.4 Anwendungen für die Digitale Signalverarbeitung 1.5 Allgemeine Aspekte zum Aufbau eines DSP . . . . 1.6 Informationen zum DSP TMS320C5402 . . . . . . 1.6.1 Ein typisches DSP-System . . . . . . . . . 1.7 Software-Entwicklung für ein DSP-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Von Analog zu Digital 2.1 Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Darstellung eines Signals im Zeit- und Frequenzbereich 2.3 Die Analog-Digital Umwandlung . . . . . . . . . . . . . . 2.3.1 Abtastung . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Quantisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . 9 . 9 . 10 . 10 . 12 3 Digitale Filterung 3.1 Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Die Funktion eines Filters in der Signalverarbeitung 3.3 Grundelemente digitaler Filter . . . . . . . . . . . . 3.4 Filterstrukturen . . . . . . . . . . . . . . . . . . . . 3.5 Vorteile digitaler Filter . . . . . . . . . . . . . . . . . 3.6 Probleme bei der Realisierung digitaler Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 3 5 5 6 6 . . . . . . . . . . . . 17 17 17 18 18 20 20 4 Versuchsvorbereitung 22 A Anhang 24 Kapitel 1 Einführung in die Digitale Signalverarbeitung 1.1 Ziele Dieses Kapitel soll einen allgemeinen Überblick zu Aspekten der digitalen Signalverarbeitung geben und stellt den bei der Versuchsdurchführung verwendeten digitalen Signalprozessor mit der Bezeichnung TMS320C5402 von Texas Instruments (TI) vor. Folgende Fragestellungen sollen dabei beantwortet werden: • Was versteht man unter „digitaler Signalverarbeitung“? • Was sind die Vorteile digitaler Signalverarbeitung und digitaler Signalprozessoren gegenüber einer analogen Verarbeitung? • Wie sehen praktische Anwendungen für die digitale Signalverarbeitung aus? • Welche Besonderheiten zeichnen einen digitalen Signalprozessor aus? • Wie sieht der Aufbau des TMS320C5402 aus? • Welche Komponenten umfasst ein typisches DSP-System? • Wie sieht die Software-Entwicklung für DSPs aus? 1.2 Das Grundprinzip digitaler Signalverarbeitung Bevor wir auf die digitale Signalverarbeitung selbst eingehen, machen wir uns zunächst noch einmal den Unterschied zwischen analogen und digitalen Signalen klar. Analoge Signale, wie z.B. Musik, Sprache, Temperatur, die Intensität einer Lichtquelle etc. sind sowohl zeit- als auch wertekontinuierlich. D.h. letztendlich, dass ein solches Signal zu jedem beliebigen Zeitpunkt einen beliebigen Wert (innerhalb seines Wertebereichs) annehmen kann. Wie nun weithin bekannt ist, arbeitet jegliche digitale Technologie jedoch auf der Basis von diskreten Zuständen, die in der Regel durch Nullen und Einsen (Bits) repräsentiert werden. Um ein analoges Signal mit digitaler Technologie zu verarbeiten, muss es also zunächst in ein digitales Signal umgewandelt werden. Dazu sind folgende Schritte notwendig: • Ein vorliegendes analoges Signal wird zunächst in ein analoges elektrisches Signal umgewandelt. Dies kann im Falle eines Audio-Signals z.B. mit Hilfe eines Mikrofons erfolgen. 1 Einführung in die Digitale Signalverarbeitung 2 • Das elektrische Signal wird dann „digitalisiert“, d.h. man beobachtet die Amplitude des Signals in bestimmten Zeitabständen (Abtastung) und ordnet der gemessenen Amplitude einen Binär-Code zu. Da die maximale Anzahl der verfügbaren Codeworte durch die Anzahl der vorhandenen Bits vorgegeben ist, muss man den Aussteuerbereich des analogen Signals in Bereiche aufteilen (Quantisierung), denen man jeweils ein Codewort zuordnet (Codierung). Da nun alle Analogwerte eines bestimmten Aussteuerbereichs ein und demselben Codewort zugeordnet werden, entsteht ein Fehler, bei der Zuordnung wird also quasi gerundet (Quantisierungsfehler). Nachdem diese analog-digital Umwandlung durchgeführt wurde, liegt nun ein zeitund wertdiskretes Signal vor. Ein solches Signal kann in einem digitalen System verarbeitet werden. Digitale Signalverarbeitung bedeutet somit in aller Regel die Verarbeitung eines ehemals analogen Signals mit einem digitalen Prozessor. Prozessoren, deren Aufbau und Architektur speziell für die Anforderungen der digitalen Signalverarbeitung angepasst wurden, werden im Allgemeinen als digitale Signalprozessoren (DSPs) bezeichnet. Bei sehr vielen Anwendungen wird das digitale Signal nach der Verarbeitung wieder in ein analoges Signal umgewandelt. Daher ist es im Regelfall notwendig zwei Konvertierungen durchzuführen. Zusätzlich kommt es bei der digitalen Verarbeitung aufgrund der eingeschränkten Genauigkeit des verwendeten Zahlensystems zu Verlusten. Führt man sich diesen Aufwand vor Augen, kommt man schnell zu der Frage: Ist es das alles wirklich wert? 1.3 Die Vorteile digitaler Signalverarbeitung Trotz des Aufwands und der Probleme, die die Konvertierung eines Signals von analog nach digital und wieder zurück mit sich bringt, hat ein digitales Signalverarbeitungssystem gegenüber analogen Systemen entscheidende Vorteile: • Programmierbarkeit • Stabilität • Reproduzierbarkeit • Kosteneffizienz Programmierbarkeit Die Programmierbarkeit eines DSP-Systems bringt in mehrerlei Hinsicht Vorteile mit sich. Zunächst macht sie ein DSP-System sehr flexibel. So wie man mit einem PC mit der geeigneten Software völlig unterschiedliche Dinge durchführen kann, wie z. B. eine mp3-Datei abspielen oder eine Textdatei bearbeiten, kann ein einzelner DSP in einem Signalverarbeitungssystem unterschiedliche Aufgaben übernehmen. Außerdem ermöglicht die Programmierbarkeit des DSP Verbesserungen oder Korrekturen vorzunehmen, indem einfach die Software ausgetauscht wird, ohne dass am HardwareAufbau etwas geändert werden müsste. Schließlich können einem bestehenden System u. U. sogar völlig neue Funktionen hinzugefügt werden, ohne die Hardware zu verändern.1 1 Einen Schritt weiter geht das Konzept des Software-defined Radio (SDR). Hier wird die komplette Basisbandverarbeitung abgebildet, was Kanalkodierung, Modulation, Multiple-Access-Verfahren und die klassische digitale Signalverarbeitung einschließt. Man kann z.B. durch Software-Tausch einen DVBEmpfänger kurzerhand in einen WLAN-Empfänger umrüsten. 1 Einführung in die Digitale Signalverarbeitung 3 Als ein Beispiel können hier Mobiltelefone angeführt werden. Aufgrund der durch den hohen Wettbewerbsdruck verursachten kurzen Entwicklungszeiten kommt kaum noch ein Gerät ohne kleinere Fehler auf den Markt. Der Hersteller hat nun aufgrund der Programmierbarkeit einzelner Komponenten die Möglichkeit, Fehler durch ein Software-Update zu beheben, ohne womöglich das komplette Gerät austauschen zu müssen. Stabilität Analoge Schaltkreise werden durch eine Vielzahl äußerer Faktoren beeinflusst. Die Eigenschaften vieler analoger Bauelemente sind unter anderem von der Umgebungstemperatur, der Luftfeuchtigkeit und ihrem Alter abhängig. Außerdem können analoge Bauelemente in aller Regel nur innerhalb bestimmter Toleranzgrenzen gefertigt werden. So müssen analoge Filterschaltungen oft in regelmäßigen Abständen justiert (abgestimmt) werden. So ist es dann aufgrund der verschiedenen Umgebungsbedingungen auch nicht unbedingt möglich, eine in Deutschland produzierte und abgestimmte Schaltung ohne weiteres in Ägypten oder Sibirien einzusetzen. Ein digitaler Schaltkreis hingegen ändert seine Eigenschaften nicht langsam über die Zeit oder in Abhängigkeit von Umgebungstemperatur oder Luftfeuchtigkeit. Ein digitales System funktioniert oder es funktioniert nicht. Die Betriebsparameter, innerhalb derer eine Digitalschaltung funktioniert, kann man den zugehörigen Datenblättern entnehmen. Reproduzierbarkeit Ein korrekt entworfener digitaler Schaltkreis wird aus einem vorgegebenen Satz von Eingangsdaten stets dasselbe Ergebnis liefern. So werden 500 Computer für eine vorgegebene Multiplikation alle immer dasselbe Ergebnis liefern (vorausgesetzt, der verwendete Prozessor hat keine Fehler). Die Musik von einer CD wird sich über Jahre hinweg und auf den verschiedensten CD-Playern nahezu gleich anhören. Unterschiede im Klang werden dabei höchstens durch analoge Komponenten des Abspielgeräts (z.B. Laser, DA-Wandler, Verstärker) verursacht. Kosteneffizienz DSP Systeme sind gemessen an ihrer Leistungsfähigkeit oft sehr preiswert. Selbst sehr leistungsfähige DSPs werden in großen Stückzahlen für vielleicht 5 EUR verkauft. Einfachere bzw. ältere Modelle bekommt man für wenige Cent. 1.4 Anwendungen für die Digitale Signalverarbeitung Ohne es wirklich wahrzunehmen, sind wir umgeben von digitaler Signalverarbeitung und das nicht nur im Bereich der Audio- und Telekommunikationsanwendungen, wo man es vielleicht noch am ehesten erwartet. Typische Anwendungsbereiche für DSPs sind: • Hi-Fi Komponenten • Spielzeug • Telekommunikation 1 Einführung in die Digitale Signalverarbeitung 4 • Bildverarbeitung und -übertragung • Automobilelektronik Hi-Fi Komponenten Moderne Verstärker, gerade für den Heimkino-Bereich, sind mit Decodern für digitale Audioformate (z. B. Dolby Digital oder DTS) ausgestattet. Zusätzlich bieten sie oft verschiedene Raumklangeffekte, die digital erzeugt werden. Spielzeug Sprechende Spielzeuge sind heute weit verbreitet. Die Reihe der verfügbaren „Geräte“ beginnt bei sprechenden Puppen und endet bei Kinder-Computern mit Spracherkennung. Derartige Funktionalität wird heute meistens durch kleine DSP-Systeme zur Verfügung gestellt. Der Einsatz von DSPs, selbst in einfachen Spielzeugen, dokumentiert deutlich, wie preiswert der Einsatz von DSP-Technologie sein kann. Telekommunikation Die Telekommunikation stellt sicherlich eines der größten Einsatzgebiete für die Digitale Signalverarbeitung dar. Egal ob ISDN, Mobilfunk, Videotelefonie oder schnelle Datenübertragung, keine dieser Anwendungen würde ohne die digitale Signalverarbeitung existieren. Gerade die Telekommunikationsbranche mit ihrem immer größeren Bandbreitenbedarf auch im Mobilfunkbereich, hat die Entwicklung immer leistungsfähigerer DSPs in den letzten Jahren vorangetrieben (GSM → UMTS → 3G-UMTS → 4G-UMTS (LTE)). Bildverarbeitung Auch vor der Bildverarbeitung und -übertragung hat die digitale Technologie keinesfalls halt gemacht. Jede Videokamera enthält heute mindestens einen DSP für die Aufbereitung des vom CCD2 -Element gelieferten Bildes. DSPs übernehmen das automatische Scharfstellen und die Belichtungskontrolle in klassischen Spiegelreflexund Kompaktkameras genauso wie in Digital-Kameras oder Foto-Handys. Moderne Fernseher enthalten DSP-Systeme zur Bildverbesserung (z.B. Rauschunterdrückung, Konturkorrektur). Automobilindustrie Die Digitale Schaltungstechnik spielt heute eine tragende Rolle im Bereich der Automobilelektronik. Egal ob Motormanagement, Zündung, ABS3 , ASR4 , ESP5 , Airbag oder Klimaanlage, all diese Systeme enthalten Digitalschaltungen. Ein modernes LuxusAutomobil hat heutzutage nicht weniger als 200 komplexe digitale Schaltkreise unter der Karosserie. Dazu zählen neben Mikroprozessoren und Microcontrollern auch eine Reihe von DSPs. 2 Charge Coupled Device, ein digitales Bildsensorelement Anti-Blockiersystem 4 Anti-Schlupf-Regelung 5 Elektronisches-Stabilitäts-Programm 3 1 Einführung in die Digitale Signalverarbeitung 1.5 5 Allgemeine Aspekte zum Aufbau eines DSP Wie bereits erwähnt, ist die Architektur eines digitalen Signalprozessors speziell auf die Bedürfnisse der digitalen Signalverarbeitung ausgelegt. Das bedeutet, dass Operationen, die in der digitalen Signalverarbeitung besonders häufig Anwendung finden, so optimiert werden, dass sie in aller Regel in nur einem Taktzyklus abgearbeitet werden können. Es folgen einige Beispiele von Operationen, die besonders häufig verwendet werden: Addieren, Subtrahieren Die Addition und Subtraktion von Binärzahlen gleicht der Addition bzw. Subtraktion von Dezimalzahlen, wie man sie von Hand auf einem Blatt Papier ausführen würde. Sowohl allgemeine Prozessoren (im weiteren abgekürzt mit CPU = central processing unit) als auch DSPs führen eine solche Operation in der Regel innerhalb eines Taktzyklus aus. Moderne CPUs wie auch DSPs verfügen mittlerweile sogar über mehrere arithmetische Einheiten (ALU = Arithmetic Logic Unit), so dass mehrere Additionen oder Subtraktionen parallel ausgeführt werden können. Multiplikationen Eine Multiplikation wird binär in aller Regel durch eine Reihe von Schiebe- und Addieroperationen realisiert. Allgemeine Prozessoren führen eine solche Berechnung iterativ in mehreren Schritten aus, sie benötigen also mehrere Taktzyklen für die Durchführung einer Multiplikation. In einem DSP werden die benötigten Schiebe- und Addierstufen parallel implementiert, sodass eine Multiplikation in nur einem Taktzyklus durchgeführt werden kann. Multiplizieren und Akkumulieren Die Formel A = B × C + D beschreibt eine in der digitalen Signalverarbeitung besonders häufig verwendete Berechnung. Dieses Multiplizieren und Akkumulieren (MAC = Multiply and Accumulate) wird bei der Implementierung eines digitalen Filters vielfach verwendet. Deswegen ist auch für diesen Befehl eine spezialisierte Hardware vorhanden, die eine Berechnung innerhalb nur eines Taktzyklus ermöglicht. 1.6 Informationen zum DSP TMS320C5402 Der im Praktikum verwendete DSP TMS320C5402 gehört zur C54xx-Familie von Texas Instruments. Die einzelnen Modelle dieser Serie unterscheiden sich im Wesentlichen durch ihre interne Speicherausstattung, die maximale Taktfrequenz und die Leistungsaufnahme. Der strukturelle Aufbau aller C54xx-Modelle ist gleich. Alle DSPs dieser Serie verarbeiten Daten im 16-bit Festkomma-Format. Bei der Festkomma-Darstellung steht für den Betrag einer Zahl eine festgelegte Anzahl von Bits zu Verfügung, ein zusätzliches Bit wird verwendet, um das Vorzeichen der Zahl zu kodieren. Außerdem muss bei einem Festkomma-Format festgelegt werden, wie viele Bits für die Nachkommastellen verwendet werden sollen. Der TMS320C5402 verwendet ein sogenanntes Q15 Festkomma-Format, d. h. 15 der ingesamt 16 Bits werden für die Nachkommastellen verwendet. Das erste Bit wird als Vorzeichenbit verwendet. Es folgen einige Beispiele für Binärzahlen im ZweierkomplementQ15-Format: 1 Einführung in die Digitale Signalverarbeitung 6 0100000000000000 = 0.5 1100000000000000 = -0.5 0100111011001101 = 0.61563110352 Bei einer Fließkommazahl hingegen werden die zur Verfügung stehenden Bits in einen Betrag (die sog. Mantisse m) und einen Exponenten (x) aufgeteilt. Die dargestellte Zahl (z) erhält man, indem man die Mantisse mit zehn hoch dem Exponenten multipliziert, also z = m · 10x . Der Dynamikbereich (der Bereich zwischen größter und kleinster darstellbarer Zahl) der Festkomma-Darstellung ist bei gleicher Bitanzahl zwar geringer als bei der Fließkomma-Darstellung, dafür ist die Arithmetik mit Festkommazahlen allerdings sehr viel einfacher zu implementieren. DSPs, die eine Festkomma-Darstellung verwenden, sind somit weniger komplex und in der Konsequenz wesentlich preisgünstiger als Modelle mit Fließkomma-Darstellung. Für den interessierten Leser befindet sich in Anhang A eine detailliertere Beschreibung der Architektur der TMS320C54xx-DSP-Familie. 1.6.1 Ein typisches DSP-System Ein typisches DSP-System besteht im Allgemeinen aus einem DSP-Chip, externem Speicher, einem analog-digital Wandler (ADC), einem digital-analog Wandler (DAC) und verschiedenen Kommunikationsschnittstellen. Die genaue Auswahl der einzelnen Komponenten ist natürlich abhängig von der Anwendung, für die das System entworfen wird. Während z. B. Audio-Anwendungen wohl häufig sowohl ADC als auch DAC benötigen, wird es andere Anwendungen geben, die keine Rückwandlung von digital nach analog benötigen. Mit dem sogenannten DSP Starter Kit (DSK) von Texas Instruments steht uns für das Praktikum ein komplettes DSP-System zur Verfügung. Auf der Platine befindet sich neben dem eigentlichen DSP-Chip zusätzlicher externer Speicher, ein ADC, ein DAC, sowie verschiedene Kommunikationsschnittstellen (RS232, parallele IEEE-Schnittstelle, JTAG). 1.7 Software-Entwicklung für ein DSP-System Ein DSP ist zunächst „nur“ ein Stück Hardware, das ohne eine entsprechende Programmierung keine Funktion erfüllen kann. Ein DSP-Programm besteht, wie die meisten Programme für andere Prozessoren auch, aus einer Serie von Anweisungen, die bestimmte Funktionen durchführen. Für die Programmentwicklung stehen verschiedene Möglichkeiten zur Verfügung, die in unserem Fall von einer integrierten Entwicklungsumgebung (IDE = integrated development environment) zusammengeführt werden. Zu den Aspekten der Programm-Entwicklung gehört zunächst die eigentliche Implementierung, dann natürlich der Test des Programms und die Fehlerbereinigung (engl. „Debugging“). Hierzu folgen einige Erläuterungen. Implementierung in Assembler Assembler ist eine textbasierte Programmiersprache auf einer sehr geringen Abstraktionsebene. Die Programmiersprache ist so ausgelegt, dass einzelne Assemblerbefehle mehr oder weniger direkt auf Maschinenbefehle aus dem Instruktionssatz des entsprechenden DSPs umgesetzt werden können. Folgendes Beispiel soll dies verdeutlichen: ADD A, B 1110001001010100 1 Einführung in die Digitale Signalverarbeitung 7 Beide Zeilen enthalten eine Instruktion, die veranlasst, dass der Inhalt von Akkumulator A und Akkumulator B addiert wird. Während in der ersten Zeile die textbasierte Assembler-Sprache verwendet wird, enthält die zweite Zeile den 16stelligen Binärcode, mit dem die entsprechende Instruktion auf dem DSP ausgeführt wird. Es ist leicht einzusehen, dass die Assembler-Schreibweise für einen Menschen wesentlich einfacher zu lesen ist. Um in Assembler programmieren zu können, muss der Entwickler sehr viel über den internen Aufbau des zu programmierenden DSP wissen, z. B. mögliche Arten der Speicheradressierung, Anzahl der vorhanden Register und so weiter. Als ein Minimal-Beispiel für die Assembler-Programmierung betrachten wir folgende Zeilen: LD #1, A LD #4, B ADD A, B STM A, AR0 ; ; ; ; ; Lade die Konstante 1 in Akkumulator A Lade die Konstante 4 in Akkumulator B Addiere Akkumulator A und B (Ergebnis bleibt in A) Speichere den Inhalt von Akkumulator A im "memory-mapped" Register AR0 In dem angegebenen Beispiel benötigt man also schon vier Zeilen um eine einfache Addition durchzuführen. Es ist offensichtlich, dass umfassendere Programme in Assembler sehr schnell unübersichtlich werden können und schwer nachzuvollziehen sind. Dennoch optimieren viele Entwickler Teile ihrer Programme immer noch von Hand in Assembler, wenn es darum geht, das letzte Quäntchen an Geschwindigkeit aus einem System „herauszupressen“. Implementierung in einer Hochsprache Wie wir gesehen haben, umfasst die Assembler-Sprache nur sehr einfache Befehle wie Multiplikation, Addition und Vergleich. Außerdem müssen sämtliche SpeicherOperationen explizit codiert werden. Die Instruktionen einer Hochsprache hingegen sind von wesentlich höherem Abstraktionsgrad, d. h. die maschinennahe Ausführung von Befehlen, wie der Zugriff auf bestimmte Speicheradressen etc. wird verborgen. Eine Hochsprache wird von einem sogenannten Compiler in Maschinensprache übersetzt. So kann ein und dasselbe Programm im optimalen Fall mit verschiedenen Compilern für verschiedene DSP übersetzt werden. Die in Assembler verfügbaren Befehle hingegen hängen direkt vom Instruktionssatz des jeweiligen DSP ab. Deswegen müssen Assembler-Programme in der Regel von einem DSP auf einen anderen aufwändig von Hand umgesetzt werden. Während es einfacher ist, ein Programm in einer Hochsprache zu entwickeln, kann eine direkte Entwicklung in Assembler zu schnelleren Programmen führen. Dabei spielt die Qualität des verfügbaren Compilers natürlich auch eine große Rolle. In der Praxis sieht es meistens so aus, dass ein Programm in einer Hochsprache entwickelt wird und dann die besonders zeitkritischen Teile entweder von Hand in Assembler optimiert oder neu implementiert werden. Somit besteht ein größeres Programm in aller Regel aus Teilen, die in einer Hochsprache implementiert sind und Teilen, die direkt in Assembler implementiert sind. Test des Programms und Fehlerbereinigung Für den Test eines vermeintlich fertiggestellten Programms gibt es verschiedene Möglichkeiten. Eine erste Möglichkeit besteht darin, das Programm innerhalb eines Software-Simulators zu testen. Ein solcher Simulator simuliert die DSP-Hardware auf ei- 1 Einführung in die Digitale Signalverarbeitung 8 nem Standard-PC. Solche Simulatoren werden in der Regel eingesetzt, um vorab zunächst die reine Funktionalität des entwickelten Programms zu testen. Eine EchtzeitBetrachtung ist in aller Regel nicht möglich. Für das Testen unter Echtzeitbedingungen stehen sogenannte Emulatoren zur Verfügung. Der Emulator umfasst eine spezielle Hardware-Schnittstelle über die er mit dem DSP verbunden wird und einer Analyse- und Test-Software. Da Emulatorplatine und DSP miteinander verbunden werden, muss ein speziell für den Test entworfenes DSP-System verwendet werden. Der Emulator stellt dann zusammen mit der entsprechenden Software umfangreiche Debugging-Möglichkeiten zur Verfügung. So kann zur Laufzeit in den Programmablauf eingegriffen werden, der Wechsel interner Zustände kann im Einzelschrittverfahren verfolgt werden, der Inhalt von Registern bzw. Variablen kann verändert werden und vieles mehr. Als eigentliche Benutzerschnittstelle dient immer eine Software, die dem Programmierer verschiedene Informationen zum Programm-Ablauf anzeigt und z. B. den Verlauf interner Variablen visualisiert. Zu diesen Informationen gehört in der Regel ein formatierter Ausdruck des Speicherinhalts des DSP, der über eine Emulatorschnittstelle oder eine spezielle Kommunikationsschnittstelle in den PC geladen wird. Wir werden den im TI-DSK-Paket enthaltenen Debugger während der Versuchsdurchführung noch genauer kennenlernen. Kapitel 2 Von Analog zu Digital 2.1 Ziele In diesem Kapitel sollen die verschiedenen Aspekte der Analog-Digital-Wandlung noch einmal näher beleuchtet werden. Beim Durcharbeiten dieses Kapitels werden folgende Fragen beantwortet: • Welche Informationen erhalte ich bei der Darstellung eines Signals im Zeit- und im Frequenzbereich? • Was versteht man unter „Sampling“ und was besagt das Nyquist-Theorem? • Wie sehen grundlegende Konzepte zur Analog-Digital-Wandlung aus und was ist Quantisierungsrauschen? Die folgenden Erläuterungen sollen zum grundsätzlichen Verständnis beitragen, sind aber zum Teil vereinfacht. Für eine exakte Darstellung sei auf die entsprechenden Vorlesungen verwiesen. 2.2 Darstellung eines Signals im Zeit- und Frequenzbereich Für die Analyse von Nachrichtensignalen verschiedener Art werden in aller Regel zwei Darstellungsarten betrachtet. Bei der Darstellung eines Signals im Zeitbereich wird die Signalamplitude über die fortschreitende Zeit aufgezeichnet. Hierfür kann z. B. ein Oszilloskop verwendet werden. Gerade bei Signalen, die sehr schnell die Amplitude ändern, kann man sich jedoch nur sehr kurze Zeitausschnitte anschauen. Die Darstellung eines Signals im Frequenzbereich, beruht auf der Tatsache, dass ein beliebiges kontinuierliches Signal aus einer Summe gewichteter Sinusschwingungen verschiedener Frequenzen dargestellt werden kann (Fourier-Theorem). Eine Darstellung im Frequenzbereich (sog. Spektrum) zeigt nun die Amplituden bzw. Leistungen aller enthaltenen Grundschwingungen über der Frequenz. Abbildung 2.1 soll dies veranschaulichen. Im oberen linken Teil der Abbildung ist ein Signal im Zeitbereich dargestellt, das durch Aufsummieren von vier Sinus Schwingungen verschiedener Frequenz entstanden ist. Im oberen rechten Teil wird das Signal im Frequenzbereich dargestellt. Aufgrund der verwendeten mathematischen Transformationsvorschrift erfolgt die Darstellung auch über negative Frequenzen. Einzelheiten hierzu sind den entsprechenden Vorlesungsunterlagen oder Fachbüchern zu entnehmen (Stichwort Fourier-Transformation). Wenn man sich nur den positiven Bereich anschaut, erkennt man vier Ausschläge bei den Frequenzen der vier verwendeten Grundschwingungen. Das Höhenverhältnis der einzelnen Ausschläge lässt Aussagen über das Verhältnis der verwendeten Gewichtungsfaktoren zu. Im unteren linken 2 Von Analog zu Digital 10 Betragsamplitude 1.5 Amplitude 1 0.5 0 −0.5 −1 −1.5 0 0.005 0.01 0.015 −2 Zeit in s −1 0 1 2 Frequenz in kHz Betragsamplitude Amplitude 10 5 0 −5 −10 0 0.005 0.01 0.015 −5 −4 −3 −2 −1 Zeit in s 0 1 2 3 4 5 Frequenz in kHz Abbildung 2.1: Signale im Zeit- und Frequenzbereich. Teil der Abbildung sieht man nun ein reales Signal und unten rechts die Darstellung im Frequenzbereich. Ein reales Signal setzt sich in der Regel aus einer Summe unendlich vieler Schwingungen zusammen, d. h. die Frequenzen der Grundschwingungen sind beliebig fein abgestuft. Man erkennt, dass das Signal bandbegrenzt ist, d. h. es enthält nur sehr geringe Frequenzanteile oberhalb von etwa 2.5 kHz. Der Bereich zwischen dem niedrigsten und höchsten Frequenzanteil eines Signals wird als Signalbandbreite bezeichnet. 2.3 Die Analog-Digital Umwandlung Die Umwandlung von analogen in digitale Signale wurde bereits im vorhergehenden Kapitel kurz erläutert. Wie bereits erwähnt, wird ein vorliegendes analoges Signal zunächst abgetastet und quantisiert, um es zum einen überhaupt digital verarbeiten zu können und zum anderen die Menge der zu verarbeitenden Informationen pro Zeiteinheit (die Datenrate) zu begrenzen. Im Folgenden soll nun etwas ausführlicher auf diese Themen eingegangen werden. 2.3.1 Abtastung Für ein analoges zeitkontinuierliches Signal kann man zu jedem beliebigen Zeitpunkt einen Amplitudenwert angeben. Es wäre aber sehr ineffektiv, das Signal zu jedem beliebigen Zeitpunkt zu beobachten, da man die dabei einstehende Informationsflut nicht verarbeiten könnte. Deswegen geht man dazu über, die Amplitude des Signals 2 Von Analog zu Digital 11 nur zu bestimmten Zeitpunkten „abzutasten“, d. h. den aktuellen Amplitudenwert des Signals abzuspeichern. Die Kunst besteht nun darin, diese Zeitpunkte so zu wählen, dass man Stichproben erhält, die das analoge Signale korrekt repräsentieren und ggf. eine korrekte Rückwandlung in ein analoges Signal ermöglichen. Abtastperiode oder -frequenz Die Abtastperiode gibt den Zeitraum an, der zwischen zwei „Abtastungen“ bzw. zwischen zwei Abtastwerten liegt. Die Anzahl der in einer Sekunde aufgenommenen Abtastwerte wird durch die Abtastfrequenz angegeben. Wie wählt man nun die Abtastfrequenz so, dass keine wichtigen Informationen verloren gehen? Um dieses Problem zu veranschaulichen, schauen wir uns eine einfache Sinusschwingung an. Abbildung 2.2 zeigt eine Sinusschwingung, die mit verschiedenen Abtastfrequenzen abgetastet wird. Das erste Diagramm in der Abbildung zeigt das analoge Signal, das abgetastet werden soll. Im zweiten Diagramm ist die Abtastfrequenz (fs ) wesentlich größer (Faktor 20) als die Signal-Frequenz (fa ). Anhand des Verlaufs der einzelnen Abtastwerte ist sehr gut zu erkennen, dass es sich um eine Sinusschwingung handelt. Man kann hier direkt vermuten, dass keine relevante Information verloren geht. Im dritten Diagramm wurde nun die Abtastfrequenz genau doppelt so hoch wie die Signalfrequenz gewählt. Würde man versuchen, das Signal dadurch zu rekonstruieren, dass man einfach die Abtastpunkte verbindet, erhält man ein Dreieck-Signal. Auch wenn man den prinzipiellen Verlauf noch erkennen kann, sieht es an dieser Stelle so aus, als sei relevante Information verloren gegangen. Tatsächlich kann das AnalogSignal unter der Annahme idealer Bedingungen (in den meisten Fällen, s.u.) immer noch einwandfrei rekonstruiert werden. Im vierten Beispiel ist die Abtastfrequenz ebenfalls gleich der doppelten Signalfrequenz. Der Unterschied besteht darin, dass die Abtastzeitpunkte gegenüber dem Signal um eine Viertelperiode verschoben wurden, so dass das Signal nun immer genau im Nulldurchgang abgetastet wird. Obwohl das Analog-Signal bei einer Abtastfrequenz von fs = 2fa einwandfrei rekonstruiert werden kann, kann eine ungünstige Wahl der Abtastzeitpunkte zu Problemen führen. Im letzten Beispiel ist die Abtastfrequenz schließlich geringer als die doppelte Signalfrequenz. Es ist nicht mehr möglich aus den Abtastwerten das Analog-Signal zu rekonstruieren. Man kann am zeitlichen Verlauf der Abtastwerte erkennen, dass relevante Information verloren gegangen ist. Anhand der aufgeführten Beispiele kann man nun intuitiv zu dem Schluss kommen, dass die Abtastfrequenz fs für ein analoges Signal mindestens doppelt so hoch sein muss, wie die höchste enthaltene Frequenzkomponente. Tatsächlich lässt sich zeigen, dass die Abtastfrequenz für den praxisrelevanten Fall immer oberhalb der doppelten Signalfrequenz liegen muss. Diese untere Schranke für die Wahl der Abtastfrequenz wird auch Nyquist-Frequenz genannt (fs > fN = 2fa ). Den Grund für diese untere Schranke findet man, wenn man sich Signale im Frequenzbereich anschaut: Bei der Abtastung wird das ursprüngliche Spektrum des Analog-Signals an den Vielfachen der Abtastfrequenz wiederholt (sogenannte Wiederholspektren1 ). Bei der Rückwandlung in ein Analogsignal müssen die Wiederholspektren mit Hilfe eines Tiefpassfilters entfernt werden. Eine korrekte Digital-Analog-Wandlung ist nur dann möglich, wenn das 1 Im mathematischen Modell wird im Zeitbereich das analoge Signal mit einem Dirackamm multipliziert (Abtastung: zeitlich äquidistante mit der Amplitude gewichtete Diracimpulse). Im Frequenzbereich korrespondiert der Dirackamm wieder mit einem Dirackamm, nur wird hier nicht multipliziert, sondern gefaltet (Wiederholspektren). 2 Von Analog zu Digital 12 Spektrum im Basisband (um f=0 Hz) einwandfrei herausgefiltert werden kann. Abbildung 2.3 verdeutlicht dies. Man erkennt wie das Spektrum des Analogsignal jeweils an den vielfachen der Abtastfrequenz wiederholt wird. Im ersten dargestellten Fall ist die Abtastfrequenz (fs ) größer als die doppelte Signalbandbreite (2 · fa ). Das Spektrum des Analogsignals kann mit Hilfe eines realen Tiefpassfilters (endliche Flankensteilheit) rekonstruiert werden. Die Übertragungsfunktion eines möglichen Tiefpassfilters ist gepunktet dargestellt. Im zweiten Fall ist die Abtastfrequenz genau gleich der doppelten Signalbandbreite. Theoretisch kann das Analogsignal mit Hilfe eines idealen Tiefpasses (unendlich steile Flanken) rekonstruiert werden. In der Praxis ist es jedoch nicht möglich ein solches Filter zu implementieren. Überdies dürften die Abtastpunkte auch nicht zufällig in den Nulldurchgängen liegen. Im dritten Fall ist die Abtastfrequenz schließlich kleiner als die Signalbandbreite. Die Wiederholspektren überlappen sich. Diese Überlappungen werden auch „Alias“ genannt. Ein fehlerfreie Rekonstruktion des Analogsignals ist nicht mehr möglich. In der Praxis werden Signale aus Effizienzgründen häufig mit einer Frequenz abgetastet, die unter der doppelten Signalbandbreite liegt. Ein Beispiel: Audio-Signale werden für die Aufnahme auf CD oder PC mit 44,1 kHz abgetastet, dies ist durch entsprechende Standards festgelegt. Diese Grenze beruht auf der Tatsache, dass das menschliche Gehör Frequenzen über 20 kHz kaum noch oder gar nicht wahrnimmt. Nun gibt es aber durchaus verschiedene Audioquellen, deren Bandbreite über 20 kHz liegt (Orchester, Vogelgezwitscher). Um in einem solchen Fall Alias-Effekte zu vermeiden, muss die Bandbreite des analogen Signals vor der A/D-Wandlung so beschränkt werden, dass sie unterhalb der halben Abtastfrequenz liegt. Dies geschieht mit einem vorgeschalteten analogen Tiefpassfilter, das in diesem Zusammenhang auch AntiAlias-Filter genannt wird. 2.3.2 Quantisierung Nach der Abtastung erhält man ein zeitdiskretes Signal. Die Signalamplitude kann aber zunächst noch jeden beliebigen Wert annehmen. Da für die digitale Darstellung der Signalamplitude jedoch nur eine endliche Zahl von Bits und somit eine endliche Zahl möglicher Amplitudenwerte zur Verfügung steht, muss eine Wertediskretisierung (Quantisierung) durchgeführt werden. Dazu wird zunächst ein sogenanntes „Sample&Hold-Glied“ verwendet, dass zu jedem Abtastzeitpunkt den aktuellen Signalpegel übernimmt und diesen Pegel bis zum nächsten Abtastzeitpunkt an seinem Ausgang aufrecht erhält. Das Ausgangssignal eines „Sample&Hold-Gliedes“ ist in Abbildung 2.4 ganz oben dargestellt. Das Halten der abgetasteten Werte ist notwendig, da der eigentliche A/D-Wandler eine gewisse Zeit benötigt, bis der Amplitudenwert des Analogsignals in einen Binärcode umgewandelt wurde. Für die Quantisierung verteilt man die zur Verfügung stehenden Codewörter über den Aussteuerbereich des Analogsignals und erhält so die einzelnen Quantisierungsstufen. Dies ist im zweiten Diagramm in Abbildung 2.4 dargestellt. Die Amplitudenwerte sollen in dreistellige Binärzahlen umgewandelt werden, es stehen also acht Codewörter zu Verfügung. Diese werden in der Abbildung äquidistant über den möglichen Aussteuerbereich verteilt. Bei der Quantisierung werden nun die mit dem Sample&Hold Glied aufgenommen Werte auf die nächste Quantisierungsstufe abgebildet, also auf- oder abgerundet. Man erhält schließlich eine Reihe von Binärzahlen, die das 2 Von Analog zu Digital 13 ehemals analoge Signal nun digital repräsentieren. 2 Quantisierungsrauschen Es liegt in der Natur der Sache, dass bei der A/D-Wandlung eines Analog-Signals Fehler entstehen. Dabei gibt es zwei Hauptquellen für das Auftreten von Fehlern. Die erste Fehlerquelle liegt im Prinzip der Abtastung, also darin, dass ein kontinuierliche Signal auf eine endliche Anzahl von Abtastwerten abgebildet wird. Wie oben ansatzweise beschrieben, kann jedoch für ein bandbegrenztes Signal die Abtastfrequenz so gewählt werden, dass das Analogsignal fehlerfrei rekonstruiert werden kann. Die zweite Fehlerquelle liegt im Prinzip der Quantisierung. Beim Auf- oder Abrunden der einzelnen Abtastwerte auf die nächste Quantisierungsstufe wird das Signal mit einem Fehler beaufschlagt. In Abbildung 2.4 sieht man ganz unten das Differenzsignal zwischen dem ursprünglichen Signal und dem quantisierten Signal. Dieses Signal kann als Rauschsignal interpretiert werden. Addiert man es zum Analogsignal hinzu, ergibt sich genau das quantisierte Signal. Aus dieser Interpretation heraus ist der Begriff „Quantisierungsrauschen“ entstanden. Das Quantisierungsrauschen ist im Allgemeinen umso geringer, je feiner die Abstufungen zwischen den Quantisierungsstufen sind bzw. je mehr Bits pro Codewort zur Verfügung stehen. 2 Die hier vorgenommene lineare Einteilung der Quantisierungsstufen stellt eine von vielen Möglichkeiten dar. Andere (nicht-lineare) Einteilungen sind vorstellbar und häufig sinnvoller. Das menschliche Ohr z. B. kann den Lautstärkeunterschied von ohnehin schon lauten Tönen sehr viel schlechter differenzieren, als von leisen Tönen. Leise Töne (geringer Signalpegel) werden dann mit vielen Quantisierungsstufen sehr fein aufgelöst, während für die lauten Töne (hoher Signalpegel) nur wenige verschiedene Quantisierungsstufen verwendet werden. Außerdem ist die Rauschempfindlichkeit bei leisen Tönen höher. Deswegen digitalisiert man z. B. im ISDN mit einer nichtlinearen Kennlinie (sog. A- oder µ-Kennlinie) und erreicht damit eine subjektiv gleiche Qualität im Vergleich zu linearer Quantisierung mit größerer Wortlänge. Eine solche Kennlinie ist also ein nahezu verlustfreies Komprimierungsverfahren. Von Analog zu Digital 14 analoges Signal Amplitude A 1 0.5 0 −0.5 −1 0 0.5 1 1.5 2 2.5 1.5 2 2.5 1.5 2 2.5 1.5 2 2.5 1.5 2 2.5 Zeit t f >> f s a Amplitude A 1 0.5 0 −0.5 −1 0 0.5 1 Zeit t fs = 2*fa Amplitude A 1 0.5 0 −0.5 −1 0 0.5 1 Zeit t f = 2*f s a Amplitude A 1 0.5 0 −0.5 −1 0 0.5 1 Zeit t fs < fa 1 Amplitude A 2 0.5 0 −0.5 −1 0 0.5 1 Zeit t Abbildung 2.2: Abtastung eines Sinus mit verschiedenen Abtastfrequenzen. 2 Von Analog zu Digital 15 ¾ ¾ ¾ Abbildung 2.3: Wiederholspektren nach der Abtastung. 2 Von Analog zu Digital 16 Abbildung 2.4: Die einzelnen Schritte der Quantisierung. Kapitel 3 Digitale Filterung 3.1 Ziele In diesem Kapitel werden die grundlegenden Aspekte zum Aufbau digitaler Filter erläutert. Beim Durcharbeiten dieses Kapitels sollen folgende Punkte geklärt werden: • Welche Funktion hat ein Filter überhaupt? • Wie sieht der grundlegende Aufbau digitaler Filter aus? • Welche Vorteile hat die digitaler gegenüber der analogen Filterung? • Welche Probleme können bei der Implementierung digitaler Filter entstehen? 3.2 Die Funktion eines Filters in der Signalverarbeitung Eine der Hauptanwendungen der digitalen Signalverarbeitung besteht in der Filterung von Signalen. Als Filter bezeichnet man dabei ein System, das die spektralen Eigenschaften eines Signals in Amplitude und/oder Phase frequenzabhängig verändert. In Abbildung 3.1 sieht man den Amplitudenfrequenzgang vier diskreter Filter. Aufgrund der spektralen Wiederholung mit der Abtastfrequenz fs ist der Frequenzgang nur bis zur halben Abtastfrequenz relevant. Die Funktion des jeweiligen Filters kann am Frequenzgang direkt abgelesen werden. Jedes der Filter lässt bestimmte Frequenzanteile passieren, während es andere Frequenzanteile dämpft. Der Funktion entsprechend werden die dargestellten Filter wie folgt bezeichnet: • Hochpass: hohe Frequenzanteile passieren das Filter • Tiefpass: tiefe Frequenzanteile passieren das Filter • Bandpass: ein bestimmtes Frequenzband passiert das Filter • Bandsperre: ein bestimmtes Frequenzband passiert das Filter nicht Die Funktion eines Filters muss jedoch nicht immer aus dem Frequenzgang ablesbar sein. Nimmt man ein Filter zur Echounterdrückung in einer Freisprechanlage als Beispiel, wird man die Funktion des Filters kaum anhand des Frequenzgangs erkennen. Außerdem existieren heute viele sehr leistungsfähige Filteranwendungen, bei denen die Filterkoeffizienten an bestimmte Bedingungen angepasst werden und sich somit der Frequenzgang über die Zeit ändert (sog. (frequenz-)„adaptive Filter“). 3 Digitale Filterung 18 Abbildung 3.1: Amplitudenfrequenzgang eines Hochpass- (HP), Tiefpass- (TP), Bandpass- (BP) und Bandsperre- (BS) Filters. 3.3 Grundelemente digitaler Filter Der Vorteil digitaler gegenüber analoger Filter liegt im relativ einfachen Aufbau. Ein digitales Filter wird aus nur drei Grundelementen aufgebaut: Addierer, Multiplizierer und Verzögerungsglied (Verzögerung um genau eine Abtastperiode T). Für die geeignete Verschaltung dieser Grundelemente existieren zwei Grundstrukturen. Beim digitalen Filterentwurf wird der Frequenzgang somit durch folgende Hauptmerkmale beeinflusst: • die Filterstruktur (transversal, rekursiv, direkt) • Betrag und Phase interner Koeffizienten Frequenz- und Phasengang eines digitalen Filters können anhand der sogenannten Impulsantwort über die Z- bzw. Fourier-Transformation berechnet werden. Die Impulsantwort eines Filters ist die Ausgangsdatensequenz, die man erhält, wenn man nur einen einzigen Impuls auf das Filter gibt (alle weiteren Datenwerte sind Null). Ein digitales Filter wird also über diese Impulsantwort vollständig charakterisiert. 3.4 Filterstrukturen Transversalfilter Eine sehr häufig verwendete Struktur ist das sogenannte Transversalfilter. Abbildung 3.2 zeigt den typischen Aufbau eines solchen Filters. Gibt man einen einzelnen Impuls auf ein solches System so durchläuft er die Kette von Laufzeitgliedern, die den Impuls jeweils um genau eine Abtastperiode verzögern und erscheint dann mit dem jeweiligen Filterkoeffizienten gewichtet am Ausgang des Filters. 3 Digitale Filterung 19 Ì Ì Ì Ì Abbildung 3.2: Prinzipielle Struktur eines Transversal- bzw. FIR-Filters. Aufgrund der Bauart des Filters besteht die Impulsantwort immer aus einer endlichen Anzahl von Impulsen (nämlich der Anzahl der Filterkoeffizienten), d. h. die Impulsantwort hat immer eine endliche Dauer. Aus diesem Grund wird ein solches Filter auch FIR-Filter (engl. Finite Impulse Response) genannt. FIR-Filter sind außerdem aufgrund ihres Aufbaus immer stabil. D. h. für ein Eingangssignal, welches stets unter einer gewissen Schranke bleibt, bleibt auch das Ausgangssignal unterhalb einer oberen Schranke. Rekursive Filter Ein Nachteil des FIR-Filters besteht darin, dass unter Umständen eine hohe Zahl von Koeffizienten benötigt wird, um die gewünschte Filterfunktion zu realisieren. Dies resultiert dann natürlich in einem entsprechend großen Bedarf an Hardware-Ressourcen. Ein Weg, den Hardware-Aufwand zu begrenzen, sind Filterstrukturen mit interner Rückkopplung. Eine solche Struktur wird rekursiv genannt. Durch die Rückkopplung ist die Impulsantwort unendlich lang. Deswegen wird ein rekursives Filter auch IIRFilter (engl. Infinite Impulse Response) genannt. Abbildung 3.3 zeigt die Grundstruktur eines IIR-Filters. Ì ¼ Ì ½ Ì ¾ Ì ¿ Abbildung 3.3: Prinzipielle Struktur eines IIR-Filters. Aufgrund der Rückkopplung und der daraus resultierenden unendlich langen Impulsantwort muss beim Entwurf eines IIR-Filters stets eine Stabilitätsanalyse durchgeführt werden. Für die Implementierung von adaptiven Filtern werden deswegen üblicherweise FIR-Filter verwendet, die prinzipbedingt immer stabil sind. Direktstruktur Neben den dargestellten Grundstrukturen besteht natürlich die Möglichkeit, FIR- und IIR-Filter zu verschalten. Die Zusammenfassung von rekursivem und transversalem 3 Digitale Filterung 20 Filter führt auf die sogenannte Direktstruktur. 3.5 Vorteile digitaler Filter Der große Vorteil digitaler Filter besteht zweifelsohne in der Programmierbarkeit. Sollen Frequenz- oder Phasengang des Filters geändert werden, kann dies durch Änderung der Filterkoeffizienten geschehen. So ist es sogar möglich aus einem TiefpassFilter kurzerhand ein Hochpass-Filter zu machen. Bei einem analogen Filter wäre dies nur durch einschneidende Änderungen der Filterschaltung möglich. Durch die Programmierbarkeit des Filter wird es überhaupt erst möglich die bereits erwähnten adaptiven Filter zu realisieren. Des weiteren treffen natürlich all die Vorteile zu, die im ersten Kapitel für die digitale Signalverarbeitung allgemein genannt wurden. 3.6 Probleme bei der Realisierung digitaler Filter Bei der Implementierung digitaler Filter müssen vier Hauptfehlerquellen in Betracht gezogen werden, die im Folgenden kurz erläutert werden sollen. Quantisierungsrauschen Wie bereits im letzten Kapitel erläutert, erzeugt die Analog-Digital-Wandlung einen Quantisierungsfehler. Dieser Fehler wird bei der Rückumwandlung nicht kompensiert und kann als additives Rauschen auf dem Ausgangssignal interpretiert werden. Quantisierung der Koeffizienten Beim Filterentwurf werden die Filterkoeffizienten in der Regel auf einem Computer in hoher Genauigkeit berechnet. Beim Übergang auf eine Festpunktdarstellung mit eingeschränkter Wortlänge (oft 16 oder 32 Bit) müssen die Koeffizienten entsprechend gerundet werden, wodurch zwangsläufig ein Fehler entsteht. Obwohl der entstehende Fehler oftmals sehr klein ist, muss er dennoch in Betracht gezogen werden. Dies gilt insbesondere für IIR-Filter, da sich die Fehler aufgrund der Rückkopplung aufsummieren und ggf. sogar zur Instabilität führen können, obwohl das ursprüngliche entworfene Filter stabil ist. Dieses Problem tritt im Wesentlichen bei DSPs mit FestpunktZahlendarstellung auf, da diese über einen geringeren Dynamikbereich verfügen. Fehler durch Abschneiden Bei jeder binären Multiplikation wird die benötigte Wortbreite verdoppelt. Dies kann man sich einfach anhand der Multiplikation zweier Dezimalzahlen mit zwei Nachkommastellen verdeutlichen: 0, 64 × 0, 73 = 0, 4622. Um das Ergebnis mit voller Genauigkeit darzustellen, werden vier Nachkommastellen benötigt. Aus diesem Grund verfügen gerade Festkomma-DSPs häufig über ein Produktregister und einen Akkumulator mit doppelt so hoher Wortbreite, wie alle anderen Register. So bleibt die Genauigkeit während der Multiplizier-und-Akkumulier-Operation (MAC) zunächst erhalten. Da für die Implementierung eines Filters aber viele solcher Operationen notwendig sind und sich die Wortbreite jedes Mal verdoppeln würde, wird vor einer weiteren Multiplikation die niederwertige Hälfte aller Ergebnisbits abgeschnitten. Für einen 16-Bit-DSP entsteht der maximale Fehler damit auf dem 16. Nachkomma-Bit und entspricht einer Abweichung von 0,001%. 3 Digitale Filterung 21 Interner Überlauf Von einem Überlauf (engl. overflow) spricht man immer dann, wenn das Ergebnis einer arithmetischen Operation die zur Verfügung stehende Wortbreite übersteigt. Addiert man z. B. binär 11 mit binär 11 erhält man als Ergebnis binär 110. Für die Behandlung von Überläufen gibt es zwei mögliche Verfahren. Man spricht von einer sogenannten Überlauflogik, wenn das zusätzliche Bit schlichtweg nicht angezeigt wird. In unserem einfache Beispiel oben, würde das Ergebnis also binär 10 lauten. Der Fehler zwischen dem korrekten und dem angezeigten Ergebnis wird dabei maximal (hier dezimal 4). DSPs bieten deshalb die Möglichkeit in den sogenannten Sättigungsmodus überzugehen. Im Sättigungsmodus wird das Ergebnisregister im Fall eines Überlaufs auf den maximal darstellbaren Wert gesetzt, wodurch der Fehler minimiert wird (im Beispiel binär 11, somit entsteht ein Fehler von drei). Kapitel 4 Versuchsvorbereitung Arbeiten Sie die ersten drei Kapitel dieser Versuchsanleitung gewissenhaft durch und beantworten Sie im Anschluss die folgenden Fragen (alle!): 1. a) Welche Eigenschaften kennzeichnen ein analoges Signal? b) Warum benötigt man für die digitale Signalverarbeitung spezialisierte Hardware? c) Warum können Änderungen an einem digitalen Signalverarbeitungssystem schneller als bei einem analogen System vorgenommen werden? d) Worin liegen die wesentlichen Vorteile eines Digital-Schaltkreises gegenüber einem Analog-Schaltkreis? e) Welche Komponenten umfasst ein typisches DSP-System? f) Warum wird im Zusammenhang mit DSPs überhaupt ein Analog-Digital-Konverter benötigt? 2. a) Zwei Sinussignale mit einer Periode von 10 ms und 40 ms werden zu einem Analogsignal addiert. Wie viele Frequenzen sieht man im Spektrum? Bei welcher Frequenz/welchen Frequenzen erhält man im Spektrum einen Ausschlag? b) Ein Signal wird durch die Addition dreier Sinussignale mit den Frequenzen 100 Hz, 300 Hz und 500 Hz und den Amplituden 1 Volt, 2 Volt und 5 Volt addiert. Wie groß wählen Sie die Abtastfrequenz, um eine aliasfreie Rekonstruktion zu ermöglichen? c) Ein Signal hat eine Bandbreite von 1 kHz, die jedoch nicht um den Ursprung, sondern um 1 kHz (Trägerfrequenz) zentriert ist (Modulation). Zu dem Signal wird ein Sinus mit einer Frequenz von 1250 Hz addiert. Wie groß ist die Bandbreite des resultierenden Signals? d) Wie wird mit dem Eingangssignal eines A/D-Wandler verfahren, um das Auftreten eines Alias auf jeden Fall zu vermeiden? e) Ordnen Sie die folgenden Wortpaare einander zu: Quantisierung Abtastung ZeitDiskretisierung WerteDiskretisierung 4 Versuchsvorbereitung 23 f) Ein reines Sinussignal mit einer Frequenz von 100 Hz wird mit 150 Hz abgetastet. Bei welcher Frequenz erhält man ein Alias, wenn man das Spektrum betrachtet? 3. a) Was ist die Grundfunktion eines Filters? b) Nennen Sie die Grundelemente, aus denen ein digitales Filter aufgebaut wird. c) Warum heißt ein Tiefpass-Filter Tiefpass-Filter? d) Wie könnte der Amplitudenfrequenzgang eines Allpass-Filters aussehen? e) Welche Filterstrukturen kennen Sie? f) Wie lautet die Impulsantwort (s(n) = 1, 0, 0, 0, ...) eines FIR-Filters mit nur zwei Verzögerungselementen und den Koeffizienten a0 = −1, a1 = 0.5 und a2 = 1? g) Wie viele Verzögerungselemente hat ein FIR-Filter mit der unten dargestellten Impulsantwort? Wie lauten die Filterkoeffizienten? 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −1 0 1 2 3 4 h) Worin liegt der Hauptvorteil von digitalen gegenüber analogen Filtern? i) Welche vier Hauptprobleme können zu Ungenauigkeiten bei der Implementierung digitaler Filter führen? Die Versuchsanleitung erhalten Sie nach der erfolgreichen Vorbesprechung. Anhang A Anhang Die TMS320C54xx Architektur In Abbildung A.1 ist der interne Aufbau der C54xx Familie dargestellt. Die C54xx Serie nutzt eine sogenannte fortgeschrittene erweiterte Harvard-Architektur (getrennter Daten- und Programmspeicher), die die Rechenleistung durch die Verwendung von insgesamt acht Bussen maximiert. Ein separater Programm- und Datenspeicherbereich erlaubt den simultanen Zugriff auf Programminstruktionen und Daten und ermöglicht somit einen hohen Grad an Parallelität. So können z. B. drei Lese- und eine Schreiboperation in einem einzigen Taktzyklus durchgeführt werden. Außerdem können Daten direkt zwischen Programm- und Datenspeicher ausgetauscht werden. Die so erreichte Parallelität wird durch einen mächtigen Instruktionssatz bestehend aus arithmetischen, logischen und bit-manipulierenden Operationen, die alle innerhalb eines Taktzyklus durchgeführt werden, weiter unterstützt. Die C54xx DSPs verfügen zusätzlich über spezielle Kontroll-Mechanismen, die das Behandeln von Interrupts, den Aufruf von Unterfunktionen und die wiederholte Ausführung von Befehlen unterstützen. Die Bus Struktur Die C54xx-Architektur verfügt über insgesamt acht 16-bit Busse, vier Programm/Datenund vier Adressbusse. Im Folgenden werden die Kurzbezeichnungen in Abbildung A.1 näher erläutert: • Über den Programm-Bus (PB) werden die Instruktionscodes und sogenannte „Immediate“-Operatoren aus dem Programmspeicher übertragen. • Insgesamt drei Datenbusse (CB, DB und EB) verbinden verschiedene Elemente, wie z.B. den Prozessorkern, die „data address generation logic“, die „programm address generation logic“, auf dem Chip befindliche Peripherie-Einheiten und den Datenspeicherbereich. • Über die Busse CB und DB werden die Operanden-Daten aus dem Datenspeicher gelesen. • Über EB werden alle Daten übertragen, die in den Speicher geschrieben werden sollen. • Vier Adress-Busse (PAB, CAB, DAB, EAB) transportieren die Adressen, die für das Ausführen der Instruktionen benötigt werden. E TR N T C MSW/LSW select COM P A SAT ZERO Adder(40) Fractional MUX ROUND 0 A B Multiplier (17 y 17) Sign ctr Sign ctr A P C D T D A T register MUX D X MU B MUX A(40) B A EXP encoder E B EA B D B DA B C B CA B P B MUX Legen d: A Accumulator A B Accumulator B C CB data bus D DB data bus E EB data bus M MAC unit P PB program bus S Barrel shifter T T register U ALU ALU(40) A Sign ctr B(40) Sign ctr T A B C ARAU0, ARAU1 AR0-AR7 ARP, BK, DP, SP PC, IPTR, RC, BRC, RSA, REA PA B System control interface Program address generation logic (PAGEN) Data address generation logic (DAGEN) D S B S Barrel shifter B A C D Sign ctr 25 Peripheral interface Anhang Memory and external interface A Abbildung A.1: Architektur der DSPs der C54xx Serie. Interner Speicher Der Speicher der C54xx-Serie ist in drei individuell wählbare Bereiche aufgeteilt: der Programm-, Daten, und I/O-Bereich. Der C5402 verfügt über 2 KByte ROM-Speicher, 2 KByte Programmspeicher und 10 KByte DARAM-Speicher. DARAM bedeutet „DualAccess Random Access Memory “, d. h. der Speicher kann innerhalb eines Taktzyklusses gleichzeitig gelesen und geschrieben werden. Die Zentraleinheit der C54xx Prozessoren Die Zentraleinheit (vgl. Abbildung A.1) besteht aus folgenden Teileinheiten: • eine 40-bit arithmetisch logische Einheit (ALU) • zwei 40-bit Akkumulatoren • ein sog. Barrel-Shifter A Anhang • ein 17×17 Multiplizierer • ein 40-bit Addierer • eine Vergleich, Auswahl und Speicher Einheit (CSSU = compare select and store unit) • eine Einheit für die Daten-Adressen-Generierung • eine Einheit für die Programm-Adressen-Generierung 26
© Copyright 2025 ExpyDoc