Was ist eigentlich ein DSP?
Ein digitaler Signalprozessor (DSP) kann digitalisierte Signale (z.B. Audio- oder Videosignale) in Echtzeit bearbeiten. Für die Digitalisierung von analogen Signalen werden Analog-Digital-Umsetzer eingesetzt, die dem Anwendungsfall entsprechende Eigenschaften haben müssen. Digital-Analog-Umsetzer wandeln nach der digitalen Signalverarbeitung die Ergebnisse wieder in Spannung (oder Ströme) um.
Viele Signalprozessoren übernehmen heute auch die Funktion von Mikrocontrollern und bringen Schnittstellen wie UART, I²C, USB, Ethernet, CAN etc. mit. Entscheidend ist jedoch das Rechenwerk eines DSP, das typischerweise in einem Zyklus mindestens eine Multiplikation, mindestens eine Addition, einen oder mehrere Datenspeicherzugriffe und den Zugriff auf den Programmspeicher ermöglicht. Der gleichzeitige Zugriff auf Programm- und Datenspeicher ist mit der sog. Harvard-Architektur möglich, die zwei oder mehr Adress- und Datenbusse realisiert. Weiterhin enthalten DSP i.d.R. einen sog. Barrel-Shifter, mit dem in einem Zyklus Datenworte invertiert (MSB <> LSB), Bitfelder extrahiert, um beliebige Bitpositionen verschoben oder rotiert werden können. Solche Operationen werden z.B. zur Adressierung von Daten bei der Berechnung eine schnellen Fouriertransformation (FFT) benötigt.
Mit Hilfe von DSP können zahlreiche Aufgaben der Signalanalyse und -beeinflussung mit hoher Geschwindigkeit und Präzision, vor allem aber mit hoher Wiederholgenauigkeit durchgeführt werden.
Einige typische Anwendungen:
- Hochpass-, Tiefpass-, Bandpass- Bandstopfilter z. B. Klangbeeinflussung oder Unterdrückung von Störfrequenzen (auch adaptiv)
- Dynamikkompression, Rausch- und Echominderung bei Sprachsignalen
- Effekte wie Echo, Hall, Chorus oder Verfremdung von Stimmen
- Sprachkompression in Kommunikationssystemen (Telefonie, besonders Mobilfunk)
- Spracherkennung und Sprachsynthese (Text-to-Speech)
- Modems für Telefonleitungen, z.B. V.22, V.27ter, V.29, V.32, V.90
- Modems mit OFDM-Technologie, die in allen modernen Übertragungsverfahren eingesetzt wird, u.a. in DVB, DSL, DAB
- Bilddatenkompression, z.B. MJPEG, H.264, H.265
- Frequenzanalysen, z.B. in Oszilloskopen
Für besonders rechenleistungsintensive Aufgaben werden dedizierte Signalprozessoren eingesetzt, die für den Anwendungsfall optimiert sind. Wir setzen jedoch ausschließlich Standard-DSP ein, die frei programmierbar und deshalb für ganz unterschiedliche Anwendungen geeignet sind. Allerdings setzen sich bei vielen Anwendungen zunehmend FPGAs als Signalprozessoren durch. FPGAs sind flexibler und vor allem skalierbar einzusetzen.
Bleiben wir aber bei DSP: Oft bietet es sich an, Signalprozessoren mit Fließkommarithmetik, z.B. Analog Devices SHARC, einzusetzen. SHARC DSP zeichnen sich durch ein ausgezeichnetes Preis-(Leistungsverhältnis in Verbindung mit sehr einfacher Programmierung aus. SHARC DSP haben eine erweiterte Harvard-Architektur, die sich im Akronym SHARC (Super-Harvard-ARChitecture) niederschlägt.
Im Laufe der Jahre haben wir DSP aus den folgenden Familien eingesetzt:
- NEC µPD77C25, µPD77016
- Analog Devices ADSP-210x, ADSP-218x, Blackfin, SHARC
- Texas Instruments TMS320C6000, TMS320VC55xx, TMS320C54xx
- Motorola/Freescale DSP56xxx
- AT&T DSP32C