Accelerating the pace of engineering and science

DSP System Toolbox

Funzionalità principali

  • Elaborazione dei segnali in streaming in MATLAB®
  • Elaborazione dei segnali e blocchi algebrici lineari per Simulink®
  • Progettazione di filtri adattivi, FIR, IIR, multi-rate e single-rate
  • Strumenti Time Scope, Spectrum Analyzer e Logic Analyzer per visualizzare e misurare i segnali in streaming.
  • Modellazione e simulazione a virgola fissa di algoritmi di elaborazione dei segnali
  • Supporto per la generazione di codice C e C++
  • Supporto per la generazione di codice HDL

Elaborazione dei segnali in streaming in MATLAB

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 dielaborazione dei segnali in streaming consentono un’elaborazione continua di dati in streaming che spesso può 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 per algoritmo 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.

Streaming signal processing technique in MATLAB.
Codice MATLAB che implementa un ciclo di streaming base (a sinistra). Time Scope (in alto a destra) e Spectrum Analyzer (in basso a destra) visualizzano e misurano i segnali dal vivo generato e processati.

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:

Partial list of System objects available in MATLAB.
Elenco parziale di algoritmi di elaborazione dei segnali disponibili in MATLAB, come visualizzato dall’help di riga di comando o rilevabile tramite il completamento grafici.

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 devono interfacciarsi 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.

Efficient sample-rate conversion between arbitrary factors.
Conversione efficiente della frequenza di campionamento tra fattori arbitrari. Gli esempi mostrati includono il codice MATLAB che mostra varie strutture di implementazione e la loro analisi dei costi, incluse le strutture di Farrow, che possono essere un’efficiente implementazione della conversione della frequenza di campionamento (a sinistra); risposte di ampiezza che mostrano il confronto tra l’implementazione di filtri polifase e filtri di Farrow della conversione della frequenza di campionamento (in alto a destra); una soluzione ibrida per la conversione della frequenza di campionamento utilizzando soluzioni a cascata di strutture di Farrow e FIR polifase (al centro a destra); e lo Spectrum Analyzer che mostra il confronto della visualizzazione in streaming delle risposte in frequenza della combinazione di filtri single-stage e multistage FIR e di Farrow (in basso a destra).

Elaborazione dei segnali e blocchi algebrici lineari per Simulink

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 permette processi a bassa latenza e applicazioni che richiedono elaborazione scalare. L’elaborazione frame-based permette 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 possono essere integrati in modelli Simulink mediante il blocco MATLAB Function o il blocco MATLAB System. La maggior parte dei System Object ha corrispondenti blocchi Simulink con le stesse capacità.

Frame-based operation showing frame-based throughput rate vs. sample-based alternative.
L’operazione frame-based, che acquisisce un frame di 16 campioni tra ogni interrupt service routine (ISR), mostra un tasso di capacità di trasmissione molto più alto rispetto all’alternativa sample-based.

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. Supportano inoltre 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:

DSP System Toolbox blocks library for signal processing available in Simulink.
Libreria dei blocchi di DSP System Toolbox per l’elaborazione dei segnali disponibili in Simulink (in alto), insieme a viste esplose di solutori lineari (in basso a sinistra) e trasformate (in basso a destra).

Modellazione di sistemi multirate

In Simulink, DSP System Toolbox supporta l'elaborazione multi-rate per la conversione della frequenza di campionamento e la modellazione di sistemi in cui devono interfacciarsi frequenze di campionamento o velocità di clock differenti. I blocchi filtro multi-rate includono blocchi multistage come ad esempio CIC, conversione di frequenza FIR, interpolatore e decimatore FIR e Dyadic Analysis Filter Bank.

Sigma-delta A/D converter model in Simulink showing signals operating at multiple sample rates.
Modello di convertitore A/D sigma-delta in Simulink, che indica i segnali che operano a frequenze di campionamento multiple (a sinistra). Simulazione del comportamento di un downconverter digitale (DDC) semplice per una conversione baseband in un sistema di comunicazione include un NCO, un decimatore CIC, un compensatore CIC, un decimatore Halfband e un convertitore della frequenza di campionamento per le modifiche di frequenza finali (a destra).

Progettazione di filtri FIR e IIR single-rate e multi-rate e filtri adattivi

DSP System Toolbox fornisce algoritmi per progettazione e 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.

È possibile progettare filtri regolabili in cui regolare i principali parametri di filtro, ad esempio larghezza di banda e guadagno, al momento dell’esecuzione.

