Compression par Fast Fourrier Transform pour WebPhone....

grosiflex Messages postés 19 Date d'inscription jeudi 4 octobre 2001 Statut Membre Dernière intervention 21 octobre 2004 - 26 févr. 2003 à 10:33
matbeu Messages postés 5 Date d'inscription dimanche 4 juillet 2004 Statut Membre Dernière intervention 1 juillet 2005 - 8 août 2005 à 01:33
Bon, j'ai concu un petit Web Phone tres simpliste, basé sur la dll d'acces au matos sonor de Windows (WinMM.dll) et sur les Winsock standard de VB.
je suis en train de tester un systeme aussi simple

c'est a dire:
-prendre un buffer,
-recuperer sont spectre FFT
-virer les raie inferieur a 20hz et superieur a 20Khz (y'en a un paquets je vousdit)
-refaire la FFT inverse pour recuperer un signal epuré des frequence non voulue.
-coder les echantillons par rapport a la valeur du precedent
(le premier ech est sa valeur explicite, puis le suivant represente la difference (CF: codage jpeg par exemple)

je dois dire que ca compress beaucoup, 8Ko -> 4 Ko (50%) de compression, mais j'ai une galere:

puisque je traite des petits spectres a chaque fois, j'ai des grosse distortion.
ce probleme s'appelle apparament un probleme de fenetre du spectre.

quelqu'un a t'il une idée sur le sujet ?
quelqu'un a t'il deja bidouillé de la FFT en real time ?

merci de m'aider a faire evoluer le projet...

j'aimerais monter une petite dll gratuite pour streamer du son facilement...

5 réponses

lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
26 févr. 2003 à 12:02
Faut pas te faire chier à réécrir la FFT c'est le bordelle par contre va chez intel ils ont de dll toutes faites et gratuites
@+

Cédric Lemaitre

Viva le révolution Linux!!!!!!!!!!!!!!!
0
grosiflex Messages postés 19 Date d'inscription jeudi 4 octobre 2001 Statut Membre Dernière intervention 21 octobre 2004
26 févr. 2003 à 14:36
Ba oui mais moi je voudrais coder mon propre compresseur...
avec la FFT ou DCT on peut faire vachement de chose, j'aimerai trouvé quelqu'un qui a deja fait des tests comme moi...

A++
Merci de ta reponce j'irai faire un tour...
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
26 févr. 2003 à 15:07
La FFT et LA DCT en real-time sur vb c'est une prouesse si tu arrives je suis preneur du source
Viva le révolution Linux!!!!!!!!!!!!!!!
0
grosiflex Messages postés 19 Date d'inscription jeudi 4 octobre 2001 Statut Membre Dernière intervention 21 octobre 2004
28 févr. 2003 à 10:51
bah matte sous le source, j'ai mis des petites explication sur mon codage maison (sans FFT) j'ai reussi a tous coder en VB, en (tous) je ment, je sais pas manipulé les bits et vb, j'ai monté une petite dll en c++ pour ca, ca marche bien mais je suis sur qu'on peut faire mieux avec une fft
source ici:
http://www.vbfrance.com/article.aspx?Val=7834

mais le probleme de la fft c'est la fentre des spectres des buffers....

si tu lit la micro doc winmm tu verra qu'on a des buffer
si on passe la fft sur ces buffers un a un ca marche pour un echantillon (dt) mais le specte entier est distordu, (l'effet c'est une sorte de hachage), il faut le diminuer en spectrant 2 moitiers de buffer (2nd moitier de l'un avec 1er moitier de l'autre) mais pour relier les 3 spectres ca deviens problmeatique, je cherche actuellement un outils mathematique efficasse...

je pensse comme toi: FFT en RT sou VB, hum... impossible ou dans 3 ans sur non P12-10Ghz...

A++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
matbeu Messages postés 5 Date d'inscription dimanche 4 juillet 2004 Statut Membre Dernière intervention 1 juillet 2005
8 août 2005 à 01:33
Ta distortion vient normalement du fait que tu utilises une fenêtre temporelle rectangulaire avec pour effet de couper tes signaux d'entrée quelque part ou ceux-ci ne sont pas égaux à 0.

Du côté temporel, ceci va te générer bon nombre d'harmoniques si tu périodises ta fonction d'entrée (Signal*fenêtre)

-> Il suffit d'utiliser des fenêtres qui valent 0 au début et à la fin et 1 au milieu

-> fenetre de Hanning et autres

++

Mathieu.
0
Rejoignez-nous