Principales fonctionnalités

  • Traitement du signal en streaming dans MATLAB®
  • Traitement du signal et blocs d'algèbre linéaire pour Simulink®
  • Conception de filtres mono/multi-cadences, FIR, IIR et adaptatifs
  • Outils Time Scope, Spectrum Analyzer et Logic Analyzer permettant de visualiser et de mesurer les signaux en streaming
  • Modélisation et simulation d’algorithmes de traitement du signal en virgule fixe
  • Support de la génération de code C et C++
  • Support de la génération de code HDL

Traitement du signal en streaming dans MATLAB

DSP System Toolbox™ propose un cadre de travail pour le traitement des signaux en streaming dans MATLAB. DSP System Toolbox inclut une bibliothèque d’algorithmes de traitement du signal optimisés pour les flux en streaming, comme les filtres mono et multi-cadences, 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 pour la voix.

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 de la manière la plus adaptée. Par exemple, le traitement du signal en streaming dans MATLAB permet un traitement temps réel des données audio multicanaux.

Le traitement de ce type de flux est rendu possible grâce à une bibliothèque de composants algorithmiques de traitement numérique du signal appelée System objects™ (objets système). Ces objets permettent de représenter des algorithmes de traitement de données, des sources et des récepteurs. Les objets système 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 objets système 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-cadences et adaptatifs à vos flux de streaming à l’aide d’algorithmes optimisés pour ce type de signaux/données.

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 de traitement numérique du signal

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 sous forme de fonctions MATLAB ou d’objets système MATLAB). Ces algorithmes peuvent traiter des données à virgule flottante (simple et double précision). La plupart des algorithmes sont également compatibles avec les types entiers ainsi que les données à virgule fixe (nécessite Fixed-Point Designer™).

Voici la liste des catégories d’algorithmes MATLAB disponibles dans DSP System Toolbox :

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 (avec la touche « Tab »).

Systèmes multi-cadences

Dans MATLAB, DSP System Toolbox supporte le traitement multi-cadences pour la conversion de la 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.

Conversion efficace de la fréquence d’échantillonnage avec facteurs arbitraires. Les exemples présentés sont les suivants : code MATLAB illustrant plusieurs structures d’implémentation avec leur analyse de coût, notamment des structures de Farrow qui peuvent s’avérer efficaces pour la conversion de la fréquence d’échantillonnage (à gauche) ; réponses en amplitude permettant de comparer l’efficacité des filtres polyphase et de Farrow pour la conversion de la fréquence d’échantillonnage (en haut à droite) ; solution hybride pour la conversion de la fréquence d’échantillonnage, mettant en œuvre une cascade de structures de Farrow et de filtres FIR polyphases (au milieu à droite) ; analyseur de spectre permettant de comparer les réponses en fréquence d’un filtre mono-étage et d’une combinaison de filtres FIR multi-étages et de Farrow, pour un flux en streaming (en bas à droite).

Dans Simulink, DSP System Toolbox propose une bibliothèque de blocs algorithmiques pour le 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 objets système peuvent être incorporés dans des modèles Simulink via les blocs « MATLAB Function » ou « MATLAB System ». La plupart des objets système sont associés à un bloc Simulink doté des mêmes fonctionnalités.

Opération basée sur les 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 de traitement numérique du signal

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 de signaux, 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-cadences 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ête et 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 générateurs de chirp et de bruits colorés, oscillateur contrôlé numériquement (NCO), émetteur-récepteur UDP, etc.
  • Routines d’algèbre linéaire numérique (solveurs de systèmes linéaires, factorisations et inversions de matrices, etc.)
Bibliothèque de blocs 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élisation des systèmes multicadences

Dans Simulink, DSP System Toolbox supporte le traitement multi-cadences pour la conversion de la 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. Les blocs de filtrage multi-cadences comprennent des blocs de filtrage multi-cadences et multi-étages (filtre CIC, filtre FIR pour la conversion de fréquence, filtre FIR d’interpolation et de décimation, et banc de filtres d’analyse dyadique).

Modèle de convertisseur A/N sigma-delta dans Simulink représentant des signaux à fréquences d’échantillonnage multiples (à gauche). Simulation du comportement d’un simple convertisseur abaisseur numérique (DDC) pour la conversion en bande de base dans un système de communication avec un oscillateur contrôlé numériquement (NCO), un filtre de décimation CIC, un compensateur CIC, un filtre demi-bande de décimation et un convertisseur de fréquence d’échantillonnage pour les ajustements de la fréquence finale (à droite).

Conception de filtres IIR et FIR mono et multi-cadences, et filtres adaptatifs

DSP System Toolbox propose des algorithmes complets pour la conception et l'implémentation de filtres FIR, IIR, multi-étages, multi-cadences 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 avec chevauchement et ajout, filtre IIR biquadratique en sections du second degré, passe-tout cascade, treillis).

