DSP System Toolbox

 

DSP System Toolbox

Concevoir et simuler des systèmes de traitement du signal

En savoir plus:

Blocs de traitement du signal et d'algèbre linéaire pour Simulink

Dans Simulink, DSP System Toolbox™ propose une bibliothèque de blocs pour les algorithmes de traitement du signal (filtres, transformées et algèbre linéaire). Avec ces blocs, vous pouvez traiter les signaux d’entrée en streaming échantillon par échantillon, ou sous forme de collections d’échantillons (trames). Le traitement échantillon par échantillon permet d'obtenir des processus à faible latence et des applications nécessitant des calculs scalaires. Le traitement basé sur les trames permet d’obtenir un meilleur débit (mais avec plus de latence). DSP System Toolbox supporte les modes de traitement à base de trames et d’échantillons.

Les programmes MATLAB qui utilisent les System objects peuvent être incorporés dans des modèles Simulink via les blocs MATLAB Function ou MATLAB System. La plupart des System objects ont un bloc Simulink correspondant doté des mêmes fonctionnalités.

Traitement basé sur les trames dans les systèmes embarqués

Opération basée sur des trames : acquisition d’une trame de 16 échantillons entre chaque routine du service d’interruption. Cet exemple montre que le débit de la solution basée sur les trames est beaucoup plus élevé que celui de la solution basée sur les échantillons.

Blocs de traitement du signal pour la conception, l'implémentation et la validation d'un système DSP

Les blocs Simulink pour le traitement du signal supportent les types de données virgule flottante (simple et double précision) et entier. Ils sont également compatibles avec les données virgule fixe lorsqu'ils sont utilisés avec Fixed-Point Designer.

Voici la liste des blocs pour le traitement du signal disponibles dans DSP System Toolbox :

  • Transformées du signal, telles que la transformée de Fourier rapide (FFT), la transformée en cosinus discrète (DCT), la transformée de Fourier à court terme (STFT) et la transformée en ondelettes discrète (DWT)
  • Conception et implémentation de filtres FIR, IIR et analogiques
  • Filtres multi-échantillonnés et multi-étages pour la conversion de la fréquence d’échantillonnage (CIC, demi-bande, polyphase et de Farrow)
  • Techniques de traitement du signal statistiques et adaptatives pour l’estimation du spectre, l’égalisation et la suppression du bruit
  • Opérations et mesures sur les signaux (convolution, fenêtrage, remplissage, retards, détection de crêtes et de passages par zéro)
  • Visualisation et mesure du signal en streaming avec des outils comme Time Scope et Spectrum Analyzer
  • Méthodes de gestion du signal telles que la mise en mémoire tampon, l’indexation, la commutation, l’empilage et la mise en file d’attente
  • Récepteurs et sources tels que les générateurs de chirp et de bruits colorés, les NCO, les émetteurs-récepteurs UDP, etc.
  • Routines d’algèbre linéaire numérique (solveurs de systèmes linéaires, factorisations et inversions de matrices, etc.)
Bibliothèques de blocs pour le traitement du signal dans Simulink

Bibliothèque de blocs de DSP System Toolbox disponible dans Simulink pour le traitement du signal (en haut), avec vues étendues des solveurs de systèmes linéaires (en bas à gauche) et des transformées (en bas à droite).

Modéliser des systèmes multi-échantillonnés

Dans MATLAB, DSP System Toolbox supporte le traitement multi-échantillonné pour la conversion de fréquence d’échantillonnage ainsi que la modélisation des systèmes dans lesquels différentes fréquences d’échantillonnage ou d’horloge doivent être interfacées. Vous avez accès notamment à des filtres multi-étages et multi-échantillonnés (filtres FIR et IIR demi-bande, filtrage polyphase, filtres CIC et filtres de Farrow). Vous pouvez aussi effectuer certaines opérations sur les signaux, comme l’interpolation, la décimation et la conversion arbitraire de la fréquence d’échantillonnage.

