Introduction a Matlab ACOUSTIQUE - Modélisation rudimentaire d un Xylophone Matthieu Aussal Centre de Mathématiques Appliquées de l École Polytechnique Route de Saclay - 91128 Palaiseau CEDEX France matthieu.aussal@polytechnique.edu ENSTA - MO102 2016-2017
Objectif du projet Programmer un Xylophone en Matlab.
Compétences numériques à acquérir Gestion de maillages bi-dimensionnels Méthodes des différences finies pour le Laplacien Résolution d un problème aux valeurs propres Synthèse sonore Création d interface graphique "clic and play" Optimisation des temps de calcul Mais surtout une grande autonomie, de la modélisation vers la programmation (vectorielle)!
Plan d attaque 1 Introduction 2 Modélisation et mise en équation 3 Implémentation numérique 4 Pour aller plus loin à compléter avec 3 outils fondamentaux : La documentation de Matlab (commande "help" ou "doc") Wikipedia De la patience...
Vers un problème aux valeurs propres Propagation d une onde d amplitude u sur une surface rectangulaire Ω, avec Γ le bord, c la vitesse du son dans la lame, t le temps et le laplacien surfacique : 1 c 2 t2 u u = 0 (1) u Γ = 0 ou n u Γ = 0 u(t = 0) = u 0 ou t u(t = 0) = v 0 Solutions particulières "oscillantes" : u(x, y, t) = (A cos(ωt) + B sin(ωt))ψ(x, y) (2) Nouvelle équation aux valeurs propres, avec k = ω c : Ψ(x, y) = k 2 Ψ(x, y) (3) Ψ Γ = 0 ou n Ψ Γ = 0
Résolution Les solutions (ω n, Ψ n ) de l équation aux valeurs propres forment une base telle que : u(x, y, t) = (A cos(ω n t) + B sin(ω n t))ψ n (x, y) (4) n=1 Détermination des constantes A et B par conditions initiales : u(t = 0) = u 0 A = u 0 et B = 0 (5) ou t u(t = 0) = v 0 A = 0 et B = v 0 ω n
Construction d un maillage par rectangles https ://fr.wikipedia.org/wiki/maillage Table des nœuds : Chaque ligne fournit les 2 coordonnées spatiales d un nœud du maillage. Table des éléments : Chaque ligne fournit les 4 indices des nœuds d un élément du maillage. Table des arrêtes : Chaque ligne fournit les 2 indices des nœuds d une arrête du maillage. Table des bords : Chaque ligne fournit l indice d un nœud de la frontière. PROJET : Construire et afficher un maillage par rectangles d une lame rectangulaire (1m x 0.05m), avec au moins 10 nœuds par longueur d onde, pour une fréquence maximale de 20 khz et une vitesse du son de 1 km/s.
Matrice du Laplacien par Différences Finies https ://fr.wikipedia.org/wiki/difference_finie https ://fr.wikipedia.org/wiki/laplacien_discret Les différences finies permettent la discrétisation numérique d opérateurs différentiels, comme le Laplacien. Utilisation d un schéma centré d ordre 2, tel que pour toute fonction f i,j évaluée aux nœuds x i et y j du maillage : f i,j = f i 1,j 2f i,j + f i+1,j... δx + f i,j 1 2f i,j + f i,j+1, δy avec δ x et δ y les pas de discrétisation en O x et O y. PROJET : Assembler la matrice du Laplacien sur le maillage précédemment obtenu.
Résolution d un problème aux valeurs propres https ://fr.wikipedia.org/wiki/onde_sur_une_corde_vibrante Pour un Xylophone rudimentaire, les conditions de bords sont telles que u est nul en largeur (bord tenu) et n u est nul en longueur (bord libre). Les valeurs propres du système doivent être en nombre finis, réelles et dans le spectre audible (< 20 khz) Les premiers vecteurs propres sont similaires à ceux de la corde vibrante. PROJET : Introduire les conditions aux limites dans la matrice du Laplacien. Calculer puis afficher les premiers modes/valeurs propres sur le maillage de la lame.
Modélisation de la frappe Pour un xylophone rudimentaire, les conditions initiales sont celles de la "corde frappée", c est à dire en vitesse initiale non nulle : v 0 (x, y) = 1 frappe uniforme, ( v 0 (x, y) = e ( x ) 0.5) 2 L σ frappe gaussienne, avec L la longueur de la lame et σ la précision de l impact. PROJET : Calculer puis afficher l amplitude des deux types de frappe sur le maillage de la lame.
Modélisation de forme d onde et synthèse sonore https ://fr.wikipedia.org/wiki/enveloppe_sonore https ://fr.wikipedia.org/wiki/frequence_d echantillonnage Le signal sonore continu produit par le Xylophone numérique se résume à : ( s(t) = < e ( x ) 0.5) 2 L σ Ψ n (x, y) > ωn 1 sin(ω n t) n=1 Exemple empirique de forme d onde d un son percussif : Attack : 20 ms Decay : 5 ms Sustain : 75 ms à -3dB Release : 900 ms en décroissance exponentielle Fréquence d échantillonnage minimale fixée à 44.1 khz PROJET : Afficher le spectre fréquentiel en échelle logarithmique. Représenter la dynamique d une lame de Xylophone au cours du temps. Calculer, afficher puis écouter le signal de sortie.
Xylophone interactif https ://fr.wikipedia.org/wiki/accord_pythagoricien Un xylophone peut-être constitué par une gamme diatonique, par exemple la gamme de Do majeur, soit 8 notes. La longueur des lames varie pour changer de fondamentale, ou encore de valeur propre du Laplacien. Les gammes pythagoriciennes permettent d établir un rapport fréquentiel entre les différentes notes d une gamme. Par la linéarité de notre modèle rudimentaire, ce rapport est identique au rapport entre les différentes tailles des lames. PROJET : En utilisant le modèle de lame précédent, calculer et jouer l ensemble des notes d un xylophone diatonique. Construire une interface graphique pour jouer du Xylophone à la souris et en temps réel.
Pour aller plus loin Prendre en compte la position de la souris lors de la frappe Construire et implémenter un modèle de synthèse sonore pour le tambour Remplacer les bords fixes par des points fixes dans les lames Considérer l équation des poutres (ou bilaplacien) à la place du Laplacien Ajouter du filtrage numérique (égalisation, réverbération, echo, delay...)