DSP System Toolbox™ fornisce algoritmi, applicazioni e visualizzatori per la progettazione, la simulazione e l’analisi dei sistemi di elaborazione dei segnali in MATLAB® e Simulink®. È possibile modellare sistemi DSP in tempo reale per comunicazioni, radar, audio, dispositivi medici, IoT e altre applicazioni.
Con DSP System Toolbox è possibile progettare e analizzare filtri FIR, IIR, multi-rate, multistage e adattivi. È possibile trasmettere segnali da variabili, file di dati e dispositivi di rete per supportare lo sviluppo e la verifica dei sistemi. Gli strumenti Time Scope, Spectrum Analyzer e Logic Analyzer consentono di visualizzare e misurare dinamicamente i segnali in streaming. Per la prototipazione desktop e la distribuzione a processori embedded, incluse le architetture ARM® Cortex®, il system toolbox supporta la generazione di codice C/C++. Supporta anche la modellazione a virgola fissa bit-accurate e la generazione di codice HDL dai filtri e altri algoritmi.
Gli algoritmi sono disponibili come funzioni di MATLAB, System object™ e blocchi Simulink.
Inizia ora:
- Elaborazione dei segnali e dei blocchi algebrici lineari per Simulink
- Elaborazione dei segnali in streaming in MATLAB
- Progettazione di filtri FIR e IIR single-rate e multi-rate e filtri adattivi
- Visualizzatori, analizzatori e misurazione di segnali
- Modellazione e simulazione a virgola fissa
- Flussi di lavoro per la generazione di codice C e C++ per sistemi embedded e desktop
- Generazione di codice HDL per sviluppo FPGA e ASIC
In Simulink, DSP System Toolbox™ offre una libreria di blocchi di algoritmi per l’elaborazione dei segnali per filtri, trasformate e algebra lineare. Questi blocchi elaborano i segnali di input in streaming come campioni individuali o come raccolte di campioni chiamate frame. L’elaborazione sample-based consente processi a bassa latenza e applicazioni che richiedono elaborazione scalare. L’elaborazione frame-based consente una più alta capacità di trasmissione in cambio di latenza. Il system toolbox supporta sia la modalità di elaborazione sample-based che quella frame-based.
I programmi MATLAB che utilizzano System object sono integrabili in modelli Simulink mediante il blocco MATLAB Function o il blocco MATLAB System. La maggior parte dei System object presenta blocchi Simulink corrispondenti con le stesse capacità.
Blocchi per l’elaborazione dei segnali per progettazione, implementazione e testing di sistemi DSP
I blocchi Simulink per l’elaborazione dei segnali supportano tipi di dati a virgola mobile in singola e doppia precisione e tipi di dati interi. Sono inoltre in grado di supportare tipi di dati a virgola fissa quando si utilizza Fixed-Point Designer.
I blocchi per l’elaborazione dei segnali inclusi in DSP System Toolbox sono:
- Trasformate del segnale, ad esempio la trasformata di Fourier veloce (FFT), la trasformata discreta del coseno (DCT), la trasformata di Fourier a breve termine (STFT) e la trasformata wavelet discreta (DWT);
- Progettazione e implementazione di filtri FIR, IIR e analogici;
- Filtri multi-rate e multistage per la conversione della frequenza di campionamento, ad esempio CIC, Halfband, polifase e di Farrow;
- Tecniche statistiche e adattive di elaborazione dei segnali per stima dello spettro, equalizzazione ed eliminazione del rumore;
- Operazioni di segnale e misurazioni, ad esempio convoluzione, windowing, padding, ritardi, identificazione del picco e zero-crossing;
- Visualizzazione e misurazione dei segnali in streaming con Time Scope, Spectrum Analyzer e Logic Analyzer e altro;
- Metodi di gestione dei segnali, ad esempio buffering, indicizzazione, commutazione, stacking e code;
- Display e sorgenti come generatori di rumore colorato e chirp, NCO, UDP, ricevitori e trasmettitori e altri;
- Routine algebriche lineari numeriche, compresi solutori lineari, fattorizzazioni di matrici e inversi della matrice;
Modellazione di sistemi multi-rate
In MATLAB, DSP System Toolbox supporta l’elaborazione multi-rate per la conversione della frequenza di campionamento e la modellazione di sistemi in cui si interfacciano frequenze di campionamento o velocità di clock differenti. La funzionalità multi-rate include filtri multistage e multi-rate, ad esempio filtri FIR e IIR Halfband, polifase, CIC e di Farrow. Include inoltre operazioni di segnale come ad esempio l’interpolazione, la decimazione e la conversione arbitraria della frequenza di campionamento.
DSP System Toolbox™ fornisce una struttura per l’elaborazione dei segnali in streaming in MATLAB. Il system toolbox include una libreria di algoritmi di elaborazione dei segnali, ottimizzati per l’elaborazione dei segnali in streaming come filtri single-rate e multi-rate, adattivi e FFT. Il system toolbox è ideale per la progettazione, la simulazione e la distribuzione di soluzioni di elaborazione dei segnali per applicazioni audio, biomediche, di comunicazione, di controllo, sismiche, di sensori e vocali.
Le tecniche di elaborazione dei segnali in streaming consentono un’elaborazione continua di dati in streaming,spesso in grado di accelerare le simulazioni dividendo i dati in ingresso in frame ed elaborando ogni frame al momento dell’acquisizione. Per esempio, l’elaborazione dei segnali in streaming in MATLAB consente l’elaborazione audio multicanale in tempo reale.
L’elaborazione dei segnali in streaming è consentita utilizzando una libreria di componenti di algoritmi DSP chiamati System object™ per rappresentare algoritmi basati sui dati, sorgenti e display. I System object consentono la creazione di applicazioni in streaming con attività automatiche, ad esempio l'indicizzazione dei dati, il buffering e la gestione degli stati dell'algoritmo. È possibile utilizzare i System object di MATLAB con funzioni e operatori MATLAB standard.
È possibile usare gli strumenti Time Scope e Spectrum Analyzer per visualizzare e misurare i segnali in streaming.
È possibile applicare filtri single-rate, multi-rate e adattivi a dati in streaming utilizzando algoritmi ottimizzati per segnali e dati in streaming.
Libreria di algoritmi per progettazione, implementazione e verifica di sistemi DSP
DSP System Toolbox fornisce più di 350 algoritmi ottimizzati per la progettazione, l’implementazione e la convalida di sistemi in streaming se implementati come funzioni MATLAB oppure come System object di MATLAB. Gli algoritmi supportano i tipi di dati a virgola mobile in singola e doppia precisione. La maggior parte degli algoritmi supporta anche tipi di dati interi, così come tipi di dati a virgola fissa che richiedono Fixed-Point Designer™.
In MATLAB, le categorie di algoritmi incluse nel system toolbox sono:
- Trasformate di segnale, ad esempio la trasformata di Fourier veloce (FFT) e la trasformata discreta del coseno (DCT);
- Metodi di progettazione e implementazione per filtri digitali FIR e IIR;
- Filtri multi-rate e multistage per la conversione della frequenza di campionamento, ad esempio filtri FIR e IIR Halfband, polifase, CIC e di Farrow;
- Tecniche statistiche e adattive di elaborazione dei segnali per stima dello spettro, equalizzazione ed eliminazione del rumore;
- Operazioni di segnale e misurazioni, ad esempio convoluzione, windowing, padding, ritardi di modellazione, identificazione del picco e ritardi frazionari variabili;
- Visualizzazione dei segnali al momento dell’esecuzione con Time Scope, Spectrum Analyzer e Logic Analyzer
Sistemi multi-rate
In MATLAB, DSP System Toolbox supporta l’elaborazione multi-rate per la conversione della frequenza di campionamento e la modellazione di sistemi in cui si interfacciano frequenze di campionamento o velocità di clock differenti. La funzionalità multi-rate include filtri multistage e multi-rate, ad esempio filtri FIR e IIR Halfband, polifase, CIC e di Farrow. Include inoltre operazioni di segnale come ad esempio l’interpolazione, la decimazione e la conversione arbitraria della frequenza di campionamento.
DSP System Toolbox fornisce algoritmi per la progettazione e l’implementazione di filtri FIR, IIR, multistage, multi-rate e adattivi. È possibile progettare filtri passa-basso, passa-alto, passa-banda ed elimina banda, così come altri tipi di risposta. È possibile realizzarli mediante strutture quali FIR in forma diretta, FIR overlap-add, IIR con sezioni di secondo ordine (Biquad), filtri all-pass con sezioni collegate in cascata e filtri con struttura lattice.
I filtri possono essere progettati mediante l’applicazione Filterbuilder, il codice MATLAB o i blocchi Simulink. Inoltre, è possibile analizzare gli effetti della quantizzazione a virgola fissa per i filtri FIR e IIR e determinare la lunghezza ottimale delle parole per i coefficienti di filtro.
È inoltre possibile progettare filtri regolabili in cui regolare i principali parametri di filtro, ad esempio larghezza di banda e guadagno, al momento dell’esecuzione.
I filtri digitali progettati con DSP System Toolbox in MATLAB sono utilizzabili anche nei modelli a livello di sistema in Simulink. Esiste una libreria pronta all’uso di blocchi di filtro nel system toolbox per la progettazione, la simulazione e l’implementazione di filtri passa-basso, passa-alto e altri filtri direttamente in Simulink.
Oltre agli algoritmi convenzionali per la progettazione di filtri FIR e IIR, DSP System Toolbox supporta i seguenti filtri e metodi specializzati:
- Filtri FIR equiripple avanzati che includono progetti a ordine minimo, a ripple vincolato e a fase minima;
- Filtri di Nyquist, FIR Halfband e IIR polifase, per progetti a fase lineare, a fase minima e progetti Halfband a fase quasi lineare, nonché metodi equiripple, metodi sloped-stop band e metodi della finestra;
- Filtri decimatori ed interpolatori CIC per implementazione di meno moltiplicatori in convertitori per SDR (radio definita dal software) e convertitori sigma-delta;
- Progetti ottimizzati in più fasi, che consentono di ottimizzare il numero di fasi in sequenza al fine di ottenere la minore complessità di calcolo possibile;
- Filtri a ritardo frazionario, tra cui l'implementazione usando le strutture di filtro di Farrow adatte ad applicazioni di filtraggio regolabili;
- Filtri IIR all-pass con ritardo di gruppo arbitrario, che consentono di compensare i ritardi di gruppo degli altri filtri IIR al fine di ottenere una risposta pass-band a fase lineare approssimativa;
- Filtri IIR digitali a reticolo per una solida implementazione;
- Filtri FIR e IIR ad ampiezza e a fase arbitraria che consentono di progettare qualsiasi specifica di filtro;
Filtri adattivi
DSP System Toolbox offre varie tecniche per filtri adattivi in MATLAB e Simulink. Queste tecniche sono largamente utilizzate per applicazioni come ad esempio identificazione di sistema, stima dello spettro, equalizzazione ed eliminazione del rumore. Nei filtri adattivi sono inclusi il filtro basato su LMS, il filtro basato su RLS, il filtro proiezione affine, il filtro trasversale veloce, il filtro in frequenza, il filtro a reticolo il filtro di Kalman. Il system toolbox include inoltre algoritmi per l'analisi di tali filtri adattivi, tra cui la tracciatura dei coefficienti, le curve di apprendimento e la convergenza.
Filtri multi-rate e multistage e analisi
DSP System Toolbox fornisce funzioni per la progettazione e l’implementazione di filtri multi-rate, tra cui interpolatori polifase, decimatori, convertitori di frequenza, FIR Halfband e IIR Halfband, filtri di Farrow, filtri e compensatori CIC, nonché supporto per metodi di progettazione in più stadi. Il system toolbox fornisce inoltre funzioni di analisi specializzate per stimare la complessità di calcolo dei filtri multi-rate e multistage.
DSP System Toolbox fornisce visualizzatori e registrazione dati per visualizzazione, misurazione e analisi in dominio temporale e di frequenza di segnali in streaming in MATLAB e Simulink. I visualizzatori includono misurazioni e statistica familiari agli utilizzatori di oscilloscopi e spectrum analyzer standard del settore.
Il system toolbox fornisce inoltre il Logic Analyzer per visualizzare le transizioni nei segnali in dominio temporale, utile per il debug di modelli indirizzati verso l’implementazione HDL.
È inoltre possibile creare un grafico arbitrario per la visualizzazione di vettori di dati, ad esempio l’evoluzione nel tempo dei coefficienti di filtro.
Time Scope visualizza i segnali nel dominio temporale e supporta vari segnali: continui, discreti, a dimensione fissa, a dimensione variabile, con dati a virgola mobile o fissa e segnali n-dimensionali per sistema I/O multicanale. È inoltre possibile visualizzare segnali multipli, o sugli stessi assi, dove ogni segnale in ingresso ha dimensioni, frequenze di campionamento e tipi di dati diversi, o su canali multipli di dati su diversi display nella finestra del visualizzatore. Time Scope esegue analisi, misurazione e statistica, inclusi valore quadratico medio (RMS), peak-to-peak, media e mediana.
Spectrum Analyzer calcola lo spettro di frequenza di una varietà di segnali in ingresso e visualizza il suo spettro di frequenza su una scala lineare o logaritmica. Spectrum Analyzer esegue misurazioni e analisi come ad esempio misurazioni di distorsione armonica (THD, SNR, SINAD, SFDR), misurazioni di distorsione di intermodulazione del terzo ordine (TOI), misurazioni rapporto potenza canale adiacente (ACPR), funzione di distribuzione cumulativa complementare (CCDF) e rapporto potenza di picco e potenza media (PAPR). La modalità di visualizzazione spettrogramma di Spectrum Analyzer illustra come visualizzare spettri variabili nel tempo e consente il rilevamento automatico dei picchi.
DSP System Toolbox fornisce una gamma supplementare di strumenti di visualizzazione per visualizzare e misurare molteplici segnali o dati, inclusi dati di valore reale o complesso, vettori, array e frame di qualunque tipo di dati, incluse sequenze in ingresso di dati a virgola fissa, a doppia precisione e definiti dall’utente. Alcuni strumenti di visualizzazione utilizzano un display 3D dei dati o dei segnali in streaming per poterli analizzare nel tempo fino al termine della simulazione.
È possibile usare DSP System Toolbox con Fixed-Point Toolbox Designer per modellare algoritmi di elaborazione dei segnali a virgola fissa e per analizzare gli effetti della quantizzazione sul comportamento e le prestazioni del sistema. È inoltre possibile generare in tempo reale il codice C a virgola fissa dal codice MATLAB o dal modello Simulink.
È possibile configurare i System object di MATLAB e i blocchi Simulink nel system toolbox per farli operare in modalità a virgola fissa, consentendo di analizzare e ottimizzare le alternative progettuali eseguendo simulazioni con lunghezze delle parole, scala, gestione dell’overflow e metodi di arrotondamento diversi, prima dell’implementazione nell’hardware.
Le modalità a virgola fissa sono compatibili con vari algoritmi DSP, tra cui FFT, filtri, statistica e algebra lineare. DSP System Toolbox automatizza la configurazione dei System object e dei blocchi per il funzionamento a virgola fissa.
Progettazione di filtri a virgola fissa
In DSP System Toolbox, le funzioni di progettazione di filtri o le applicazioni Filterbuilder consentono di progettare filtri a virgola mobile da poter convertire in tipi di dati a virgola fissa grazie a Fixed-Point Designer. Questo flusso di progettazione semplifica la progettazione e l’ottimizzazione di filtri a virgola fissa e consente di analizzare gli effetti della quantizzazione.
Utilizzando DSP System Toolbox con MATLAB Coder™ e Simulink Coder™, è possibile generare codice sorgente C e C++ o una funzione MEX ottimizzata per la prestazione con gli algoritmi di elaborazione dei segnali e i modelli di sistema rispettivamente in MATLAB e Simulink.
Il codice generato può essere usato a fini di accelerazione, prototipazione rapida, implementazione e distribuzione, o integrazione del sistema durante lo sviluppo del prodotto.
Accelerazione desktop
È possibile generare un codice eseguibile efficiente e compatto, una funzione MEX, ottimizzata per la prestazione di accelerazione degli algoritmi di calcolo intensivo nella simulazione. È possibile accelerare gli algoritmi a virgola mobile e fissa inclusi filtri, FFT, statistica e algebra lineare in MATLAB e Simulink.
Per accelerare simulazioni in streaming frame-based, dspunfold usa DSP unfolding per distribuire il carico computazionale nella funzione MEX generata in thread multipli.
Esecuzione autonoma e integrazione con altri ambienti
Con DSP System Toolbox, è possibile inoltre utilizzare il codice C generato dal proprio codice MATLAB o modello Simulink per la distribuzione o la prototipazione sul desktop generando un eseguibile autonomo del proprio algoritmo. È possibile ulteriormente ottimizzare questo eseguibile autonomo in tempo reale, direttamente da MATLAB o Simulink, utilizzando i componenti UDP. Poiché l’eseguibile autonomo funziona in un thread diverso dal codice MATLAB o dal modello Simulink, questo è in grado di migliorare la prestazione in tempo reale dell’algoritmo.
Il codice C generato degli algoritmi di elaborazione del segnale può essere integrato come componente compilato della libreria in un altro software, come ad esempio un simulatore personalizzato o un software standard di modellazione come il System C.
Generazione di codice C ottimizzato per i processori ARM Cortex
Utilizzando DSP System Toolbox con il supporto hardware supplementare per ARM Cortex-A o ARM Cortex-M e Embedded Coder®, è possibile generare codici C ottimizzati da System object di MATLAB o blocchi Simulink per i principali algoritmi DSP come ad esempio filtri FFT, FIR e Biquad. Il codice generato consente di eseguire chiamate a routine ottimizzate per libreria ARM Cortex-A Ne10 o libreria ARM Cortex-M CMSIS. Il vantaggio principale è un immediato miglioramento della prestazione rispetto al codice C standard. È inoltre possibile eseguire verifica e profiling del codice utilizzando il test processor-in-the-loop (PIL).
Utilizzando DSP System Toolbox con Filter Design HDL Coder™ in MATLAB, è possibile progettare filtri digitali e generare codice VHDL® e Verilog® efficiente, sintetizzabile e portatile per l’implementazione in FPGA o ASIC. È inoltre possibile creare automaticamente banchi di prova VHDL e Verilog per simulazione, testing e verifica del codice generato.
DSP System Toolbox con HDL Coder™ in Simulink consente di generare codice VHDL e Verilog sintetizzabile e leggibile per la progettazione di sistemi. Per ottimizzare l’uso e le prestazioni delle risorse FPGA/ASIC, è consigliabile utilizzare i blocchi di DSP HDL Toolbox.