DSP System Toolbox

Entwicklung und Simulation von Streaming-Signalverarbeitungssystemen

 

Die DSP System Toolbox™ bietet Algorithmen, Apps und Scopes für das Entwickeln, Simulieren und Analysieren von Signalverarbeitungssystemen in MATLAB® und Simulink®. Sie können Echtzeit-DSP-Systeme für Kommunikation, Radar, Audio, Medizinprodukte, IoT und andere Anwendungen modellieren.

Mit der DSP System Toolbox ist es möglich, FIR-, IIR-, Multiraten-, mehrstufige und adaptive Filter zu entwickeln und zu analysieren. Sie können Signale von Variablen, Datendateien und Netzwerkgeräten für die Systementwicklung und Verifizierung streamen. Die Tools Time Scope, Spectrum Analyzer und Logic Analyzer ermöglichen zudem eine dynamische Visualisierung und Messung der Streaming-Signale. Beim Desktop-Prototyping und der Bereitstellung auf eingebetteten Prozessoren, einschließlich ARM® Cortex® -Architekturen, unterstützt die System Toolbox die Erzeugung von C/C++ Code. Sie unterstützt zudem bitgenaue Festkomma-Modellierung und HDL-Codegenerierung aus Filtern, FFT, IFFT und anderen Algorithmen.

Die Algorithmen sind als MATLAB-Funktionen, System Objects™ und Simulink-Blöcke verfügbar.

Erste Schritte:

Signalverarbeitung und lineare Algebra-Blöcke für Simulink

In  Simulink bietet die DSP System Toolbox™ eine Bibliothek von Signalverarbeitungsalgorithmen mit Blöcken für Filter, Transformationen und lineare Algebra. Diese Blöcke verarbeiten Streaming-Eingangssignale als einzelne Abtastwerte (Samples) oder als Datenblöcke von gesammelten Abtastwerten, genannt Frames. Sample-basierte Verarbeitung unterstützt kurze Latenzzeiten und Anwendungen, die eine Skalarverarbeitung erfordern. Frame-basierte Verarbeitung unterstützt höheren Durchsatz im Austausch gegen Latenz. Die System-Toolbox unterstützt sowohl Sample-basierte als auch Frame-basierte Verarbeitungsmodi.

MATLAB-Programme, die System Objects verwenden, können entweder mithilfe des MATLAB Function-Blocks oder des MATLAB-Systemblocks in Simulink-Modelle integriert werden. Für die meisten der System Objects sind außerdem Simulink-Blöcke mit identischer Funktionalität vorhanden.

Frame-basierter Betrieb, bei dem ein Frame von 16 Samples zwischen jeder Interrupt Service Routine (ISR) erfasst wird und zeigt, dass die Frame-basierte Durchsatzrate um ein Vielfaches höher ist als die Sample-basierte Alternative.

Signalverarbeitungsblock für DSP-Systementwicklung, Implementierung und Validierung

Simulink-Blöcke für Signalverarbeitung können einfach- und doppeltgenaue Gleitkomma-Datentypen und Ganzzahl-Datentypen verarbeiten. Sie unterstützen außerdem Festkomma-Datentypen, wenn sie mit Fixed-Point Designer verwendet werden.

Die Signalverarbeitungsblöcke der DSP System Toolbox umfassen:

  • Signaltransformationen wie Fast-Fourier-Transformation (FFT), diskrete Kosinustransformation (DCT, Discrete Cosine Transform), Short-Time-Fourier-Transformation (STFT) und diskrete Wavelet-Transformation (DWT, Discrete Wavelet Transform)
  • Filterentwicklung und -implementierung von FIR, IIR und Analogfiltern
  • Multiraten- und mehrstufige Filter für Abtastratenkonvertierung wie CIC, Halbband-, Polyphasen- und Farrow-Filter
  • Statistische und adaptive Signalverarbeitungstechniken für Spektrumsbewertung, Entzerrung und Rauschunterdrückung
  • Signaloperationen und Messung wie Faltung, Fensterfunktionen, Auffüllen von Signalen, die Modellierung von Laufzeitverzögerungen sowie die Ermittlung von Spitzenwerten und Nulldurchgang
  • Visualisierung von Streaming-Signalen und Messung mit Time Scope, Spectrum Analyzer und mehr
  • Signalverwaltungsmethoden wie Pufferung, Indizierung, Schaltvorgänge, Signalsummierung und Warteschlangen
  • Senken und Quellen wie z. B. Frequenzmodulationen und farbige Rauschgeneratoren, NCO, UDP-Empfänger und -Sender und mehr
  • Routinen für numerische lineare Algebra wie Solver für lineare Systeme und für die Invertierung und Faktorisierung von Matrizen

