Programmierung eines Digitalen Signalprozessors

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