Cours:BUTiot TNS : Différence entre versions
Ligne 21 : | Ligne 21 : | ||
{{q| a)}} Lire et afficher le graphe des données <code>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 | + | {{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| 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 | + | {{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) ===== | ===== Dérivation (détection changements) ===== | ||
− | {{q| a)}} | + | 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>). | ||
===== Convolution (détection de motifs) ===== | ===== Convolution (détection de motifs) ===== | ||
{{q| a)}} xx | {{q| a)}} xx |
Version du 31 janvier 2024 à 14:55
TD/TP Traitement du signal numérique: lissage, détection de changements, détection de motifs
Le travail de cette étape va consister à
- manipuler les différentes représentations d'un système numérique (filtre)
- Utiliser des filtres numériques pour lisser des données temps réel, détecter des changements ou des motifs particuliers.
Sommaire
Exercice 1 : TD
Exercice 2 : TP
Lissage
Données bruitées à lire sur le topic data/s1
a) Lire et afficher le graphe des données s1
b) En exploitant l'équation aux différence du filtre, appliquer le filtre numérique L1(z) = (1 + z-1). 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)
c) En exploitant le signal s1 non bruité (disponible sur le topic data/s1nonoise
) proposer une mesure de la qualité de débruitage du filtre de lissage.
d) Faire de même avec des lissage d'ordre plus élevés. Vous pourrez, soit coder directement L2, L3, ... ou bien faire des filtrages multiples avec L1 (en vérifiant ainsi expérimentalement que L2 = L1 * L1). 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 data/s2
et data/s2b
(version avec bruit)
Le but est de détecter les sauts de valeurs à l'aide de filtre dérivateurs.
a) Appliquer le filtre dérivateur D1(z) = (1 - z-1)/2 sur data/s2
. 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 s2vt
).
Convolution (détection de motifs)
a) xx