DSP System Toolbox-Bibliotheksblöcke für Signalverarbeitung in Simulink (oben), zusammen mit erweiterten Ansichten von Solvern für lineare Systeme (links unten) und Transformationen (rechts unten).

Modellierung von Multiratensystemen

Die DSP System Toolbox in MATLAB unterstützt die Multiratenverarbeitung und damit die Abtastratenkonvertierung sowie die Modellierung von Systemen, in denen Komponenten mit unterschiedlichen Abtast- oder Taktraten zusammenarbeiten. Die Multiratenfunktionalität umfasst Multiraten- und mehrstufige Filter wie FIR und IIR-Halbband, Polyphasen-Filter, CIC-Filter und Farrow-Filter. Sie enthält außerdem Signaloperationen wie Interpolation, Heruntertaktung und beliebige Abtastratenkonvertierung.

Simulink-Modell eines mehrstufigen Dezimationsfilters für einen Sigma-Delta-Umwandler von analog zu digital.

Streaming-Signalverarbeitung in MATLAB

Die DSP System Toolbox bietet eine Umgebung für die Verarbeitung von Streaming-Signalen in  MATLAB. Die System Toolbox verfügt über eine Bibliothek mit Signalverarbeitungsalgorithmen, die für die Verarbeitung von Streaming-Signalen wie z. B. Single-Raten-Filter und Multiratenfilter, adaptive Filter und FFTs optimiert ist. Die System Toolbox ist ideal für Entwicklung, Simulation und Bereitstellung von Signalverarbeitungslösungen für Anwendungen aus den Bereichen Audio, Biomedizin, Kommunikation, Regelung, Seismik, Sensorik und Sprache.

Streaming-Signalverarbeitungs -Methoden ermöglichen die Verarbeitung von kontinuierlichen Datenströmen, die Simulationen oft beschleunigen können, indem Sie die Eingabedaten in Frames aufteilen und jeden Frame bei der Erfassung verarbeiten. Dank der Streaming-Signalverarbeitung in MATLAB können zum Beispiel Mehrkanalaudiodaten in Echtzeit verarbeitet werden.

Die Verarbeitung von Streaming-Signalen wird durch eine DSP Algorithmen-Bibliothek namens  System Objects™  ermöglicht, um datengetriebene Algorithmen, Quellen und Senken darzustellen. Diese System Objects ermöglichen zudem das Erstellen von Streaming-Anwendungen durch die Automatisierung von Aufgaben wie Datenindizierung und Pufferung sowie die Verwaltung der Zustände von Algorithmen. System Objects können mit gewöhnlichen MATLAB-Funktionen und -Operatoren kombiniert werden.

Die Tools  Time Scope  und Spectrum Analyzer  lassen sich zudem für die Visualisierung und Messung der Streaming-Signale nutzen.

Sie können Single-Raten, Multiraten- und adaptive Filter auf Streaming-Daten anwenden, indem Sie Algorithmen verwenden, die für Streaming-Signale und Daten optimiert sind.

MATLAB-Code implementiert ein Basis-Streaming-Loop (links). Time Scope (rechts oben) und Spectrum Analyzer (rechts unten) visualisieren und messen die Live-Signale, während sie generiert und verarbeitet werden.

Algorithmenbibliothek für DSP-Systementwicklung, Implementierung und Testen