Filterbuilder app for interactive filter design.
Applicazione Filterbuilder per la progettazione interattiva di un filtro passa-basso (a sinistra), manipolazione dell’implementazione delle specifiche del filtro UI (al centro) e visualizzazione della risposta di ampiezza del filtro passa-basso (a destra).

I filtri digitali progettati con DSP System Toolbox in MATLAB possono essere usati 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:

Specialized filter designs in MATLAB.
Esempi di filtri specializzati in MATLAB. In senso orario da sinistra in alto: risposta di grandezza arbitraria, il confronto di progettazione FIR passa-alto, confronto di progettazione IIR passa-banda, analisi di sezione cumulativa di un filtro biquad, analisi della risposta di un down converter digitale (DDC) con fattore 256 a virgola fissa e FIR passa-banda complesso multistadio.

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 reticoloe 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.

System identification using RLS adaptive filtering showing how to tune parameters at run time using the UI.
Identificazione di sistema utilizzando filtri adattivi RLS che mostra come regolare i parametri al momento dell’esecuzione utilizzando l’interfaccia grafica. Questa illustrazione include il codice MATLAB che chiama l’algoritmo RLS (in alto a sinistra), l’interfaccia grafica per regolare la frequenza centrale e il forgetting factor RLS (in alto a destra), il grafico della curva di apprendimento del filtro RLS (in centro a destra), il grafico della funzione di trasferimento desiderata e stimata (in basso a destra) e la versione Simulink del modello (in basso a sinistra).

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ù fasi. Il system toolbox fornisce inoltre funzioni di analisi specializzate per stimare la complessità di calcolo dei filtri multi-rate e multistage.

Responses of equiripple design and corresponding multirate and multistage design.
Risposte di progettazione equiripple e corrispondente progettazione multi-rate e multistage utilizzando fvtool (a sinistra), prestazione del grafico di progettazione multi-rate e multistage della densità spettrale di potenza di input e vari output (a destra)
Audio sample-rate conversion of streaming audio signal.
Conversione della frequenza di campionamento audio di un segnale audio in streaming da 44,1 KHz a 96 KHz. L’illustrazione mostra il codice MATLAB (a sinistra) e la risposta di ampiezza di filtri multi-rate in una conversione della frequenza di campionamento in due fasi, in cui il filtro 1 è un convertitore di frequenza FIR con fattore di interpolazione 160 e fattore di decimazione 147, e il filtro 2 è un filtro interpolatore FIR con fattore di interpolazione 2 (a destra).

Visualizzatori, analizzatori e misurazione di segnale

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 and Simulink. I visualizzatori sono forniti di misurazione 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 for visualization and measurement in time domain of multichannel signals.
Time Scope per la visualizzazione e la misurazione di segnali multicanale in dominio temporale. L’illustrazione include anche misurazioni con cursore e trigger (in alto a sinistra), pannello di misurazione bilevel e pannello overshoot/undershoot (in alto a destra), misurazione rilevatore picchi (in basso a destra) e misurazioni con cursore (in basso a sinistra).

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 efficace (RMS), peak-to-peak, media e mediana.

Spectrum Analyzer for frequency-domain visualization and measurements of various multichannel signals.
Spectrum Analyzer per la visualizzazione e la misurazione di segnali multicanale in dominio di frequenza. L’illustrazione mostra misurazioni di distorsione armonica come THD, SNR, SINAD, SFDR (in alto a sinistra); misurazione di rapporto potenza canale adiacente (ACPR) (in alto a destra); spettrogramma per spettri variabili nel tempo (in basso a sinistra); rilevatori di picchi e misurazione di distorsione di intermodulazione del terzo ordine (TOI) (in basso a destra).

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 di canale come ad esempio misurazioni di distorsione armonica (THD, SNR, SINAD, SFDR), misurazione di distorsione di intermodulazione del terzo ordine (TOI), misurazione 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 mostra come visualizzare spettri variabili nel tempo e consente il rilevamento automatico dei picchi.

DSP System Toolbox fornisce un’ulteriore famiglia 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.

View of LMS adaptive filter weights on the array plot.
Visualizzazione dei pesi dei filtri adattivi LMS sul grafico di array. In questo esempio è possibile vedere il cambiamento dei pesi del filtro mentre si adatta per filtrare un segnale in ingresso disturbato (in alto a sinistra). Logic Analyzer visualizza le transizioni nei segnali in dominio temporale (in alto a destra). Il blocco Vector Scope visualizza nel tempo il numero del frame attuale nella sequenza in ingresso di dati definiti dall’utente, incrementa automaticamente il conteggio ad ogni input ricevuto e continua fino al termine della simulazione (in basso a destra). Il blocco Waterfall Scope visualizza contemporaneamente vari vettori di dati, che rappresentano i dati in uscita in tempi campione consecutivi di una cancellazione di disturbo acustico (in basso a sinistra).

