Aufbau, Evaluierung und Programmierung einer Sigma
Transcription
Aufbau, Evaluierung und Programmierung einer Sigma
Aufbau, Evaluierung und Programmierung einer Sigma-DSP Testplatine Bachelorarbeit durchgeführt von Martin Finsterer Institut für Signalverarbeitung und Sprachkommunikation der Technischen Universität Graz Leiter: Univ.-Prof. Dipl.-Ing. Dr.techn. Gernot Kubin Betreuer/in: Dipl.-Ing. Dr. Werner Magnes Graz, im März 2016 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Zusammenfassung Am Beginn der Bachelorarbeit wurde eine Marktrecherche durchgeführt, um einen Überblick über kostengünstige Testaufbauten digitaler Signalprozessoren für Audioanwendungen zu erhalten. Die Suche endete durch den Fund eines Artikels in der Elektronik-Fachzeitschrift Elektor, in welchem einen passender Bausatz vorgestellt wird, basierend auf dem Referenzdesign des Analog Devices DSP „ADAU1701“. Nach der Beschaffung der benötigten Bauteile erfolgte der Aufbau sowie die Inbetriebnahme der Schaltung. Es war erforderlich sich mit der dazugehörigen Programmierumgebung Sigma Studio dabei näher auseinanderzusetzen. Mit Hilfe von PC-Software und eines geeigneten Messaufbaus gelang es schließlich die Leistungs-Eigenschaften der DSP-Platine zu evaluieren und Vergleiche mit dem Datenblatt des DSPs anzustellen. Durch das anschließende Implementieren von gängigen Audio-Effekten wurde das Wissen rund um die Handhabung mit der Programmierumgebung Sigma Studio vertieft. Abstract At the beginning of the Bachelor thesis a market research has been done, to get an overview of cost-effective digital signal processors for audio applications. In an article of the electronics magazine Elektor a proper assembly kit has been found, which is designed around the Analog Devices' DSP „ADAU1701“. After the acquisition of the required components the circuitry has been set up and put into operation. Therefore it was necessary to get familiar with the proprietery programming environment Sigma Studio. With the help of PC software and a proper measurement setup the performance characteristics of the DSP-board have been evaluated and compared with the datasheet of the DSP. By implementing several popular audio-effects the knowledge about the handling of Sigma Studio has been enhanced. Institut für Signalverarbeitung und Sprachkommunikation 2 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Inhaltsverzeichnis 1 Einleitung................................................................................................................................8 1.1 Motivation...............................................................................................................8 1.2 Ziele.........................................................................................................................9 1.3 DSP-Familien von Analog Devices.......................................................................10 2 DSP-Hardware.....................................................................................................................11 2.1 Sigma-DSP ADAU1701........................................................................................11 2.2 Elektor Schaltung...................................................................................................12 2.3 Materialliste...........................................................................................................13 3 Programmier-Software........................................................................................................14 3.1 Programmierung mit Sigma Studio.......................................................................14 3.1.1 Neues Projekt...............................................................................................14 3.1.2 Einfügen von Auxiliary Inputs.....................................................................17 3.2 Programmieren des E2PROMs..............................................................................18 3.2.1 Serielle Schnittstelle.....................................................................................18 3.2.2 Arduino Uno.................................................................................................19 3.2.3 E2PROM Programmierer.............................................................................20 3.3 Diskussion weiterer Programmierumgebungen.....................................................21 4 Vermessung der wichtigsten Performance-Parameter.....................................................23 4.1 Messequipment und Aufbau..................................................................................23 4.2 Messung der Frequenzgänge.................................................................................24 4.2.1 Abweichung des zweiten Kanals..................................................................26 4.2.2 Generelle Dämpfung....................................................................................27 4.2.3 Tiefpassverhalten.........................................................................................27 4.2.4 Hochpassverhalten.......................................................................................27 4.2.5 Messung nach Umbau..................................................................................28 4.3 Signalrauschabstand..............................................................................................29 5 Implementierungen von Audioeffekten.............................................................................33 5.1 Entwurf eines Bandpassfilters...............................................................................34 5.2 Implementierung eines Phaser-Effekts..................................................................41 5.3 Implementierung eines Tongenerators...................................................................48 5.4 Implementierung eines Delay-Effekts...................................................................49 5.5 Implementierung eines State-Var-Filters...............................................................51 Institut für Signalverarbeitung und Sprachkommunikation 3 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 6 Literaturverzeichnis.............................................................................................................53 7 Abbkürzungsverzeichnis.....................................................................................................56 8 Anhang..................................................................................................................................57 Institut für Signalverarbeitung und Sprachkommunikation 4 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abbildungsverzeichnis Abb. 1: Das fertig bestückte Audio-DSP-Board von Elektor................................................9 Abb. 2: Block Diagramm des ADAU1701 [ADAU1]............................................................11 Abb. 3: Das Schaltungsdesign von Elektor [ELEKTOR2].................................................12 Abb. 4: Definieren der Hardware-Baugruppen...................................................................15 Abb. 5: Talkthrough-Schaltung.............................................................................................15 Abb. 6: Kompilieren des Programms....................................................................................16 Abb. 7: HEX-File-Konversion................................................................................................16 Abb. 8: Hardware-Konfiguration der Auxiliary Inputs.....................................................17 Abb. 9: Blockschaltbild des Programmieraufbaus..............................................................18 Abb. 10: „Sigma Studio for SHARC“...................................................................................21 Abb. 11: Blockschaltbild des Messaufbaus [ARTA1]..........................................................24 Abb. 12: Frequenzgang im Talkthrough-Modus.................................................................25 Abb. 13: Auszug aus dem Datenblatt: Performance [ADAU4]..........................................26 Abb. 14: Auszug des Schaltungsdesigns von Elektor [ELEKTOR1].................................27 Abb. 15: Frequenzgang bei Talkthrough-Betrieb mit überbrückten Kondensatoren am Eingang....................................................................................................................................28 Abb. 16: Frequenzgang bei Talkthrough ohne Ein- und Ausgangsfilter..........................28 Abb. 17: FFT-Analyse mit einem 1 kHz Sinus als Eingangssignal.....................................29 Abb. 18: FFT-Analyse ohne Eingangssignal.........................................................................30 Abb. 19: FFT-Analyse mit einem 1 kHz Sinus als Eingangssignal.....................................31 Institut für Signalverarbeitung und Sprachkommunikation 5 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 20: FFT-Analyse ohne Eingangssignal.........................................................................32 Abb. 21: IIR-Filter: Direktform 1 [STANFORD1]..............................................................34 Abb. 22: IIR-Filter: Direktform 2 [STANFORD2]..............................................................34 Abb. 23: IIR-Filter: Transponierte Form 1 [STANFORD3]..............................................34 Abb. 24: IIR-Filter Hauptprogramm....................................................................................35 Abb. 25: IIR-Filter Unterprogramm Direkt Form 1...........................................................36 Abb. 26: IIR-Filter Unterprogramm Direkt Form 2...........................................................36 Abb. 27: IIR-Filter Unterprogramm Transponierte Form 1..............................................37 Abb. 28: IIR-Filter: Transponierte Form 2 [STANFORD3]..............................................38 Abb. 29: FFT-Analyse einer Talkthrough-Schaltung .........................................................38 Abb. 30: FFT-Analyse der DF1..............................................................................................39 Abb. 31: FFT-Analyse der DF2..............................................................................................39 Abb. 32: FFT-Analyse der TF1..............................................................................................40 Abb. 33: Hauptprogramm des Stereo-Phasers.....................................................................42 Abb. 34: Blockschaltbild eines Allpass-Filters.....................................................................43 Abb. 35: Unterprogramm zur Frequenzmodulation...........................................................44 Abb. 36: Unterprogramm eines Allpass-Filters...................................................................45 Abb. 37: Amplitudengang der Phaser-Schaltung................................................................46 Abb. 38: Variable Delay-Line................................................................................................49 Abb. 39: Typische Richtwerte für den Delay-Effekt...........................................................49 Abb. 40: Realisierung des Delay-Effekts...............................................................................50 Abb. 41: Digitales State-Var-Filter........................................................................................51 Institut für Signalverarbeitung und Sprachkommunikation 6 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 42: Realisierung des State-Var-Filters.........................................................................52 Abb. 43: Hauptprogramm des Tongenerators.....................................................................58 Abb. 44: Unterprogramm zur Dreiecksberechnung............................................................59 Abb. 45: Unterprogramm zur Rechtecksberechnung.........................................................60 Abb. 46: Unterprogramm zur Sägezahnberechnung..........................................................61 Institut für Signalverarbeitung und Sprachkommunikation 7 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 1 Einleitung 1.1 Motivation Nach der Laborübung Digitale Audiotechnik wollte ich mein Wissen rund um das Thema Digital Signal Processing (DSP) weiter vertiefen und machte mich auf die Suche nach sogenannten Evaluation Boards. Solche Testplatinen haben einen offenen Aufbau und werden in der Regel von Firmen angefordert, die das Produkt auf dessen Funktionen überprüfen möchte, um es gegebenenfalls im weiteren Verlauf in deren eigenen Systeme einbetten zu können. Nach kurzer Recherche bei den üblichen Herstellern wie Analog Devices, Freescale oder Texas Instruments wurde mir schnell klar, dass mein Vorhaben nur durch Investition mehrerer hundert Euro zu bewerkstelligen ist, da die Testplatinen keine Massenware sind. Durch Zufall bin ich auf die Elektronik-Fachzeitschrift Elektor gestoßen, welches in Bastlerkreisen durch regelmäßige Schaltungs-Bauvorschläge bekannt ist. In der Ausgabe Jänner/Februar 2014 [ELEKTOR1] wurde ein Design für ein DSP-Board vorgestellt, welches einem Digitalen Signalprozessor von Analog Devices, nämlich dem ADAU1701, zugrundeliegt. Dieser Prozessor wird als energiesparender DSP vermarktet und findet Verwendung im Automotive-, Portable Audio- und auch im Home Cinema-Bereich. Die Platine samt vorbestücktem Prozessor ist bei Elektor im Online-Shop für rund 72,95€ erhältlich. Im Preis inbegriffen sind auch die restlichen bedrahteten Bauteile, die noch manuell verlötet werden müssen. Das originale Analog Devices Evaluation Board mit dem gleichen Chip ist im Vergleich dazu für den Einzelstückpreis von 195,00 US Dollar exkl. Versand direkt bei Analog Devices zu beziehen. Institut für Signalverarbeitung und Sprachkommunikation 8 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 1.2 Ziele Im Zuge der Arbeit soll überprüft werden, wie eine kostengünstige DSP-Lösung, wie der ADAU1701, im Vergleich mit den teureren Vertretern abschneidet. Da seitens des Herstellers nicht öffentlich eindeutig klargestellt wird, mit welchen Methoden sich der DSP programmieren lässt, sollte dies herausgefunden werden. Es wird überprüft, ob Sigma-DSPs im Allgemeinen nur mit der Sigma Studio Software programmiert werden können, oder ob es auch noch Alternativen gibt, wie zum Beispiel VisualDSP++ oder CrossCore, den anderen beiden Programmierumgebungen von Analog Devices. Die Sigma DSPs werden damit beworben, dass bereits einige fertige Algorithmen fix implementiert wurden, die unter anderem heißen: Surround & 3D Audio, Dynamic Bass, Loudness, Automatic Volume Control, Automatic EQ, Beam Forming. Mit dem Audio Precision Messgerät soll zu allerletzt eine Charakterisierung der AnalogDigital-Wandler (ADC) und Digital-Analog-Wandler (DAC) durchgeführt werden. Abb. 1: Das fertig bestückte Audio-DSP-Board von Elektor Institut für Signalverarbeitung und Sprachkommunikation 9 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 1.3 DSP-Familien von Analog Devices Analog Devices ist ein amerikanischer Hersteller von Halbleitern-Bauteilen, der sich auf die Bereiche analoge und digitale Schaltungselektronik, Datenkonvertierung und Signalverarbeitung spezialisiert hat. Die wichtigsten Marktsegmente, die von Analog Devices bedient werden sind Medizintechnik, Automotive, Industrie und der Consumer-Bereich. Die digitalen Signalprozessoren die im Audio- und Video-Bereich verwendet werden, fallen unter den Überbegriff Consumer. Da es sehr unterschiedliche anwendungsbezogene Anforderungen von Audio-DSPs gibt, werden im Folgenden die verschiedenen Produktfamilien vorgestellt. Innerhalb dieser Familien gibt es, anhand der Artikelbezeichnung erkennbare, verschiedene Varianten, die sich wiederrum in den Spezifikationsdetails wie zum Beispiel DSP-Taktraten, Speichergröße und der Anzahl von Ein-/Ausgängen unterscheiden. Eine genaue Übersicht ist auf der Homepage von Analog Devices zu finden. [AD1] Da die allgemeinen Beschreibungen der Produkte nicht besonders aussagekräftig sind, wurde versucht zumindest die wichtigsten Einsatzgebiete hervorzuheben und die DSPs anhand der wichtigsten Eckdaten zu vergleichen. Die Prozessoren der ADSP-21xxx Familie kommen mit sehr kleinen Taktraten, wenig Speicher und ohne externes Speicherinterface aus. Laut Analog Devices ist deren häufigstes Einsatzgebiet Sprachverarbeitung, Voice-Band Modems und Echtzeitsteuerung. Blackfin-Prozessoren sind die aktuellste DSP-Entwicklung von Analog Devices. Es handelt sich dabei um 16- oder 32-Bit Festkomma-Prozessoren, die bereits zu kleinen Preisen mit recht guten Eckdaten aufwarten. Von der Performance reihen sie sich knapp hinter den SHARC-Prozessoren ein. Besonders auffällig ist, dass Blackfin Prozessoren aufgrund der Aktualität unter anderem ein Flash-Speicherinterface aufweisen. Analog Devices empfiehlt als Anwendungsgebiete Multiformat Audio-, Video-, Sprach- und Bildverarbeitung. Das Flagschiff der Gleitkomma DSPs stellt die Familie der SHARC Prozessoren dar, da sie höchste CPU- und Speicherspezifikationen im 32-Bit DSP Segment aufweisen. Neuerdings werden auch SHARC Abkömmlinge entwickelt, die sich an energieffiziente Anwendungen oder Anwendungen für zweikernige Prozessoren richten (ADSP-SC58x und ADSP-2158x). SHARC Prozessoren bieten aufgrund ihrer ursprünglichen Ausrichtung Schnittstellen zur Parallelverarbeitung von Mehrprozessorsystemen. Dieses Aufgabenfeld wird jedoch nun von der Folgeentwicklung TigerSHARC abgedeckt, die im Stande sind über eine Milliarde Gleitkomma-Operationen pro Sekunde auszuführen. TigerSHARC DSPs sind die teuersten DSPs von Analog Devices und weisen auch die allerhöchsten Spezifikationen auf. Auf dieser Seite seien hauptsächlich die hardwareseitigen Merkmale der DSP Familien aufgeführt. Eine große Besonderheit an den Produktfamilien von Analog Devices ist aber, dass sie sich mit unterschiedlichen Programmierumgebungen programmieren lassen. Sigma-DSPs und im Speziellen der ADAU1701 werden in den folgenden Kapiteln näher beschrieben. Institut für Signalverarbeitung und Sprachkommunikation 10 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 2 DSP-Hardware 2.1 Sigma-DSP ADAU1701 Der ADAU1701 arbeitet mit einer Abtastrate von wahlweise 44.1 oder 48 kHz. Je nach Programmierung werden die Daten prozessor-intern mit 28 Bit oder mit 56 Bit Bandbreite verarbeitet (Single/Double Precision). Zum Einlesen von Audio-Daten stehen zwei ADCs, zum Ausgeben vier DAC-Kanäle zur Verfügung. Abb. 2: Block Diagramm des ADAU1701 [ADAU1] Neben den Audiodaten bietet der ADAU1701 noch Hilfssignale in Form von 12 GPIOs, die mittels Sigma Studio konfiguriert werden können als, jeweils 4 digitale Eingänge, 4 digitale Ausgänge und 4 Auxilliary ADC Ports. Institut für Signalverarbeitung und Sprachkommunikation 11 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 2.2 Elektor Schaltung Abb. 3: Das Schaltungsdesign von Elektor [ELEKTOR2] Das Schaltungsdesign von Elektor baut auf das elektronische Referenzdesign von Analog Devices auf. Als sinnvolle Erweiterung wurde der Schaltung ein linearer 4-fach Verstärker (IC2) spendiert. Der ADAU1701 wird im Self-Boot Mode betrieben, was bedeutet, dass beim Power-Up Vorgang das Programm aus dem E2PROM in den DSP geladen wird. Dieser Umstand wird durch die Beschaltung bestimmt. Alternativ würde es auch noch den I²C- oder den SPI- Mode geben, welche im Endeffekt nur den Bus zur externen Speicherquelle des Programms für den DSP bekannt gibt. Institut für Signalverarbeitung und Sprachkommunikation 12 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 2.3 Materialliste In Tabelle 1 und 2 wird eine Liste angeführt, in der das gekaufte Material aufgezählt wird. Benötigtes Werkzeug oder Gebrauchsgut, wie beispielsweise Kabel werden nicht berücksichtigt. Neben der DSP-Platine wird noch eine externe Gleichspannungsquelle von 5...12V benötigt, um das Board zu versorgen. Der Spannungsregler liefert dann eine Boardspannung von 3V3 an die restlichen Bauteile. Als endgültige Programmiermethode für das E2PROM fiel die Entscheidung auf Arduino, da diese Methode die zuverlässigste ist. Elektor DSP-Board [ELEKTOR3] € 72,95 Netzteil Voltcraft universal [AMAZON1] € 16,99 Arduino Uno [CONRAD1] € 31,99 Total € 121,93 Tabelle 1: Materialliste Elektor DSP-Board Zum Vergleich werden unten noch die Preise bei Analog Devices für das hauseigene ADAU1701 Evaluation Board „EVAL-ADAU1701MINIZ“ angeführt. Diese Platine beinhaltet auch Schaltungsteile wie ein internes Netzteil oder eine Verstärkerschaltung für die Ausgangssignale. Zur Kommunikation mit dem PC und dem Programmieren wird das USBInterface „EVAL-ADUSB2EBZ“ verwendet. EVAL-ADAU1701MINIZ [ADAU2] EVAL-ADUSB2EBZ [ADAU3] Total $ 195,00 $ 80,00 $ 285,00 Tabelle 2: Materialliste Evaluation Board Analog Devices Institut für Signalverarbeitung und Sprachkommunikation 13 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 3 Programmier-Software Analog Devices bietet mehrere Produktfamilien von Audio-DSPs an: ADSP, SHARC, SigmaDSP oder Blackfin, um nur einige davon zu nennen. Auf diese wird später noch näher eingegangen. Jedes dieser Produkte ist für unterschiedliche Anwendungsbereiche konzipiert. Darüber hinaus können diese Prozessoren je nach Type mit unterschiedlichen Entwicklungsumgebungen programmiert werden. Es bedarf also einiges an Recherche, um genaue Auskunft über die Funktionalität eines DSPs zu bekommen. In den folgenden Kapiteln wird das Programmieren des ADAU1701 näher beleuchtet. 3.1 Programmierung mit Sigma Studio In der Vergangenheit wurden DSPs ausschließlich programmiert. Sigma Studio verfolgt einen ganz anderen eine graphische Benutzeroberfläche gesteuert wird und Blöcke ersetzt wird. Somit ermöglicht Sigma Studio das anschaulich und schnell. über assembler-ähnlichen Code Ansatz, da es ausschließlich über der Programm Code durch GUI Implementieren von Programmen 3.1.1 Neues Projekt Die Programmierbarkeit wird am Beispiel einer einfachen Talkthrough-Schaltung und der nachfolgenden E2PROM-Programmierung demonstriert, damit ein ganzer Ablauf einmal genau erläutert wird. Die simple Talkthrough-Schaltung dient zur weiteren Messung in Kapitel 4. Umfangreichere Implementierungen folgen in Kapitel 5. Nach dem Öffnen von Sigma Studio erstellt man ein neues Projekt über den Programmaufruf: File > New Project Institut für Signalverarbeitung und Sprachkommunikation 14 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Zum Einstellen der Geräte werden aus der Tree Toolbox die drei Elemente E2Prom, ADAU1701 und USBi per Drag-and-Drop in das Hardware Configuration Fenster nach rechts hinübergezogen und miteinander verbunden (siehe Abb.4). Abb. 4: Definieren der Hardware-Baugruppen Schaltet man im Hauptfenster auf die Registerkarte Schematic, lässt sich das eigentliche Programm erstellen. Es werden nun folgende Elemente von der Tree Toolbox in das Schematics Fenster nach rechts gezogen. 1x Input (ADAU1701 > IO > Input) 2x T Connection (Schematic Design) 4x Output (ADAU1701 > IO > Output) Abb. 5: Talkthrough-Schaltung Die Baugruppen werden über die Eingänge (grün) und Ausgänge (blau) der grafischen Blöcke verbunden, wie in der obenstehenden Abbildung zu sehen ist. Institut für Signalverarbeitung und Sprachkommunikation 15 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Kompiliert wird das Programm durch das Menü: Action > Link Compile Download oder direkt per Druck auf F7. Abb. 6: Kompilieren des Programms Nach dem Kompilieren wechselt man auf die Registerkarte Hardware Configuration zurück. Durch einen Rechtsklick auf ADAU1701 > Write Latest Compilation to E2PROM wird das kompilierte Programm nun in das Hex-File-Format geschrieben, damit es in das E2PROM geladen werden kann. Die Datei E2Prom.hex befindet sich nun im Projekt-Unterordner IC2. Abb. 7: HEX-File-Konversion Nach jeder Veränderung des Programms in Sigma Studio ist es erforderlich das Projekt zu speichern, zu kompilieren, ins Hex-File-Format zu konvertieren und ins E2PROM zu schreiben (siehe Kapitel 3.2). Institut für Signalverarbeitung und Sprachkommunikation 16 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 3.1.2 Einfügen von Auxiliary Inputs Um die Potentiometer vom Elektor-Board ins Programm einzubinden, müssen Auxiliary Inputs in das Schematic eingefügt werden. (ADAU1701 > IO > GPIO > Input > Auxiliary ADC Input) Die ADCs müssen zusätzlich noch im Hardware Configuration Register (oben), IC1 – 170x/140x Register Control (unten) konfiguriert werden. (MP2, MP3, MP8, MP9) Abb. 8: Hardware-Konfiguration der Auxiliary Inputs Dieser Punkt wird noch genauer anhand einer bebilderten Implementierung in Kapitel 5.2 erläutert. Institut für Signalverarbeitung und Sprachkommunikation 17 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 3.2 Programmieren des E2PROMs Das Programm des ADAU1701 wird in ein Onboard - E2PROM gespeichert, welches mittels verschiedener Methoden beschrieben werden kann, die in den folgenden Kaptieln 3.2.1, 3.2.2 und 3.2.3 näher erläutert werden. An dieser Stelle sei das Download-Archiv erwähnt, welches alle zur Programmierung notwendige Software-Tools beinhaltet [ELEKTOR4]. Abb. 9: Blockschaltbild des Programmieraufbaus 3.2.1 Serielle Schnittstelle Um eine serielle Verbindung zwischen dem DSP und einem PC herzustellen, müssen die Leitungen DTR, RTS und GND der seriellen Schnittstelle mit den gleichnamigen Leitungen am Stecker K12 am Elektor Board verbunden werden. Dabei kann es sich um einen native serielle Schnittstelle oder einen USB-to-RS232 Konverter handeln. Weiters wird das Elektor Sigma Studio Serial I²C E2PROM-Programmer Utillity [ELEKTOR4] aus dem Download-Archiv benötigt, um das Hex-File aus Sigma Studio ins E2PROM zu laden. Bevor das E2PROM programmiert werden kann, benötigt das Board Versorgungsspannung und der Jumper JP1 muss gesetzt sein. Dieser zieht das CLATCH/WP (Write Protect) auf LOW-Pegel. Bei jeder Aktion auf dem I2C Bus, wie beispielsweise das Beschreiben des E2PROMS, muss der Jumper gesetzt werden. Institut für Signalverarbeitung und Sprachkommunikation 18 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Mit "Program E2PROM" wird nun der Programmiervorgang gestartet, welcher einige Minuten in Anspruch nehmen kann. Wurde der Programmiervorgang abgeschlossen, so kann mit "Read E2PROM" und anschließendem "Verify" der Inhalt des E2PROMs zurückgelesen und mit dem Hex-File am Host-PC verglichen werden. Nach erfolgreichem Programmieren ist der Jumper JP1 wieder zu entfernen, um den ADAU1701 wieder in den Self-Boot Mode zu versetzen. Als Schlussfazit ist anzumerken, dass beim Programmieren über eine serielle Verbindung der Vorgang gut 10 Minuten dauert und sich sehr fehleranfällig gestaltet. Das heißt, das Board lieferte in einigen Fällen sporadisch gar keinen Output. 3.2.2 Arduino Uno Der Arduino Uno ist eine eigenständige Platine, auf dem sich ein Mikrocontroller und einige digitale und analoge Ein- und Ausgäge befinden. Die Programmierung des Mikrocontrollers erfolgt in C oder C++ und das fertige Programm wird als Sketch bezeichnet. Zur Programmierung des E2PROMs müssen die digitalen Ausgänge des Arduino mit dem Stecker K9 auf dem Elektor Board verbunden werden (siehe Tabelle 3 und Abb. 9) ADAU1701_K9 Arduino SDA 10 SCL 11 WP 12 Reset 13 GND GND Tabelle 3: Pinbelegung des I2C Ports Im Download-Archiv [ELEKTOR4] befindet sich ein Arduino Sketch zum Programmieren des E2PROM. Arduino kommuniziert mit dem PC-Host über USB. Man öffnet die Arduino-Applikation und ruft folgende Datei aus dem ZIP-Archiv auf: \130232-11\Arduino\i2c_E2PROM2\i2c_E2PROM2.ino Es müssen über den Programmaufruf Sketch > Library importieren... > Add Library... noch die benötigten Bibliotheken hinzugefügt werden: \130232-11\Arduino\libraries\I2C\ Institut für Signalverarbeitung und Sprachkommunikation 19 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Damit der Arduino vom PC über die richtige Schnittstelle angesprochen wird, muss diese mittels dem Programmaufruf „Tools > Serieller Port > COM Port wählen“ zuerst definiert werden. Wenn der COM Port nicht bekannt ist, der von Arduino emuliert wird, muss dieser zuerst im Gerätemanager von Windows ausfindig gemacht werden: „Windows+ Taste R > devmgmt.msc > Anschlüsse COM & LPT“ Dann wird der Sketch auf den Arduino geladen mittels dem Pfeil-Button "Upload". Der Jumper JP1 am DSP-Board muss gesetzt sein, damit das Write-Protect-Signal des ADAU1701 auf Ground gezogen wird und der I2C-Port frei zur Programmierung steht. Nun kann mit einem Terminal Emulator (z.B. TeraTerm) das E2Prom.hex File in das E2PROM transferiert werden. Setup > Serial Port ... > Baudrate 19.200 baud File > Send File > E2Prom.hex Es empfiehlt sich, die Konfiguration des TeraTerm abzuspeichern, da dieser beim Neustart immer die zuletzt verwendete Konfiguration lädt. Nach der Übertragung muss der Jumper JP1 wieder entfernt und der Reset-Taster betätigt werden, um den DSP wieder in den Self-Boot Mode zu bringen. 3.2.3 E2PROM Programmierer Es besteht auch die Möglichkeit das E2PROM mit einem Programmiergerät zu brennen, allerdings ist diese die kostenintensivste Variante, da ein E2PROM-Programmiergerät mehrere Hundert Euro kostet. Das E2PROM befindet sich nicht in einem steckbaren Sockel, sondern wurde fix auf dem Elektor Board verlötet. Das Verwenden eines E2PROM Programmers würde weitere UmbauMaßnahmen nach sich ziehen und trotzdem bei jedem erneuten Programmiervorgang das Umstecken der Hardware bedeuten. Somit sprechen mehrere Gründe gegen einen Programmer. Institut für Signalverarbeitung und Sprachkommunikation 20 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 3.3 Diskussion weiterer Programmierumgebungen Analog Devices bietet für die Programmierung derer DSPs verschiedene Programmieroberflächen mit teilweise sehr unterschiedlichen Ansätzen der Programmierung an. Teil der Recherche war es herauszufinden, welche Möglichkeiten der Programmierung beim ADAU1701 zur Verfügung stehen. Visual DSP ist die Software Umgebung, welche von Analog Devices DSP Familien, wie Blackfin, SHARC oder TigerSHARC genutzt werden kann. Die Programme werden in einem maschinenähnlichen Code geschrieben und von einem C/C++ Compiler herausgerechnet. CrossCore Embedded stellt die Weiterentwicklung von VisualDSP++ dar. Das Migrieren von altem VisualDSP++ - Code in die CrossCore Umgebung ist vom Hersteller aus möglich. Die wohl interessanteste Alternative stellen die SHARC DSPs der Reihen ADSP-2136x, ADSP-2146x, ADSP-2147x und ADSP-2148x dar. Sie unterstützen sowohl VisualDSP++ und CrossCore Embedded. Für ausgewählte Prozessoren der Blackfin und der SHARC-Reihe bietet Analog Devices eine zusätzliche Erweiterung „Sigma Studio for SHARC“ an, womit die grapische Benutzeroberfläche von Sigma Studio in die Entwicklungsumgebung von CrossCore eingebettet wird. Genauer gesagt lassen sich also diese Produkte sowohl über Code als auch mit graphischem Interface programmieren. In „Sigma Studio for SHARC“ stehen auch speziell für die jeweilige DSP-Architektur entwickelte Algorithmen zur Verfügung [AD2]. Abb. 10: Programmierung von SHARC-DSPs über „Sigma Studio for SHARC“ Dokumentation über den MATLAB Support von Sigma Studio ist leider rar gesät. Trotzdem gibt es in der Engineer Zone von Analog Devices Informationen, wie es möglich ist, MATLAB als Server mit Sigma Studio als Client kommunizieren zu lassen. Dazu ist allerdings eine permanente USB-Verbindung vom Board zu Sigma Studio notwendig. Soeine direkte Verbindung zwischen ADAU1701 und PC-Host wurde auf dem ELEKTOR Board nicht realisiert. Institut für Signalverarbeitung und Sprachkommunikation 21 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Es mangelt bei Analog Devices allgemein an öffentlich zugänglicher Dokumentation. Eine transparente Übersicht (siehe Kapitel 3.3) scheint in der Dokumentation von Analog Devices nicht auf. Auch wenn es um die Dokumentation von der Programmieroberfläche Sigma Studio geht, wurden nur Tutorials von sehr rudimentären Implementierungen verfasst. Da Sigma Studio aber doch teilweise sehr eigene Konventionen einführt, kann es bei aufwendigeren Algorithmen schnell zu Verständnis-Problemen kommen, zu denen es eben keine Hilfestellung in dokumentierter Form gibt. Abhilfe schafft hier lediglich die sogenannte Engineer Zone von Analog Devices. Dies entspricht dem Technischen Forum des Herstellers, in dem viele Gleichgesinnte und auch hauseigene Ingenieure tätig sind und prompt Lösungen parat haben. Um Zugang zu erreichen ist allerdings eine manuelle Freischaltung notwendig. Für die Bachelor-Arbeit konnten die Anfragen aber im Namen der Forschung getätigt werden und es musste Analog Devices keine konkrete Produktplanung vorgelegt werden, wie es sonst in der Industrie üblich wäre. Institut für Signalverarbeitung und Sprachkommunikation 22 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 4 Vermessung der wichtigsten Performance-Parameter In den nachfolgenden Kapiteln soll das Verhalten des ADAU1701 durch Messungen charakterisiert werden. Es wird dabei auch näher auf die benötigte Testumgebung und notwendige Umbaumaßnahmen eingegangen. 4.1 Messequipment und Aufbau Zu Beginn der Messungen, wurden diese im Regieraum RP1 des SPSC-Instituts mit Hilfe des Audio Precision Messgerätes durchgeführt. Da das Studio nur begrenzt zur Verfügung steht und diverse Umbauarbeiten am DSP-Board durchgeführt wurden bzw. erst bei den Messungen klar wurde, dass diese sogar zwingend notwendig sind, erschien es sinnvoll auf eine unabhängige Lösung umzusteigen. Die Entscheidung fiel auf das kostenfreie Software Paket namens ARTA. Dabei handelt es sich um eine, unter Windows lauffähige, Programmsammlung, welche ursprünglich zur Vermessung von raumakustischen Gütekriterien entwickelt wurde. Das Programmpaket ist grundsätzlich kostenfrei erhältlich, zum Speichern/Laden der Einstellungen und der Plots muss allerdings eine kostenpflichtige Version erworben werden. Die Software verwendet die, im PC eingebaute Soundkarte als Signalgenerator und prinzipiell ist dies mit jeder ASIO-tauglichen Soundkarte realisierbar. ASIO ist ein mehrkanaliges, latenzarmes Transferprotokoll von Audiodaten. Es empfiehlt sich jedoch eine professionelle Soundkarte zur Vermessung von Audiogeräten zu verwenden, um die Messfehleranfälligkeit zu senken und die Messgenauigkeit zu erhöhen. Die Messungen wurden mit der Soundkarte E-MU PCI 1616m durchgeführt. Die für die Tests benötigten Kabel wurden eigens gefertigt. Die ADC-Eingänge, sowie die DACAusgänge wurden in Form von Cinch-Buchsen realisiert. Folglich handelt es sich um eine asymmetrische Übertragung. Das Blockschaltbild des Messaufbaus ist in Abb. 10 zu finden. Institut für Signalverarbeitung und Sprachkommunikation 23 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 11: Blockschaltbild des Messaufbaus [ARTA1] Dabei handelt es sich um die 2-Kanal-Messmethode. Die Besonderheit besteht darin, dass das von der Soundkarte generierte Signal, einerseits das zu testende Gerät speist, andererseits direkt wieder in die Soundkarte zurückgeführt wird. Aus den gemessenen Signalen kann ARTA mittels einer FFT-Analyse Frequenzgänge und Impuls-Antworten berechnen. Um eine Übersteuerung des generierten Signals und folglich eine Verfälschung des Messergebnisses zu vermeiden, ist es sehr wichtig den ausgegebenen Pegel der Soundkarte an das zu testende Gerät anzupassen. Darum ist vor dem Messvorgang eine Kalibrierung notwendig. Unter der Vorkenntnis, mit welchen Spannungspegeln die Soundkarte bzw. das zu testende Gerät arbeiten, kann der Kalibrationsvorgang mit ARTA selbst durchgeführt werden (Setup > Calibrate Devices...). Dabei wird ein 400 Hz Sinus Ton von der Soundkarte generiert und mithilfe eines Voltmeters am Soundkartenausgang gemessen. Mit den gemessenen Werten können nun die Pegel der ASIO Ausgänge bzw. Soundkarten Eingänge richtig justiert werden, sodass sich der zu verarbeitende Spannungspegel innerhalb der Spezifikationen befindet. Institut für Signalverarbeitung und Sprachkommunikation 24 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 4.2 Messung der Frequenzgänge Mithilfe des Programmaufrufs 2 Channel Frequency Response des ARTA Programms, lassen sich Frequenzgänge darstellen. Der ADAU1701 befindet sich im Talkthrough Betrieb. Genauer gesagt, bedeutet dies, dass die beiden zur Verfügung stehenden ADC-Eingänge ohne zusätzlich Klangbearbeitung auf die DAC-Ausgänge durchgeschalten werden. Als Messsignal wird von ARTA ein periodisches, rosa Rauschen erzeugt. Abb. 12: Frequenzgang im Talkthrough-Modus Anhand der ersten Messung sind bereits einige Besonderheiten zu erkennen, die im weiteren Verlauf näher erläutert werden. In Abbildung 12 werden nun die Frequenzgänge der beiden ADC-Kanäle dargestellt. Am zweiten Kanal ist eine Dämpfung von 0.2 dB zu erkennen. Weiters ist im weitgehend linearen Übertragungsbereich eine generelle Dämpfung von -8 dB vorhanden. Zu guter Letzt sind auch noch frequenzabhängige Dämpfungen im tieffrequenten, sowie im hochfrequenten Bereich zu erkennen. Institut für Signalverarbeitung und Sprachkommunikation 25 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Um das Verhalten des ADAU1701 zu verifizieren, wurde ein Vergleich der ersten Messung mit dem Datenblatt von Analog Devices durchgeführt. Abb. 13: Auszug aus dem Datenblatt: Performance [ADAU4] Die Frequenzgänge aus dem Datenblatt weisen nur eine geringe Welligkeit von 0.01 bis 0.02 dB über den gesamten Frequenzbereich auf. 4.2.1 Abweichung des zweiten Kanals Die Dämpfung des zweiten ADC-Kanals ist im Datenblatt als Interchannel Gain Mismatch mit 25 – 250 mdB gegeben [ADAU5]. Die gemessene Abweichung (Abb. 12) liegt also innerhalb der Spezifikation. In Sigma Studio könnte die Differenz mittels Dämpfung des ersten Kanals bzw. Verstärkung des zweiten Kanals kompensiert werden. Institut für Signalverarbeitung und Sprachkommunikation 26 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 4.2.2 Generelle Dämpfung Die über den gesamten Bereich auftretende Dämpfung ist auf die äußere Beschaltung des ADAU1701 zurückzuführen. Wie in der Schaltung unten zu sehen, sind den Anschlüssen ADC0 / ADC1 jeweils ein 18 kΩ Widerstand vorgeschalten. Laut Spezifikation [ADAU5] ist der Innenwiderstand dieser Anschlüsse jeweils 2 kΩ und darf mit einem Strom von 100 µArms betrieben werden. Folglich lässt sich der zur Verfügung stehende Spannungsbereich durch den Außenwiderstand R19 / R20 verändern. Der ADC-Eingang kann also mit 2 Vrms gespeist werden. Der DAC-Ausgang stellt höchstens 0.9 Vrms zu Verfügung. Abb. 14: Auszug des Schaltungsdesigns von Elektor [ELEKTOR1] Die Dämpfung berechnet sich somit folgendermaßen: 20∗log ( 0.9 Vrms )=−6.93 dB 2.0 Vrms Werden R19 und R20 jeweils durch einen 7 kΩ Widerstand ersetzt, wird der Spannungsbereich am Eingang auf 0.9 Vrms herabgesetzt. 4.2.3 Tiefpassverhalten Die Koppelkondensatoren C21 und C22 sollen den Chip für Gleichspannungen entkoppeln. Dennoch verursachen genau diese Kondensatoren den -3 dB Knick bei 88 Hz. Da die Kondensatoren im Referenzdesign von Analog Devices nicht vorgesehen sind, wurden sie für nachfolgende Messungen überbrückt. 4.2.4 Hochpassverhalten Die RC-Filter an den Ausgängen sorgen für die Rauschunterdrückung außerhalb des Frequenzbandes bei 50 kHz. Die Dämpfung macht sich jedoch auch schon ab 5 kHz bemerkbar, wie in Abbildung 12 zu sehen. Da die Ausgangsfilter im Referenzdesign von Analog Devices enthalten sind, wurden sie für nachfolgende Messungen so belassen. Institut für Signalverarbeitung und Sprachkommunikation 27 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 4.2.5 Messung nach Umbau Die nachfolgende Koppelkondensator Frequenzcharakteristik wurde am Eingang aufgenommen, nachdem der kurzgeschlossen wurde. Abb. 15: Frequenzgang bei Talkthrough-Betrieb mit überbrückten Kondensatoren am Eingang Versuchsweise wurde auch das RC-Filter am Ausgang überbrückt, für die weiteren Messungen aber wieder in den Urzustand gebracht. Abb. 16: Frequenzgang bei Talkthrough ohne Ein- und Ausgangsfilter Institut für Signalverarbeitung und Sprachkommunikation 28 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 4.3 Signalrauschabstand Mithilfe des ARTA-Programmaufrufs Spectrum Analyzer ist es möglich, ein parametrierbares Sinus Signal an das zu testende Gerät zu schicken und das Signal am Ende der Messkette grafisch darzustellen. Hierbei wurde in das System mit einem Sinus-Signal bei 1 kHz angeregt. Aus den Messergebnissen lässt sich sowohl der Signalrauschabstand als auch der Klirrfaktor bestimmen. Abb. 17: FFT-Analyse mit einem 1 kHz Sinus als Eingangssignal Gemessene Werte: RMS = -29.6 dBV THD = 0.0040% THD + N = 0.025% Der Wert für THD + N ist im Datenblatt mit -83 dB angegeben und lässt sich in aus den Messungen wie folgt berechnen: 20∗log ( 0.025 )=−72.04 dB 100 Somit bietet das Messergebnis mit rund 11 dB Differenz noch Verbesserungspotential. Institut für Signalverarbeitung und Sprachkommunikation 29 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Zur Bestimmung des Signalrauschabstandes wurde auch noch das Übertragungsverhalten der Talkthrough Schaltung gemessen, wenn kein externes Signal anliegt. Es soll also nur der reine Rauschanteil des DSP-Boards ermittelt werden. Abb. 18: FFT-Analyse ohne Eingangssignal Gemessener Wert: RMS = -101.2 dBV Zusätzlich wurde mit dem Voltmeter am DAC Ausgang bei einem voll ausgesteuertem Sinus bei 1 kHz gemessen: 502 mVrms. Somit errechnet sich der Signalrauschabstand wie folgt: 101.2 dBV +20∗log(502 mVrms)=95.21 dB Analog Devices gibt im Datenblatt eine SNR von 100 dB an. Im nachfolgenden Kapitel wird untersucht, ob die THD+N, sowie die SNR-Werte noch verbessert werden können. Bei näherem Betrachten von Abbildung 15 und 16 wird ersichtlich, dass in der Messkette wohl Störspitzen verursacht werden, die unabhängig von der Systemanregung entstehen. Institut für Signalverarbeitung und Sprachkommunikation 30 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Als erste Fehlerurssache konnte der externe Mikrocontroller Arduino UNO identifiziert werden. Zur einfacheren Handhabung war dieser bei den vorigen Messungen immer über die I2C-Datenleitung an das DSP Board angeschlossen und wurde über einen USB-Port des PCs versorgt. Bei den Messungen mit ARTA werden beide Leitungen für zukünftige Messungen abgeklemmt. Zusätzlich konnte der Signalrauschabstand nachweislich verbessert werden, indem der Pegel des Signalgenerators von -9 dB FS auf 0 dB FS angehoben wurde. Abb. 19: FFT-Analyse mit einem 1 kHz Sinus als Eingangssignal Gemessene Werte: RMS = -20.7 dBV THD = 0.0031% THD + N = 0.0088% Der neue Wert für THD + N lässt sich wie folgt berechnen: 20∗log ( 0.0088 )=−81.11 dB 100 Damit liegt der THD + N Wert schon sehr nahe an den -83 dB aus dem Datenblatt. Institut für Signalverarbeitung und Sprachkommunikation 31 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 20: FFT-Analyse ohne Eingangssignal Gemessener Wert: RMS = -102.1 dBV Zusätzlich wurde wieder mit dem Voltmeter am DAC Ausgang bei einem voll ausgesteuertem Sinus bei 1 kHz gemessen: 704 mVrms. Somit errechnet sich der Signalrauschabstand wie folgt: 102.1 dBV +20∗log(704 mVrms)=99.05 dB Also hat sich auch der Signalrauschabstand knapp auf die Datenblattangabe von 100 dB angenähert. In Abbildung 17 und 18 ist sehr gut ersichtlich, dass die Störspitzen, die durch das Arduino Board verursacht wurden, nun verschwunden sind. Institut für Signalverarbeitung und Sprachkommunikation 32 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5 Implementierungen von Audioeffekten Im diesem Kapitel soll anhand von Filtern und Effekten gezeigt werden, wie Sigma Studio praxisnahe eingesetzt werden kann und die Ergebnisse in Form von Messungen verifiziert werden können. Prinzipiell ist es in Sigma Studio möglich z.B. gesamte Klangregelungen zur Ansteuerung von Aktiv-Lautsprechern oder auch Multieffektgeräte für Instrumente zu entwerfen. Allerdings gibt es je nach Produktausprägung des DSPs hardwareseitig gewisse Limitierungen. So wurden beim ADAU1701 z.B. nur 4 Auxiliary ADCs integriert, die am Elektor-Board durch Potentiometer angesteuert werden. Dadurch ist man beim Einwirken auf das intern ablaufende Programm von außen eingeschränkt. Eine weitere Begrenzung stellt der kleine Daten-RAM des ADAU1701 dar, der mit insgesamt 2048 Datenwörter bemessen ist. Bei einer Abtastrate von 48 kHz ermöglicht dies eine theoretische, gesamte Delay-Dauer von nur ca. 43 ms. Das auszuführende Programm wird in den Speicher des 256 Kilobit großen, externen E2PROM geladen. Für die Praxis bedeutet dies, dass man beim Verwenden von Variablen, Ein- und Ausgabebaugruppen, sowie Rechenfunktionen auch begrenzt wird. Der ADAU1701 besitzt weiters kein integriertes Speicherinterface, sodass man den DSP etwa durch zusätzlichen externen Speicher erweitern könnte. Als Gesamtfazit bedeutet dies, dass der ADAU1701 speziell für komplexe Programme ungeeignet ist. Da das Programmieren in Sigma Studio allerdings sehr anschaulich ist, stellt der ADAU1701 gerade wegen des Preisvorteils eine sehr interessante Alternative für Evaluierungszwecke der kostenfreien Programmierumgebung Sigma Studio dar. Innerhalb der ADAU170x DSP-Familie gibt es auch teurere Chip-Varianten, die mit mehr Eingängen, Ausgängen und größerem Speicher ausgestattet sind. Institut für Signalverarbeitung und Sprachkommunikation 33 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5.1 Entwurf eines Bandpassfilters In der Literatur werden IIR-Filter und deren Implementierungsformen inklusive deren Vorund Nachteile ausführlich diskutiert [SPT1, DAFX4]. Das Ziel des Versuches ist es, die Grundstrukturen von IIR-Filtern (siehe Abb. 21 bis 23) mithilfe des DSP-Boards zu implementieren und deren unterschiedlichen Merkmale in Form von Messungen zu veranschaulichen. Zuallererst musste also der Filterentwurf am Blatt durchgeführt werden. Dazu wurden die Formeln von Robert Bristow-Johnson [BRISTOW1] herangezogen. Es sollte ein Bandpassfilter dimensioniert werden mit den Parametern fc = 3000 Hz, Q = 1. Die erwähnten Formeln für den Bandpassentwurf lauten wie folgt: α= sin (ω0 ) 2Q b0 = sin (ω0 ) 2 b1=0 Abb. 21: IIR-Filter: Direktform 1 [STANFORD1] b 2=−b 0 a 0=1+α a 1=−2 cos (ω0 ) a 2=1−α Abb. 22: IIR-Filter: Direktform 2 [STANFORD2] Abb. 23: IIR-Filter: Transponierte Form 1 [STANFORD3] Institut für Signalverarbeitung und Sprachkommunikation 34 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Zu guter Letzt werden die Filterkoeffizienten noch auf a0 normiert. Die zu verwendenden Filterkoeffizienten lauten für die gegebene Dimensionierung: b0 = 0.167993, b1 = 0, b2 = -0.167993 a0 = 1, a1 = -1.62228, a2 = 0.75594 Die Differenzengleichungen für die drei Strukturen (Abb. 21 bis 23) lauten: Direktform 1 (DF1): y DF1 ( n)=b0 x (n)+b1 x( n−1)+b 2 x (n−2)−a 1 y (n−1)−a 2 x(n−2) Direktform 2 (DF2): v DF2 (n)=x (n)−a 1 v(n−1)−a 2 v(n−2) y DF2 ( n)=b0 v (n)+b1 v (n−1)+b2 v ( n−2) Transponierte Form 1 (TF1): s2.TF1 (n)=−a 2 x(n−1) s1.TF1 ( n)=s 2.TF1 (n−1)−a 1 x (n−1) v TF1 (n)=s 1.TF1 (n)+ x( n) s4.TF1 ( n)=b 2 v (n−1) s3.TF1 ( n)=s4.TF1 (n−1)+b 1 v (n−1) y TF1 (n)=s 3.TF1 (n)+b 0 v( n) Die Filterkoeffizienten können nun direkt in die IIR-Filter Grundformen Direkt-Form 1, Direkt-Form 2 und Transponierte Form übertragen werden [WIKIPEDIA1]. Damit sich die Übertragungscharakteristika rasch an den DAC-Ausgängen messen lassen können, wurden alle drei Filtertypen in einem Programm implementiert. Das Hauptprogramm speist das Eingangssignal an die drei Filter-Unterprogramme und verteilt das gefilterte Signal an die jeweiligen Ausgänge. Abb. 24: IIR-Filter Hauptprogramm Institut für Signalverarbeitung und Sprachkommunikation 35 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Die nun folgenden Bilder zeigen die Unterprogramme, in denen die jeweiligen Filtertypen implementiert wurden. Abb. 25: IIR-Filter Unterprogramm Direkt Form 1 Abb. 26: IIR-Filter Unterprogramm Direkt Form 2 Institut für Signalverarbeitung und Sprachkommunikation 36 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 27: IIR-Filter Unterprogramm Transponierte Form 1 Beim Unterprogramm der Transponierten Form 1 wurde versucht das Layout des Blockschaltbildes (Abb. 23) beizubehalten. Da die grafischen Blöcke in Sigma Studio jedoch einen Signalfluss von links nach rechts besitzen, ist dieser in der Implementierung etwas schwerer zu verstehen. Die zur Implementierung benötigten grafischen Bausteine befinden sich in der Tool Treebox: Linear Gain (ADAU1701 > Basic DSP > Adjustable Gain > Single/Multiple Controls > No Slew > Linear Gain) Signal Add (ADAU1701 > Basic DSP > Arithmetic Operations > Signal Add) Delay (ADAU1701 > Basic DSP > DSP Functions > Delay > Delay) Feedback (ADAU1701 > Basic DSP > DSP Functions > Feedback) T Connection (Schematic Design > T Connection) Hierarchy Board (Schematic Design > Hierarchy Board) Hierarchy Input (Schematic Design > Hierarchy Input) Hierarchy Output (Schematic Design > Hierarchy Output) Institut für Signalverarbeitung und Sprachkommunikation 37 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Der Vollständigkeit halber sei an dieser Stelle auch noch die Transponierte Form 2 erwähnt. Dieser Filtertyp führt eine Addition von mit- und rückgekoppelten Signalen durch und verzögert diese gemeinsam. Leider ist es in Sigma Studio nicht möglich soeinen Algorithmus zu entwickeln, da die oben genannte Rechenoperation beim Kompilieren als unzulässig interpretiert wird. Abb. 28: IIR-Filter: Transponierte Form 2 [STANFORD3] Die Übertragungsfunktionen der drei Filtertypen (DF1, DF2, TF1) wurden nach abgeschlossener Implementierung mit dem Softwarepaket ARTA gemessen (siehe Abb. 30 bis 32). Um die Messergebnise im Anschluss zu diskutieren, wurde als Messreferenz eine Talkthrough-Schaltung mit einem 3 kHz Sinus gespeist (siehe Abb. 29). Abb. 29: FFT-Analyse einer Talkthrough-Schaltung Institut für Signalverarbeitung und Sprachkommunikation 38 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 30: FFT-Analyse der DF1 Abb. 31: FFT-Analyse der DF2 Institut für Signalverarbeitung und Sprachkommunikation 39 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 32: FFT-Analyse der TF1 Im direkten Vergleich zur Talkthrough-Messung (Abb. 29) ist bei den drei IIR-Filtern (Abb. 30 bis 32) die Übertragungscharakteristik des Bandpasses an dessen Mittenfrequenz bei 3 kHz sehr gut sichtbar. Da beim Messvorgang eine zeitliche Mittelung stattfindet, ist nicht jede Messung exakt gleich. Der Rauschteppich entsteht zufällig und daher variiert dieser bei jedem Messdurchlauf. Dies hat auch zur Folge, dass die THD+N-Werte zumindest an der vierten Nachkommastelle um ±0.0002% schwanken. Es ist aber trotz dieser Messunsicherheit erkennbar, dass die DF1 tendenziell höhere THD und THD+N-Werte als DF2 und TF1 anzeigt. Dies ist auch in den Harmonischen des 3 kHz zu sehen. Eigentlich wurde erwartet, dass DF1 in Bezug auf die SNR-Werte besser abschneidet. Es ist anzunehmen, dass das Grundrauschen der verwendeten Komponenten das Gesamtrauschen deutlich beeinflusst. Institut für Signalverarbeitung und Sprachkommunikation 40 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5.2 Implementierung eines Phaser-Effekts Phaser sind in der Musik ein übliches Stilmittel zur Klanggestaltung von elektronischen Tasteninstrumenten und Gitarren. Durch einen sich zeitlichen ändernden Filter-Effekt erhält das veränderte Signal einen rythmischen Klangfärbung. Ziel der Implementierung soll es sein, ein eingespeistes Stereo-Signal durch Filtergruppen mit einem Phasereffekt auszugeben, wie er in klassischen Phaser-Geräten zum Einsatz kommt. Üblicherweise wird dies durch eine Kaskadierung von Allpass-Filtern realisiert. Durch die Dimensionierung der Allpass-Filter werden die Frequenzen bestimmt, an denen das Summensignal dämpft bzw. verstärkt wird. Damit der Effekt nicht statisch bleibt, sondern sich über die Zeit verändert, werden die Filterkoeffizienten über einen spannungsgesteuerten Oszillator moduliert. Ein typisches Blockschaltbild [DAFX1] sieht wie folgt aus. Illustration 1: Phaser mit dynamischen Allpass-Filtern [DAFX1] Der Signalfluss des Blockschaltbilds wird im Hauptprogramm aufgebaut, der Allpass und die Frequenzmodulation in Unterprogrammen. Unterprogramme lassen sich durch sogenannte Hierarchy Boards in der Tool Treebox von Sigma Studio in das Hauptprogramm einfügen. Innerhalb der Hierarchy Boards werden die Ein- und Ausgänge durch Hierarchy Inputs bzw. Hierarchy Outputs definiert. Ein Screenshot des Hauptprogramms befindet sich auf der nächsten Seite in und wird auf der Folgeseite genau besprochen. An der unteren Kante der Screenshots ist an den Registerkarten ersichtlich in welchem Teil des Programms gerade gearbeitet wird. Institut für Signalverarbeitung und Sprachkommunikation 41 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 33: Hauptprogramm des Stereo-Phasers Institut für Signalverarbeitung und Sprachkommunikation 42 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Über einen Multiplexer kann das Eingangssignal des Programms ausgewählt werden. Zur Verfügung stehen die ADC-Eingänge 0 und 1, sowie ein intern generiertes weißes Rauschen. Damit der Phaser in Stereo arbeitet, gleicht der obige dem unteren Signalzweig. Die durch die AUX ADCs veränderbaren Parameter beeinflussen beide Zweige in gleichem Maße. Die Werte für die jeweiligen Eingangsverstärkungen für den Original-Signalpfad bzw. den veränderten Signalpfad wurden durch Experimentieren für passend befunden. Durch AUX_ADC_0 wird das Ausmaß der Rückkopplung gesteuert. AUX_ADC_1 verändert den Pegel des verzögerten Signals, das zum Originalsignal hinzuaddiert wird. Die Unterprogramme werden im Signalflussgraph durch weiße Kästchen dargestellt. Beim Erstellen des Programmes hat sich herausgestellt, dass der Phasing Effekt am besten hörbar wird, wenn 5 Allpass-Filter hintereinander kaskadiert werden. Die Koeffizienten für die Allpass-Filter werden durch das Unterprogramm „Mod“ an jedes der Allpass-Filter ausgegeben. Der konkrete Aufbau eines statischen Allpass-Filters wird wie in Abb. 30 realisiert. Abb. 34: Blockschaltbild eines Allpass-Filters Die Übertragungsfunktion eines Allpass-Filters erster Ordnung ist gegeben durch: H (z )= b0+b1 z −1 1+a1 z −1 Die Koeffizienten des Allpass-Filters werden wie folgt berechnet: a 1=e ( 2Π f 0 ) Fs , b0 =−a 1 , b1=1 Über f0 lässt sich die frequenzabhängige Phasenverzögerung einstellen. Fs bezeichnet die Abtastrate. Um die Phasenverzögerung nun mittels eines Sinus-Signals zu modulieren, muss zuerst der relevante Frequenzbereich ermittelt werden. Als untere Frequenzgrenze wurden fU = 100 Hz und als obere Frequenzgrenze f O = 9000 Hz festgelegt. Die Abtastrate beträgt 48 kHz. Nun werden die variablen Funktionswerte für a1 mit der obigen Formel berechnet, zwischen denen das Sinus-Signal hin- und hermoduliert. a1U = 0.98, a1O = 0.3 Institut für Signalverarbeitung und Sprachkommunikation 43 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Um die Frequenz des Sinus-Signals einstellbar zu machen, muss eine VCO-Instanz im Sigma Studio Programm implementiert werden. Dieser VCO-Block nimmt einen dezimalen Zahlenwert von 0.0 bis 1.0 auf, um eine Sinusschwingung mit einer Frequenz von 0 bis F s/2 auszugeben. Möchte man diese Sinusschwingung nun variabel gestalten, so muss der VCO über einen AUX ADC Input angesteuert werden. Die integrierten AUX ADCs liefern eine Spannung von 0 bis 3.0 VDC und geben innerhalb dieses Spannungsbereichs einen Dezimalwert von 0.0 bis 1.0 in Sigma Studio aus. Der ADAU1701 verarbeitet sowohl AudioDaten als auch Programm-Daten im sogenannten Binärformat „5.23“. Somit muss der gelieferte Datenwert vom AUX ADC nicht ins Integer-Zahlenformat konvertiert werden, wie es oft bei anderen DSPs üblich ist. Der vom AUX ADC eingelesene Zahlenwert muss also mit der gewünschten, maximalen Sinus-Frequenz multipliziert und durch die halbe Abtastrate geteilt werden, damit der VCO die gewünschte Schwingung ausgibt. Möchte man mit dem VCO eine Sinus-Schwingung von 10 Hz ausgeben. Damit ergibt dies einen Zahlenwert von 10/24000 = 0.000416. Abb. 35: Unterprogramm zur Frequenzmodulation Mittels AUX_ADC_2 wird also die ausgegebene Frequenz des VCOs von 0 bis 10 Hz eingestellt. AUX_ADC_3 verändert die Amplitude des Sinus-Signals und somit die Intensität des Effektes. Institut für Signalverarbeitung und Sprachkommunikation 44 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Das Blockschaltbild aus Abb. 32 wurde nun im Unterprogramm „AllPassFilter“ realisiert. Abb. 36: Unterprogramm eines Allpass-Filters Auch hier wurde festgestellt, dass der Phasing Effekt am besten zur Geltung kommt, wenn das Signal anstatt von 1 Samples um 2 Samples verzögert wird. Im Hauptprogramm können die Unterprogramme kopiert werden und werden durch einen Unterstrich und eine Nummerierung gekennzeichnet. Die Unterprogramme werden also als eigenständige Instanzen eingeführt. Diese Unterprogramme unterscheiden sich also deutlich vom klassischen Programmieren, bei dem zum Sparen des Speichers immer nur ein Unterprogramm aufgerufen werden soll. Institut für Signalverarbeitung und Sprachkommunikation 45 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Beim Einspeisen von Audiomaterial in das fertige Programm wurde festgestellt, dass der Pegel des Summensignals rein subjektiv enorm ansteigt, wenn die Verstärkung des AllpassKaskadenzweigs erhöht wird. Um der Ursache auf den Grund zu gehen, wurde der PhaserEffekt mit dem Softwarepaket ARTA durchgemessen. In einer ersten Messung wurde das Summensignal bei voll ausgesteuerter Allpasskaskaden-Verstärkung in Form eines Amplitudenganges dargestellt. Abb. 37: Amplitudengang der Phaser-Schaltung Institut für Signalverarbeitung und Sprachkommunikation 46 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Um das Verhalten jeder einzelnen Allpass-Stufe zu untersuchen, wurde ein eigenes Programm erstellt, um den Ausgang jedes Allpass-Filters abzugreifen und als Amplitudengang darzustellen. Die Kurven aller Allpässe wurden nun in einem Diagramm überlagert. Abb. 38: Übertragungsfunktionen der einzelnen Allpass-Stufen Aus dem Messergebnis lässt sich ablesen, dass durch die Allpass-Kaskadierung ein sehr ausgeprägter Höcker zwischen 1000 Hz und 15000 Hz zustandekommt. Jedes Allpass-Filter addiert bei 5000 Hz 4 bis 5 dB hinzu. Durch das Summieren des Signals aus der Allpass-Kaskade mit dem Original-Signal entsteht die Übertragungscharakteristik aus Abbildung 37. Es bestätigte sich also der Eindruck, dass der Pegel des Summensignals durch das Hinzuaddieren des Allpass-gefilterten Signals zu den hohen Frequenzen hin sehr stark ansteigt. Institut für Signalverarbeitung und Sprachkommunikation 47 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5.3 Implementierung eines Tongenerators Um aus einer Sinus-Schwingung Rechteck-, Dreieck- sowie Sägezahn-Schwingungen zu berechnen, können Fourierreihen verwendet werden. Um die Funktionsweise dieser zu veranschaulichen und in weiterer Folge hörbar zu machen, sollte ein Tongenerator entworfen werden. Die mathematischen Formeln, die der Berechnung zugrunde liegen, lauten wie folgt: Dreieckfunktion 3 sin ((2k−1)ω t) 8h f (t)= (−1)(k−1) ∑ Π ² k=1 (2k−1)² Rechteckfunktion 3 sin((2k−1)ω t) 4h f (t)= Π ∑ ( ) 2k−1 k=1 Sägezahnfunktion 3 f (t)= sin (k ω t) −2h (−1)(k −1) ∑ Π k=1 k Die Variable h ist Platzhalter für die gewünschte Amplitude und wurde der Einfachheit halber eins gesetzt. Da Sigma Studio nicht im Stande ist Reihen zu berechnen, müssen die einzelnen Glieder separat berechnet werden. Zur Berechnung der Funktionsterme sind weiters nur einfache mathematische Operatoren notwendig. Die Sinus-Schwingung wird mithilfe von VCOs realisiert. Da der Speicherbedarf mit der Ordnung der Reihen zunimmt, stellte sich am Ende des Programmierens heraus, dass die Ordnungszahl auf 3 begrenzt werden muss, damit das Programm in den Speicher des E2PROMs hineinpasst. Es mussten auch teilweise die mathematischen Operatoren weggelassen, am Papier berechnet und als fixe Konstanten in das Programm eingebaut werden. Darum wirkt der Signalfluss im Programm teilweise etwas abstrakt. Die Funktionen zur Berechnung der Fourierreihen-Signale werden als Unterprogramme ausgeführt. AUX_ADC_0 steuert die Frequenz des VCO-generierten Sinus-Signals von 0 bis 1000 Hz. Mittels AUX_ADC_1, AUX_ADC_2 und AUX_ADC_3 wird der Pegel gesteuert, mit dem der jeweilige Signalpfad zum Sinus-Signal hinzuaddiert wird. Aufgrund der Bildgröße befinden sich die Screenshots des Hauptprogramms, sowie der drei Unterprogramme im Anhang auf den Seiten 57 bis 60. Institut für Signalverarbeitung und Sprachkommunikation 48 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5.4 Implementierung eines Delay-Effekts Wie der Name schon sagt, verursachen Delay-Effekte eine zeitliche Verzögerung des Eingangssignals. Werden verzögerte Signale zum Originalsignal hinzugefügt, treten Dämpfungen sowie Verstärkungen in gewissen Frequenzbereichen des Summensignals auf. Der hier besprochenen Implementierung liegt ein Algorithmus zugrunde, der von Jon Dattoro [DAFX2] entwickelt wurde. Das Herzstück des Blockschaltbildes stellt ein Verzögerungsglied dar, dessen Verzögerungswert einen maßgeblichen Einfluss auf das ausgegebene Signal hat. Abb. 39: Variable Delay-Line Die einzelnen Signalpfade lassen sich durch veränderbare Parameter variieren. Der Multiplikator Blend (BL) gibt Auskunft über den Anteil des hinzuaddierten Originalsignals, Feed Forward (FF) steuert den Anteil des verzögerten Signals. Rückgekoppelt wird das verzögerte Signal über den Multiplikator Feedback (FB). In der obrigen Schaltung wird ein Fractional Delay verwendet, welches es ermöglicht das Signal um Bruchteile eines Samples zu verzögern. Der Einfachheit halber, wurde in der Implementierung darauf verzichtet und nur eine Verzögerung von ganzzahligen Samples verwendet. Beim Entwurf des obigen Modells wurde von Dattoro eine Tabelle entwickelt, in der Richtwerte für die gegebenen Parameter angeführt sind. Abb. 40: Typische Richtwerte für den Delay-Effekt Institut für Signalverarbeitung und Sprachkommunikation 49 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Die Schaltung wurde so realisiert, dass ein stufenloses Verändern zwischen einem Vibratound einem Flanger-Effekt möglich ist. Wie auch beim Implementieren des Stereo-Phasers in Kapitel 5.3, wird zur Steuerung des Verzögerungsgliedes ein über AUX ADC variabler VCO verwendet. Falls ein Chorus- bzw. Doubling-Effekt gewünscht wäre, müsste die Verzögerung mittels einem tiefpassgefilterten, weißen Rauschen gesteuert werden. Abb. 41: Realisierung des Delay-Effekts Institut für Signalverarbeitung und Sprachkommunikation 50 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 5.5 Implementierung eines State-Var-Filters Bei State-Var Filtern handelt es sich um mehrfach rückgekoppelte Filter, die alle 3 Übertragungsfunktionen liefern: Hochpass, Bandpass und Tiefpass. Die Signale werden an den jeweiligen Klemmenpunkten in den Signalpfaden abgegriffen. Die gemeinsamen, einstellbaren Parameter sind die Knickfrequenz fc sowie die Filtergüte Qc. Die hier besprochene Implementierung liegt dem Filterentwurf von Hal Chamberlin zugrunde [MAFM1]. Abb. 42: Digitales State-Var-Filter F C =2 sin (π fC 1 ) , QC = fS Q Der Funktionswert für FC muss für die Implementierung als Variable berechnet werden. Als Wert für fC wurde 10 kHz gewählt. Da FC über ein AUX ADC Potentiometer angesteuert wird, ergibt sich somit ein maximaler Wert von 0.0228. Damit lässt sich die variable Knickfrequenz des State-Var Filters von 0 bis 1 kHz variieren. Die Filtergüte Q ist das Dämpfungsmaß für die Bandbreite an der Knickfrequenz. Gerade im Audio-Bereich ist ein einstelliger Zahlenwert für den Q-Faktor üblich. Gewählt wurde ein Wert von 3 und ergibt somit 1/3 für QC. Die Abbildung der State-Var-Filter Implementierung befindet sich auf der nächsten Seite. Über einen Multiplexer wählt man das Eingangssignal aus einem Mono-Signal oder einem intern generierten, weißen Rauschen. Die 3 Filtertypen können an den Ausgängen DAC0, DAC1 und DAC2 abgehört werden. Institut für Signalverarbeitung und Sprachkommunikation 51 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 43: Realisierung des State-Var-Filters Institut für Signalverarbeitung und Sprachkommunikation 52 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 6 Literaturverzeichnis [AD1] DSP Übersicht: http://www.analog.com/en/products/processors-dsp.html Letzter Zugriff 17.01.2015 Direktlinks zu den Produktfamilien: ADSP-21xx: http://www.analog.com/en/products/processors-dsp/adsp-21xx-processors.html Blackfin: http://www.analog.com/en/products/processors-dsp/blackfin.html SHARC: http://www.analog.com/en/products/processors-dsp/sharc.html TigerSHARC: http://www.analog.com/en/products/processors-dsp/tigersharc-processors.html SigmaDSP: http://www.analog.com/en/products/processors-dsp/sigmadsp-audioprocessors.html Letzter Zugriff: 02.02.2016 [AD2] Sigma Studio for SHARC Produktübersicht: http://www.analog.com/en/designcenter/processors-and-dsp/evaluation-and-development-software/sh_sigst_00.html#dsprelatedsoftware Letzter Zugriff: 02.02.2016 [ADAU1] Datasheet, Seite 5: http://www.analog.com/media/en/technicaldocumentation/data-sheets/ADAU1701.pdf Letzter Zugriff. 01.10.2015 [ADAU2] http://www.analog.com/en/design-center/evaluation-hardware-andsoftware/evaluation-boards-kits/EVAL-ADAU1701.html#eb-buy Letzter Zugriff: 01.10.2015 [ADAU3] http://www.analog.com/en/design-center/evaluation-hardware-andsoftware/evaluation-boards-kits/eval-adusb2ebz.html#eb-buy Letzter Zugriff: 01.10.2015 [ADAU4] Datasheet, Seite 15: http://www.analog.com/media/en/technicaldocumentation/data-sheets/ADAU1701.pdf Letzter Zugriff. 01.10.2015 [ADAU4] Datasheet, Seite 6: http://www.analog.com/media/en/technicaldocumentation/data-sheets/ADAU1701.pdf Letzter Zugriff. 01.10.2015 Institut für Signalverarbeitung und Sprachkommunikation 53 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine [ELEKTOR1] ELEKTOR Jänner/Februar 2014: „Universelles Audio-DSP-Board“ Elektor-Verlag GmbH, Aachen, 2014 [ELEKTOR2] ELEKTOR Jänner/Februar 2014: Seite 13 [ELEKTOR3] http://www.elektor.de/adau1701-universal-audio-dsp-board-130232-71 Letzter Zugriff: 01.10.2015 [ELEKTOR4] Elektor File-Archiv zugehörig zu [ELEKTOR1] http://www.elektormagazine.com/index.php? eID=tx_nawsecuredl&u=0&g=0&t=1422102021&hash=66d26795a1bbb169c33ef4812f8a63f 3fae5e6f1&file=fileadmin/user_upload/2014/dolo/130232-11.zip Letzter Zugriff: 01.10.2015 [AMAZON1] http://www.amazon.de/ANSMANN-5111253-StromversorgungElektrokleinger%C3%A4te-einsetzbar/dp/B002TQ2204/ref=sr_1_1?s=cede&ie=UTF8&qid=1443977034&sr=1-1&keywords=ANSMANN+5111253 Letzter Zugriff: 01.10.2015 [CONRAD1] https://www.conrad.at/de/arduino-uno-platine-65139-191789.html Letzter Zugriff. 01.10.2015 [ARTA1] http://www.artalabs.hr/download/ARTA-user-manual.pdf Seite 8, Abbildung 1.4 Letzter Zugriff: 03.10.2015 [BRISTOW1] BRISTOW-JOHNSON Robert: „Audio EQ Cookbook“ http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt Letzter Zugriff: 01.10.2015 [STANFORD1] Julius O. Smith: „Introduction to Digital Filters with Audio Application“ Online-Paper, Direktform 1: https://ccrma.stanford.edu/~jos/fp/Direct_Form_I.html Letzter Zugriff: 02.02.2016 [STANFORD2] Julius O. Smith: „Introduction to Digital Filters with Audio Application“ Online-Paper, Direktform 2: https://ccrma.stanford.edu/~jos/fp/Direct_Form_II.html Letzter Zugriff: 02.02.2016 [STANFORD3] Julius O. Smith: „Introduction to Digital Filters with Audio Application“ Online-Paper, Transponierte Form 1: https://ccrma.stanford.edu/~jos/fp/Transposed_Direct_Forms.html Letzter Zugriff: 02.02.2016 [WIKIPEDIA1] Wikipedia.org: „Digital biquad filter“ http://en.wikipedia.org/wiki/Digital_biquad_filter Letzter Zugriff: 01.10.2015 [DAFX1] ZÖLZER Udo: „DAFX : Digital Audio Effects 2nd Edition“, Seite 68/69 [DAFX2] ZÖLZER Udo: „DAFX : Digital Audio Effects 2nd Edition“, Seite 77/78 Institut für Signalverarbeitung und Sprachkommunikation 54 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine [DAFX3] ZÖLZER Udo: „DAFX : Digital Audio Effects 2nd Edition“, Seite 50/51 [DAFX4] ZÖLZER Udo: „DAFX : Digital Audio Effects 2nd Edition“, Kapitel 2: Filters and Delays [SPT1] MAGNES, Werner, Dipl.-Ing Dr. techn.: Signalprozessortechnik Vorlesungsunterlagen Seite 32 bis 39 [MAFM] CHAMBERLIN Hal: „Musical Applications for Microprocessors“, ab Seite 489/490 Institut für Signalverarbeitung und Sprachkommunikation 55 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 7 Abbkürzungsverzeichnis DSP ADC DAC GPIO E2PROM I²C SPI USB ASIO D.U.T. AUX IIR DF1 DF2 TF1 SNR AP VCO … … … … … … … … … … … … … … … … … … Digital Signal Processor Analog-Digital-Converter Digital-Analog-Converter General Purpose Input / Output Electrically erasable programmable Read-Only-Memory Inter integrated circuit Serial Peripheral Interface Universal Serial Bus Audio Stream Input / Output Device under test Auxiliary Infinite Impulse Response Direktform 1 Direktform 2 Transponierte Form 1 Signal-to-Noise Ratio Allpass Voltage controlled oscillator Institut für Signalverarbeitung und Sprachkommunikation 56 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine 8 Anhang Institut für Signalverarbeitung und Sprachkommunikation 57 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 44: Hauptprogramm des Tongenerators Institut für Signalverarbeitung und Sprachkommunikation 58 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 45: Unterprogramm zur Dreiecksberechnung Institut für Signalverarbeitung und Sprachkommunikation 59 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 46: Unterprogramm zur Rechtecksberechnung Institut für Signalverarbeitung und Sprachkommunikation 60 Bachelorarbeit Evaluierung einer Sigma-DSP Testplatine Abb. 47: Unterprogramm zur Sägezahnberechnung Institut für Signalverarbeitung und Sprachkommunikation 61