TIPE synthese sonore: analyse/resynthese additive par temps fréquence
- 181 réponses
- 10 participants
- 21 035 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.

Choc


1-Y a un dossier fait par psycom qui introduit la synthese
2-Y a mon site avec une doc sur la synthese
Citation : Je voudrais savoir si certains pouvaient m'indiquer des livres (ou site si ça existe) qui approfondissent ce thème (au moins des auteurs).
La synthese FM est nait en 1973 au labo CCRMA de stanford. Chowning travaillé sur les sons resultant d'un vibrato extreme (superieur a 20Hz). Il s'est rendu compte que le spectre resultant contenait beaucoup d'harmoniques.
1974, depot du brevet puis rachat par yamaha. Yamaha lance la serie de plusieurs synthetiseurs DX (notamemment le DX7 qui est l'un des synthé qui s'est le meiux vendu au monde).
le papier de chowning qui parle de ca doit s'appeler : The synthesis of complex audio by means of frequency modulation
Citation : En fait j'aimerais savoir si on pouvait me donner de quoi elaborer une simulation de montage qui utiliserait le principe de la FM.
Sur mon site y a des programmes matlab, honnetement c'est pas ce qu'il y a du pratique. Peut tu utiliser un synthé modulaire soft ? Si oui je te conseille pure data qui est gratuit.
Citation : 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.
OK le hic ! la synthese FM est vraiement une synthese au comportement difficilement previsible. Calculer le son resultant d'une sinusoide modulé en frequence par une autre sinusoide est assez compliqué (dans les calculs tu veras l'introduction de fonctions de bessels). Concernant des patch FM tres compliqué (comme ceux du DX7), le son est carement imprevisible mathematiquement (ou a moins d'avoir uen equation final sur 15 pages). Si tu veux vraiement faire de l'analyse resynthese je te conseille plutot la synthese additive, qui est beaucoup plus simple et qui beneficie de l'avancé des outils du traitement du signal (represnetation temps frequence notamment, peak tracking etc).
Pour les bouquins: L'audionumerique de curtis roads, sound synthesis and sampling de martin russ et si tu veux faire de l'analyse-resynthese additive "du signal au signe musical" au editions hermes

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

abel_b


Je me doutais que ça serait pas facile de faire un montage. Le problème de la synthèse additive c'est qu'il faut créer "à la main" tous les harmoniques, à partir de singnaux basiques...mais je consulterais les bouqins pour voir s'il existe une vraie théorie là dessus... Sinon est ce que tu sais si par contre on peut construire un algorithme pr la synthese AM car ce type de synthèse me semble + compréhensible que la FM (et puis c'est à mon niveau mathématiquement parlant car les fonctions de bessel on n'en parle pas en maths).
Et sinon est ce que tu connais un montage electrique analogique (compréhensible par un élève de math spé) qui permet de réaliser une modulation FM entre 2 signaux ???
Merci à ceux ce qui m'ont répondu et qui me répondront..

EDIT : Tu peux me donner l'adresse de ton site ?

Choc

Citation : Le problème de la synthèse additive c'est qu'il faut créer "à la main" tous les harmoniques, à partir de singnaux basiques
Oui, mais t'as des algorithmes d'analyse qui te permettent de faire ca a ta place, tu rentres un son, et zou ca te donne tous les parametres de synthèse.
Citation : mais je consulterais les bouqins pour voir s'il existe une vraie théorie là dessus
Y a plein de theorie sur l'analyse resynthese additive

Citation : Sinon est ce que tu sais si par contre on peut construire un algorithme pr la synthese AM car ce type de synthèse me semble + compréhensible que la FM
Oui c'est fesable, mais c'est loin d'etre la plus interessante.
Citation : Et sinon est ce que tu connais un montage electrique analogique (compréhensible par un élève de math spé) qui permet de réaliser une modulation FM entre 2 signaux ???
La plupard des synthé FM, sont des synthé numerique pas analogique.
Pour mon site suffit de cliquer sur ma signature; juste en dessous
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

Et sinon 2 dérnière chose :
- tu ne saurais pas où l'on peut trouver une sorte de repertoire avec des instruments de musiques "référencés" et où l'on donne ces caractéristiques fréquentielles (est ce que les harmoniques décroissent en 1/n, 1/n² etc...)
- Est ce que les algo sont complexes (pr la synthèse additive) à mettre en oeuvre ? car j'aimerais faire une simulation informatique en Maple (genre un programme qui reçoit les caracteristiques d'un son et qui donne les paramètres à modifier).
Et encore merci bcp pour ton aide car je vois comment organiser mon truc.

Choc

Citation : tu ne saurais pas où l'on peut trouver une sorte de repertoire avec des instruments de musiques "référencés" et où l'on donne ces caractéristiques fréquentielles (est ce que les harmoniques décroissent en 1/n, 1/n² etc
je suis en train de faire un programme qui fait ca sur matlab.
En fait pour les harmoniques, il faut utiliser la transformée de fourrier. Malheureusement les instruments de musiques ne possedent pas des "spectre" simple avec des decroissances des harmonique en 1/n ou 1/n2. De plus les instruments de musiques ne generent pas signaux stationnaires, c'est a dire que leur spectre varient dans le temps.
Enfin mon programme devrait pourvoir de sortir les parametres pour modeliser un son par la fonction x(t) telle que
x(t)=A(n) sum {n=1}^{n=N) sin(2*pi*f_{n}*t+phase(n))
ou A(n) (l'amplitude) f(n) (la frequence) et phase (n) (la phase) sont generés par le programme d'analyse.
Citation : Est ce que les algo sont complexes (pr la synthèse additive) à mettre en oeuvre ? car j'aimerais faire une simulation informatique en Maple (genre un programme qui reçoit les caracteristiques d'un son et qui donne les paramètres à modifier).
Les algorithmes ne sont pas compliqué a mettre en oeuvre. Cependant suivant le nombre d'harmoniques (on parlera plutot de partiels car les composantes frequentielles ne sont pas des multiples de la frequence fondamentale) le calcul de la somme peut prendre un certains temps. Y a toujours la méthode du cercle magique qui permet d'accelerer les calculs. En synthese additive essaye de voir avec guitoo c'est son sujet de thèse, il est callé !

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

abel_b



abel_b

Merci.
En fait j'ai approfondi les recherches et j'ai trouvé quelques docs ca devrait me suffire.
Joyeuses fêtes à tous !!!

abel_b

pourquoi quand on fait la transformée de Fourier on intègre sur les nombres négatifs (le signal n'est pas défini normalement) et pourquoi qud on applique la TFDiscrete on somme sur des intervalles de largeur 2/N alors qu'avec la frequence d'echantillonnage on devrait avoir des intervalles de largeur 1/N ??
Merci.

Choc

Citation : pourquoi quand on fait la transformée de Fourier on intègre sur les nombres négatifs (le signal n'est pas défini normalement)
tu veux dire pur un temps negatif ? Tous les signaux ne sont pas definie uniquement pour t>=0. D'ailleur la classe de signal qui est non definis sur t<0 est appelée "signal causal".
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

C'est pour ça que je comprenais pas pourquoi on intégrais de -l'infini dans la transformée de fourier. Sinon pr un signal défini que sur les positif, on fait comment pour intégrer ??? on postule f=0 pour t<0, on symétrise ???
Merci.

abel_b


En fait je veux juste savoir pourquoi on integre a partir de -l'infini dans la tansformée de fourier car un signal n'est défini qu'a partir d'un certain temps non ???
Autre question : Quelle est la différence entre la trasformée de Laplace et la transformée de fourier car on m'a dit (en cours de SI) que la transformée de Laplace permet aussi d'accéder au domaine fréquentiel (on s'en sert pr étudier les filtres). D'autant plus que les 2 transformées sont semblables...
Merci.

Choc

Citation : ça n'a pas de sens physique de commencer à t=- l'infini
Bah un sinus c'est bien definit pour t Appartenant a R. D'accord en pratique sur ton ordinateur c'ets jamais vraie...Imagines que tu genere un sinus sur 1000 echantillons...le signal que tu as generé est donc un sinus sur lequel tu as multiplié une fonction porte (qui est egal a 0 sur ]-oo 0[ U ]1000, oo[ et egal a 1 sur [0 1000[....
Quand tu mulitples un signal dans un domaine (comme la avec la porte en temporelle) c'est comme si tu convolué dans l'autre domaine (ici la domaine frequentielle)
si en temps tu as x(t)=sin(2pift).porte (ou . denote la multiplication)
tu auras
En frequentielle tu auras X(f)=F(x(t))=F(sin(2pift))*F(porte) (ou * denote le produit de convolution, F(x(t)) la transformée de fourier de x(t))
La fonction porte dont je t'ai parlé auparavant, qui n'est rien d'autre qu'un signal rectangulaire, a pour transformée de fourier F(porte) un sinus cardinal dont les parametres dependant de la longueur temporelle de la porte
Je t'ai generé un figure pour que tu vois l'influence de la fonction porte. La courbe rouge represente un sinus generé sur 1000 echantillon (donc c'est comme si tu avais appliqué une porte rectangualire = 0 sur ]-oo,0[ U ]1000,+oo[ et 1 ailleur) et la courbe bleu un sinus generé sur 100 echantillons (donc c'est comme si tu avais appliqué une porte rectangualire = 0 sur ]-oo,0[ U ]100,+oo[ et 1 ailleur)...Tu vois que si on possede pas beaucoup d'echantillon le pic qui doit apparaitre a 50 Hz est parasité par les lobes du sinus cardinal....

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

Choc

Les signaux comportent tous une fréquence maximale. Shannon a demontré (theoreme egalement associé a Cauchy ou Whitecker ou Niquist), que pour reconstruire un signal continue, tu peux juste "prendre des photos" de ce signal dans le temps : c'ets a dire que tu peux decrire un signal continue par un signal discret...Cette discretisation temporelle doit respecter la fameuse condition:
La frequence d'echantillonnage doit etre deux fois superieure a la fréquence maximal de ton signal...
C'est grace a ce theroeme qu'on a assister a l'explosion du numerique. Par exemple notre oreille n'entend pas les sons de fréquences superieures a 20000 Hz (et encore c'ets une limite tres large en pratique je pense plus a 16 ou 17 kHz). Ainsi pour un CD on "echantillonne" en temps a plus de 40000 Hz (en fait pour un CD, le signak est echantillonné a 44100 Hz soit une "image" du signal tous les 1/44100 sec, cette valeur de 44100Hz a été donnée pour des raisons pratiques)....Pareil pour la video a 24 image par seconde ca suffit pour discretiser un signal video continue.
Citation : Quelle est la différence entre la trasformée de Laplace et la transformée de fourier
La transformation de Fourier est un cas particulier mathématique de la transformation de Laplace ( Demo page 20) . L'idée de la transformée de Laplace est antérieure (Euler, 1737, puis Laplace 1782 1785) à l'idée de transformée de Fourier; toutefois, le développement de la transformée de Laplace inverse n'est proposé par Laplace qu'après sa prise de connaissance du travail de Fourier...
perso j'utilise que fourier
Site personnel: https://www.enib.fr/~choqueuse/

Ur3000

Je suis en première année à l'ENSEA (vieeeens chez nous, vieeeeens...), et j'ai étudié la transformée de Fourier en maths au premier semestre. Dis-toi que si tu n'as pas fait de cours dessus, ça va être assez dur de t'y mettre. Perso mon TIPE était sur la conversion analogique-numérique, et voyant que la TF était trop galère, j'ai fait des raisonnements intuitifs pour la démo du critère de Nyquist.
Pour en revenir à ton problème, le truc c'est que toi, tu as vu ou tu vas voir pendant l'année les séries de Fourier, qui permettent de décomposer un signal périodique infini en somme de sinusoïdes. En fait, la transformée de Fourier permet de décomposer n'importe quel signal (donc plus forcément périodique), sauf qu'au lieu d'avoir une série et donc un spectre qui ressemble à un diagramme en bâtons, tu pourras avoir un spectre continu. Dans ton cas, tu pourras te passer de la TF si tu gardes la même forme d'onde pendant toute la durée de ton son en faisant varier l'amplitude, et dans ce cas je pense que les séries de Fourier çà passera tranquille. Le truc c'est que tu n'as que dix minutes devant le jury, et que si tu veux faire quelque chose avec la TF, il va quand même falloir expliquer un minimum de choses, et ça va te prendre... au moins presque dix minutes.
Voilà, j'espère que ce post t'aidera pour ton TIPE, n'hésite pas à m'écrire sur ma boîte perso si tu veux des infos, aussi bien sur ton TIPE que sur mon école (on a une option acoustique musicale en 2e année, à bon entendeur...).

abel_b

- En fait il serait possible d'analyser un signal seuelement avc des series de fourier du moment que le spectre ne varie pas ds le tps ???
- Je ne comprend pas tout à fait l'echantillonage, c'est prendre une "photo" du signal, puis de discrétiser (faire le truc en escalier) ou de prendre plusieurs photo et de faire jsais pas quoi ?
Citation : Imagines que tu genere un sinus sur 1000 echantillons...l
En fait ca revient à faire quoi (qualitativement) d'echantilloner sin(t) sur 1000 echantillons, c'est de l'étudier sur l'intervalle [0,1000] ? De subdiviser l'intervalle des amplitude en 1000 sous intervalles égaux ? De regarder la valeur de sin(t) pour 1000 instants différents ?
(Dsl je suis lourd avc mes questions mais c'est tout nouveau pr moi, c'est des trucs qu'on ne fait pas du tout en cours).
- Est ce que c'est possible de faire une analyse assez propre d'un signal musical, modulo quelques approximations, qu'avec des séries de fourier dont seule l'amplitude des coefs varie dans le tps ??? (Ou du moins est ce que c'est facile à réaliser comparée à une analyse avc TFD et fenetrage etc...) car la TF, c'est assez dur à manipuler d'autant plus que je souhaiterais faire une petite expérience dans le labo de physique pr comparer les signaux au début et après la resynthèse.
Hors sujet :
- Une question sur l'épreuve de TIPE : Sachant que je suis en PSI (Physique Science de l'Ingenieur), mon jury sera composé d'un prof de physique et d'un prof de SI, donc je voudrais savoir s'ils vont etre "tatillon" sur les formules de maths, ou si je peux me contenter d'admettre ou d'expliquer tres qualitativement les formules (comme on fait en cours de SI) ?
Encore merci à vous.

Choc

Citation : il suffit de multiplier par 0 là où le signal n'est pas défini physiquement si je comprend bien...Le truc c que je comprend pas trop la notion de "porte" de "convolution"
La notion de porte c'est intuitif non ? tu laisses passer ou tu laisses pas passer
Pour la convolution retiens juste que multipler dans un domaine (temporel ou frequeentiel) ca revient apres calcul de la transformée de fourier ou transformée de fourier inverse a convouler dans l'autre domaine.
Citation : En fait il serait possible d'analyser un signal seuelement avc des series de fourier du moment que le spectre ne varie pas ds le tps ???
Enfin transformée de fourier car les series de fourier c'est pour les signaux periodiques

Citation : Je ne comprend pas tout à fait l'echantillonage, c'est prendre une "photo" du signal, puis de discrétiser (faire le truc en escalier)
prendre une "photo" de ton signal c'est echantillonner. Par contre approximer les valeurs (par exemple d'amplitude) par un code binaire c'est de la quantification. Contrairement a l'echantillonnage (si ce dernier est effectué correctement) la quantification t'introduit des erreurs.
Citation : En fait ca revient à faire quoi (qualitativement) d'echantilloner sin(t) sur 1000 echantillons
Ouaih, c'est moi qui t'es induis en erreur je pense la...
Imagines une fonction x(t)=sin(2*pi*f1*t) ou t est la base temps (disons t appartient a [0 +oo[) et f1 la frequence de la sinsuoide que nous fixons a 100Hz
on va echantillonner cette sinusoide a disons a la fréquence d'echantillonnage Fe de 1kHz (on a bien 1kHz=1000 Hz > 2*100 Hz).
Echantillonner ca revient a prelever des echantillons x(t) a chaque multiple de la periode d'echantillonnage (la periode d'echantillonnage est l'inverse de la fréquence d'echantillonnage, nous la notons Te et elle est egal a Te=1/Fe=1/1000= 10^-3)
donc la version de x(t) echantillonner c'est x(k*Te)=x(k*10^-3) ou k appartient a N et ets le numero d'echantillon...on est donc passer d'un signal continue x(t) a un signal discret x(k*Te)
Quand je te parlais de 1000 echantillons, ca n'a reelement une signification physique que si je te specifie la frequence d'echantillonnage...mais bon c'etait pour t'illustrer autre chose...
Citation : De regarder la valeur de sin(t) pour 1000 instants différents ?
Echantillonner....tu n'introduit pas d'erreur
Citation : De subdiviser l'intervalle des amplitude en 1000 sous intervalles égaux ?
Quantifier tu introduis de l'erreur..
Citation : Est ce que c'est possible de faire une analyse assez propre d'un signal musical, modulo quelques approximations, qu'avec des séries de fourier dont seule l'amplitude des coefs varie dans le tps ???
Avec la transformée de fourier c'est fesable pas trop difficilement si tu es equipé des bons outils (Matlab par exemple)
tiens, regarde ce que j'ai fais en speed...analyse resynthese d'un son de piano par synthese additive
Chaque son est de la forme sum_(1 a N)(A_{n}t.sin(2pif_{n}t))...(donc enveloppe d'amplitude, et fréquence pas forcement multiple de la fondamentale)
Avec N=5 partiels
Avec N=50 partiels

Hors sujet : j'veux un interpretteur Latex poru ecrire les equations sur af
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

Merci pour ces infos.
Sinon tu sais pas si ce truc serait faisable avc maple (car je connais absolument pas matlab) ?
Sinon, un autre truc, comment on fait pr echantilloner car on ne peut pas echantilloner sur [0,+oo[ ?? On se contente de prendre un temps suffisament grand mais fini j'imagine...Il ya des "règle en ce qui concerne le choix de ce tps ??? ou on peut se permettre de le prendre tres grand car si je me trompe pas, sur [0,10^6] a 10^3 Hz, le pc va se farcir 10^9 valeurs à stocker alors que sur un intervalle [0,10] il y en aura 10^4 !!! En fait c'est juste pr savoir si ce choix dépend de caractéristiques du signal etc... ou si c'est une appréciation qualitative (genre on s'en fout de savoir le son qu'emet un piano après 40 secondes car l'expérience le montre).
Merci encore.

Choc

-la fft
-les filtres passe bande
-la transformée de hilbert
-l'export audio
Perso je connais pas mapple (enfin j'ai jamais utilisé)
Citation : Il ya des "règle en ce qui concerne le choix de ce tps ???
Pour une note de piano tu vois bien qu'apres 5/6 seocnde l'amplitude est nulle...ca sert a rien de garde ces amplitudes nulles.
AU niveau audio les frequences d'echantillonnage que tu vas trouver c'est 44100Hz, 48000Hz voir au dessus...pour 6 secondes ca fait pas mal d'echantillon deja
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

Sinon est ce que c'est simple d'utilisation (ya moyen d'apprendre à maitriser qques trucs en rapport avc le tipe en qques mois) ???
- Autre question : la transformée de hilbert c'est un truc nécéssaire à l'analyse du signal (car je n'en ai pas entendu parler dans mes docs) ??
- Sinon il faut utiliser quoi comme logiciel pour faire une capture audio car on en a un au labo de physique (jme rappelle plus du nom, c un truc qui fonctionne en MS-DOS...) mais je doute qu'on puisse "exporter" les graphiques obtenus vers un logiciel genre matlab ou autre.
- Le truc c'est que pr l'epreuve de TIPE, on n'a pas le droit a autre chose qu'à des feuilles et des transparents donc il faudra que je leur balance que des graphiques et les lignes de code qui vont avec. En fait est ce qu'avec matlab, on peut faire une acquisition audio, l'étudier (graphiquement) avc les methode additives puis recomposer un nouveau graphique qui sera le résultat de la resynthèse ? En fait je compte faire pls synthèses (quatntification différente, différentes frequence d'echantillonage) pr bien montrer la perte d'information, le rendu etc...
Voilà encore merci à toi.


Choc

Citation : En fait je compte faire pls synthèses (quatntification différente, différentes frequence d'echantillonage)
Ce qui est interessant c'est pas la modif de la quantification ou de l'echantillonnage, ca c'est plus des problematique de la conversion analogique numerique...ce qui ets interessant c'ets par exemple de resynthetiser un son en fesant varier le nombre de partiel...Un son de piano a un partiel, a 2 partiel etc...pour voir l'influence du nombre de partiel, tu peux eventuellement essayer d'interpoller les enveloppes d'amplitude et montrer ainsi qu'on peut faire d ela compression sans trop modifier l'aspect perceptif...
Citation : En fait est ce qu'avec matlab, on peut faire une acquisition audio, l'étudier (graphiquement) avc les methode additives puis recomposer un nouveau graphique qui sera le résultat de la resynthèse ?
Oui, matlab te fait meme le café si tu veux



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

abel_b

En gros ca prendrait combien de ligne de code un prog qui fait tout ça (j'espere qu'il y a bcp de fonctions préprogrammées sinon ca va etre galère).
PS : la syntaxe en matlab, ça ressemble à quoi à peu près ???
Merci.
EDIT : Et sinon tu fais quoi dans la vie come boulot/études (si c'est pas trop indiscret), car je pense que je pourrai te citer pr mon tipe si c'est en rapport avec la synthèse sonore (ils aiment bien ça les membres du jury qu'on ait eu qques contact meme si c par le net).

Choc

Citation : PS : la syntaxe en matlab, ça ressemble à quoi à peu près ???
[y,FS]=wavread(fichier);
x=y(:,1)';
fft_son=fft(x,44100);
module=abs(fft_son(1:22050));
plot(module/max(module));
axis([0 10000 0 1.1]);
grid;
xlabel('fréquence (Hz)');
ylabel('Amplitude');
figure
plot((1:length(x))/44100,x/max(x));
grid;
axis([0 length(x)/FS -1.1 1.1]);
ylabel('Amplitude');
xlabel('temps (s)');
Au moins sur matlab toutes les fonctions sotn preprogrammée

Hors sujet : va sur mon site t'as mon CV...Ouaih j'ai bossé un peu (stage recherche a France Telecom R&D) sur la synthèse de son spatialisé, mes travaux devraient etre publiés a l'AES 2006 et un autre stage (brevet + publi) sur la spatailsiation au casque...Mais franchement concilier passion et boulot c'ets pas mon trip, la je fais ma these pour la DGA en interception telecom...mais j'ai pas fait math sup math spé
Site personnel: https://www.enib.fr/~choqueuse/

abel_b

PS : Il faut quoi comme format audio pr le traiter avc matlab le + facilement possible ?
Merci.

Choc

Si tu te le procure legalement et si tu as besoin d'une explication, on peut eventuellement se faire une session msn

Site personnel: https://www.enib.fr/~choqueuse/
- < Liste des sujets
- Charte