Modellazione e simulazione a virgola fissa

È 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. È 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 in modo che operino 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.

Sono supportati modelli a virgola fissa per 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.

FFT MATLAB System object and FFT Simulink block provisions.
System Object FFT di MATLAB, che fornisce le proprietà per configurare la specifica di dati a virgola fissa di accumulatore, prodotto e segnali di output (a sinistra). La finestra di dialogo del blocco FFT Simulink fornisce opzioni per la specifica di tipi di dati a virgola fissa di accumulatore, prodotto e segnali di output, che richiede Simulink Fixed-Point Designer (a destra).

Progettazione di filtri a virgola fissa

In DSP System Toolbox, le funzioni di progettazione di filtri o le applicazioni interattive Filterbuilder consentono di progettare filtri a virgola mobile che possono essere convertiti in tipi di dati a virgola fissa grazie a Fixed-Point Designer. Questo flusso di progettazione semplifica la progettazione e l’ottimizzazione di filtri e consente di analizzare gli effetti della quantizzazione.

Fixed-point filter design analysis of quantization noise.
Analisi della progettazione di filtri a virgola fissa del rumore di quantizzazione dove i vincoli di progettazione del filtro non sono soddisfatti, e l’attenuazione stop-band è insufficiente a causa di una lunghezza delle parole di 8 bit (a sinistra). Sperimentando con una lunghezza di parola con coefficiente diverso e utilizzando una lunghezza delle parole di 12 bit è sufficiente e i vincoli di progettazione del filtro sono soddisfatti (a destra).

Flussi di lavoro per la generazione di codice C e C++ per sistemi embedded e per desktop

Utilizzando DSP System Toolbox con MATLAB Coder™ e Simulink Coder™, è possibile la generazione di 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 dell’algoritmo. Questo eseguibile autonomo può ancora essere ottimizzato da MATLAB o Simulink in tempo reale utilizzando i componenti UDP. Poiché l’eseguibile autonomo funziona in un thread diverso dal codice MATLAB o dal modello Simulink, migliora 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.

How to generate an MEX function tuned for performance from MATLAB.
Come generare da MATLAB una funzione MEX ottimizzata per la prestazione per accelerare la simulazione sul desktop. Vengono mostrati il codice MATLAB campione della funzione di equalizzatore parametrico audio a 3 bande (a sinistra) e il file MEX equivalente per il principale algoritmo di elaborazione (a destra).

Generazione di codice C ottimizzato per i processori ARM Cortex

Utilizzando DSP System Toolbox con il supporto hardware aggiuntivo per ARM Cortex-A o ARM Cortex-M eEmbedded 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 permette chiamate a routine ottimizzate per libreria ARM Cortex-A Ne10 o libreria ARM Cortex-M CMSIS. Il vantaggio principale è un immediato miglioramento della prestazione in confronto al codice C standard. È possibile inoltre eseguire verifica e profiling del codice utilizzando il test processor-in-the-loop (PIL).

Generazione di codice HDL per sviluppo FPGA e ASIC

Utilizzando DSP System Toolbox con Filter Design HDL Coder™ in MATLAB, è possibile progettare filtri digitali e generare codici VHDL® e Verilog® efficienti, sintetizzabili e portatili per l’implementazione in FPGA o ASIC. È inoltre possibile creare banchi di prova VHDL e Verilog per simulazione veloce, testing e verifica di codice generato.

DSP System Toolbox con HDL Coder™ in Simulink permette la generazione di codici VHDL e Verilog sintetizzabili e leggibili per la progettazione di sistema. Questo supporto include algoritmi ottimizzati per risorsa e prestazione, come ad esempio filtri, FFT, IFFT e NCO.

Generate HDL code for programmable FIR filter model.
Generazione di codici HDL per modelli di filtro FIR programmabile. Queste illustrazioni mostrano un modello di filtro FIR programmabile in Simulink per implementazione HDL (in alto a sinistra); FIR programmabile tramite sottosistema registri (in alto a destra); display di visualizzazione di input filtro e segnali di riferimento (al centro a destra); display del Logic Analyzer di coefficienti, write address ed enables e filtro input e segnali di riferimento (in basso a destra); codice HDL generato automaticamente dal modello Simulink (in basso a sinistra).

Progettazione di sistemi radar a banda larga

Visualizza webinar