TIPE synthese sonore: analyse/resynthese additive par temps fréquence
- 181 réponses
- 10 participants
- 21 046 vues
- 12 followers

abel_b

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.

abel_b

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


Choc


sur ma doc sur la synthese additive, j'avais mis l'influence des differentes fenetres de ponderation

Site personnel: https://www.enib.fr/~choqueuse/

batman14

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

Choc


Site personnel: https://www.enib.fr/~choqueuse/

abel_b


batman14

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

Choc

Citation : choc pourrait me calmer sur place.


Site personnel: https://www.enib.fr/~choqueuse/

abel_b

- 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... .

Choc

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).
Site personnel: https://www.enib.fr/~choqueuse/

abel_b


Choc

Site personnel: https://www.enib.fr/~choqueuse/

abel_b


Choc

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
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

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

- 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


Choc

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
Site personnel: https://www.enib.fr/~choqueuse/

abel_b


Choc

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

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

La c'est deja tres impressionnant ce que t'arrive a faire !
Site personnel: https://www.enib.fr/~choqueuse/

abel_b


- 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.

abel_b

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.

Choc

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

Site personnel: https://www.enib.fr/~choqueuse/

abel_b

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 ?

Choc


Site personnel: https://www.enib.fr/~choqueuse/

abel_b

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 ???

Choc

la FFT te renvoie un vecteur de nombre complexe...la si il te renvoie les reelles et les imaginaires y a pas de soucis
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

- Peut etre que ca correspond aux FFT(s)(n) pour n allant de 1 à 2^m....mais bon, je suis pas sûr.
- < Liste des sujets
- Charte