TIPE synthese sonore: analyse/resynthese additive par temps fréquence
- 181 réponses
- 10 participants
- 21 358 vues
- 12 followers
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
16 Décembre 2005 à 19:26TIPE synthese sonore: analyse/resynthese additive par temps fréquence
#1
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.
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.
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
10 Mai 2006 à 10:27
#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
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
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
10 Mai 2006 à 10:51
#52
L'hsitoire des fenetres est tres bien expliqué dans le bouquin, l'informatique musical du signal au signe musical
sur ma doc sur la synthese additive, j'avais mis l'influence des differentes fenetres de ponderation
sur ma doc sur la synthese additive, j'avais mis l'influence des differentes fenetres de ponderation
Site personnel: https://www.enib.fr/~choqueuse/
Signaler
batman14
715
Posteur·euse AFfolé·e
Membre depuis 21 ans
10 Mai 2006 à 10:57
#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 !
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
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
10 Mai 2006 à 11:05
#54
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
10 Mai 2006 à 13:48
#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).
Signaler
batman14
715
Posteur·euse AFfolé·e
Membre depuis 21 ans
10 Mai 2006 à 18:18
#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 !
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
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
11 Mai 2006 à 09:25
#57
Citation : choc pourrait me calmer sur place.
Site personnel: https://www.enib.fr/~choqueuse/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
16 Mai 2006 à 16:04
#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... .
- 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... .
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
16 Mai 2006 à 16:09
#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).
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
16 Mai 2006 à 16:39
#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 ?
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
16 Mai 2006 à 16:42
#61
Le chevauchement dez fenetres c'est un truc qui me semble assez courant (mais bon je suis pas trop trop callé)
Site personnel: https://www.enib.fr/~choqueuse/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
16 Mai 2006 à 21:55
#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 ?
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
16 Mai 2006 à 22:00
#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
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
17 Mai 2006 à 17:58
#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
.
- 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
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
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
17 Mai 2006 à 18:08
#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
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
17 Mai 2006 à 18:11
#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)...
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
17 Mai 2006 à 18:18
#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
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 !
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
17 Mai 2006 à 18:43
#68
- 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.
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
18 Mai 2006 à 17:43
#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.
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.
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
18 Mai 2006 à 17:54
#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
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
18 Mai 2006 à 18:06
#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 ?
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 ?
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
18 Mai 2006 à 18:22
#72
T'inquietes il y a des solution analytiques ca va tres vite 
Site personnel: https://www.enib.fr/~choqueuse/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
19 Mai 2006 à 11:19
#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 ???
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 ???
Signaler
Choc
6968
Membre d’honneur
Membre depuis 23 ans
19 Mai 2006 à 11:22
#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
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/
Signaler
abel_b
60
Posteur·euse AFfranchi·e
Membre depuis 20 ans
19 Mai 2006 à 11:31
#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.
- Peut etre que ca correspond aux FFT(s)(n) pour n allant de 1 à 2^m....mais bon, je suis pas sûr.
Signaler
- < Liste des sujets
- Charte