Se connecter
Se connecter

ou
Créer un compte

ou

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

  • 181 réponses
  • 10 participants
  • 20 550 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
141
" les coefs de Fourier ne doivent pas du tout dependre du temps, sinon, ca n'a plus aucun sens "

"ca permet de voir l'evolution des coeffs au cours du temps"

Faudra que l'on m'explique , parce que là je pige plus rien
142
Spectrogramme et tranformee de fourier, c'est different.

La transformee de fourier, normalement, c'est pour les fonctions periodiques (coefficients integrales, reeconstruction discrete, ie series). On etend ca aux fonctions a support borne, de carre integrable, etc... Mais fondamentalement, dans l'intepretation frequentielle, ca te donne le spectre a un instant donne. Si tu veux voir l'evolution du spectre au cours du temps, t'es oblige de calculer le spectre (c'est a dire les coefficients de fourier) a des instants differents.

Je rappelle que la formule des coeffs de Fourier pour une fonction de carre integrable, c'est fondamentalement F(k) = integrale(f(t)exp(-ikt)dt), et la representation de fourier, en supposant que tout se passe bien (convergence de la representation vers f), c'est f(t) = sum(F(k)exp(-ikt)) (a un coefficient multiplicateur pres). Dans ce cas, les coefficients de Fourier caracterisent entierement la fonction, a un ensemble de mesure nulle pres (les exp(-ikt) sont les vecteurs d'une base hilbertienne de l'espace de Fourier des fonction de carre integrables, et les coeffs les coordonnees de f dans cette base).

Bref, pour une fonction periodique, les coeffs de Fourier a un instant donne sont suffisant pour donner l'information de toute la fonction. Si tu es interesse par l'evolution temporelle de la fonction, la representation de Fourier ne sert a rien

Pour ca, il te faut une representation temps-frequence. La methode de base est simple et intuitive: tu decoupes ta fonction en segments (pouvant se recouvrer), en multipliant ta fonction par une fenetre. De la forme de la fonction de fenetre depend la resolution frequentielle et temporelle. Un theoreme montre que l'on ne peut pas avoir une resolution temporelle et frequentielle arbitraire, il y a un compromis a trouver (une forme de theoreme d'heisenberg). Ainsi, si ta fenetre est egale a 1 partout, tu n'as aucune resolution temporelle, te retrouves la tranformee de fourier. Si ta fenetre est un dirac, tu retombes sur la fonction de depart (a un decalage pres), tu as donc aucune resolution frequentielle. Entre les deux, plein de fenetres et de compromis temps frequence correspondants.