Die DSP System Toolbox stellt mehr als 350 Algorithmen, die für Entwicklung, Implementierung und Validierung von Streaming-Systemen optimiert sind, zur Verfügung, egal ob diese als MATLAB-Funktion oder als MATLAB-System Objects implementiert sind. Die Algorithmen können einfach- und doppeltgenaue Gleitkomma-Datentypen verarbeiten. Die meisten Algorithmen unterstützen außerdem Ganzzahl-Datentypen und Festkomma-Datentypen, für die der Fixed-Point Designer™ benötigt wird.

In MATLAB enthält die System Toolbox folgende Algorithmentypen:

Auswahl der in MATLAB verfügbaren Signalverarbeitungsalgorithmen, wie in der Befehlszeilen-Hilfe angezeigt oder über Tab-Vervollständigung zu finden.

Multiraten-Systeme

Die DSP System Toolbox in MATLAB unterstützt die Multiratenverarbeitung und damit die Abtastratenkonvertierung sowie die Modellierung von Systemen, in denen Komponenten mit unterschiedlichen Abtast- oder Taktraten zusammenarbeiten. Die Multiratenfunktionalität umfasst Multiraten- und mehrstufige Filter wie z. B. FIR und IIR-Halbband, Polyphasen-Filter, CIC-Filter und Farrow-Filter. Sie enthält außerdem Signaloperationen wie Interpolation, Heruntertaktung und beliebige Abtastratenkonvertierung.

Frequenzantwort der einzelnen Stufen eines mehrstufigen digitalen Down-Umwandlers

Singleraten- und Multiraten-FIR- und IIR-Filterentwicklung und adaptive Filter

Zur DSP System Toolbox gehören umfassende Filter Design Tools und Implementierungsalgorithmen für FIR, IIR, mehrstufige, Multiraten- und adaptive Filter. Sie können damit Tiefpass-, Hochpass-, Bandpass- und Bandstoppfilter sowie Filter mit anderen Antworttypen entwickeln. Dazu stehen Filterstrukturen wie Direct-Form-FIR, Overlap-Add-FIR, Direct-Form II mit Second Order Sections (Biquad), Kaskaden-Allpass sowie Lattice-Strukturen zur Verfügung.

Sie können Filter mithilfe der Filterbuilder App, von MATLAB-Code oder von Simulink-Blöcken entwickeln. Sie können außerdem die Festkomma-Quantisierungseffekte für FIR- und IIR-Filter analysieren und die optimale Wortlänge für die Filterkoeffizienten festlegen.

Sie können auch abstimmbare Filter entwickeln, bei denen Sie Schlüsselparameter wie Bandbreite und Amplitude während der Ausführung festlegen können.

Alle mit der DSP System Toolbox in MATLAB entwickelten digitalen Filter lassen sich auch in System-Level-Modelle in Simulink integrieren. Es gibt in der System Toolbox eine einsatzbereite Filterblock-Bibliothek für das Entwickeln, Simulieren und Implementieren von Tiefpass-, Hochpass- und anderen Filtern direkt in Simulink.

Zusätzlich zu den herkömmlichen FIR- und IIR-Filterentwicklungsalgorithmen unterstützt die DSP System Toolbox auch spezialisierte Filter und Entwurfsmethoden wie z. B. die folgenden:

Entwicklung und Analyse eines mehrstufigen Single-Rate-Lowpass-Filters mit der Filter-Builder-App und der Filter-Visualizer-App.

Adaptive Filter

Die DSP System Toolbox bietet verschiedene Methoden für adaptive Filterung in Simulink. Diese Techniken werden häufig für Anwendungen wie Systemidentifikation, Spektrumsbewertung, Entzerrung und Rauschunterdrückung verwendet. Zu solchen adaptiven Filtern gehören Filter auf Basis des kleinsten quadratischen Fehlers (LMS) oder des quadratischen Mittles (RLS), affine Projektion, Fast Transversal, Frequenzbereich, Lattice-basiert und Kalman Filter. Darüber hinaus bietet die System Toolbox Algorithmen zur Analyse dieser adaptiven Filter wie Koeffizientenverfolgung, Lernkurven und Konvergenz.

Visualisierung der dynamischen Antwort eines normalisierten LMS-adaptiven Filters bei gleichzeitiger Simulation des Modells eines akustischen Geräuschunterdrückungssystems.

Multiraten- und mehrstufige Filter und Analyse

Die DSP System Toolbox enthält Funktionen für die Entwicklung und die Implementierung von Multiratenfiltern einschließlich Polyphaseninterpolatoren, Dezimatoren, Abtastratenwandlern,  FIR-Halbband  und  IIR-Halbband Farrow-Filter und CIC-Filtern und -Kompensatoren und unterstützt mehrstufige Entwürfe. Zusätzlich bietet sie spezialisierte Analysefunktionen zur Schätzung der Berechnungskomplexität von Multiraten- mehrstufigen Filtern.

Frequenzgang des Equiripple-Designs und des entsprechenden Multiraten- und mehrstufigen Designs mit fvtool (links) und Leistung von Multiraten- und mehrstufigen Designs, Diagramm der spektralen Leistungsdichte des Eingangs und mehrerer Ausgänge (rechts).

Signal Scope, Analysatoren und Messgeräte

Die DSP System Toolbox bietet Scope-Blöcke und Datenprotokollierung für Visualisierungen im Zeit- oder Frequenzbereich, Messungen und die Analyse von Streaming-Signalen in MATLAB und Simulink. Die Scope-Blöcke sind mit Mess- und Statistikfunktionen ausgestattet, die dem Benutzer von branchenüblichen Oszilloskopen und Spektralanalysatoren vertraut sind.

Die System Toolbox bietet außerdem den Logic Analyzer zur Anzeige der Übergänge in Zeitbereichssignalen, was für das Debugging von Modellen, die für die HDL-Implementierung gedacht sind, hilfreich ist.

Sie können auch beliebige Diagramme zur Visualisierung von Datenvektoren erstellen, wie z. B. der Entwicklung von Filterkoeffizienten im Zeitverlauf.

Time Scope  zeigt Signale im Zeitbereich an und unterstützt verschiedene Signaltypen – kontinuierliche, diskrete Signale, Signale fester und variabler Größe, Fließkomma- und Festkommadaten sowie n-dimensionale Signale für Mehrkanal-E/A-Systeme. Time Scope erlaubt Ihnen, in einer Darstellung gleichzeitig mehrere Signale anzuzeigen, die ganz unterschiedliche Dimensionen, Abtastraten und Datentypen besitzen können oder verschiedene Anzeigen für mehrere Datenkanäle im gleichen Scope-Fenster. Time Scope führt Analysen, Messungen und Statistiken einschließlich Effektivwert (RMS), Spitze-Spitze, Mittelwert und Median durch.

Messen von Frequenz und Stärke der Spektralspitzen, die bei der Anwendung eines nichtlinearen Verstärkermodells auf ein Chirp-Signal erzeugt werden.

Der Spectrum Analyzer  berechnet das Frequenzspektrum verschiedener Eingangssignale und zeigt dann das Frequenzspektrum auf einer linearen oder logarithmischen Skala an. Der Spectrum Analyzer führt Messungen wie z. B. harmonische Verzerrungsmessungen (THD, SNR, SINAD, SFDR), Messung der Intermodulationsverzerrungen dritter Ordnung (TOI), APCR-Messungen (Adjacent Channel Power Ratio), komplementäre kumulative Verteilungsfunktionen (CCDF) und Höchst- zu Durchschnittswerten Leistungsverhältnisse (PAPR) durch. Die Spektrogramm-Modusanzeige des Spectrum Analyzer zeigt, wie Sie zeitlich variierende Spektren anzeigen können und ermöglicht die automatische Spitzenerkennung.

DSP System Toolbox bietet eine weitere Familie von Visualisierungstools, die Sie verwenden können, um verschiedene Signale oder Daten anzeigen zu lassen und zu messen. Dazu gehören reelle oder komplexe Daten, Vektoren, Arrays und Frames jedes Datentyps einschließlich Festkomma, doppelte Genauigkeit oder benutzerdefinierte Dateneingabesequenz. Manche Visualisierungstools bieten eine 3D-Anzeige Ihrer Streaming-Daten oder -Signale, sodass Sie Ihre Daten im Zeitverlauf analysieren können, bis die Simulation endet.

