29
Introduction à Scilab Guy Lamarque

Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

  • Upload
    hanhi

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

Introductionà Scilab

Guy Lamarque

Page 2: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

2

Pourquoi j’ai utilisé Scilab ?

� Je devais illustrer un cours de traitement du signal et j’avais plusieurs solutions :� Utiliser le Visual C++

�Je connais le langage. �J’ai eu peur que les problèmes informatiques ne masquent les problèmes de traitement du signal.

� Utiliser MATLAB�Je devais apprendre ce langage�Je ne pouvais pas préparer mes cours dans mon bureau car il n’y avait plus de licence disponible…

� J’ai décidé de télécharger, d’installer et d’apprendre Scilab…

� Je ne suis pas un spécialiste de Scilab et encore moins de MATLAB puisque je ne connais pas MATLAB…

Page 3: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

3

Pourquoi j’ai utilisé Scilab ?

� Pour ceux qui connaissent MATLAB, Scilab est, a priori, un clone gratuit.

� Scilab est un logiciel libre distribué avec son code source.

� L’utilisateur peut le recompiler et donc le personnaliser.

� Scilab a été développé par des chercheurs de l’INRIA et l’ENPC dans un environnement UNIX pour:� Des applications industrielles.� Des travaux de recherche.

Page 4: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

4

Pourquoi j’ai utilisé Scilab ?� Scilab est un langage portable :

�Unix�Windows�MacOs

� Scilab est aussi un langage de programmation puisque la librairie Scilab contient presque 100000 lignes de code de fonctions écrites en Scilab.

� C’est un langage qui conduit à des programmes compacts et lisibles .

� Scilab comporte un langage de programmation et un interpréteur.

Page 5: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

5

Scilab� Scilab est un système ouvert, l’utilisateur peut développer ses propres applications en langage Scilab.

� La syntaxe de Scilab est identique à Matlab pour tout ce qui concerne les manipulations sur les vecteurs et les matrices.

� Scilab contient des centaines de fonctions préprogrammées pour résoudre des problèmes mathématiques spécifiques.

� Toutes les fonctions ne sont pas écrites en scilab.

� Les fonctions très élémentaires et les fonctions pour lesquelles la vitesse d’exécution est un facteur crucial sont codées en C ou en fortran.

Page 6: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

6

Exemples de boîtes à outils Scilab

�Analyse fractale.�Analyse numérique.�Calcul parallèle.�Commande.�Graphes.�Optimisation.� Statistique.� Traitement du signal.�…etc

Page 7: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

7

Calcul numérique

�Résolution de systèmes linéaires.�Calcul de valeurs propres et de vecteurs propres.

�Décomposition en valeurs singulières.�Résolution d’équations différentielles.�Optimisation.�Résolution d’équations non linéaires.�Génération de nombres aléatoires.�Primitives d’algèbre linéaire.

Page 8: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

8

Exemple : Boîte à outilstraitement du signal

�Diagramme de bode� Transformées

�DFT (Discrete Fourier Transform)�FFT (Fast Fourier Transform)�Transformée en Z

�Conception de filtres�FIR (Finite Impulse Response) filter

�Méthode des fenêtres�Remez

�IIR (Infinite Impulse response) filter�Filtres analogique(Butterworth, Chebyshev, elliptic)

Page 9: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

9

Exemple : Boîte à outilstraitement du signal

�Analyse spectrale

�Périodogramme

�Corrélogramme

�Maximum d’entropy

�Algorithme de Levinson

� Filtrage optimal

�Filtre de Kalman

�Filtre de Wiener

�Représentation temps fréquence

Page 10: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

10

Scicos

� C’est l’analogue de Simulink de Matlab

� L’application Scicos est une boîte à outils dont l’éditeur graphique est entièrement écrit en Scilab.

� Cette application est une interface bloc-diagramme pour la simulation de systèmes dynamiques interconnectés.

� C’est un outil très utilisé en milieu industriel (par exemple à EDF) pour simuler des systèmes complexes.

Page 11: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

11

Exemples de contributions

� ANN : Conception de réseaux de neuronnes.� FABBRI : Fonctions graphiques de haut niveau pour l’imagerie.

� FISLABFuzzy : Commande à logique floue.� FRACLAB : manipulation de fractales.� FREEFEM : éléments finis 2D.� GENFILT : Code assembleur pour l’implémentation de filtre IIR.

� IMAGE : Lecture et écriture d’images de différents formats.

� POLYTOOL : Manipulation de polynômes.� TELECOM : simulation des chaînes de transmission numérique de télécommunications.

� …etc

Page 12: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

12

Premier niveau d’utilisation

�En premier lieu Scilab peut s’utiliser comme une calculatrice capable :�D’effectuer des opérations sur des vecteurs et des matrices de réels et de complexes.

�De visualiser graphiquement des courbes et des surfaces.

Page 13: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

13

Fenêtre principale de Scilab

On crée un vecteur

On recherche le maximum

On trie les éléments

� Il est très facile d’examiner les variables

Page 14: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

14

Deuxième niveau d’utilisation

� Très rapidement on trouve plus simple d’écrire des programme en scilab : Scripte

� Le langage Scilab contient :

� Des opérations conditionnelles (if then elseelseif).

� Des boucles (while, for).

Page 15: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

15

Fenêtre « éditeur de scriptes »

Page 16: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

16

Les graphiques sous Scilab

� Le graphique de Scilab est basé sur des primitives graphiques dont la syntaxe d’appel est souvent complexe en raison des nombreux paramètres d’appel.

� Pour réaliser des graphiques très sophistiqués la lecture de l’aide en ligne est indispensable.

� Une méthode simple consiste à s’inspirer des nombreux exemples disponibles.

� En revanche, il est très simple de faire un graphique si on se contente des paramètres par défaut.

Page 17: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

17

Exemple de graphique sous Scilab

ne = 128 ;n = 4 ;x = [0:ne] * 2*%pi/n ; signal = cos (x) ; xbasc() ; plot2d (x,signal) ;

Page 18: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

18

Insérer un graphique Scilabdans un document « word »

Page 19: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

19

Exemple de graphique sous Scilab

ne = 128 ;n = 1 ;x = [0:ne] * 2*%pi/n ; signal = cos (x) ; xbasc() ; plot2d3 (x,signal) ;

Page 20: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

20

Créer un histogramme sous Scilab

nc = 256 ; n = 8192 ;signal = rand (1,n,'normal') ; xbasc() ; histplot (nc,signal,style=2) ;

Nombre d’échantillons

Nombre de classes

Signal aléatoire

Tracé d’un histogramme

Page 21: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

21

Créer un histogramme sous Scilab

Page 22: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

22

« Boîte de saisie »

� Scilab permet de développer des applications interactives complètes.�Scilab propose des boîtes de dialogues programmables.�Exemple : Boîte de saisieperiode = x_dialog (["nombre de periodes"],"4");

Page 23: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

23

« Menu »

� Exemple : Boîte à choix multiplesns=x_choose(['Cosinus';'Random'],['Choix du signal'],'Fin')

Page 24: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

24

Exemple de traitement du signal :

Génération d’une somme de sinusoïdes bruitées

N = 128 ;x = linspace(0,N-1,N) ;signal1 = cos (x*2*%pi*4/N) ;signal2 = cos (x*2*%pi*13/N) ;signal3 = cos (x*2*%pi*40/N) ;signal = signal1 + signal2 + signal3 ;bruit = rand(1,N) ;signal_bruit = signal + 0.5 - bruit ;

Page 25: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

25

Spectre d’une somme de sinusoïdes bruitées

fourier = fft (signal_bruit,-1) ;module = abs (fourier) ;

Page 26: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

26

Filtre passe bas (FIR)

[wft,wfm,fr]=wfir('lp',25,[.1 0],'kr',[5.6 0]);

Coefficients du filtre

Réponse en fréquence du filtre

Grille des fréquences

Nombre de coefficients

Type de filtre Fréquence de coupure

Type de fenêtre

Paramètres de la fenêtre

Page 27: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

27

Filtre passe bas (FIR)

Page 28: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

28

Sites à visiter…

�Scilab home page site officiel :

http://www.scilab.org/

�Scilab à l’ENPC (École Nationale des Ponts et Chaussées) :

http://cermics.enpc.fr/scilab_new/site/

�Articles traitants des possibilités de Scilab:

http://www.saphir-control.fr/articles/

Page 29: Introduction à Scilabjl.domec.free.fr/siteDjl_fichiers/scilab/Intro_Scilab.pdf · 2010-03-09 · Toutes les fonctions ne sont pas écrites en scilab. ... Statistique. Traitement

29

Bibliographie

�« Une introduction à Scilab version 0.999», Bruno Pinçon

�« Scilab : une introduction version 1.0 » J. Ph. Chancelier 2004