Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

TIPE synthese sonore: analyse/resynthese additive par temps fréquence

  • 181 réponses
  • 10 participants
  • 21 046 vues
  • 12 followers
Sujet de la discussion TIPE synthese sonore: analyse/resynthese additive par temps fréquence
Bonjour à tous,
Voilà, je dois présenter un TIPE sur la synthèse sonore analogique en vue de passer des concours des grandes écoles.
Je voudrais savoir si certains pouvaient m'indiquer des livres (ou site si ça existe) qui approfondissent ce thème (au moins des auteurs).
Ma difficulté est de comprendre le principe de la synthese FM (pas du pt de vue mathematique mais du pt de vue réalisation). En fait j'aimerais savoir si on pouvait me donner de quoi elaborer une simulation de montage qui utiliserait le principe de la FM.
De même je cherche une idée ou quelques conseils pour realiser un montage qui simule une synthèse AM (multiplieur etc...) car je connais bien le principe mais je vois pas quel algorithme appliquer pr avoir des sons semblables à ceux d'instruments de musique par exemple.
Le but final est de faire une experience au labo de physique et de faire une analyse spectrale du signal emis (par exemple le son d'une guitare) et de le comparer au signal qu'on a voulu imiter.
Aussi, je voudrais savoir si qqun pouvait m'indiquer un site où l'on peut trouver l'analyse spectrale de différents instruments de musique (peu importe lesquels)
Merci à vous.
Afficher le sujet de la discussion
51
Je suis en PSI (Physique Sciences Indstrielles).
Ca m'interesse ton cours, car en prépa on ne parle pas du tout de ce qui est transformée de fourier et tout ça...Et sinon ca parle des filtres numériques ? car j'ai essayé de regarder des trucs sur le net et franchement j'ai du mal car il faut apparement avoir des bases. Je voulais aussi un truc qui parle des erreurs commises (d'une manière plus quantitative)quand on fait une fenêtre pr un signal (l'histoire du sinc() qui rajoute des lobes et de la fenêtre de hanning...mais perso je vais utiliser seulement les fenêtres rectangulaires car ca me semble + simple pr faire un prog et l'utilisation est + intuitive)
Merci:clin:
52
L'hsitoire des fenetres est tres bien expliqué dans le bouquin, l'informatique musical du signal au signe musical :clin:

sur ma doc sur la synthese additive, j'avais mis l'influence des differentes fenetres de ponderation :P:
53
Quoi ??? On ne voit plus les séries de fourier en prépa ???
Décadence...(lol)
Parce que quand tu as vu les séries, passer à la transformée, c'est easy.

balance moi un ptit message avec ton adresse (la vraie de la vraie vie)...pour que je te le poste ce cours (mais je pense pas que tu pourras tout ingurgiter d'ici ta soutenance).

Mr Choc toujours présent !

http://soundcloud.com/bat-manson

54
Ouai, le signal c'est l'eclate :D:
55
On fait bien sûr les séries de Fourier mais pas la transformée de fourier (en fait on parle de la tanformée de Laplace en SI mais c'est dans le but de transformer des equadiff en polynome et c'est tout, aucune théorie là dessus).
56
Historiquement l'analyse multidimensionnelle a été créé pour cela : monsieur Fourier a utilisé une projection sur une base de cosinus pour résoudre des saletés d'équations différentielles de thermondynamique.
Que du plaisir !

La transformée de Fourier de base (pas la FFT) c'est juste une fonction permettant d'obtenir les coefficients de la série de fourier correspondant au signal à analyser.

Pourquoi transformée ? parce que la transformée de fourier prend "en entrée" une fonction (celle a analyser), elle sort une fonction, appelé le spectre.(cette fonction marche comme suit : tu lui fais becter le numéro d'un coefficient, elle régurgites la valeur du coeff.)

Enfin je dis ça c'est pas pour me la péter, choc pourrait me calmer sur place.
C'est juste pour reformuler d'une autre manière les fondamentaux de l'analyse.

C'est vrai qu'en PSI beaucoup de connnaissances relevent plus de la recette de cuisine que l'aboutissement d'un raisonnement théorique "bien fondé".
Mais bon c'est quand même des recettes de cordon bleu !

http://soundcloud.com/bat-manson

57

Citation : choc pourrait me calmer sur place.



:8O: T'as revé...franchement chacun a ses specificités en signal :clin:
58
Voilà j'ai pu me procurer le bouquin "du signal au signe musical" et franchement il est super bien fait (du moins les chapitres 1,2,11), grâce à ça je vois comment marche tout le truc, les algos sont super bien expliqués et ça ne demande pas enormément de connaissances en maths théorique, juste du raisonnement à la physiciene...mais bon il y a qud meme des passage un peu difficiles. Je vais enfin pouvoir faire un petit programme bien sympatique...
- Juste une question : je compte faire l'analyse d'un signal en utilisant les fenetres rectangulaires (+ simple à programmer) et interpoler les enveloppes temporelles (résultant de l'algo de mc auley-quatieri) d'une manière assez grossière (du genre ADSR, voire pire...) est ce que ca rendra qque chose d'audible ? (meme si c un peu moche, il faut juste que le principe soit bon).

PS : je tiens à défendre ma section de PSI, c'est jsute pour dire qu'on ne fait pas que de la recette de cuisine, on fait pas mal de théorie en maths (par exemple les series de fourier ont été vues sans admettre de résultats (enfin presque) à partir des espaces préhilbertiens complexes) etc..on a juste amdis les gros théorèmes qu''on ne fait pas non plus en MP je pense, du genre theoreme des fonctions implicites etc... .
59
Oui ca semble une bonne idée !

Tu auras une perte au niveau perceptif, c'est indeniable, mais ca apres justement c'est super marrant d'evaluer la perte que tu as au niveau perceptif par rapport au nombres d'infos que tu gardes sur le signal.

tu peux aussi essayer de prendre des enveloppes d'amplitude de type exponentielles (c'est ce que tu retrouves en synthèse modale).
60
Ok merci bien, et sinon ya un autre truc, est ce que c'set grave lorsqu'on effectue le "fenetrage" si les fenetres se "chevauchent" c'est à dire si la nième fenetre possede des echantillons, qui sont dans la (n+1)ième fenetre ??? ou c'est un truc à éviter ?
61
Le chevauchement dez fenetres c'est un truc qui me semble assez courant (mais bon je suis pas trop trop callé)
62
En fait ce que je me demandais c'etait si par exemple on veut utiliser l'algo de mcauley-quatieri, ca risque pas de poser problème quand on voudra interpoler une enveloppe temporelle ?? car y a des pics qui vont etre comptés 2 fois non ?
63
Non non t'inquietes..

tu fais ton mcaulay quartieri, apres t'as juste a connaitre l'echelle temporelle (qui va etre modifiée).

j'ai deja implementé mc aulay quartieri, si t'as des problemes je suis la, postes sur ce thread et je te repondrais
64
- J'ai commencé mon prog. J'ai donc effectué un fenetrage (rectangulaire) de sorte à empecher les "chevauchements" (car en fait je vois pas comment gérer car je connais pas trop les consequences étant donné que pour moi la TFD (la TF tout court d'ailleurs) relève de la recette de cuisine.
Là je suis en train de faire un truc pr detecter les pics (maximums locaux) et les indexer dans une liste (tout en supprimant les pics trop petits,et ceux crées à causes des lobes du sinc), j'ai aussi fait un truc pr accéder à l'enveloppe temporelle (en calculant l'energie moyenne dans chaque fenetre) et je trouve bien un truc du type ADSR :D: .
- J'ai encore un petit problème : en fait quand on fait la TFD à court terme, je ne comprend pas pourquoi on divise par le nombre total d'echantillon et non par le nombre d'echantillons dans une fenetre. Ils parlent pour cela d'un "surechanillonnage" et donc il faut rajouter des "0" (zero-padding). Le truc c'est que le sigal transformé ne sera plus fidèle au signal de départ non ??? car si on fait une TFD inverse, on retombera sur un signal avc des temps de silence au milieu (correspondant aux zéros ajoutés) non ???

- Encore une dernière chose : je voudrais juste connaitre des valeurs numériques judicieuses pour la periode d'une fenetre (je travaille sur un son de guitare de 1 s à 44100 Hz et j'ai fait des fenetres de 0.01 s).

Merci :D:
65
Pour la taille de fenetres prends des exposants de 2

128/256/512/1024/2048/

512 c'est pas mal, de toute facon dans ton choix de la fenetre faut savoir que si t'as fenetre est trop petite tu seras precis en temps mais pas en fréquence, et si ta fenetre est trop grande, tu seras precis en fréquence mais pas en temps (incertitude d'heisenberg)

La technique de zero padding va te permettre d'ameliorer artifiellement la reoslution fréquentielle, pense jsuet que son interet va resider au niveau de l'analyse frequentielle pour localiser les pics
66
Merci bien, je me demande si c'est nécessaire de prendre des 2^n pr les fenetres car moi j'utilise la TFD et non la FFT (j'ai peur qu'ils me questionnent là dessus à l'oral et en + il faut que je la programme car maple ne fait pas ça apparement donc j'ai pris le + simple en fait même si ca rame du cul)...
67
T'inquietes pas !

Un gars qui va te reprocher de pas avoir reprogrammer une fft parce que t'avais que la tfd sous la main (verifie quand meme que mapple fait pas de fft), et bien, c'est un mytho qui pete plus haut que ses fesses :mrg:

Des algos de fft, y en a plein, genre le fftw en c, ca doit etre tendu a programmer !


Par contre la ca doit ramer ton programme :diable:

La c'est deja tres impressionnant ce que t'arrive a faire !
68
:clin: heureusement que j'avais un peu touché à la progra avant sinon je verrais pas du tout comment faire, mais bon ce que je fais c'est assez rudimentaire (je maitrise juste les listes, les boucles genre for, while mais bon j'arrive un peu à capter les algos du genre mcauley-quatieri (enfin moi je v le simplifier car j'ai pas envie qu'ils pensent que j'ai fait un copier/coller) apres tout ce qui est progra orientée objet je maîtrise pas trop.
- Mon programme, il rame c'est clair, pour un echantillon de 1 sec, avec 100 fenetres à calculer, il met pas loin de 20-30 sec pr effectuer la TFD de tout ce bordel (avec un pentium 4 2GHz)...lol j'ose pas essayer avc une musique entière sinon...mais mon but c'est d'illustrer le principe, je veux pas faire un vrai synthé hyper-performant.
En tout cas merci pr ton aide.
69
Je voulais juste savoir un truc : dans le bouquin, ils parlent d'interpoler les pics du spectre avec un polynome pr en détecter le maximum (afin d'obtenir une meilleure précision). En fait je voulais savoir comment on choisi les points au voisinage du pic pour calculer (j'imagine) le polynome de Lagrange associé (à moins qu'il existe une version discrète de l'interpolation) : on les prend tres prés ?? ou alors un peu éloignées???
Encore autre chose, c'était pour savoir si le fait d'interpoler par un polynoe jouait beaucoup sur la qualité de l'analyse ou si ca fait partie du "raffinement" ?
Merci.
70
Salut !

En fait comme sur une FFT, l'echelle des frequences est discretisé, tu peux affiner la recherche des pic en approximant le comportement de la FFT par un polynome au voisinage du pic

donc si tu trouves un pic a l'echantillon N=124 par exemple, tu prend la valeur de la FFT a N=123 a N=125 et N=124, tu fais une interpollation par un polynome puis tu calcules la position du maximum de ce polynome (ce qui va affiner la precision fréquentielle...

ca fait partie du raffinement, a toi de voir si tu entend une difference perceptive, ca peut etre interessant a tester :mrg:
71
OK merci
J'essaierais de programmer un truc comme ça si tout le reste marche nickel car ca doit etre un peu lourd à coder un truc qui interpole (quoique je v regarder si maple n'a pas une fonction qui trouve le polynome passant par n points). Mais ca risque pas d'être lourd comme truc car une fois le polynome calculé, il faut le dériver et tout ca pr trouver le maxi non et vu le nombre de pics, ca va faire péter mon ordi ?
72
T'inquietes il y a des solution analytiques ca va tres vite :mrg:
73
Hey, je viens de trouver la FFT dans maple. Par contre je comprend pas l'utilisation : elle s'utilise comme ceci :
FFT(x,y,m) où x (resp y) est la liste de la partie reele (resp immaginaire=sequence de 0 dans mon cas)) et m est tel qu'on ait 2^m éléments dans chaque sequence : jusque là je comprend les parametres, le truc c'est que cette fonction une fois utilisée affecte à x une liste de taille 2^m des parties réelles et pareil pr y en partie immaginaire.

- Il me semblait que la FFT appliquée à une liste renvoyait un seul nombre complexe (enfin une fonction) non (la somme des s(k)*exp(-j*...) au lieu de renvoyer une liste ???
74
Je connais pas mapple, la je peux pas t'aider

la FFT te renvoie un vecteur de nombre complexe...la si il te renvoie les reelles et les imaginaires y a pas de soucis
75
En fait moi c'est comme si il me renvoyait un vecteur de nombre complexe (sauf qu'il y a séparation de Re() et Im() mais bon il est assez facile de les regrouper dans une meme liste) de taille 2^m, le problème c'est que je ne vois pas du tout à quoi ça correspond (comment accéder au module et tout ça ensuite ???)
- Peut etre que ca correspond aux FFT(s)(n) pour n allant de 1 à 2^m....mais bon, je suis pas sûr.