DSP System Toolbox

 

DSP System Toolbox

Progettazione e simulazione di sistemi di elaborazione dei segnali

Inizia ora:

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

Elaborazione frame-based in sistemi embedded

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:

Librerie di blocchi di elaborazione dei segnali per Simulink

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.

Decimatore multistage per ADC sigma-delta

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.

Elaborazione dei segnali in streaming 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 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:

Librerie per l’elaborazione dei segnali in streaming in MATLAB

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.

Analisi di un progetto di DDC a tre stadi

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:

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

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.

Progettazione di filtri multistage e single-stage

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.

Cursori di dati per misurazioni di forme d’onda in Time Scope

Utilizza i cursori di dati per misurare le differenze di tempo e ampiezza tra due punti di una forma d’onda in Time Scope.

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.

Misurazioni con Spectrum Analyzer

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

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.

Proprietà FFT per tipi di dati 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.

Progettazione e analisi di filtri a virgola fissa

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. Per ottimizzare l’uso e le prestazioni delle risorse FPGA/ASIC, è consigliabile utilizzare i blocchi di DSP HDL Toolbox.

Struttura sistolica parzialmente seriale di un filtro FIR

Logic Analyzer utilizzato per la verifica di un modello hardware di un filtro FIR programmabile.