TRAITEMENT DU SIGNAL FILTRAGE - Freetsi.ljf.free.fr/ATS/docs/Info/TP/TP7/TD7-Filtrage.pdf · 2017....

21
TRAITEMENT DU SIGNAL FILTRAGE INFORMATIQUE TRAITEMENT DU SIGNAL - FILTRAGE COURS Edition 1 - 07/11/2017 Lycée Jules Ferry - 06400 Cannes [email protected] 1/21

Transcript of TRAITEMENT DU SIGNAL FILTRAGE - Freetsi.ljf.free.fr/ATS/docs/Info/TP/TP7/TD7-Filtrage.pdf · 2017....

  • TRAITEMENT DU SIGNALFILTRAGE

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 1/21

    mailto:[email protected]:[email protected]

  • SommaireA. _____________________________________________________________Objectif global! 4

    A.1.Mise en situation 4

    A.2.Démarches de résolution 4

    B. _________________________________________________________Notions préalables! 5

    B.1.Matrices 5B.1.1. Opérations sur matriceB.1.2. Résolution de système linéaire

    B.2.Graphiques 2D 6B.2.1. Lecture du fichier de mesureB.2.2. Affichage de la courbe expérimentale

    B.3.Ecriture du script 7

    C. __________________________________________________________Filtrage du signal! 8

    C.1.Problématique 8

    C.2.Présentation du filtre 8C.2.1. Comportement du filtreC.2.2. Influence de la constante de tempsC.2.3. Implantation informatique du filtre

    C.3.Calcul du signal filtré et de la valeur finale 10C.3.1. Ecriture de la fonction calculant les valeurs du signal filtréC.3.2. Ecriture de la fonction calculant la valeur finale

    C.4.Tracé des 2 figures 13C.4.1. Tracé d’une figure avec plusieurs graphiquesC.4.2. Tracé de la courbe du signal filtré

    C.5.Validation de l’hypothèse de l’ordre du système 15C.5.1. Principe de validationC.5.2. Extraction des valeurs logarithmiques du signalC.5.3. Coefficients de la droite de régression linéaireC.5.4. Tracé du logarithme du signal et de la droite de régression

    C.6.Conclusion 18

    D. _________________________________________________________________Annexes! 19

    D.1.Matrices 19D.1.1. Création d’une matriceD.1.2. Matrices particulièresD.1.3. Opérations sur les matrices

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Sommaire Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 2/21

    mailto:[email protected]:[email protected]

  • D.2.Graphiques 2D 20D.2.1. Commande plot2dD.2.2. Options complémentaire

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Sommaire Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 3/21

    mailto:[email protected]:[email protected]

  • A. Objectif global

    A.1. Mise en situationL’ambition de ce TD, sur 2 séances, est d’identifier les paramètres d’un système asservi du 1er ordre par

    analyse de sa réponse indicielle.

    Vous avez à votre disposition le fichier de mesures expérimentales :

    L’allure de cette réponse indicielle semble indiquer que le système est du 1er ordre (forme exponentielle, tangente à l’origine non horizontale, pas de dépassement). Nous chercherons donc à identifier :

    •son gain

    •sa constante de temps

    Le signal mesuré est toutefois fortement «bruité», et il nous faudra au préalable filtrer ce signal afin de le rendre plus propre et exploitable

    Les mesures sont enregistrées dans le fichier «signal.csv» à l’adresse :

    http://tsi.ljf.free.fr//ATS/docs/Info/TP/TP7/signal.csv

    A.2. Démarches de résolution

    Nous aurons besoin au préalable d’aborder quelques notions sur :

    • la calcul matriciel

    • la création de fonctions

    • le filtrage numérique

    • l’affichage de courbes

    Puis nous utiliserons ces notions afin de créer des fonctions qui auront pour but :

    1. de filtrer le signal

    2. de trouver l’asymptote du signal

    3. de déterminer la tangente à l'origine par régression linéaire

    Enfin, les résultats seront affichés.

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Notions préalables Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 4/21

    http://tsi.ljf.free.fr//ATS/docs/Info/TP/TP7/signal.csvhttp://tsi.ljf.free.fr//ATS/docs/Info/TP/TP7/signal.csvhttp://tsi.ljf.free.fr//ATS/docs/Info/TP/TP7/signal.csvhttp://tsi.ljf.free.fr//ATS/docs/Info/TP/TP7/signal.csvmailto:[email protected]:[email protected]

  • B. Notions préalablesCréez un répertoire TP7 dans vos documents, et enregistrez-y le fichier «signal.csv»

    Ouvrez Scilab, et placez-vous dans le répertoire TP créé

    B.1. Matrices

    B.1.1. Opérations sur matrice

    Créer sur Scilab les matrice suivante : A = 1 2 3 45 6 7 8

    ⎣⎢

    ⎦⎥ , B =

    2 46 8

    ⎣⎢

    ⎦⎥

    En vous aidant de l’annexe, effectuer les opérations suivantes :

    ➢ Transposition : C = T A

    ➢ Produit : D = BA

    ➢ Inversion : E = B−1

    Construire les matrices F =

    1 2 3 45 6 7 81 2 3 45 6 7 8

    ⎢⎢⎢⎢

    ⎥⎥⎥⎥

    = AA

    ⎣⎢

    ⎦⎥ et G =

    2 46 8

    2 46 8

    ⎣⎢

    ⎦⎥ = B B⎡⎣

    ⎤⎦

    Effectuer le produit terme à terme de A et de G : H = A ⋅G

    B.1.2. Résolution de système linéaire

    On souhaite résoudre le système linéaire suivant :

    2x − y + 3z = 1x + 2z = −2−2x + y + z = 0

    ⎨⎪

    ⎩⎪

    Matriciellement, cette équation s’écrit AX = B avec A =2 −1 31 0 2−2 1 1

    ⎢⎢⎢

    ⎥⎥⎥

    et B =120

    ⎢⎢⎢

    ⎥⎥⎥

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Notions préalables Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 5/21

    mailto:[email protected]:[email protected]

  • Il faut donc résoudre X = A−1B , après s’être assuré que la matrice A est inversible

    Calculer le déterminant de A, puis résoudre ce système sous Matlab

    Vérifier que X est solution de l’équation

    det(A)

    A=[2 -1 3;1 0 2;-2 1 1];

    B=[1;-2;0];

    X=A\B

    B.2. Graphiques 2D

    B.2.1. Lecture du fichier de mesure

    A l’aide de l’éditeur de texte Windows, ouvrir le fichier «signal.csv». Quelle est sa structure (Nombre de colonnes, en-tête, séparateur de données, format de la virgule) ?

    La lecture sous Scilab du fichier de mesures s’obtient par la commande csvRead (syntaxe à l’adresse https://help.scilab.org/docs/5.4.1/fr_FR/csvRead.html)

    Ecrire dans la console Scilab la commande qui permet de lire le fichier, en précisant sa structure et en ignorant l’en-tête. Le résultat de l’import sera stocké dans la variable mesure.

    ! mesure = csvRead('signal.csv', ';', ',', [], [], [], [], 1);

    Quel est la nature de cette variable ?

    Cette variable contient les valeurs de temps et de sortie.

    Extraire de cette variable un vecteur colonne temps qui contiendra l’ensemble des valeurs de temps, et un vecteur colonne signal_brut qui contiendra l’ensemble des relevés de sortie

    temps=mesure(:,1);

    ! signal_brut=mesure(:,2);

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Notions préalables Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 6/21

    https://help.scilab.org/docs/5.4.1/fr_FR/csvRead.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/csvRead.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/csvRead.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/csvRead.htmlmailto:[email protected]:[email protected]

  • B.2.2. Affichage de la courbe expérimentale

    On cherche dans cette partie à afficher la courbe expérimentale dont les abscisses sont maintenant contenues dans votre variable temps, et les ordonnées dans votre variable sortie.

    En vous aidant de l’annexe relative au tracé de courbes (fonction plot2d), écrire dans la console les fonctions permettant d’élaborer un graphique qui tracera cette courbe, avec les contraintes suivantes :

    * la courbe doit être bleue

    * la figure doit faire apparaître :

    • la légende «Signal mesuré»

    • un titre «Acquisition capteur»

    • le label «Temps (s)» pour l’axe des abscisses, et «Signal (V)» pour l’axes des ordonnées

    B.2. Ecriture du script

    Une ébauche de script est fourni : fichier TD7_Etudiants.sce

    Ouvrir ce fichier dans l’éditeur SciNotes. Il est découpé en plusieurs parties, dont vous pouvez à présent en remplir certaines.

    Ecrire les instructions des parties suivantes, en reprenant les études précédentes :

    • Partie 2 : Chargement du fichier de mesures signal.csv dans une variable mesure

    • Partie 3 : Extraction des vecteurs colonne temps et signal_brut

    • Partie 4 : Affichage de la courbe signal_brut fonction de temps

    Enregistrer ce fichier en ajoutant votre nom au nom de fichier.

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Notions préalables Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 7/21

    mailto:[email protected]:[email protected]

  • C. Filtrage du signal

    C.1. Problématique

    Le signal issu du capteur est fortement bruité :

    Afin de pouvoir exploiter ce signal, il faut au préalable le filtrer afin d’éliminer les signaux parasites.

    Ces signaux sont manifestement à fréquence élevée. Il faut donc concevoir un filtre qui ne laisserait passer que les signaux de faible fréquence, et supprimerait les signaux de fréquence élevée : il s’agit du filtre passe-bas.

    C.2. Présentation du filtre

    Nous allons étudier un filtre du 1er ordre, dont la fonction de transfert s’écrit H (p) =Sf (p)E(p)

    = 11+τ p

    Sf (p) désigne le signal filtré dans le domaine symbolique, E(p) le signal d’entrée brut et τ la constante de temps du filtre.

    C.2.1. Comportement du filtre

    Ouvrir dans une fenêtre xcos le modèle Filtre passe bas1.zcos

    La simulation montre l’influence du filtre sur des signaux sinusoïdaux d’amplitude 1, et de fréquences différentes.

    Lancer la simulation

    Quelle influence le filtre a-t-il sur l’amplitude du signal ?

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 8/21

    mailto:[email protected]:[email protected]

  • Ce filtre du 1er ordre est appelé filtre passe-bas : il n’influence pas l‘amplitude des basses fréquences, mais atténue fortement l’amplitude des hautes fréquence.

    Nous verrons en S2I que la fréquence à laquelle l’amplitude commence à être atténuée, appelée fréquence de coupure fc , est égale à fc = 1/τ

    C.2.2. Influence de la constante de temps

    Ouvrir à présent le modèle Filtre passe bas2.zcos

    La simulation montre l’influence de la constante de temps du filtre sur un signal fortement bruité.

    Lancer la simulation

    Quelle influence la constante de temps a-t-elle sur le signal ?

    C.2.3. Implantation informatique du filtre

    Nous allons donc filtrer le signal issu du capteur avec un filtre passe-bas du 1er ordre, de gain 1 et de constante de temps 0,5s :

    H (p) =Sf (p)E(p)

    = 11+ 0,5p

    Dans le domaine temporel, cette fonction traduit l’équation différentielle du 1er ordre suivante :

    s f (t)+ 0,5ds f (t)dt

    = e(t)

    Or le signal est échantillonné à une fréquence de 200 Hz (le fichier du signal montre que l’intervalle entre 2 points de mesure, donc la période d’échantillonnage, est égal à 5 ms).

    Avec un signal échantillonné avec la période d’échantillonnage Te , une dérivée est évaluée par l’expression suivante :

    ds f (t)dt

    ⎤⎦⎥t=ti

    →s f (ti +Te )− s f (ti )

    Te

    L’équation différentielle qui traduit le comportement du signal filtré devient alors :

    s f (ti )+ 0,5s f (ti +Te )− s f (ti )

    Te= e(ti )

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 9/21

    mailto:[email protected]:[email protected]

  • C.3. Calcul du signal filtré et de la valeur finale

    C.3.1. Ecriture de la fonction calculant les valeurs du signal filtré

    Nous allons à présent écrire une fonction qui sera appelée dans le script. Une fonction est une liste d’instructions qui sera stockée dans une librairie locale, pour ensuite être appelée dans un script.

    Sous Scilab, les fonctions sont déclarées avec l’instruction function et se terminent par l’instruction endfunction. Ces fonctions peuvent retourner une ou plusieurs variables. S’il y en a plusieurs, elles sont alors retournéees dans un tableau.

    Exemple :

    Création de la fonction

    function [x, y]=Nom_de_fonction(a, b)

    x=a+b

    y=a−b

    endfunction

    function [x, y]=Nom_de_fonction(a, b)

    x=a+b

    y=a−b

    endfunction

    Appel de la fonction

    [t,u]=Nom_de_fonction(3,2) [t,u]=Nom_de_fonction(3,2)

    Compléter l’algorithme page suivante qui traduit l’équation différentielle du filtre : à partir d’un vecteur colonne mesure, et en fonction d’une période d’échantillonnage Te et de la constante de temps tau, fournit en sortie un vecteur colonne s

    Ouvrir ensuite le fichier Fonctions.sci, qui comporte les ébauches des fonctions que vous serez amené à utiliser dans votre script.

    En vous aidant de l’algorithme précédemment établi, compléter les instructions de la «Fonction 1 : Sortie du filtre passe-bas».

    Enregistrer le fichier .sci

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 10/21

    mailto:[email protected]:[email protected]

  • Lire TeLire tau

    Fonctionfiltre(mesure,Te,tau)

    Lire la taille du fichier mesure

    i=1

    Fin

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 11/21

    mailto:[email protected]:[email protected]

  • C.3.2. Ecriture de la fonction calculant la valeur finale

    La fonction s_finale=Sinfiny(s) a pour objectif de calculer la valeur de l’asymptote d’un signal.

    Le principe consiste à calculer la moyenne des n dernières valeurs qui n’évoluent plus à 2% près

    Les blocs d’instruction de cette fonction sont les suivants :

    Lire la taille du vecteur n : Nb

    Lire la dernière valeur de ce vecteur : s_f

    i=Nb

    Tant que s(i)− s_ fs_ f

    < 0.02

    i=i-1

    Fin

    s_finale=moyenne de s(i)

    A l’aide de ces blocs d’instruction, compléter les instructions de la «Fonction 2 : Recherche de la valeur finale».

    Enregistrer le fichier .sci

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 12/21

    mailto:[email protected]:[email protected]

  • C.4. Tracé des 2 figures

    C.4.1. Tracé d’une figure avec plusieurs graphiques

    A la fin de ce TD, vous aurez construit 4 courbes :

    Il faut donc indiquer la position relative de chaque graphe, un utilisant subplot(mnp) où m est le nombre de lignes, n le nombre de colonnes, et p le numéro de figure.

    Ecrire dans votre script .sce la commande subplot(221) avant les lignes d’instruction qui ont permis de construire le graphe des mesures brutes au B.2 de ce TD .

    Lancer le script et vérifier l’affichage du graphe

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 13/21

    mailto:[email protected]:[email protected]

  • C.4.2. Tracé de la courbe du signal filtré

    En seconde position (2e ligne et 2e colonne), nous allons tracer le graphe qui superposera en vert les mesures brutes, et en rouge le signal filtré.

    En partie 5 du fichier TD7_Etudiant.sce, écrire l’instruction faire appel à la fonction filtre(mesure, te, tau) pour construire la variable signal_filtre, en précisant la période d’échantillonnage et la constante de temps τ = 0,5 s :

    signal_filtre=filtre(signal, 0.05, 0.5);

    Il faut à présent afficher un second graphique sur lequel nous tracerons 3 courbes :

    • les valeurs brutes du vecteur signal_brut (en vert)

    • Les valeurs filtrées du vecteur signal_filtre (en rouge)

    • la droite correspondant à la valeur finale s_f

    Toujours dans la partie 5 du fichier de script .sce, et sans oublier d’indiquer la position de ce second graphique avec l’instruction suplot(222), écrire la liste d’instructions permettant de tracer ces trois courbes.

    La légende indiquera «mesures brutes» et «mesures filtrées». Le titre sera «Mesures brutes et filtrées».

    L’axe des abscisses aura le label «Temps (s)» et l’axe des ordonnées «Signal (V)» :

    subplot(222)

    s_f=Sinfiny(signal_filtre)

    (Tracé des valeurs brutes et filtrées)

    plot2d([temps(1),temps($)},[s_f,s_f])

    (légende)

    (titre)

    (label X)

    (label Y)

    Enregistrer et tester le programme

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 14/21

    mailto:[email protected]:[email protected]

  • C.5. Validation de l’hypothèse de l’ordre du système

    C.5.1. Principe de validation

    Au vu de l’allure de la réponse indicielle, nous avons fait dès le départ l’hypothèse d’un système du 1 er ordre.

    Nous devons à présent valider cette hypothèse avant de calculer le gain et la constante de temps correspondant.

    Si le système est du premier ordre, alors le signal doit vérifier l’expression générale suivante :

    s(t) = s f 1− e− tτ⎛

    ⎝⎜⎞⎠⎟

    Cette équation peut s’écrire, en passant par le logarithme :

    ln s f − s(t)( ) = ln(s f )− tτPar conséquent, si le système est effectivment du 1er ordre, alors la courbe s(t) tracée en échelle

    logarithmique doit être une droite.

    S’il s’agit bien d’une droite, alors sa pente vaut − 1τ

    et l’ordonnée à l’origine ln(s f )

    C.5.2. Extraction des valeurs logarithmiques du signal

    Afin de s’assurer de n’avoir que des valeurs positives pour s f − s(t) , nous en ferons l’étude que pour des valeurs de signal inférieures à 90% de la valeur finale

    La fonction S_log=Slog(s) est donnée. Cette fonction extrait sous forme de vecteur colonne le logarithme des valeurs qui restent inférieures ou égales à 90% de la valeur finale calculée grâce à la fonction Sinfiniy

    Il faudra donc dans le script faire appel à cette fonction pour construire un vecteur signal_log :

    signal_log=Slog(signal_filtre)

    Ecrire cette instruction dans la partie 6 du script .sce

    Il faut à présent vérifier que les points de ce vecteur définissent effectivement une droite. Dans l'affirmative nous pourrons alors valider l'hypothèse d’un système du 1er ordre, et calculer sa constante de temps.

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 15/21

    mailto:[email protected]:[email protected]

  • C.5.3. Coefficients de la droite de régression linéaire

    Nous allons créer une fonction regression(x,y) qui aura pour objectif de calculer la pente a et l’ordonnée à l’origine b de la droite qui passe au mieux par le nuage de points (t,S_log(t)).

    On rappelle ci-dessous les formules permettant de déterminer les coefficients a et b de la droite de régression linéaire passant par n points :

    a =n xi .yi

    i∑ − xi

    i∑ . yi

    i∑

    n xi2

    i∑ − xi

    i∑⎛⎝⎜

    ⎞⎠⎟

    2 b =1n

    yii∑ − a.1n xii∑ = yi − a.xi

    On donne les blocs d’instruction de la fonction regression(x,y) qui permettront de calculer ces coefficients :

    Déterminer la taille du vecteur x : n

    Sommer terme à terme les composantes de x et de y : Sxy

    Sommer les composantes de x : Sx

    Sommer les composantes de y : Sy

    Calculer a

    Calculer b

    En vous appuyant sur ce bloc d’instructions, compléter alors dans le fichier Fonctions.sci la fonction «Fonction 4 : Coefficients de la droite de régression linéaire»

    C.5.4. Tracé du logarithme du signal et de la droite de régression

    Le script .sce doit maintenant afficher le nuage de points et la droite de régression linéaire.

    Les instructions suivantes sont ) placer dans la partie 6 du script

    signal_log=Slog(signal_filtre) Réponse en échelle logarithmique

    [nb_ele, c]=size(signal_log) Détermination du nombre d’éléments

    t=temps(1:nb_ele) Construction d’un nouveau vecteur colonne de temps

    [a,b]=regression(t,signal_log) Appel de votre fonction regression

    subplot(223) Définition de la sous-zone de graphique

    plot2d(t,[signal_log,a*t+b]) Construction des courbes (signal log et droite)

    legende1="$\log(s_\infty-s(t))$" Affichage des légendes et textes

    legende2="$a\cdot t + b$"

    format(5)

    tta=string(-1/a)

    ttb=string(b)

    textetau="$\tau=-\frac{1}{a}=$"

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 16/21

    mailto:[email protected]:[email protected]

  • texte1=textetau

    xstring(0.1,-0.4,texte1)

    xstring(0.5,-0.4,tta)

    texte2="b="+ttb

    xstring(0.1,-0.6,texte2)

    legend([legende1,legende2])

    tt_tau="$\tau$"

    tt_titre="détermination de"+ tt_tau

    title(tt_titre)

    xlabel(legende1)

    ylabel("y")

    Ecrire ces instructions.

    Enregistrer et lancer le programme

    Conclure sur la validité de l’hypothèse d’un système du 1er ordre

    Quelle est la valeur de la constante de temps de ce système ?

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 17/21

    mailto:[email protected]:[email protected]

  • C.6. Conclusion

    Il nous reste pour finir à construire la courbe correspondant au modèle du 1er ordre, afin de déterminer ses éléments caractéristiques (valeur finale, temps de réponse)

    Il s’agit dans un 4e et dernier graphique de tracer pour les 800 premières valeurs de temps

    •la courbe du modèle théorique s(t) = s f 1− e

    − tτ⎛

    ⎝⎜⎞⎠⎟

    • la courbe du signal filtré

    • l’asymptote

    • la zone ±5% de l’asymptote

    • la tangente à l’origine

    • le temps de réponse

    subplot(224)

    t2=temps(1:800)

    t800=t2($)

    (construction de la variable modele)

    tau=-1/a

    (Affichage du modèle et du signal filtré)

    (Affichage de la droite 0,95s_f et de la droite 1,05s_f)

    (Affichage de la droite s_f)

    (Affichage de la droite du temps de réponse, passant par les points 3τ ,0( ) et 3τ ,0.95s_ f( ) )

    (Affichage de la tangente, passant par les points 0,0( ) et τ , s_ f( ) )(Titre : «Modèle du 1er ordre et signal filtré»)

    (Label X : «Temps (s)»»)

    (label Y : «Signal (V)» )»

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Filtrage du signal Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 18/21

    mailto:[email protected]:[email protected]

  • D. AnnexesUn formulaire synthétique des fonctions de Scilab est disponible sur la page de Marc Derumaux :

    http://marc.derumaux.free.fr/formulaire.html

    D.1. Matrices

    D.1.1. Création d’une matrice

    On souhaite définir la matrice 1 2 34 5 6

    ⎣⎢

    ⎦⎥ ;

    Sous Scilab, cette matrice s’écrira : A=[1 2 3;3 4 6] ou A=[1,2,3;3,4,6]

    Les termes d’une ligne sont séparés d’une virgule ou d’un espace, la fin d’une ligne est identifiée par un point-virgule

    D.1.2. Matrices particulières

    Vecteur colonne : V=[1;2;3]

    Vecteur ligne : V=[1 2 3]

    Vecteur ligne composé de valeurs régulièrement espacées :

    * incrément imposé : V=1:2:10

    ! ! V = 1. 3. 5. 7. 9.

    ! * Nombre d’intervalles imposé : V=linspace(1,10,3)

    ! ! V = 1. 5.5 10.

    Matrice identité : eye(2,3)

    Matrice composée exclusivement de ‘1’ : ones(2,3)

    Matrice composée exclusivement de ‘0’ : zeros(2,3)

    D.1.3. Opérations sur les matrices

    Taille d’une matrice : size(A)

    Transposition : ! ! B=A’ (apostrophe)

    Produit : C=B*A

    Inverse : B=inv(A)

    Résolution A.X=B : X=A\B

    Opérations terme à terme A.*B A./B A.^B

    Déterminant : det(A)

    Vecteur propre : spec(A)

    Trace : trace(A)

    Somme des éléments : sum(A)

    Moyenne des éléments : mean(A)

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Annexes Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 19/21

    http://marc.derumaux.free.fr/formulaire.htmlhttp://marc.derumaux.free.fr/formulaire.htmlmailto:[email protected]:[email protected]

  • D.2. Graphiques 2D

    D.2.1. Commande plot2d

    La commande générique pour tracer des figures 2d est (voir la syntaxe détaillée (syntaxe à l’adresse https://help.scilab.org/docs/5.4.1/fr_FR/plot2d.html) :

    plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]])

    ➢ logflag : échelle linéaire ou logarithmique (‘nn’, ‘nl’, ‘nl’,’ll’). Par défaut linéaire ‘nn’

    ➢ x : vecteur ou matrice contenant les valeurs des abscisses. Dans le cas d’une matrice,

    chaque colonne représente une courbe différente

    ➢ y : vecteur ou matrice contenant les valeurs des ordonnées. Dans le cas d’une matrice,

    chaque colonne représente une courbe différente

    ➢ style : vecteur contenant les paramètres de style pour chaque courbe. Si positif, il s’agit

    d’une ligne pour laquelle on définit une couleur, si négatif il s’agit de points pour dont

    on définit la nature

    ➢ strf : chaîne de 3 caractères ‘xyz’ définissant l’affichage des axes. Voir sur l’‘aide

    l’influence des valeurs de x, y et z. Par défaut ‘081’.

    ➢ leg : chaîne de caractéres définissant le nom de la légende. Cette légende est toujours

    positionnée sous l’axe des abscisses

    ➢ nax :

    vecteur-ligne de 4 entiers définissant les marquages sur les axes

    Exemple

    -->teta=[0:.05:2*%pi]';

    -->plot2d('nl',teta,[exp(sin(teta)) exp(cos(2*teta))],style=[12 -1],leg="sin(teta) cos(2teta)")

    D.2.2. Options complémentaire

    Ces options complémentaires sont des instructions à définir après avoir tracé le graphique

    D.2.2.1. Afficher une légende

    legend([‘string1’;...;‘stringi’],pos=[j],box=[%bool])

    ! ➢ ‘stringi’ : chaîne de caractéres définissant le nom de la légende de l ième courbe

    ! ➢ j : entier définissant la position de la légende

    ! ➢ %bool : variable %T ou %F définissant si la légende doit être encadrée

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Annexes Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 20/21

    https://help.scilab.org/docs/5.4.1/fr_FR/plot2d.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/plot2d.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/plot2d.htmlhttps://help.scilab.org/docs/5.4.1/fr_FR/plot2d.htmlmailto:[email protected]:[email protected]

  • D.2.2.2. Afficher un titre

    title(‘titre’,)

    !

    Les propriétés optionnelles (police de caractère, couleur, fond, ...) sont à définir dans . Voir l’aide pour le détail

    D.2.2.3. Label des axes

    xlabel([axis_handle], label, [property_name, property_value,...])

    ylabel([axis_handle], label, [property_name, property_value,...])

    zlabel([axis_handle], label, [property_name, property_value,...])

    INFORMATIQUE

    TRAITEMENT DU SIGNAL - FILTRAGE COURS

    Annexes Edition 1 - 07/11/2017

    Lycée Jules Ferry - 06400 Cannes [email protected] 21/21

    mailto:[email protected]:[email protected]