|
|
Ligne 2 : |
Ligne 2 : |
| | | |
| <center> | | <center> |
− | '''<big>TD/TP Traitement du signal numérique: lissage, détection de changements, détection de motifs</big>''' | + | '''<big>Classification multivariée temps réel</big>''' |
| </center> | | </center> |
| | | |
| Le travail de cette étape va consister à | | Le travail de cette étape va consister à |
− | * manipuler les différentes représentations d'un système numérique (filtre) | + | * lire des données temps réel caractérisant l'état d'un réseau (latence et débit) |
− | * Utiliser des filtres numériques pour lisser des données temps réel, détecter des changements ou des motifs particuliers. | + | * A partir d'un ensemble de données d'entrainement, mettre en place un classifieur permettant de détecter des anomalies sur ce réseau |
| | | |
− | === Exercice 1 : TD === | + | === Exercice === |
| | | |
− | * [[Media:TNS-td-représentationFiltre.pdf|Énoncés des exercices de TD (pdf)]] | + | * Source des données : https://www.kaggle.com/datasets/rishitdagli/anomaly-detection-sample-dataset |
− | | |
− | === Exercice 2 : TP ===
| |
− | | |
− | ===== Lissage =====
| |
− | | |
− | Données bruitées à lire sur le topic <code>data/s1</code>.
| |
− | | |
− | {{q| a)}} Lire et afficher le graphe des données <code>s1</code>.
| |
− | | |
− | {{q| b)}} En exploitant l'équation aux différence du filtre, appliquer le filtre numérique L<sub>1</sub>(z) = (1 + z<sup>-1</sup>). Afficher le graphe de la sortie (par ex. avec nodered ou bien avec MQTT explorer). Comparer le signal avant et après filtrage (amplitude et quantité de bruit)
| |
− | | |
− | {{q| c)}} En exploitant le signal s1 non bruité (disponible sur le topic <code>data/s1nonoise</code>) proposer une mesure de la qualité de débruitage du filtre de lissage.
| |
− | | |
− | {{q| d)}} Faire de même avec des lissage d'ordre plus élevés. Vous pourrez, soit coder directement L<sub>2</sub>, L<sub>3</sub>, ... ou bien faire des filtrages multiples avec L<sub>1</sub> (en vérifiant ainsi expérimentalement que L<sub>2</sub> = L<sub>1</sub> * L<sub>1</sub>). Mesurer à chaque fois les quantités de bruits obtenus afin de valider quantitativement la qualité des différents filtres.
| |
− | | |
− | ===== Dérivation (détection changements) =====
| |
− | | |
− | Données à lire sur les topics <code>data/s2</code> et <code>data/s2b</code> (version avec bruit)
| |
− | Le but est de détecter les sauts de valeurs à l'aide de filtre dérivateurs.
| |
− | | |
− | {{q| a)}} Appliquer le filtre dérivateur D<sub>1</sub>(z) = (1 - z<sup>-1</sup>)/2 sur <code>data/s2</code>. Mettre en place un détecteur de saut de valeurs à partir du résultat obtenu. Vous pourrez valider votre détection en exploitant la vérité terrain (saut/pas de saut) disponible sur le topic <code>s2vt</code>.
| |
− | | |
− | {{q| b)}} De même avec la version bruitée (<code>s2b</code>). Il sera probablement nécessaire d'opérer un lissage avant la détection, afin de réduire le bruit.
| |
− | | |
− | ===== Convolution (détection de motifs) =====
| |
− | | |
− | Un façon de détecter des motifs consiste à convoluer le signal d'entrée avec un signal similaire avec le motif recherché.
| |
− | | |
− | {{q| a)}} Mettre en place un détecteur de saut (avec les signaux <code>s2</code> puis <code>s2b</code>).
| |