DSP System Toolbox

Progettazione e simulazione di sistemi di elaborazione dei segnali

 

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 FFT, IFFT e altri algoritmi.

Gli algoritmi sono disponibili come funzioni di MATLAB, System object™ e blocchi Simulink.

Per iniziare:

Elaborazione dei segnali e dei 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 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à.

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

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

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.

Modello Simulink di un filtro di decimazione multistage per un convertitore da analogico a digitale sigma-delta

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

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 generati ed elaborati.

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:

Elenco parziale di algoritmi di elaborazione dei segnali disponibili in MATLAB, come visualizzato dall’help della riga di comando o rilevabile tramite il completamento delle schede.

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.

Risposta in frequenza dei singoli stadi di un convertitore digitale multistage

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

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:

Progettazione e analisi di un filtro passa-basso single-rate multistage utilizzando l’applicazione Filter Builder e l’applicazione Filter Visualizer

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 LMSil filtro basato su RLSil filtro proiezione affineil filtro trasversale veloceil filtro in frequenzail filtro a reticoloil 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.

Visualizzazione della risposta dinamica di un filtro adattivo LMS normalizzato durante la simulazione del modello di un sistema di eliminazione del rumore acustico

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.

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)

Visualizzatori, analizzatori e misurazione di segnali

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.

Misura della frequenza e della potenza dei picchi spettrali generati applicando un modello di amplificatore non lineare a un segnale chirp

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.

Logic Analyzer mostra i risultati della simulazione per un modello di filtro FIR programmabile preciso per hardware.

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

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 Fixed-Point Designer (a destra).

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.

Analisi della progettazione di filtri a virgola fissa del rumore di quantizzazione, dove non si rispettano i vincoli di progettazione del filtro e l’attenuazione stop-band è insufficiente a causa di una lunghezza delle parole di 8 bit (a sinistra). L’esecuzione di un test con una lunghezza di parola con coefficiente diverso e l’uso di una lunghezza delle parole di 12 bit è sufficiente e si rispettano i vincoli di progettazione del filtro (a destra).

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

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, statisticaalgebra 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).

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 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. Questo supporto include algoritmi ottimizzati per risorsa e prestazione, come ad esempio filtri, FFT, IFFT e NCO.

Dettaglio dell’implementazione di una delle architetture hardware supportate (ovvero sistolica parzialmente seriale) per un blocco filtro FIR ottimizzato per HDL

Funzionalità recenti

Codice SIMD per blocchi filtro

Accelerazione del codice generato per la decimazione FIR, l’interpolazione FIR e i blocchi filtro LMS utilizzando Intel AVX2

Nuovo filtro SOS biquadratico

Implementazione di filtri di sezione di secondo ordine in MATLAB utilizzando coefficienti regolabili con le stesse rappresentazioni riportate dalle funzioni di progettazione

Elaborazione multi-rate nel blocco di conversione di frequenza FIR

Simulazione di filtri di conversione di frequenza FIR in Simulink consentendo diverse frequenze di aggiornamento per segnali di input e output

Channelizer decimati a livello non massimo

Progettazione e implementazione di channelizer con output sovracampionati (non decimati in modo critico)

NCO Gigasample al secondo (GSPS)

Generazione di output basati su frame da NCO ottimizzati per HDL per applicazioni ad alta velocità (richiede HDL Coder per la generazione di codice)

Fattore di decimazione CIC variabile

Specifica del fattore di decimazione come input per il blocco decimatore CIC ottimizzato per HDL (richiede HDL Coder per la generazione di codice)

Consulta le note di rilascio per ulteriori informazioni su queste caratteristiche e sulle funzioni corrispondenti.