Vous pouvez concevoir des filtres à l’aide de l’application Filterbuilder, de code MATLAB ou de blocs Simulink. Vous pouvez également analyser les effets de la quantification en virgule fixe avec 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 :

  • des filtres FIR avancés à ondulations constantes (filtres d’ordre minimal, à ondulations contraintes ou à phase minimale, par exemple) ;
  • des filtres de Nyquist, FIR demi-bande et IIR polyphase (filtres à phase linéaire, filtres à phase minimale, filtres demi-bande à phase quasi-linéaire, filtres à ondulations constantes, filtres à atténuation en pente ou filtres à fenêtre, par exemple) ;
  • des filtres d’interpolation CIC et de décimation sans multiplication pour l'implémentation dans les radios logicielles (SDR) et les convertisseurs sigma-delta ;
  • des conceptions multi-étages optimisées, pour optimiser le nombre d’étages en cascade et ainsi diminuer au maximum la complexité des calculs ;
  • des filtres à retard fractionnaire, notamment des structures avec filtres de Farrow adaptées aux applications de filtrage paramétrables ;
  • des filtres IIR passe-tout avec retard de groupe arbitraire, permettant de compenser les retards de groupe d’autres filtres IIR afin d’obtenir une réponse passe-bande à phase linéaire approximative ;
  • des filtres numériques IIR en treillis pour une implémentation robuste ;
  • des filtres FIR et IIR à amplitude et à phase arbitraires pour concevoir n’importe quelle structure de filtrage ;

Explore gallery (2 images)


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 système, l’estimation du spectre, l’égalisation et la suppression du 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.).

Utilisation de l’interface utilisateur pour paramétrer une identification système à l’aide de filtres adaptatifs RLS pendant l’exécution. Cette illustration montre les éléments suivants : code MATLAB appelant un algorithme RLS (en haut à gauche), interface utilisateur de paramétrage de la fréquence centrale et du facteur d’oubli RLS (en haut à droite), tracé de la courbe d’apprentissage du filtre RLS (au milieu à droite), tracé de la fonction de transfert souhaitée et estimée (en bas à droite) et version Simulink du modèle (en bas à gauche).

Conception et analyse de filtres multi-cadences et multi-étages

DSP System Toolbox permet de concevoir et d'implémenter des filtres multi-cadences, 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é de traitement des filtres multi-étages et multi-cadences.

Explore gallery (2 images)


Visualisation, analyse et mesure du signal

DSP System Toolbox fournit 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 un analyseur logique 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 divers 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.

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 la distorsion harmonique (THD, SNR, SINAD, SFDR), de la 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.

Explore gallery (3 images)


Modélisation et simulation d’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 matérielle, vous pouvez configurer des objets système MATLAB (System objects) et des blocs Simulink pour les modes de fonctionnement en virgule fixe, afin d’effectuer des analyses de compromis et d’optimiser votre conception en exécutant des simulations utilisant différentes longueurs de mots, des mises à l’échelle, la gestion des dépassements de capacité et des choix de modes d’arrondi.

Les modes de fonctionnement en virgule fixe sont compatibles avec de nombreux algorithmes de traitement numérique du signal, parmi lesquels la transformée de Fourier rapide (FFT), les filtres, les statistiques et l’algèbre linéaire. DSP System Toolbox permet d’automatiser la configuration d’objets système et de blocs pour les opérations en virgule fixe.

L’objet système MATLAB FFT permet de spécifier votre type de données virgule fixe pour les données de l’accumulateur, du produit et de la sortie (à gauche). La boîte de dialogue du bloc FFT de Simulink fournit des options pour la spécification des types de données virgule fixe pour l’accumulateur, le produit et la sortie (nécessite Fixed-Point Designer) (à droite).

Conception de filtres en virgule fixe

Dans DSP System Toolbox, les fonctions de conception de filtre et l'application Filterbuilder 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.

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ération de code C et C++ pour le développement d’applications bureau 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é à des fins d’accélération, de prototypage rapide, d’implémentation et de déploiement, ou d’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 de calcul intensif dans votre simulation. Vous pouvez accélérer vos algorithmes en virgule flottante ou fixe, notamment les filtres, les transformées de Fourier rapides (FFT), les statistiques et l’algèbre linéaire dans MATLAB et Simulink.

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


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 à des fins de déploiement et de prototypage sur votre PC, en générant un exécutable autonome de votre algorithme. Vous pourrez toujours ajuster cet exécutable en temps réel directement depuis MATLAB ou Simulink en utilisant les composants UDP. Dans la mesure où cet exécutable tourne sur un thread différent de celui du code MATLAB ou du modèle Simulink, les performances en temps réel de votre algorithme s’en trouvent 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.

Comment générer une fonction MEX réglée pour une performance optimale dans MATLAB afin d’accélérer votre simulation sur votre PC. L'illustration montre un exemple de code MATLAB d’une fonction d’égalisation paramétrique audio trois bandes (à gauche) et le fichier MEX équivalent pour l’algorithme de traitement principal (à droite).

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 d’objets système MATLAB ou de blocs Simulink pour les principaux algorithmes de traitement du signal tels que la transformée de Fourier rapide (FFT), les filtres FIR et biquadratique. 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ération de 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 les circuits FPGA ou ASIC. Vous pouvez aussi créer automatiquement des testbenches 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 conception système. Les algorithmes optimisés en termes de ressource et de performance, comme les filtres, la transformée de Fourier rapide FFT), la transformée de Fourier inverse (IFFT) et l’oscillateur contrôlé numériquement (NCO), sont également supportés.

Génération de code HDL pour un modèle de filtre FIR programmable. Ces illustrations montrent les éléments suivants : modèle de filtre FIR programmable dans Simulink pour une implémentation HDL (en haut à gauche) ; filtre FIR programmable via un sous-système de registres (en haut à droite) ; visualisation de l’entrée du filtre et des signaux de référence (au milieu à droite) ; affichage des coefficients dans Logic Analyzer, de l’adresse d’écriture et des enables, et des signaux d’entrée et de référence (en bas à droite) ; code HDL généré automatiquement depuis le modèle Simulink (en bas à gauche).