Der Logic Analyzer zeigt die Simulationsergebnisse für ein Modell Hardware-genauer programmierbarer FIR-Filter.

Festkomma-Modellierung und -Simulation

Zusammen mit dem Fixed-Point Designer lassen sich mit der DSP System Toolbox Algorithmen für die Verarbeitung von Festkommasignalen modellieren sowie der Einfluss der Quantisierung auf das Verhalten und die Leistung solcher Systeme analysieren. Außerdem können Sie aus MATLAB-Code oder Simulink-Modellen Festkomma-C Code generieren.

MATLAB System Objects und Simulink-Blöcke in der DSP System Toolbox lassen sich für Modi des Festkommabetriebs konfigurieren, wodurch bereits vor der Hardware-Umsetzung Trade-off-Analysen und Optimierung durch Simulation mit verschiedenen Wortlängen, Skalierungen, Überlauf- und Rundungseinstellungen ermöglicht werden.

Festkommamodi werden von vielen DSP-Algorithmen, einschließlich FFT, Filter, Statistiken und lineare Algebra, unterstützt. Die DSP System Toolbox automatisiert die Konfiguration von System Objects und Blöcken für Festkommaoperationen.

FFT MATLAB System Object enthält Eigenschaften zur Festlegung der Festkomma-Datentypen von Akkumulator-, Produkt- und Ausgabedaten (links). Der FFT Simulink-Block enthält Optionen zur Festlegung der Festkomma-Datentypen von Akkumulator, Produkt- und Ausgabesignalen, wozu Fixed-Point Designer (rechts) notwendig ist.

Entwicklung von Festkomma-Filtern

Mit den Filterentwicklungsfunktionen der DSP System Toolbox und der interaktiven  Filterbuilder  App lassen sich Fließkommafilter entwickeln und dann auf einfache Weise mit dem Fixed-Point Designer direkt in Festkomma-Datentypen konvertieren. Dieser Workflow vereinfacht die Entwicklung und Optimierung von Festkomma-Filtern  und ermöglicht die unkomplizierte Analyse von Quantisierungseffekten.

Entwurfsanalyse des Quantisierungsrauschens bei Festkomma-Filtern, wobei die Filterentwicklungsbedingungen nicht eingehalten wurden und die Sperrdämpfung aufgrund der 8-Bit-Wortlänge (links) ungenügend ist. Experimentieren mit verschiedenen Wortlängen für die Koeffizienten. Die Verwendung von 12-Bit-Wortlänge ist ausreichend und die Filterentwicklungsbedingungen werden erfüllt (rechts).

C und C++ Codegenerierung für Desktop und eingebettete Workflows

Zusammen mit  MATLAB Coder™ und Simulink Coder™ lassen sich aus ihren Signalverarbeitungsalgorithmen oder Systemmodellen in MATLAB und Simulink entweder C und C++ Code generieren oder eine auf Perfomance optimierte MEX-Funktion erstellen.

Der dabei erzeugte Code eignet sich zur Beschleunigung, zum Rapid Prototyping sowie zur Implementierung und Bereitstellung oder Integration von Systemen im Rahmen der Produktentwicklung.

Desktop-Beschleunigung

Sie können effektiven und kompakten ausführbaren Code sowie eine MEX-Funktion, die für die Beschleunigung rechenintensiver Algorithmen in Ihrer Simulation optimiert ist, erstellen. Sie können Ihre Gleitkomma- und Festkomma-Algorithmen einschließlich Filtern, FFTs, Statistiken und linearer Algebra in MATLAB und Simulink beschleunigen.

Um Frame-basierte Streaming-Simulationen zu beschleunigen, verwendet dspunfold DSP-Entfaltung, um die Rechenlast in der generierten MEX-Funktion über mehrere Threads zu verteilen.

Eigenständige Ausführung und Integration in andere Umgebungen