Filtre de décimation multi-étages pour une conversion analogique-numérique Sigma-Delta

Modèle Simulink d'un filtre de décimation multi-étages pour une conversion analogique-numérique Sigma-Delta

Traitement du signal en streaming dans MATLAB

DSP System Toolbox propose un environnement pour traiter les signaux en streaming dans MATLAB. DSP System Toolbox comprend une bibliothèque d’algorithmes de traitement du signal optimisés pour les flux en streaming, comme les filtres mono et multi-échantillonnés, le filtrage adaptatif et les FFT. DSP System Toolbox est l’outil idéal pour concevoir, simuler et déployer des solutions de traitement du signal pour des applications audio, biomédicales, de communications, de contrôle, sismiques, de capteur et de parole.

Les techniques de traitement du signal en streaming (flux continus de données) permettent souvent d’accélérer les simulations en scindant les données d’entrée en trames et en traitant chaque trame au fur et à mesure de son acquisition. Par exemple, le traitement du signal en streaming dans MATLAB permet un traitement temps réel de données audio multicanaux.

Ce type de traitement est rendu possible grâce à une bibliothèque de composants algorithmiques DSP appelés System objects™. Ces objets permettent de représenter des algorithmes de traitement de données, des sources et des récepteurs. Les System objects vous permettent de créer des applications en streaming en automatisant des tâches comme l’indexation des données, la mise en mémoire tampon et la gestion des états des algorithmes. Vous pouvez mélanger des System objects MATLAB et des fonctions/opérateurs MATLAB standard.

Vous pouvez utiliser les outils Time Scope et Spectrum Analyzer pour visualiser et mesurer les signaux en streaming.

Vous pouvez appliquer des filtres mono/multi-échantillonnés et adaptatifs à vos données en streaming à l’aide d’algorithmes optimisés pour ce type de signaux/données.

Traitement du signal en streaming dans MATLAB

Code MATLAB implémentant une boucle de streaming simple (à gauche). Les outils Time Scope (en haut à droite) et Spectrum Analyzer (en bas à droite) visualisent et mesurent les signaux live à mesure qu'ils sont générés et traités.

Bibliothèque d’algorithmes pour la conception, l’implémentation et le test de systèmes DSP

DSP System Toolbox propose plus de 350 algorithmes optimisés pour la conception, l'implémentation et la validation de systèmes de traitement en streaming (implémentés avec des fonctions MATLAB ou des System objects MATLAB). Ces algorithmes supportent les données virgule flottante simple et double précision. La plupart des algorithmes sont également compatibles avec les types entiers et les données virgule fixe (nécessite Fixed-Point Designer™).

Les catégories d’algorithmes MATLAB disponibles dans DSP System Toolbox sont les suivantes :

Bibliothèques pour le traitement du signal en streaming dans MATLAB

Listes non exhaustives des algorithmes de traitement du signal disponibles dans MATLAB, comme affichées par l'aide en ligne de commande, ou explorable via la fonctionnalité de complétion (touche « Tab »).

Systèmes multi-échantillonnés

Dans MATLAB, DSP System Toolbox supporte le traitement multi-échantillonné pour la conversion de fréquence d’échantillonnage ainsi que la modélisation des systèmes dans lesquels différentes fréquences d’échantillonnage ou d’horloge doivent être interfacées. Vous avez accès notamment à des filtres multi-étages et multi-cadences (filtres FIR et IIR demi-bande, filtrage polyphase, filtres CIC et filtres de Farrow). Vous pouvez aussi effectuer certaines opérations sur les signaux, comme l’interpolation, la décimation et la conversion arbitraire de la fréquence d’échantillonnage.

Analyse d'une conception de convertisseur abaisseur numérique (DDC) à trois étapes

Réponse en fréquence des étages individuels d'un convertisseur abaisseur numérique à plusieurs étages

Concevoir des filtres IIR et FIR mono et multi-échantillonnés et des filtres adaptatifs

DSP System Toolbox propose de nombreux algorithmes pour la conception et l'implémentation de filtres FIR, IIR, multi-étages, multi-échantillonnés et adaptatifs. Vous pouvez concevoir des filtres passe-bas, passe-haut, passe-bande, coupe-bande, etc., puis les réaliser en utilisant différentes structures (FIR en forme directe, FIR overlap-add, filtre IIR biquadratique en sections du second ordre, passe-tout cascade, treillis).

Vous pouvez concevoir des filtres avec l’application Filterbuilder, du code MATLAB ou des blocs Simulink. Vous pouvez également analyser les effets de la quantification en virgule fixe pour des filtres FIR et IIR, et déterminer la longueur de mot optimale pour les coefficients de ces filtres.

Vous pouvez par ailleurs concevoir des filtres paramétrables et ajuster certains paramètres clés, comme la bande passante et le gain, pendant l’exécution.

Les filtres numériques conçus avec DSP System Toolbox dans MATLAB peuvent également être utilisés dans des modèles de niveau système dans Simulink. DSP System Toolbox propose une bibliothèque de blocs de filtrage prêts à l’emploi pour concevoir, simuler et implémenter des filtres passe-bas, passe-haut et autres, directement dans Simulink.

En plus des algorithmes de conception de filtres FIR et IIR conventionnels, vous avez accès à des filtres et à des méthodes de conception spécialisés, comme :

Filtres adaptatifs

DSP System Toolbox propose différentes techniques de filtrage adaptatif dans MATLAB et Simulink. Ces techniques ont de nombreuses applications comme l’identification de système, l’estimation de spectre, l’égalisation et la suppression de bruit. Elles font appel à des filtres adaptatifs LMS, RLS, de projection affine, transversaux rapides, fréquentiels, en treillis et de Kalman. DSP System Toolbox propose également des algorithmes pour l’analyse de ces filtres (suivi des coefficients, courbes d’apprentissage, convergence, etc.).

Visualiser la réponse dynamique d'un filtre adaptatif LMS normalisé pendant la simulation du modèle d'un système d'annulation de bruit acoustique

Conception et analyse de filtres multi-échantillonnés et multi-étages

DSP System Toolbox permet de concevoir et d'implémenter des filtres multi-échantillonnés, notamment des filtres d’interpolation polyphase, des filtres de décimation, des convertisseurs de fréquence d’échantillonnage, des filtres FIR et IIR demi-bande, des filtres de Farrow, ainsi que des filtres et des compensateurs CIC. Vous pouvez aussi utiliser des méthodes de conception multi-étages. DSP System Toolbox propose par ailleurs des fonctions d’analyse spécialisées pour estimer la complexité du traitement des filtres multi-étages et multi-échantillonnés.

Conception de filtres mono-étage et multi-étages

Comparaison des réponses d’un filtre à ondulations constantes et des filtres multi-étages et multi-échantillonnés correspondants à l’aide de fvtool (à gauche), et de la performance des filtres multi-étages et multi-échantillonnés en termes de densité spectrale de puissance en entrée et aux différentes sorties (à droite).

Visualiser, analyser et mesurer le signal

DSP System Toolbox offre des fonctions de visualisation et d'enregistrement pour la visualisation, la mesure et l’analyse dans le domaine temporel ou fréquentiel de signaux en streaming dans MATLAB et Simulink. Ces fonctions de visualisation incluent les mesures et les statistiques que vous avez l’habitude de voir sur les oscilloscopes et les analyseurs de spectre.

DSP System Toolbox propose également l’outil Logic Analyzer pour l’affichage des transitions des signaux dans le domaine temporel. Cet outil peut vous être utile pour le débogage de vos modèles qui ciblent une implémentation HDL.

Vous pouvez par ailleurs créer un tracé arbitraire pour visualiser des vecteurs de données, comme par exemple l’évolution des coefficients d’un filtre au cours du temps.

Time Scope permet de visualiser différents types de signaux dans le domaine temporel (signaux continus, discrets, de taille fixe ou variable, en virgule flottante ou fixe, et à N dimensions pour les systèmes E/S multicanaux). Vous pouvez regrouper les tracés de plusieurs signaux sur un même graphique (chaque signal ayant ses propres dimensions, fréquences d’échantillonnage et types de données) ou bien afficher plusieurs graphiques dans la même fenêtre Time Scope. Cet outil permet d’obtenir des analyses, des mesures et des statistiques, notamment la valeur efficace, les mesures crête à crête, la moyenne et la médiane.

Curseurs de données pour les mesures de forme d'onde dans Time Scope

Utilisation des curseurs de données pour mesurer les différences de temps et d'amplitude entre deux points d'une forme d'onde dans Time Scope.

L’outil Spectrum Analyzer permet de calculer le spectre de fréquences de divers signaux d’entrée et de l’afficher sur une échelle linéaire ou logarithmique. Vous pouvez l’utiliser pour effectuer des mesures et des analyses, comme les mesures de distorsion harmonique (THD, SNR, SINAD, SFDR), de distorsion d’intermodulation du troisième ordre (TOI), du rapport de puissance du canal adjacent (ACPR), de la fonction de distribution cumulative complémentaire (CCDF) et du rapport valeur de crête sur valeur moyenne (PAPR). L’affichage en mode spectrogramme de Spectrum Analyzer vous permet de visualiser l’évolution de spectres dans le temps et de détecter automatiquement les crêtes.

DSP System Toolbox propose en outre une gamme supplémentaire d’outils de visualisation pour vous permettre d’afficher et de mesurer un large éventail de signaux ou de données, notamment des valeurs réelles et complexes, des vecteurs, des tableaux et des trames de données de tous types (en virgule fixe, double précision, séquence d’entrée personnalisée, etc.). Certains de ces outils permettent d’afficher une vue 3D de vos données ou signaux en streaming pour vous permettre d’analyser leur évolution au cours du temps jusqu’à la fin de votre simulation.

Mesures dans l'analyseur de spectre

Mesurer la fréquence et la puissance des pics spectraux générés en appliquant un modèle d'amplificateur non linéaire à un signal chirp.

Modéliser et simuler des algorithmes en virgule fixe

Vous pouvez utiliser DSP System Toolbox avec Fixed-Point Designer pour modéliser des algorithmes de traitement du signal en virgule fixe et analyser les effets de la quantification sur le comportement et les performances du système. Vous pouvez également générer du code C virgule fixe à partir de votre code MATLAB ou modèle Simulink.

Avant de vous engager sur une cible hardware, vous pouvez configurer des System objects MATLAB et des blocs Simulink pour les modes de fonctionnement en virgule fixe, afin d’effectuer des analyses de compromis et d’optimiser votre design en exécutant des simulations utilisant différentes longueurs de mots, mises à l’échelle, gestion des overflow et choix de modes d’arrondi.

Les modes de fonctionnement en virgule fixe sont compatibles avec de nombreux algorithmes DSP comme la FFT, les filtres, les statistiques et l’algèbre linéaire. DSP System Toolbox permet d’automatiser la configuration de System objects et de blocs pour les opérations en virgule fixe.

Propriétés FFT pour les types de données en virgule fixe

Le System object MATLAB FFT contient des propriétés pour configurer les spécifications virgule fixe des données des accumulateurs, des produits et de la sortie (à gauche). La boîte de dialogue du bloc FFT de Simulink propose des options pour la spécification virgule fixe des données des accumulateurs, des produits et la sortie (nécessite Fixed-Point Designer) (à droite).

Conception de filtres en virgule fixe

Les fonctions de conception de filtre et l'application Filterbuilder de DSP System Toolbox vous permettent de concevoir des filtres en virgule flottante, convertibles en virgule fixe avec Fixed-Point Designer. Elles facilitent la conception et l’optimisation de filtres en virgule fixe, et vous permettent d’analyser les effets de la quantification.

Conception et analyse de filtres en virgule fixe

Filtre en virgule fixe et analyse du bruit de quantification. Les contraintes de conception du filtre ne sont pas respectées et l’atténuation dans la bande coupée est insuffisante à cause de la longueur de mot de 8 bits (à gauche). Test de différentes longueurs de mot : une longueur de 12 bits est suffisante et les contraintes de conception du filtre sont respectées (à droite).

Générer du code C et C++ pour le développement d’applications PC et embarquées

À l’aide de DSP System Toolbox, de MATLAB Coder™ et de Simulink Coder™, vous pouvez générer du code source C et C++ ou une fonction MEX réglée pour une performance optimale à partir de vos algorithmes de traitement du signal et modèles de système respectivement dans MATLAB et Simulink.

Le code généré peut être utilisé pour l’accélération, le prototypage rapide, l’implémentation et le déploiement, ou l’intégration de votre système pendant la phase de développement du produit.

Accélération de la simulation

Vous pouvez générer un code exécutable efficace et compact ou une fonction MEX réglée pour une performance optimale, afin d’accélérer les algorithmes nécessitant des calculs intensifs dans votre simulation. Vous pouvez accélérer vos algorithmes en virgule flottante ou fixe, notamment les filtres, les FFT, les statistiques et l’algèbre linéaire dans MATLAB et Simulink.

Afin d'accélérer les simulations en streaming basées sur des trames, dspunfold utilise le dépliage DSP pour répartir la charge de calcul sur plusieurs threads dans la fonction MEX générée.

Exécution autonome et intégration à d’autres environnements

Avec DSP System Toolbox, vous pouvez aussi utiliser le code C généré à partir de votre code MATLAB ou de votre modèle Simulink pour le déploiement et le prototypage sur votre PC, en générant un exécutable autonome de votre algorithme. Vous pouvez toujours régler cet exécutable en temps réel directement depuis MATLAB ou Simulink en utilisant les composants UDP. Puisque cet exécutable tourne sur un thread différent de celui du code MATLAB ou du modèle Simulink, les performances temps réel de votre algorithme sont améliorées.

Le code C généré à partir de vos algorithmes de traitement du signal peut ensuite être intégré sous forme de composant de bibliothèque compilé dans un autre logiciel, par exemple un simulateur personnalisé ou un logiciel de modélisation standard comme SystemC.

Génération de code C optimisé pour les processeurs ARM Cortex

Grâce à DSP System Toolbox, au module complémentaire de support hardware pour ARM Cortex-A ou ARM Cortex-M et à Embedded Coder, vous pouvez générer du code C optimisé à partir de System objects MATLAB ou de blocs Simulink pour les principaux algorithmes de traitement du signal tels que la FFT, les filtres FIR et biquadratiques. Le code généré effectue des appels à des routines optimisées pour la bibliothèque ARM Cortex-A Ne10 ou ARM Cortex-M CMSIS. L’un des principaux avantages est l’amélioration immédiate des performances, par rapport à du code C standard. Vous pouvez en outre vérifier et profiler votre code avec une simulation processor-in-the-loop (PIL).

Générer du code HDL pour le développement FPGA et ASIC

Avec DSP System Toolbox et Filter Design HDL Coder dans MATLAB, vous pouvez concevoir des filtres numériques et générer du code VHDL® et Verilog® efficace, synthétisable et portable pour l’implémentation dans des FPGA ou ASIC. Vous pouvez aussi créer automatiquement des test benches VHDL et Verilog pour simuler, tester et valider le code généré.

En utilisant DSP System Toolbox et HDL Coder, vous pouvez générer du code VHDL et Verilog synthétisable et lisible pour votre design système. Pour une utilisation et une performance optimisées des ressources FPGA/ASIC, vous pouvez envisager d'utiliser des blocs issus de DSP HDL Toolbox.

Structure d'un filtre FIR systolique partiellement en série

Logic Analyzer utilisé pour la vérification du modèle hardware d'un filtre FIR programmable.