PSI Sciences Industrielles pour l’Ingénieur TP n°3 ! Lycée Clemenceau - Nantes Durée : 2 heures INTRODUCTION AUX SIGNAUX ÉCHANTILLONNÉS ALGORITHMES DE FILTRAGES NUMÉRIQUES ☞ Compte rendu à rédiger. L’objectif de ce travail est d’aborder (très modestement) la conception d’un filtre numérique. Pour ce faire, dans une première partie, sera établi l’algorithme de construction d’un système passe-bas du premier ordre basé sur la méthode d’Euler (cf. cours d’informatique). Cet algorithme sera mis en œuvre sur le tableur EXCEL. On pourra alors, dans une seconde partie, établir et tracer les réponses temporelles d’un tel système aux signaux canoniques usuels. Son utilisation comme filtre, par exemple pour supprimer des fréquences parasites supportées par un signal harmonique, fera l’objet de la troisième partie de ce travail. La quatrième partie évoque le traitement de signaux autres qu’harmoniques. Enfin, pour aller plus loin, on s’intéressera à un filtre passe-bas du deuxième ordre et à un filtre coupe-bande. 0 – INTRODUCTION 0-1 Objectif Le filtrage de signaux intervient dans de nombreux secteurs scientifiques ou industriels. On peut citer trois grands domaines : 1. La correction en automatique, où le correcteur peut être considéré comme un filtre agissant sur l’écart. Voir cours d’automatique. 2. Les mesures physiques où les grandeurs acquises sont toujours entachées de bruits qu’il convient d’éliminer. En particulier lorsqu’elles proviennent de dérivations, qu’elles soient analogiques ou numériques. Par exemple, si on désire accéder à une vitesse à partir de la mesure d’un déplacement, les bruits minimes du signal de position peuvent néanmoins présenter de fortes variations, et donc leurs dérivées de fortes amplitudes : Lycée Clemenceau Nantes - Olivier Le Gallo - SII 3. Le traitement de signaux harmoniques (acoustiques, ondes radios, etc.) où il convient d’éliminer des fréquences situées en dehors d’une certaine bande passante : 1,5! 1! 59,2! 56! 57,6! 54,4! 51,2! 50! 52,8! 48! 49,6! 49! 46,4! 46! 47! 44,8! 44! 43,2! 40! 41,6! 38,4! 36,8! 35,2! 32! 33,6! 30,4! 27,2! 26! 28,8! 24! 25,6! 25! 22,4! 23! 20,8! 22! 19,2! 20! 16! 17,6! 14,4! 12,8! 11,2! 8! 9,6! 6,4! 3,2! 2! 4,8! 0! 1,6! 1! 0! -1! 0,5! -0,5! -1! -1,5! 1,5! 1! 59! 58! 56! 55! 53! 52! 43! 41! 40! 38! 37! 35! 34! 32! 31! 29! 28! 19! 17! 16! 14! 13! 11! 10! 8! 7! 5! 0! 4! 0,5! -0,5! -1! -1,5! Les signaux manipulés aujourd’hui sont de plus en plus souvent numériques. Leur traitement s’effectue alors par des algorithmes (ou « filtres numériques »), généralement accessibles comme blocs fonctionnels dans les différents logiciels industriels d’exploitation (voir systèmes du laboratoire : PID du bras MAXPID par exemple). En mesures, ils peuvent aussi être intégrés (ROM) tout simplement dans le conditionneur du capteur. Néanmoins, dans des cas simples, ou dans le cas de développements spécifiques, il peut être utile de savoir programmer son propre algorithme dans un langage de base, afin de l’implanter dans une carte. De plus, dans le cas de signaux analogiques, même s’il existe toujours des filtres réalisés par des réseaux électriques traditionnels (voir exemple ci-contre pour un filtre PID), on leur Signal analogique filtré Signal analogique préfère aujourd’hui très couramment les filtres numériques après conversion, puis éventuellement recomposition : Filtre Signal analogique Convertisseur A/N Image numérique Filtre numérique Réponse du filtre numérique Convertisseur N/A Signal analogique filtré Lycée Clemenceau Nantes - Olivier Le Gallo - SII 0-2 Choix du filtre - rappels de cours Le filtre le plus simple que l’on peut rencontrer, et qui sera celui principalement étudié et conçu dans ce travail, est le filtre fondamental du premier ordre, de fonction de transfert : 1 H(p) = 1+ τp où p représente la variable symbolique de Laplace. € Le gain est 1 (puisque éventuellement un amplificateur de gain K peut lui être adjoint en série). La constante de temps est τ (exprimée en s). Comme tout système linéaire, soumis à une entrée sinusoïdale e(t) = sinωt, il répond en régime permanent par une sortie également sinusoïdale et de même pulsation, mais amplifiée (en fait ici atténuée) et $ ϕ ' déphasée : s(t) = A sin ωt + ϕ = A sin& ω(t + ) ) ω ( % ( facteur d’atténuation € signal d’entrée ) déphasage ou retard signal de sortie ϕ ω régime transitoire NB1 : Il est clair que, théoriquement, le régime transitoire a une durée infinie et que donc le régime permanent n’est jamais atteint. Mais en pratique, le graphe ci-dessus montre bien l’établissement d’un régime permanent après un certain temps (lié à la constante de temps du système). NB2 : Ne pas confondre le terme de retard (qui dépend de ω) ici utilisé pour caractériser le décalage temporel entre la sortie en régime permanent et l’entrée, avec la notion de système retardateur, par ailleurs non linéaire, caractérisé par la fonction de transfert R(p) = e −Tp où T est une constante appelée retard. L’outil performant d’étude de cette réponse harmonique en régime permanent de pulsation ω est la fonction de transfert isochrone (obtenue lorsque p = jω , imaginaire pur) : 1 H(p) = ω 1+ j ω0 La pulsation ω0 = 1 -1 (exprimée en rad.s ) est appelée pulsation de cassure ou bande passante plus τ spécifiquement dans le cas d’un filtre. Lycée Clemenceau Nantes - Olivier Le Gallo - SII Son module n’est autre que le facteur d’atténuation entre sortie et entrée A = H( jω) = 1 " ω% 1+ $ ' #ω0& ω Son argument n’est autre que le déphasage entre sortie et entrée ϕ = Arg H(j ω) = − arctan ω0 ( 2 ) Ces deux grandeurs dépendent de la pulsation ω. Cette dépendance pouvant être traduite graphiquement par les différents lieux de transfert, comme par exemple le diagramme de Bode qui rassemble, en fonction de ω représentée selon une échelle logarithmique : • Pente de –20 dB par décade l’évolution de A, exprimée en dB, soit 20 log A : Atténuation de –3dB pour la pulsation de cassure (ou bande passante) Pulsation de cassure " (ou bande passante) l’évolution de ϕ : Déphasage de 45° pour la pulsation de cassure (ou bande passante) Ainsi, si la bande passante ω 0 du filtre est suffisamment faible (constante de temps τ suffisamment grande) par rapport à celle du signal d’entrée, la sortie se trouve fortement atténuée : déjà quasiment -20 dB, soit une division par 10 de l’amplitude, si ω0 = ω / 10 . Cette atténuation se fait « au prix » d’un déphasage ϕ pouvant atteindre 90°. Celui-ci est souvent sans incidence. Dans le cas contraire, il convient de traiter le signal en le décalant temporairement de ϕ / ω. I – FILTRAGE NUMÉRIQUE I-1 Mise en place du problème - méthode d’Euler L’entrée du filtre est notée e(t), la sortie s(t). Soit, dans le domaine de Laplace, respectivement E(p) et S(p). Ces variables sont liées par : 1 S(p) = E(p) 1+ τp E(p) S(p) ou encore : S(p) + τpS(p) = E(p) Lycée Clemenceau Nantes - Olivier Le Gallo - SII soit très classiquement par l’équation différentielle: s(t) + τ ds (t) = e(t) sous les conditions de Heaviside. dt Par ailleurs, les signaux ne sont pas continus, mais sont échantillonnés. Soit Te la période d’échantillonnage. Les valeurs des signaux s’inscrivent donc selon le tableau : 0 e(0) s(0) Attention : pour que l’approximation donne des résultats Te e(Te) s(Te) satisfaisants, il faut que la période d’échantillonnage soit 2 Te e(2Te) s(2Te) suffisamment faible devant la période la plus petite des 3 Te e(3Te) s(3Te) différents signaux à échantillonner. … ➨ Quel est alors l’algorithme de calcul de ds (t) en fonction de s(t) et de s(t - Te) ? dt Mettre en évidence la nécessité de la condition initiale. ➨ En déduire l’algorithme de filtrage, c’est-à-dire la loi donnant s(t) en fonction de e(t) et de s(t - Te). I-2 Programmation de l’algorithme ➨ Créer un fichier EXCEL à trois colonnes : Case permettant de saisir la valeur de la bande passante du filtre. • La première colonne contient les instants d’échantillonnage, par ex. toutes les Te = 0,1s, pendant 60s. • Dans la deuxième colonne sera défini ultérieurement le signal d’entrée. • Dans la troisième colonne, programmer l’algorithme établi précédemment, afin de définir le signal de sortie du filtre. La constante de temps τ du filtre sera programmable et saisie par définition de sa bande 1 passante ω0 = dans une case déterminée. τ I-3 Test Afin de vérifier le fonctionnement de l’algorithme qui vient d’être programmé, on peut le tester sur une entrée sinusoïdale, afin de valider les résultats bien connus rappelés ci-dessus au paragraphe 0-2. ➨ Compléter la colonne « entrée », afin de définir un signal sinusoïdal de période suffisamment grande devant Te. On pourra, par exemple, choisir un signal d’amplitude 1 (fixe) et de pulsation 1 rad/s (modifiable). ➨ Observer la sortie pour diverses valeurs de la bande passante, en particulier : • L’existence du régime transitoire (on pourra modifier la condition initiale). • L’atténuation et le déphasage (matérialisé ici par un décalage temporel). On tracera pour cela toutes les courbes jugées utiles. Lycée Clemenceau Nantes - Olivier Le Gallo - SII NB : le régime transitoire est d’autant plus marqué que la bande passante du filtre est faible ; mais dans ce cas le signal est aussi fortement atténué : il peut être alors intéressant de « zoomer » sur les premiers instants. II – ANALYSE TEMPORELLE : RÉPONSES AUX SIGNAUX CANONIQUES ➨ Modifier la seconde colonne du fichier EXCEL précédent pour obtenir la réponse du filtre à un échelon à partir d’une condition initiale nulle (situation de Heaviside). Vérifier quantitativement les résultats bien connus concernant cette réponse : temps de réponse à 5% (ou de montée à 95%), temps de montée à 63%. Observer qu’avec une période d’échantillonnage plus petite (par exemple 0,01s au lieu de 0,1s) l’approximation numérique est sensiblement meilleure. Tester la réponse pour plusieurs valeurs de la condition initiale. ➨ Même travail pour une sollicitation en rampe. III – FILTRAGE D’UN SIGNAL HARMONIQUE BRUITÉ III-1 Filtrage brut ➨ Modifier la seconde colonne du fichier EXCEL précédent pour obtenir la réponse du filtre à un signal sinusoïdal sur lequel se superpose, par exemple, un signal de pulsation 10 fois plus grande et d’amplitude 20% : e(t) = sin(ωt) + 0,2 sin(10ωt) Prévoir une possibilité de modification de la pulsation porteuse du signal d’entrée. Si vous le souhaitez et en avez le temps, vous pouvez prévoir également une possibilité de modification du bruit (amplitude 0,2 et facteur 10 sur la pulsation modifiables). ➨ Pour un signal bruité donné, faire varier la bande passante du filtre, observer et conclure. III-2 Traitement du signal filtré Il conviendrait maintenant de : • ré-amplifier le signal de sortie, • le décaler temporairement, afin que le filtre numérique réalise entièrement sa fonction (voir paragraphe 0-1, point 3). On s’intéressera ici uniquement à la ré-amplification. Celle-ci dépend de la pulsation du signal porteur que l’on désire conserver et de la bande passante du filtre. Cf. paragraphe 0-2. Le décalage temporel ne sera pas abordé dans ce travail. Lycée Clemenceau Nantes - Olivier Le Gallo - SII ➨ Il convient donc maintenant de créer de nouvelles cases et colonnes EXCEL pour traduire ces relations, puis de tracer la sortie finale : Case de calcul du Case de calcul du Case de calcul de l’amplification déphasage décalage temporel (demandé dans ce travail) (non abordé) Colonne des Colonne de la nouveaux instants sortie traitée Filtrage brut Signal de sortie du filtre numérique (ici avec le décalage (obtenu au III-1) temporel réalisé, mais non demandé dans ce travail) ➨ Pour un signal bruité donné, faire varier la bande passante du filtre, observer et conclure. IV – FILTRAGE D’UN SIGNAL QUELCONQUE Il vient de comprendre que le post-traitement (ré-amplification et décalage temporel correcteur) peut être traité relativement facilement lorsque le signal bruité est harmonique. Par contre la conception d’un filtre capable de traiter des signaux quelconques ne va pas sans poser de difficultés, puisque ces deux traitements dépendent de la nature du signal d’entrée. Lycée Clemenceau Nantes - Olivier Le Gallo - SII IV-1 Exemple d’une rampe bruitée ➨ Ouvrir le fichier « rampe.xls » du répertoire « filtre du premier ordre ». Bien observer l’algorithme, en particulier le décalage temporel. NB : L’affichage aux temps longs est réalisé en modifiant l’étiquette des abscisses et les séries de données. Il peut être modifié par accès au menu d’affichage par pointage sur la courbe et action sur le bouton droit de la souris. ➨ Tester diverses bandes passantes du filtre pour bien observer son comportement. La comparaison temporelle de la sortie traitée avec l’entrée nécessite une modification manuelle de l’étiquette des abscisses (voir remarque ci-dessus). IV-2 Exemple d’un trapèze bruité ➨ Ouvrir le fichier « trapèze.xls ». ➨ Tester diverses bandes passantes et bien comprendre le comportement et l’imperfection du filtre étudié à filtrer correctement le bruit sans trop affecter la porteuse. Lycée Clemenceau Nantes - Olivier Le Gallo - SII V – SYSTÈME FONDAMENTAL DU SECOND ORDRE V-1 Mise en place de l’algorithme et des conditions initiales Le paragraphe I-1 a permis d’établir que la dérivée de la sortie à l’instant t est assimilée à : ds s(t) − s(t − Te ) (t) = dt Te € De même sa dérivée seconde sera donc : ds ds (t) − (t − Te ) d2s s(t) − 2s(t − Te ) + s(t − 2Te ) dt (t) = dt = 2 Te dt Te2 La nécessité de deux conditions initiales apparaît clairement dans les écritures précédentes. € Le calcul de la dérivée première à l’instant initial n’est pas possible pour des raisons de causalité : elle nécessiterait la connaissance de la valeur à l’instant -Te ce qui n’a pas de sens. Son calcul à l’instant suivant nécessite la connaissance de la valeur initiale f(0) de la fonction. Ensuite l’algorithme est initié et la dérivée première à chaque instant peut être calculée à partir de la valeur de la fonction à ce même instant et de sa valeur à l’instant précédent. Concernant la dérivée seconde, il apparaît de la même manière que les valeurs de la fonction à l’instant initial f(0) et à l’instant suivant f(Te) doivent être connues. Cela peut aussi se traduire par la nécessité de connaître la valeur initiale de la fonction et de sa dérivée première puisqu’alors celle-ci donne accès à f(Te) par linéarisation (voir ci-dessous). L’algorithme est alors initié à partir de l’instant 2Te et permet de calculer la dérivée seconde à chaque instant à partir des valeurs de la fonction à ce même instant et aux deux instants précédents. On retrouve ici les résultats bien connus des équations différentielles où une équation différentielle d’ordre n > 1 nécessite n conditions initiales : celle de la fonction et celles de ses n-1 dérivées d’ordre i ∈[1,n − 1] à l’instant initial. On s’intéresse au système fondamental du deuxième ordre, de gain unitaire pour simplifier, qui est le système d’entrée e(t) et de sortie s(t), obéissant à l’équation différentielle : s(t) + € 2z ds(t) 1 d2s(t) + 2 = e(t) ω0 dt ω0 dt2 où z est le facteur d’amortissement et ω 0 la pulsation propre. L’entrée et la sortie étant échantillonnées à la période Te, en utilisant l’approximation précédemment construite des dérivées première et seconde, cette équation différentielle se traduit par : 2z s(t) − s(t − Te ) 1 s(t) − 2s(t − Te ) + s(t − 2Te ) s(t) + + 2 = e(t) ω0 Te ω0 Te2 Ce qui permet d’exprimer la valeur de la sortie à l’instant t en fonction de ses deux valeurs précédentes et de € la valeur de l’entrée au même instant : s(t) = € 1 2z 2 1 [ e(t) + s(t − Te ) + 2 2 s(t − Te ) − 2 2 s(t − 2Te ) ] 2z 1 ω0 Te ω T ω 0 e 0 Te 1+ + 2 2 ω0 Te ω0 Te Lycée Clemenceau Nantes - Olivier Le Gallo - SII Cette relation, initiée par les valeurs s(0) et s(Te) de la sortie, constitue l’algorithme de calcul de s(t) pour t>Te. Par ailleurs, puisque ds ds s(t) − s(t − Te ) (t) . , il vient : s(t) = s(t − Te ) + Te (t) = dt Te dt s(t) ds ds (Te ) ≈ s(0) + Te (0) dt dt € € si Te est suffisamment faible. Donc s(Te ) = s(0) + Te s(Te) s(0) 0 € Ceci montre que l’on peut accéder à s(Te) à partir de s(0) et de Te t ds (0) . dt Il s’agit en fait de la simple linéarisation figurée ci-dessus, qui revient à confondre la dérivée à gauche en Te avec la dérivée à droite en 0. € Ainsi l’algorithme peut également être classiquement initié par les valeurs de s(0) et de V-2 Mise en œuvre ➨ Ouvrir le ds (0) . dt € fichier EXCEL se trouvant dans le répertoire « filtre du L’algorithme est programmé à partir de l’instant 2Te. La valeur s(Te) est calculée à partir de s(0) et de s’(0). 2ème ordre ». Observer et comprendre la mise en œuvre de l’algorithme. ➨ Tester cet algorithme : • modification du facteur d’amortissement et/ou de la pulsation propre, • modification des conditions initiales ou du signal d’entrée. VI – FILTRE COUPE BANDE Les filtres passe-bas qui viennent d’être étudiés s’avèrent rapidement inefficaces si on doit filtrer une pulsation bien précise. Voir en particulier l’exemple du trapèze bruité. Un filtre coupe-bande (ou rejecteur) peut alors être une solution. Soit par exemple un filtre de fonction de transfert : 1 2 p ω02 H(p) = 2z 1 1+ p + 2 p2 ω0 ω0 1+ La bande de pulsation fortement filtrée sera d’autant plus étroite que le facteur d’amortissement z sera faible, par exemple, pour : Lycée Clemenceau Nantes - Olivier Le Gallo - SII • ω0 = 1 rad/s • z = 0,2 le diagramme de Bode (de gain) est le suivant : Bande passante à -3dB Bande passante à -3dB Bande de filtrage NB : Cette fonction de transfert peut-être obtenue à partir d’un algorithme numérique, ou à partir d’un circuit électrique de type RLC, en prenant la tension de sortie aux bornes de l’ensemble {condensateur, bobine} : R avec ω0 = e(t) L s(t) 1 LC et z = R C 2 L C ➨ Créer un tel filtre à l’aide d’Excel et tester ses capacités sur un signal bruité. VII – POUR ALLER PLUS LOIN Un travail personnel d’approfondissement de ce TP peut consister en une transposition en langage Python des travaux réalisés sous Excel. Bien entendu, des logiciels de calcul numérique comme Scilab-Xcos, possèdent des fonctionnalités de filtres numériques intégrées. Lycée Clemenceau Nantes - Olivier Le Gallo - SII
© Copyright 2024