Le spectrogramme est une forme discretisee en frequence et en temps de la transforme de fourier a court terme (la discretisation est faite pour les calculs pratiques: celle en frequence est une consequence du fait qu'en pratique, les signaux ne sont pas continus mais definis a chaque periode de la frequence d'echantillonage, c'est la transformee de fourier discrete, et la discretisation en temps de la representation temps frequence peut etre faite grace a la taille de la fenetre qui est finie). Il existe des conditions sur les fenetres, les pas de discretisation pour avoir une reconstruction de la fonction de depart a partir du spectrogramme

Le compromis temps/frequence est fondamental: il te dit pourquoi par exemple, si tu n'as que 10 milli secondes de signal a 44.1 khz (ie 441 echantillons), tu ne pourras jamais separer des frequences avec moins de 44100/441 = 100 Hz. Si tu veux plus de resolution frequentielle, tu es oblige d'avoir des fenetres plus longues, mais alors tu perds en resolution temporelle. C'est la cause fondamental du fameux probleme de pre echo de tout codeur audio type mp3. Pour utiliser les informations frequentielles, tu veux avoir la fenetre la plus grande possible, mais si ta fenetre contient deux sons dont l'enveloppe est tres courte (typiquement, un hit hat de batterie), il sera impossible de reconstruire les deux sons separement, d'ou une sorte d'applatissement des percussions a bas debit.

Si tu comprends pas tres bien ces problemes, dis toi que ce n'est pas grave. C'est tres facile de s'emmeler entre transformee de fourier pour fonctions discretes, fonctions quelconque de carre integrable, fourier a temps discret, fourier discret, etc... Ca prend du temps et de la pratique, mais c'est fichtrement interessant !
143
Je te rassure j'ai pratiquement ....rien compris :bravo: .
Bon disons que je veux faire le "spectrogramme" à un instant donné, genre t=0sec , j'en fait quoi finalement de ma fonction y(x,t) :(((
144
Si tu demandes un spectrogramme a un instant donne, c'est que t'as vraiment rien compris, et/ou que mon explication etait vraiment nulle :fou:

Bref, les coefficients de fourier classiques, ceux de la transformee de fourier, te donnent une representation purement frequentielle de ta fonction du temps. Aucune information temporelle n'est possible.

A la place, pour le spectrogramme, imagine que tu decoupes ton signal en petits morceaux, que tu fasses le spectre de chacun de ces morceaux: tu as la transformee de fourier a court terme, autrement dit le spectrogramme. Le probleme, c'est que de la maniere dont tu vas decouper (taille des morceaux, forme de la fenetre qui est la fonction par laquelle tu multiplies chacun des morceaux avant de calculer Fourier, etc...) va dependre la precision de l'information de frequence et de temps. Expliquer les differentes contraintes est un peu complique quand tu connais rien au domaine.

Sous matlab/octave, tu as tout simplement une fonction specgram qui te calcule le spectrogramme d'un signal donne.
145
Super donc mes coefficients je peux rien en faire , et je peux rien faire d'autre :mdr:
Tant pis je présenterais quand même.

Sinon quelqu'un aurait un spectrogramme précis d'une corde de guitare?
146
Ben file moi un son de guitare, dis moi ce que tu veux voir dessus (precision temporelle, precision frequentielle, etc...) et je te le fais.

Citation :
je peux rien faire d'autre



Pourquoi ? :???:
147

Citation : y(x,t)



:coucou:

On va essayer d'etre plus rigoureux, tu avais dis avant que tu fixais un x des le depart (tu fixe auniveau spatial donc)

tu as donc y(t)=somme de fonction, chaque element de la somme correspond a la description temporelle d'une harmonique

en adoptant l'ecriture mathematique suivante y(t,n) ou n est lun multiple entier de la frequence fondamentale, tu peux ecrire :

y(t,n)=A_n(t)*sin(2*pi*t*fondamentale*n + phase_n(t))

pour moi il y a la, la description de ton onde a la fois en temps et en frequence ici !

on peut meme ecire (du coup on a l'expression analytique du temps frequence

y(t,f)=somme_n=1^n=truc (A_n(t)*sin(2*pi*t*fondamentale*n + phase_n(t)))*dirac(n*fondamentale-f)
148
Je comprends pas tres bien ta derniere formule: les coeffs de Fourier, ils sont obtenus en integrant par rapport au temps, donc on ne peut pas avoir encore de dependance temporelle. On est oblige de calculer les coeffs de fourier a des instants differents, avec fenetrage, pour avoir l'evolution temporelle du spectre. Les coefficients de Fourier "classiques", font perdre par definition toute information temporelle (il y a pas reellement perte d'information, puisque les coefficients de Fourier caracterisent entierement la fonction).

Pour le y(x, t), je suis d'accord que ce serait plus simple de fixer x, parce que sinon, on s'emmele vite entre transformee de Fourier temporelle et spatiale...
149
Je sais pas, tuetuetue n'a pas repondu a certaine question notamment:

"est ce que ca formule proviens de calcul analytique, est ce que son terme c est relié a des parametres physique"

parce que je pense qu'il a fait ca
- equation d'une vibration d'une corde
- recherche d'une solution analytique
- la il galere pour representer la solution analytique

c'ets comme ca que je vois le truc

- comme il a la solution analytique, il n'a pas besoind 'avoir recours a des transformée de fourier ou autre temps frequence, il a directement l'expresion analytique de sa vibration avec l'amplitude de chaque partiel par rapport au temps

dans son étude il serait interessant de:
- afficher le temp frequence theorique (donc son expression analytique)
- afficher le spectrogramme d'un vrai son de piano

comme ca que j'ai vu le probleme, mais si tuetuetue precise pas, c'ets chaud de savoir, ce qu'il veut faire :mrg:

En gros, je ne pense pas qu'il fait de l'analyse resynthese additive. Il fait juste de la synthese par modele physique basée sur la resolution des equations de propagation d'onde.
150

Citation :
parce que je pense qu'il a fait ca
- equation d'une vibration d'une corde
- recherche d'une solution analytique



La, je suis Ok. Ce serait interessant tout de meme de savoir d'ou vient la formule (comme il y a des pertes, l'equation d'onde n'est pas lineaire ?)

Citation :
- comme il a la solution analytique, il n'a pas besoind 'avoir recours a des transformée de fourier ou autre temps frequence, il a directement l'expresion analytique de sa vibration avec l'amplitude de chaque partiel par rapport au temps



La aussi, Ok, mais ca ne correspond pas directement au temps-frequence. C'est difficile a expliquer sur un forum (ou je suis une merde en explication), mais Fourier et representation temps-frequence, c'est "independant". Car faire du Fourier, a la base, c'est bien passer du domaine temporel au domaine frequentiel, de maniere "absolue", c'est a dire que tu perds tout forme de localisation temporelle, au profit d'une description frequentielle de precision "infinie" (comprendre aussi fine que possible).

Le temps frequence, c'est faire un compromis sur cet absolu (ca devient metaphysique, la :) ). L'expression analytique donnee il y a quelques posts est un compromis. Je pense que c'est important de preciser que ce n'est pas une transformee de Fourier (typiquement, peut etre que la formule a ete obtenue en disant que l'enveloppe varie beaucoup plus lentement que le signal en lui meme, et donc que tu peux decomposer la fonction y(t) en e(t)*x(t), avec le e(t) qui sort de l'integrale de Fourier parce que c'est "presque constant").

Citation :
comme ca que j'ai vu le probleme, mais si tuetuetue precise pas, c'ets chaud de savoir, ce qu'il veut faire



D'un autre cote, pendant les oraux, je peux comprendre qu'il ait plus trop envie de se prendre la tete, ou qu'il ait d'autres trucs en tete. Souviens toi, Choc, c'etait il y a pas si longtemps, les sueurs froides pre-oraux :bravo2: