DSP System Toolbox

 

DSP System Toolbox

Entwicklung und Simulation von Streaming-Signalverarbeitungssystemen

Jetzt beginnen:

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-basierte Verarbeitung in Embedded Systems

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
Signalverarbeitungs-Bibliotheksblöcke für Simulink

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.

Mehrstufiger Dezimator für Sigma-Delta-ADC

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.

Streaming-Signalverarbeitung in MATLAB

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:

  • Signaltransformationen wie Fast-Fourier-Transformation (FFT) und diskrete Kosinustransformation (DCT, Discrete Cosine Transform)
  • Techniken zur Entwicklung und Implementierung digitaler FIR- und IIR-Filter
  • Multiraten und mehrstufige Filter für Abtastratenkonvertierung wie FIR- und IIR-Halbband, Polyphasen-Filter, CIC-Filter 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 Verzögerung um variable Bruchteile der Abtastrate
  • Signalvisualisierung während der Ausführung mit Time Scope, Spectrum Analyzer und Logic Analyzer
Bibliotheken für Streaming-Signalverarbeitung in MATLAB

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.

Analyse eines dreistufigen DDC-Designs

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:

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.

Einstufiges und mehrstufiges Filter-Design

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.

Datencursor für Wellenformmessungen in Time Scope

Verwendung von Datencursorn zur Messung der Zeit- und Amplitudenunterschiede zwischen zwei Punkten einer Wellenform in Time Scope.

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.

Messungen mit dem Spectrum Analyzer

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

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-Eigenschaften für Festkomma-Datentypen

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.

Gestaltung und Analyse von Festkomma-Filtern

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. Ziehen Sie für eine optimale Nutzung und Leistung von FPGA-/ASIC-Ressourcen die Verwendung von Blöcken aus der DSP HDL Toolbox in Erwägung.

Teilweise serienmäßige systolische FIR-Filter-Struktur

Logic Analyzer für die Überprüfung des Hardwaremodells eines programmierbaren FIR-Filters.