Mit der DSP System Toolbox können Sie außerdem den generierten C Code aus Ihrem MATLAB Code oder Simulink-Model für die Bereitstellung und das Prototyping auf dem Desktop verwenden, indem Sie eine eigenständig ausführbare Version Ihres Algorithmus erstellen. Diese eigenständig ausführbare Version kann unter Verwendung von UDP-Komponenten immer noch direkt in MATLAB oder Simulink in Echtzeit angepasst werden. Weil diese eigenständig ausführbare Version auf einem anderen Thread läuft als der MATLAB Code oder das Simulink-Model, verbessert sie die Echtzeit-Leistung Ihres Algorithmus.

Der generierte C Code Ihrer Signalverarbeitungsalgorithmen kann in Form kompilierter Bibliothekskomponenten in andere Software, wie z. B. eigenentwickelte Simulatoren oder Standardmodellierungssoftware wie SystemC, integriert werden.

Optimierte C Codegenerierung für ARM Cortex-M-Prozessoren

Zusammen mit dem Hardware Support Package für ARM Cortex-A oder ARM Cortex-M und Embedded Coder® können Sie mit der DSP System Toolbox optimierten C Code aus MATLAB System Objects oder Simulink-Blöcken für entscheidende DSP-Algorithmen wie z. B. FFT, FIR und Biquad-Filter generieren. Der generierte Code bietet Verwendung der optimierten Routinen für die ARM Cortex-A Ne10-Bibliothek oder die ARM Cortex-M CMSIS-Bibliothek. Ein Hauptvorteil ist die sofortige Leistungsverbesserung im Vergleich zu standardmäßigem C-Code. Sie können außerdem Codeverifizierung und Profiling mit Processor-in-the-Loop (PIL)-Tests durchführen.

HDL-Codegenerierung für FPGA- und ASIC-Entwicklung

Der  Filter Design HDL Coder™  in MATLAB kann gemeinsam mit der DSP System Toolbox digitale Filter entwickeln und effizienten, synthetisierbaren und portablen VHDL® und Verilog®-Code zur Implementierung in FPGAs oder ASICs erstellen. Sie können für das Simulieren, Testen und Verifizieren des generierten Codes automatisch VHDL- und Verilog-Testbenches erstellen.

Der  HDL Coder™  stellt gemeinsam mit der DSP System Toolbox synthetisierbare und lesbare VHDL- und Verilog-Codegenerierung  für Ihren Systementwurf zur Verfügung. Diese Unterstützung umfasst Algorithmen, die für Ressourcen und Leistung optimiert sind, wie z. B. Filter,  FFT,  IFFT und NCO.

Implementierungsdetail einer der unterstützen Hardware-Architekturen (z.B. teilweise serienmäßig systolische) für einen HDL-optimieren FIR-Filter-Block

Neue Funktionen

SIMD-Code für Filterblöcke:

Beschleunigung generierten Codes für FIR-Dezimierung, FIR-Interpolation und LMS-Filterblöcke mit Intel AVX2

Neuer biquadratischer SOS-Filter:

Implementieren von Bereichsfiltern zweiter Ordnung in MATLAB mit optimierbaren Koeffizienten mit denselben Repräsentationen, die von Design-Funktionen ausgegeben werden

Multiraten-Verarbeitung in FIR-Rate-Konversionsblöcken:

Simulation von FIR-Raten-Konversionsfiltern in Simulink bei unterschiedlichen Update-Raten für Input-/Output-Signale

Nicht maximal dezimierte Channelizer:

Entwicklung und Implementierung von Channelizern mit überrepräsentierten (nicht kritisch dezimierten) Outputs

Gigasample per Second (GSPS) NCO:

Erzeugen von Frame-Output aus HDL-optimierten NCO für Hochgeschwindigkeits-Anwendungen (zur Code-Generierung ist HDL Coder erforderlich)

Variabler CIC-Dezimierungsfaktor:

Festlegen des Dezimierungsfaktors als Eingabe in den CIC-Dezimierer HDL-optimierten Block (zur Code-Generierung ist HDL Coder erforderlich)

Einzelheiten zu jedem dieser Features und den entsprechenden Funktionen finden Sie in den Versionshinweisen.