lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 2004
-
24 mars 2004 à 14:26
Late2201
Messages postés3Date d'inscriptionmercredi 16 septembre 2009StatutMembreDernière intervention17 septembre 2009
-
17 sept. 2009 à 13:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Late2201
Messages postés3Date d'inscriptionmercredi 16 septembre 2009StatutMembreDernière intervention17 septembre 2009 17 sept. 2009 à 13:47
C'est pour le traitement d'un signal electrique
nonoRed
Messages postés4Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention17 septembre 2009 17 sept. 2009 à 10:48
faudrait me donner le contexte précis de ton exo, parceque là ca remonte à deux ans,
c'est dans une image? ou un signal electrique?
Late2201
Messages postés3Date d'inscriptionmercredi 16 septembre 2009StatutMembreDernière intervention17 septembre 2009 17 sept. 2009 à 09:45
D'accord, mais on m'avait conseillé de faire une FFT et de "ne sélectionner que le composant correspondant a 50 Hertz, (en dimensionnant subtilement mes fenêtres d'analyses...".
Mais je ne vois pas comment faire ça avec cet algo, à moins que cela ne soit a faire apres...
nonoRed
Messages postés4Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention17 septembre 2009 16 sept. 2009 à 17:07
late2201 : c'est ecrit un peu plus haut au dessus "* m est egale à log2 ( nn ) (environs deux heures pour le comprendre....) "
loicus : euh il me veut quoi le gamin ?
Late2201
Messages postés3Date d'inscriptionmercredi 16 septembre 2009StatutMembreDernière intervention17 septembre 2009 16 sept. 2009 à 16:55
Salut,
Voila je m'interesse depuis peu a la transformée de Fourier dans le but de faire un filtre numérique.
Certains l'ont deja demandé mais ils n'ont pas eu de réponse alors je réessaie :p
Serait-il possible d'avoir plus de détails sur l'algo en lui-même ?
A quoi correspond le paramètre m, et comment influence-t-il l'algo ?
Merci d'avance.
The Incredible Godzy
Messages postés10Date d'inscriptionmardi 8 mai 2007StatutMembreDernière intervention29 septembre 2008 25 mai 2007 à 17:31
Au fait la FFT permet de passer de n^2 (et pas 2^n) à n(log(n))... contrairement à ce qui est dit en haut.
The Incredible Godzy
Messages postés10Date d'inscriptionmardi 8 mai 2007StatutMembreDernière intervention29 septembre 2008 25 mai 2007 à 17:26
C'est marrant la discussion reprend 1 an et demi plus tard comme si de rien n'était...
Toujours est-il que si la première partie du code est "magique", elle marche super bien et je connaissais pas l'algo, en revanche le reste j'y comprend strictement rien, et je vois pas comment on se passe des racines n-ièmes de l'unité dans le calcul de fourier.
Et puis bon... je sais que je suis un noob du C, mais quand même... meme algorithmiquement... sans commentaires c'est impanable (à moins de connaître déjà l'algo, et dans ce cas ça sert à rien de lire ce code...).
Ah oui dernière chose, chez moi il plante avec un segmentation fault quand on teste! (mais bon y'a des choses bizarres qui se passent avec DevCpp chez moi alors... :p)
nonoRed
Messages postés4Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention17 septembre 2009 24 mai 2007 à 09:39
LOICUS : :)) j'aime bien les mecs qui pensent tout savoir, alors qu'en fait ils sont à coté de la plaque...
tu sais ce que c'est le second degré? pas celui des maths je precise!!!!
nan?
pas etonnant! un geek comme toi devrait trouver son bonheur wikipedia !
loicus
Messages postés46Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention 3 mai 2008 24 mai 2007 à 09:23
En réponse à nonoRed :
si il te faut 2 heures pour comprendre que m est log2 de nn : tu ne dois pas être un grand mathématicien... ;)
ligne 7 :
nn 1<<m; --> nn 2^m --> m = log2 nn
il m'a fallu 4sec
bonne continuation quand même
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 22 mai 2007 à 16:12
Bon bon bon ...
(1) bizarre cette transformee de fourrier rapide ... pas de fonction recursive ... aucun signe de racine-nieme de l'unite ... Enfin bon si ca marche, moi je veux bien. Mais d'habitude on voit l'algorithme en recursif, alors il serait bon de le preciser.
(2) une petite question (meme si je sais que cette source date un peu), avez-vous (je parle aussi bien de l'auteur que des downloaders de cette "source") une fois dans votre vie teste cette fonction ? j'etends par la, regarder si elle marche, si (sans trop etre vulgaire ou mal poli) elle ne serait pas buggee ?
(3) une grande question : avez-vous verife la complexite ? il suffirait de tracer le temps de calcul en fonction de N ... c'est ce sont des choses interessantes et convainquantes quant a la validite du programme.
(4) En lisant les commentaires sur les "reinventeurs de poudres", et bien moi je donne 100% raison a ceux qui reprogramme par eux-meme les choses, car c'est comme cela que l'on apprend, car en poussant l'argument adverse (c'est de la mauvaise foi, je vous l'accorde, mais ca se tient) pourquoi apprendre le C++ par un hello-world ?? ca a deja etet fait 100 millions de fois, alors pourquoi ne pas commencer par les choses difficiles... De plus vous oubliez une chose tres important (sans etre le paranoique de service) mais beaucoup de code copie sont FAUX, plein de bug, donc il y a un certain merite a refaire ce qui exixte a sa propre sauce.
(5) si vous vous dites "mais pour qui il se prend", je vais vous repondre : "pour un petit merdeux" (je crois que la charte n'interdit pas de s'auto-insulter :) )
(8) un peu plus de commentaires aurait ete pas mal ... et en francais car cppFRANCE.com ...
cordialement le merdeux de service.
nonoRed
Messages postés4Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention17 septembre 2009 27 déc. 2005 à 13:53
bonjour tout le monde, au bout de deux heures de test en tout genre j'ai reussi à comprendre que :
* x et y servent pour stocker le resultat et le tableau d'orgine :
- x est le tableau des parties reelles
- y est le tableau des parties imaginaires
(encore là ca va, ca m'a pris deux secondes)
* nn est le nombre de points total dans le tableau (traduction de l'anglais)
* m est egale à log2 ( nn ) (environs deux heures pour le comprendre....)
* un code commenté s'est vachement bien!
Aida_81
Messages postés2Date d'inscriptiondimanche 12 novembre 2000StatutMembreDernière intervention30 mars 2005 31 mars 2005 à 00:50
Bonsoir,
Si tu peux expliquer ton code, l utilité de chaque variable utilisée ca serait bien, si c est possible.
Merci.
Aida.
ElectronBreton
Messages postés1Date d'inscriptionmardi 1 mars 2005StatutMembreDernière intervention17 mars 2005 17 mars 2005 à 11:28
Pour Manga II > Si tu veux faire de la transformée temps fréquence, il faut que tu t'intéresse à la transformée de WiegnerVille. Ca doit pouvoir se trouver sans trop de problèmes sur "Numerical Recipes In C"
Par contre, la transformée de fourier peut s'avérer amplement suffisante pour détecter des fréquences sur un intervalle de temps ~100 fois supérieur à ta fréquence d'échantillonnage (44,1 kHz à tout les coups ...). Tout dépend de la précision que tu souhaites ...
jul39dole
Messages postés117Date d'inscriptionmardi 22 juillet 2003StatutMembreDernière intervention21 janvier 2011 18 nov. 2004 à 18:53
Comment utilise-t-on concrètement cette fonction ? (à quoi correspondent les variable dir, m, *x et *y) ?
Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007 5 mai 2004 à 14:32
1) : un peu de modération, si tu regardes la charte tu verra qu'il faut eviter les insultes. Le seul point négatif que je t'ai signalé c'est que tu n'as pas dit d'ou ça venait, je ne t'ai pas insulté et je ne pense pas que tu ne comprennes pas ce code.
2)Au contraire de ce que tu crois, je pense que pour bien comprendre le fonctionnement d'un programme, il est necessaire, non peut etre pas de le refaire depuis zero, mais au moins d'en comprendre le principe. Ca s'appelle de la curiosité, quand je vois un truc, je veux savoir comment ça marche, et ça peut passer par le fait de refaire toute la reflexion toi même, ça te permet de mieux comprendre le truc. Bien entendu, ça ne veut pas dire que je n'utilise pas de bibliotheques ou des bouts de code d'autres gens qui on passé du temps dessus d'ou une certaine optimisation.
Exemple : Si tu regardes dans le site, il y a un gars qui a réécrit les fonction de math.h dont les ln, les exp les sin etc... je ne pense pas que beaucoup de gens vont prendre son code et l'utiliser à la place des fonctions standards mais ne me dis pas que ça ne t'interesse pas de savoir comment on fait pour calculer un ln etc ...
De même, pour compresser des données, je suis d'accord pour utiliser une biblio bien optimisée et tout ça , mais c'est bien de savoir les differentes methodes de compression et leur mise en oeuvre, ce serait quand meme bete de s'en priver :)
En gros ça permet une meilleure connaissance des méthodes de programmation et du fonctionnenemt interne. Mais tout refaire tout seul depuis le début et ne pas utiliser des choses faites par des autres personnes, la je suis d'accord avec toi, ce n'est pas le mieux qu'on puisse faire
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 5 mai 2004 à 10:38
maegis t'es toujours aussi con à ce que je vois. Toi tu préfères réinverter la roue à chaque fois alors que ce n'est pas utile
roomsmush
Messages postés16Date d'inscriptionmercredi 17 mars 2004StatutMembreDernière intervention22 août 2005 2 avril 2004 à 15:40
c pas sympa ce que tu dis maegis, pour des gens qui se contentent de se rendre sur cppfrance, c sympa de trouver des codes utiles même si les auteurs les ont recopié, moi je suis bien content de l'avoir trouvé ici ce code mais c vrai que t'aurais pu mieu expliquer leur code lpikachu58
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 31 mars 2004 à 13:13
si tu veux en transformée temps fréquence position utilise la transformée en ondelette
Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007 31 mars 2004 à 07:05
Au final, en regardant dans les codes que t'as poster, il n'y en a pas beaucoup que tu as ecrit de ton propre chef
Si tout le monde postait tout les codes utiles qu'il trouverait sur internet par ci par la , il y aura des montagnes de trucs tout en anglais, pas forcement expliqué ni bien commenté.
Au final ça fait un peu, le gars qui poste des codes pour en avoir plus memem s'il comprend pas ce qu'il poste (je ne veut pas dire que tu ne comprends pas ce que tu postes mais c'est une impression que ça pourrait donner)
Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007 31 mars 2004 à 07:00
MangaII
Messages postés129Date d'inscriptiondimanche 9 décembre 2001StatutMembreDernière intervention12 janvier 2009 30 mars 2004 à 16:17
c'est sympa tout ca ! mais ca m'avance pas bcp !
pou résumer, je cherche un petit bout de code (en C++ de préférence), qui permet de détecter les amplitutes de certaines fréquences à un instant T sur un signal sonore numérisé (format wave).
Le but principal est de déctecter les basses (évidemment)
Merci bcp !
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 30 mars 2004 à 09:25
Pour Manga 2 la trans formée de fourier est une intégration en exponentielle sur plus ou moins l'infini. Donc si tu veux faire une FFT d'un signal sonore il faut le stocker puis faire sur son intégralité et virer les fréquences inaudibles par exemple. Cependant dans l'espace de fourier tu perds toutes informations sur le temps T.
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 30 mars 2004 à 09:19
oui mais monsieur le python ça avance pas
MangaII
Messages postés129Date d'inscriptiondimanche 9 décembre 2001StatutMembreDernière intervention12 janvier 2009 29 mars 2004 à 23:03
Merci du renseignement ! mais ca m'avance pas beaucoup !
Si c'est si cours, tu pourrai le fournir !
et c'est koi le rapport avec l'anglais ?
soumpro
Messages postés52Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention 7 mai 2004 29 mars 2004 à 18:25
Ce code tient en 4 lignes en python !
lol !
Mais tes anglophone ou koi ?
(hum) !? %{
MangaII
Messages postés129Date d'inscriptiondimanche 9 décembre 2001StatutMembreDernière intervention12 janvier 2009 29 mars 2004 à 12:49
Salut !
J'ai qques lacunes en math ! malgrès mon BTS info !
Si mes souvenirs son bons, la transformée de fourier appliquée à un signal sonore te permet d'avoir les fréquences des armoniques !
Donc, le spectre du son !
donc, à la compression MP3 ! enfin ! c'est pas la que je ve en venir !
Je voulais savoir si ton code permet de retrouver les armoniques d'un son à un instant T (ou sur qques ms), en vue de faire un spectre, ou seulement pour déctecter une certaine fréquence (les basses en particulier).
Merci d'avance !
A+ NICO !
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 26 mars 2004 à 09:05
pas de mal
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 25 mars 2004 à 16:48
excuse moi c'est parce que en fait je me suis trompé de source !!! (j'ai honte) désoler
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 25 mars 2004 à 09:38
merci mais la c'est du C tout a fait standart
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 24 mars 2004 à 21:06
je suis contre les MFC, mais la je n'ai rien d'autre a dire que BRAVO !!!
excelente source !!!
lpikachu58
Messages postés351Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention 6 mai 20042 24 mars 2004 à 14:26
Ah oui encore une précision c'est l'algorithme d'ashley et cohl qui utilise l'algo du papillon.
17 sept. 2009 à 13:47
17 sept. 2009 à 10:48
c'est dans une image? ou un signal electrique?
17 sept. 2009 à 09:45
Mais je ne vois pas comment faire ça avec cet algo, à moins que cela ne soit a faire apres...
16 sept. 2009 à 17:07
loicus : euh il me veut quoi le gamin ?
16 sept. 2009 à 16:55
Voila je m'interesse depuis peu a la transformée de Fourier dans le but de faire un filtre numérique.
Certains l'ont deja demandé mais ils n'ont pas eu de réponse alors je réessaie :p
Serait-il possible d'avoir plus de détails sur l'algo en lui-même ?
A quoi correspond le paramètre m, et comment influence-t-il l'algo ?
Merci d'avance.
25 mai 2007 à 17:31
25 mai 2007 à 17:26
Toujours est-il que si la première partie du code est "magique", elle marche super bien et je connaissais pas l'algo, en revanche le reste j'y comprend strictement rien, et je vois pas comment on se passe des racines n-ièmes de l'unité dans le calcul de fourier.
Et puis bon... je sais que je suis un noob du C, mais quand même... meme algorithmiquement... sans commentaires c'est impanable (à moins de connaître déjà l'algo, et dans ce cas ça sert à rien de lire ce code...).
Ah oui dernière chose, chez moi il plante avec un segmentation fault quand on teste! (mais bon y'a des choses bizarres qui se passent avec DevCpp chez moi alors... :p)
24 mai 2007 à 09:39
tu sais ce que c'est le second degré? pas celui des maths je precise!!!!
nan?
pas etonnant! un geek comme toi devrait trouver son bonheur wikipedia !
24 mai 2007 à 09:23
si il te faut 2 heures pour comprendre que m est log2 de nn : tu ne dois pas être un grand mathématicien... ;)
ligne 7 :
nn 1<<m; --> nn 2^m --> m = log2 nn
il m'a fallu 4sec
bonne continuation quand même
22 mai 2007 à 16:12
(1) bizarre cette transformee de fourrier rapide ... pas de fonction recursive ... aucun signe de racine-nieme de l'unite ... Enfin bon si ca marche, moi je veux bien. Mais d'habitude on voit l'algorithme en recursif, alors il serait bon de le preciser.
(2) une petite question (meme si je sais que cette source date un peu), avez-vous (je parle aussi bien de l'auteur que des downloaders de cette "source") une fois dans votre vie teste cette fonction ? j'etends par la, regarder si elle marche, si (sans trop etre vulgaire ou mal poli) elle ne serait pas buggee ?
(3) une grande question : avez-vous verife la complexite ? il suffirait de tracer le temps de calcul en fonction de N ... c'est ce sont des choses interessantes et convainquantes quant a la validite du programme.
(4) En lisant les commentaires sur les "reinventeurs de poudres", et bien moi je donne 100% raison a ceux qui reprogramme par eux-meme les choses, car c'est comme cela que l'on apprend, car en poussant l'argument adverse (c'est de la mauvaise foi, je vous l'accorde, mais ca se tient) pourquoi apprendre le C++ par un hello-world ?? ca a deja etet fait 100 millions de fois, alors pourquoi ne pas commencer par les choses difficiles... De plus vous oubliez une chose tres important (sans etre le paranoique de service) mais beaucoup de code copie sont FAUX, plein de bug, donc il y a un certain merite a refaire ce qui exixte a sa propre sauce.
(5) si vous vous dites "mais pour qui il se prend", je vais vous repondre : "pour un petit merdeux" (je crois que la charte n'interdit pas de s'auto-insulter :) )
(6) pour des preuves "graphiques" de complexite : http://www.cppfrance.com/codes/MULTIPLICATION-POLYNOMES-LOG_32745.aspx
avec en plus une application : la multiplication en n.log(n) de polynome de degre n
(7) je trouve cette source nulle
(8) un peu plus de commentaires aurait ete pas mal ... et en francais car cppFRANCE.com ...
cordialement le merdeux de service.
27 déc. 2005 à 13:53
* x et y servent pour stocker le resultat et le tableau d'orgine :
- x est le tableau des parties reelles
- y est le tableau des parties imaginaires
(encore là ca va, ca m'a pris deux secondes)
* nn est le nombre de points total dans le tableau (traduction de l'anglais)
* m est egale à log2 ( nn ) (environs deux heures pour le comprendre....)
* un code commenté s'est vachement bien!
31 mars 2005 à 00:50
Si tu peux expliquer ton code, l utilité de chaque variable utilisée ca serait bien, si c est possible.
Merci.
Aida.
17 mars 2005 à 11:28
Par contre, la transformée de fourier peut s'avérer amplement suffisante pour détecter des fréquences sur un intervalle de temps ~100 fois supérieur à ta fréquence d'échantillonnage (44,1 kHz à tout les coups ...). Tout dépend de la précision que tu souhaites ...
18 nov. 2004 à 18:53
5 mai 2004 à 14:32
2)Au contraire de ce que tu crois, je pense que pour bien comprendre le fonctionnement d'un programme, il est necessaire, non peut etre pas de le refaire depuis zero, mais au moins d'en comprendre le principe. Ca s'appelle de la curiosité, quand je vois un truc, je veux savoir comment ça marche, et ça peut passer par le fait de refaire toute la reflexion toi même, ça te permet de mieux comprendre le truc. Bien entendu, ça ne veut pas dire que je n'utilise pas de bibliotheques ou des bouts de code d'autres gens qui on passé du temps dessus d'ou une certaine optimisation.
Exemple : Si tu regardes dans le site, il y a un gars qui a réécrit les fonction de math.h dont les ln, les exp les sin etc... je ne pense pas que beaucoup de gens vont prendre son code et l'utiliser à la place des fonctions standards mais ne me dis pas que ça ne t'interesse pas de savoir comment on fait pour calculer un ln etc ...
De même, pour compresser des données, je suis d'accord pour utiliser une biblio bien optimisée et tout ça , mais c'est bien de savoir les differentes methodes de compression et leur mise en oeuvre, ce serait quand meme bete de s'en priver :)
En gros ça permet une meilleure connaissance des méthodes de programmation et du fonctionnenemt interne. Mais tout refaire tout seul depuis le début et ne pas utiliser des choses faites par des autres personnes, la je suis d'accord avec toi, ce n'est pas le mieux qu'on puisse faire
5 mai 2004 à 10:38
2 avril 2004 à 15:40
31 mars 2004 à 13:13
31 mars 2004 à 07:05
Si tout le monde postait tout les codes utiles qu'il trouverait sur internet par ci par la , il y aura des montagnes de trucs tout en anglais, pas forcement expliqué ni bien commenté.
Au final ça fait un peu, le gars qui poste des codes pour en avoir plus memem s'il comprend pas ce qu'il poste (je ne veut pas dire que tu ne comprends pas ce que tu postes mais c'est une impression que ça pourrait donner)
31 mars 2004 à 07:00
<--- Source d'origine. C'est tout du recopié à la virgule prêt alors ce serais bien de preciser au debut ou tu as pris le code ....
30 mars 2004 à 16:17
pou résumer, je cherche un petit bout de code (en C++ de préférence), qui permet de détecter les amplitutes de certaines fréquences à un instant T sur un signal sonore numérisé (format wave).
Le but principal est de déctecter les basses (évidemment)
Merci bcp !
30 mars 2004 à 09:25
30 mars 2004 à 09:19
29 mars 2004 à 23:03
Si c'est si cours, tu pourrai le fournir !
et c'est koi le rapport avec l'anglais ?
29 mars 2004 à 18:25
lol !
Mais tes anglophone ou koi ?
(hum) !? %{
29 mars 2004 à 12:49
J'ai qques lacunes en math ! malgrès mon BTS info !
Si mes souvenirs son bons, la transformée de fourier appliquée à un signal sonore te permet d'avoir les fréquences des armoniques !
Donc, le spectre du son !
donc, à la compression MP3 ! enfin ! c'est pas la que je ve en venir !
Je voulais savoir si ton code permet de retrouver les armoniques d'un son à un instant T (ou sur qques ms), en vue de faire un spectre, ou seulement pour déctecter une certaine fréquence (les basses en particulier).
Merci d'avance !
A+ NICO !
26 mars 2004 à 09:05
25 mars 2004 à 16:48
25 mars 2004 à 09:38
24 mars 2004 à 21:06
excelente source !!!
24 mars 2004 à 14:26