logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [général] MP3 < - > BMP
Username:
Password:
Pages: 1 2 [3]
  Imprimer  
Auteur Fil de discussion: [général] MP3 < - > BMP  (Lu 18288 fois)
Perfect Slayer

Profil challenge

Classement : 3031/55017

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1974


Voir le profil WWW
« #30 le: 19 Septembre 2006 à 16:38:17 »

Finalement, pour le challenge, je décide de tout faire moi meme. Je passe donc par la définition de la décomposition en série de fourier. Soit an = 2/T intégrale(f(t)*cos(n #omega# t) dt, t', t'+T). En gros l'intégrale sur une période de la fonction * cos (n * oméga * t). Et pour les bn, c'est sinus.
J'ai fait une fonction d'intégration qui utilise l'approximation de l'aire (par des rectangles, pas la méthode des tangentes). Elle prend pour argument un tableau de valeur de la fonction et les bornes d'intégration. Ca ressemble à ca :
Code:
function integrale($val, $a=0, $b=NULL) {
if($b == NULL) { $b = count($val); }
$val_int = 0;
$nbr_pts = 50000;
$pas = ($b-$a)/$nbr_pts;
for ($i=0; $i<$nbr_pts; $i++) {
$val_int+= $val[$a + $pas*$i]*$pas;
}
return $val_int;
}
Je l'ai testé vite fait sur des polynomes et des fonctions trigonométriques circulaires, elle a l'air de marcher. Je vais l'adapter au données du wav et faire un algorithme pour l'obtention des an et bn.
Journalisée

Newbie Contest Staff :
(¯`·._.· [ Perfect Slayer ] ·._.·´¯)
Status :
Administrateur / Programmeur PHP / Optimisateur
Citation :
Sécurité, efficacité et rapidité riment avec Perfect(ion)
neoflo
Profil challenge

Classement : 8163/55017

Membre Complet
***
Hors ligne Hors ligne
Messages: 171


Voir le profil WWW
« #31 le: 20 Septembre 2006 à 21:05:00 »

J'ai dû dégagé la partie sur la TFD sur mon cours à cause d'imprécision apparement. Donc, cette partie ne sera plus disponible.
Journalisée

Pages: 1 2 [3]
  Imprimer  
 
Aller à: