Programmer avec Matlab I

Slides:



Advertisements
Présentations similaires
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
Advertisements

CONCEPTION DES BASES DE DONNÉES: modèle entités-associations
Techniques de R éé criture et Transformations Pierre-Etienne Moreau.
R éé criture pour la programmation et la preuve Claude Kirchner Pierre-Etienne Moreau.
Créer des interfaces avec Matlab.
MATLAB Initiation à Matlab.
Présenté par Martine Toda
Pour tout entier n,n est entier ou irrationnel Un beau théorème absent de larithmétique dEuclide (Livres 7 à 9 des Éléments)
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
Systèmes d’information
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
- énergie bornée (tend vers 0 lorsque
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Fonctions avancées et graphiques
Cours LCS N°4 Présenté par Mr: LALLALI
Matlab (Matrix Laboratory)
Module : Pages Web Dynamiques (Production Électronique Avancée)
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Scripts et fonctions Instructions de contrôle
M. Bétrancourt et C. Rebetez - Méthodologie expérimentale Diplôme MALTT Année La méthodologie expérimentale Fondements et bases d’application.
A.Aarabi ´. ´ Objectifs Faciliter la prise en main du logiciel MATLAB Présenter les fonctionnalités utiles au travail scientifique.
Espace collaboratif du CODEV Blog, WIKI, Forum: c’est quoi?  Blog - Publication périodique et régulière d’articles La vocation d’un Blog est d'être un.
Variables : notion Une variable permet de stocker/manipuler une donnée dans un programme avec un nom explicite Caractériser par son type (entier, flottant,...)
Création d’un site WEB 1 – Un site WEB c’est quoi ? 2 – Questions à se poser avant la construction d’un site WEB 3 – Principes de fonctionnement d’un site.
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
Motiver les élèves avec des échéanciers automatisés et personnalisés AQIFGA 2015 Cette présentation de David Larochelle est mise à disposition sous licence.
Mediator 9 - Un outil de développement multimédia 3AC Techno/Informatique.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
MSN 21 Représenter des figures planes à l’aide de croquis (triangle, carré, rectangle, cercle) Le croquis est à considérer comme support de réflexion Reconnaître.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
Les outils de tests 1 1 CHAKI Abderrazak - ETIENNE Jonathan - TOUMI Nacereddine - VACHER Nicolas.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Maths en Jean : Nager dans le brouillard. Présentation du sujet Une personne part du bord de la plage et nage 500 mètres en ligne droite dans une direction.
Introduction à la programmation
Cours 4 : Premiers pas avec Excel  Insertion de chiffres dans des cellules  Création de formules simples (additions, soustractions, divisions et multiplications)
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
G. Botti Service de l ’Information Médicale Pr M. Fieschi Hôpital Timone-adultesMarseille le 13 novembre 2000 Problématique du codage Langage, communication,
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
FACTORY systemes Module 5 Page 5-1 Les outils clients Wonderware FORMATION InSQL 7.0.
Initiation aux bases de données et à la programmation événementielle Outil de création des tables Support de TD rédigé par Bernard COFFIN Université Paris.
Projet Personnel (Epreuve 6) Projet réalisé dans le cadre de mon épreuve E6 au sein de mon alternance au conseil départemental du val de marne Arnaud PICANO.
Introduction à la Programmation Orientée Objet H.GATI.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – RAPPELS SUR UNIX DE BASE.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 7 Support de cours rédigé par Bernard COFFIN Université.
Nouveaux programmes de mathématiques cycles 3 et 4
Excel Récapitulatif. Objectifs Rappel des notions de base Résumé des fonctions déjà utilisées Introduction à la fonction SI(…) Démonstrations de cette.
Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
Matlab (Matrix Laboratory) Langage de programmation évolué. Traitement direct d’opérations matricielles, dont l’inversion et l’analyse d’opérateurs ou.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
La spécialité mathématique en TS. Les mathématiques sont une science qui se construit elle-même grâce à la démonstration. Axiomes et définitions Théorèmes.
Présenté par  Samira BELHORMA  Imane ZEHHAF. Introduction I. Définitions II. Quand et comment évaluer une compétence? III. Le contexte d’évaluation.
Informatique 2A Langage C 4ème séance
Universit é Mohamed Kheider de Biskra Facult é de science et technologie D é partement de g é nie é lectrique Sp é cialit é : t é l é communication Le.
Traitement Numérique du Signal : présentation de l’UE Module EPL9AA02 Philippe RAVIER.
Cours de Langage C Récursivité. Objectifs de la séance 11 Connaître la récursivité. Mesurer un temps d’exécution. 2.
1 Initiation aux bases de données et à la programmation événementielle Construction d’un état Support de TD rédigé par Bernard COFFIN Université Paris.
Les Fichiers M me DJEBOURI. D. Faculté de Médecine salle informatique Année universitaire الجمهورية الجزائرية.
IUS62 INCISIVE UNIFIED SIMULATOR linux. ENVIRONNEMENT Xwin32 -> lappsun26, lappsun27 Script d’initialisation de l’environnement –Mldv Aide –cdnshelp.
Section 4 : Analyse descriptive. En 1901, Karl Pearson publie son papier sur l’Analyse en Composante Principale dans : “On lines and planes of closest.
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Transcription de la présentation:

Programmer avec Matlab I Savoir-faire de l’école doctorale 268 Langages et langues Université Paris III 31 janvier 2006 Présenté par Martine Toda martine.toda@excite.co.jp

Mise en garde Tous les exemples fournis ont été conçus dans un but pédagogique pour illustrer le fonctionnement de Matlab. Les aspects mathématique ou traitement du signal peuvent être inexacts. Vérifiez tout si vous souhaitez utiliser le matériel mis à disposition dans un but scientifique.

Préambule

Pourquoi programmer ? Parce qu’il n’existe pas de logiciel qui permet de faire ce qu’on veut Ex. Affichage de données articulatoires alignées avec les données acoustiques Automatisation de tâches répétitives segmentation et étiquetage de corpus écrits, calculs, écriture de fichiers sur un continuum, création de stimuli sur un continuum, affichage de plusieurs résultats dans le même format

Les 5 étapes de la programmation 0. Identification du problème Subdivision du problème en tâches simples et indépendantes Planification des programmes en pseudo-code Traduction en langage de programmation (ici, c’est Matlab) Commenter ce code au fur et à mesure Tester le programme par petits bouts et traquer les bugs

Exemple Je veux créer un programme qui me permette de faire un test de perception (ABX) Organigramme du programme (subdivision en tâches simples)

Exemple Pseudo-code : Programme « création d’un stimuli sur un continuum avec deux paramètres » (commentaire : combiner la valeur du bruit de friction avec la valeur des formants) boucle1[ pour un F2 qui va de 800 à 2000 Hz avec des intervalles de 50 Hz boucle2[ et pour un bruit de friction qui va de 5000 à 8000 Hz concaténer le bruit avec la transition formantique ]boucle2 ]boucle1

Pourquoi utiliser Matlab ? (1) C’est un logiciel de programmation facile à utiliser Plusieurs fonctions prédéfinies pour analyser et représenter des données : on peut faire des choses élaborées avec très peux de code Particulièrement adapté à l’analyse du signal de parole Il existe un module spécialisé d’analyse du signal (et de l’image) Plusieurs fonctions prédéfinies (analyse spectrale, filtrage, etc.)

Pourquoi utiliser Matlab ? (2) Création de belles figures Figures stables (cf. Excel…) et esthétiques Fonctions de lissages de courbes Automatisation de la création de figures Création d’interfaces pour analyser des données variées Ex. Alignement de données acoustique et de données articulatoires

Introduction à la programmation avec Matlab

Où est installé Matlab Au labo C Au labo de phonétique (certaines machines) À Bièvres ?

Démarrer Matlab Lancement Répertoire courant Ligne de commande (langage interprété) Fichiers programme (.m) Fichiers de données (.mat) L’aide et les démos Programming and Data Types

Principes de la programmation Un programme est une suite d’instructions Les instructions contiennent des opérateurs, des mots-clefs ou des fonctions Les instructions doivent respecter la syntaxe (de Matlab) L’unité qui compose les instructions est l’expression. L’expression peut contenir un littéral, une variable, une fonction (et ses arguments le cas échéant) ou une combinaison de ceux-ci. L’expression évaluée va renvoyer une valeur.

Expressions Littéraux Programming and Data Types: M-File Programming: Data Types Nombres (type implicite) Entiers 1, 40, 50394, -2,… Flottants 0.0004, 4000.0,… Décimaux 0.45, 4.6,… 8 ou 16 bits, signés ou non signés Caractères ‘a’, ‘1’ Logiques True ou False Matrices, cellules et chaînes de caractères Variables mmax, a, … (le nom doit commencer par une lettre ; éviter d’utiliser les noms de fonction préexistantes) Fonctions (avec ou sans argument) trouvemax, plot(x, y) Opérateurs et mots clés = == > + - * ; : exit if-else-end Programming and Data Types: M-File Programming: Operators

Quelques opérateurs et caractères spéciaux () parenthèses = affectation , virgule ; point virgule % commentaire ou pour indiquer un format : « jusqu’à » Opérateurs arithmétiques + addition - soustraction * multiplication Opérateurs relationnels == test d’égalité > Opérateurs logiques & ~

Quelques mots-clef If … else … end Break Exit Function Pour connaître la liste exhaustive, taper iskeyword

Les fonctions prédéfinies dans Matlab MATLAB Functions: Functions - By Category MATLAB Functions: Functions - Alphabetical List Les fonctions qu’on crée soi même s’utilisent exactement comme les fonctions prédéfinies.

Données structurées Vecteurs et matrices Chaînes de caractères Cellules Comment faire référence à chacun des éléments () {} Opérations pour construire les matrices, chaînes et cellules [] {} vertcat() horzcat() MATLAB Functions: Functions - By Category: Data Types

Démonstration 1 Ligne de commande Appel d’un programme Opérateurs syntaxiques de base Matrices et cellules Qu’est-ce qui est quoi (variable, fonction, mot-clé, chaîne de caractère…) ? A=[1 3 5 9], A=[1 3 5 9]; A, plot(A), close B=A; B ‘1’+’3’; 1+3 C=[1 3 5 8]; A-C; A==C; plot(A, C), plot(A, C, ‘r’) D=‘ceci est un test’; D D(1), D(6), D(1:11), D(1:end) E=num2str(A) F=[1 2 3; 4 5 6; 7 8 9], F(2,3), G=[A, C] , H=[A; C] I={‘ceci’, ‘est’, ‘une’, ‘cellule’}, I{2}, I{1}(4)

Boucles Les boucles permettent d’itérer les mêmes opérations plusieurs fois sans les écrire plusieurs fois dans le programme if …else …end si … sinon … for i=[a:b] … end pour … while true … (break) … end tant que … switch … case… end pour tel ou tel cas …

Démonstration Boucles Initialisation des variables si nécessaire Couvrir tous les cas de figure : le cas général et les cas particuliers demonstration demoif(nombre) demofor demowhile demoswitch(1 ou ‘1’)

Lecture et écriture de fichiers Entrée-sortie standard disp, input Fichier de données load, save Fichier son wavread, wavewrite Fichier texte fopen, fclose -> demonstration demofopen fgetl, strtok, sscanf, findstr, strcmp… fid=fopen(‘articulatorydata.txt’), fgetl(fid)…

Créer des figures avec Matlab plot paramètres subplot axes figures handles callback uicontrol

La fenêtre ‘figure’ Démonstration figure Paramètres (name, position, color) MATLAB Functions: Figure Properties gcf, get et set get(gcf, ‘position’) set(gcf, ‘position’, […])

L’affichage des données à l’intérieur des ‘axes’ (différent de ‘axis’) Démonstration axes Paramètres (title, fontsize, position, xlim, ylim, xlabel, ylabel, ) MATLAB Functions: Axes Properties gca

plot (et plot3) affiche un résultat (ouvre une fenêtre et crée des axes si nécessaire) Démonstration plot(A), plot(A, B) marqueurs et lignes ; propriétés : graf2d, hndlgraf Subplot exemple d’affichage 3D graf3d

Curve fitting Régression linéaire et coefficient de corrélation Approximation polynomiale, fonctions spline

Données acoustiques X données articulatoires figure hold on for i=1:60; plot(MSP(i,2),volpal(i,2),'marker','o'); end

Démonstration demoregression

Exercices

Exercice 1 Afficher sous forme de graphique des données contenues dans un fichier texte. (TF1.txt) Parcourez un document texte structuré (articulatorydata.txt) et faites la liste pour l’entrée ‘forme de la langue’ pour chacune des consonnes, /s/, l’alvéolopalatale (‘c’) et la palatoalvéolaire ou rétroflèxe (‘sh’). Reprendre les données acoustiques et articulatoires afficher les différentes consonnes en couleurs différentes MATLAB Functions: ColorSpec et avec des marqueurs différents MATLAB Functions: Line Properties afficher l’étiquette de la consonne (‘s’, ‘c’, ‘sh’) à la place du marqueur (MATLAB Functions: text)

Exercice 2 Créez un programme avec Matlab qui permet de générer automatiquement un ensemble de fichiers de fonction d’aire sur un continuum. Rappel : les 5 étapes de la programmation

0. Identification du problème Je veux un continuum mais je suis trop paresseuse pour écrire tous les fichiers à la main. De plus, comme je suis distraite, je ferais certainement des erreurs en le faisant à la main. Je veux faire varier l’aire relative de deux tubes qui simulent un conduit vocal sans toucher à leur longueur. Je veux que l’aire totale soit constante afin de simuler le volume constant de la langue.

1. Subdivision en tâches simples Boucles me permettant d’obtenir un continuum Ouverture de fichiers texte en écriture Affichage des fonctions d’aire générées pour vérifier si elles correspondent bien à ce que je veux

2. Pseudo-code 3. Traduire en Matlab 4. Commenter 5. Débuguer

Exercice 3 Créez un programme avec Matlab qui permet de présenter des stimuli dans un ordre aléatoire et d’enregistrer la réponse de l’utilisateur (dans un protocole ABX, par exemple). rand input wavread… Rappel : les 5 étapes de la programmation

Fonctions avancées pour phonéticiens

Traitement du signal 1 Analyse spectrale avec Matlab dft (fft) psd fenêtres autres méthodes échelle des fréquences rééchantillonage

Le son fréquence d’échantillonage, longueur et durée fréquence Nyquist le fichier wav ([-1 1]) demonstration demoson() demoson_tous

Estimation spectrale Signal Processing Toolbox: Statistical Signal Processing: Spectral Estimation Method demospectre(‘s1’)

Fenêtrage Signal Processing Toolbox: Special Topics: Windows

spectrogramme specgram specgramdemo

Traitement du signal 2 Filtrage et lissage filtres curve fitting coefficient de corrélation lpc ar cepstral smoothing autres méthodes

Le filtrage Enlever le bruit (ex. électromyographie) Lisser les courbes dérivées (ex. données articulatoires) Signal Processing Toolbox: Special Topics: Time-Domain Based Modeling Signal Processing Toolbox: fdatool (et fvtool pour visualiser le filtre) Signal Processing Toolbox: sptool

Démonstration lpc demolpc filtrage demoderiv

Lissage cepstral

Exercice 4 Pour des données de mouvement d’un articulateur, calculer la vitesse et l’accélération. (Ou : pour un signal électroglottographique, la vitesse et l’accélération de l’ouverture et de la fermeture des cordes vocales) Afin d’y voir plus clair, filtrer le signal pour enlever le bruit

Créer une interface avec Matlab guide démonstration modification du code généré automatiquement

Alignement de données variées Transformation du code de specgramdemo