Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Informatique » Logiciel - Software - Open Source

Découvrir d'autres sujets sur ces thèmes : ,


Réponse
Vieux 20/12/2004, 17h39   Sujet fourier transformée - Message #1
acx01b
 
Date d'inscription: avril 2004
Messages: 646
fourier transformée
Salut,
quelqu'un a-t-il déja réussi à se servir de fftw3.h en C disponible ici: http://www.fftw.org/, ou d'un équivalent ?
j'aimerais avoir juste un exemple du code pour transformer cos(X^2) et obtenir le spectre (ça je sais faire avec l'intégrale), si la librairie le permet, et surtout obtenir le spectre d'un signal (discret)

merci beaucoup d'avance
acx01b est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 20/12/2004, 18h12   Sujet fourier transformée - Message #2
zoup1
 
Date d'inscription: juillet 2004
Localisation: Paris
Âge: 44
Messages: 3 266
Re : fourier transformée
Il y a une documentation qui est attaché à cette librairie.
http://www.fftw.org/fftw3_doc/
Elle n'est pas la plus claire possible mais bon...

Le plus simple est sans doute d'utiliser la librairie en mode complexe. En reprenant l'exemple de la doc pour la transformée complexe...
http://www.fftw.org/fftw3_doc/Comple...mensional-DFTs

Après avoir fixé une valeur pour N, et exécuter les instructions d'allocation, il suffit sans doute de remplir le tableau in avec N valeurs complexes qui correspondent à tes données, en mettant comme partie relle du nombre ce que tu veux et comme partie complexe 0.

Après avoir lancé d'exécution, tu vas récupérer dans le tableau out, le résultat de la fft. Avec sans doute une organisation particulière pour l'organisation des fréquences, que je te laisse découvrir.

Si tu veux des infos là dessus, tu peux regarder le site de numerical recipies qui propose ses bouquins en ligne :
http://www.library.cornell.edu/nr/cbookcpdf.html
__________________
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
zoup1 est connecté maintenant   Réponse avec citation
Vieux 20/12/2004, 20h58   Sujet fourier transformée - Message #3
acx01b
 
Date d'inscription: avril 2004
Messages: 646
Re : fourier transformée
oki merci beaucoup, ça a l'air faisable,

tu vas peut-être ta payer un bon fou rire, mais avant de découvrir l'existence de cette libraire j'ai commencé à essayer de faire un programme pour dessiner le spectre à partir d'un signal, en QBasic 45 ! et n'arrivant pas à utiliser le fftw3.h (en C pas en qbasic : D) j'ai terminé mon programme, qui marche!

pour ceux qui ont vraiment envie de se taper un fou rire: www.hacking.free.fr/FFT3.BAS
acx01b est déconnecté   Réponse avec citation
Vieux 20/12/2004, 21h08   Sujet fourier transformée - Message #4
zoup1
 
Date d'inscription: juillet 2004
Localisation: Paris
Âge: 44
Messages: 3 266
Re : fourier transformée
Il n'y a pas de fou rire à avoir... Cette méthode de calcul que tu utilises est parfaitement valable... Elle est simplement pas très efficace en terme de temps de calcul mais c'est tout.

Par contre, tu as peut-être interêt à voir ce que signifie apodisation d'un signal. Voir l'influence qu'a le fait que ton signal soit fini sur la forme de ton spectre. Cela est discuté dans les liens de numerical recipies et est très intructif...
__________________
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
zoup1 est connecté maintenant   Réponse avec citation
Vieux 20/12/2004, 23h50   Sujet fourier transformée - Message #5
acx01b
 
Date d'inscription: avril 2004
Messages: 646
Re : fourier transformée
petit probleme de compilation: apparement borland5.5 command line tools (bcc32) n'arrive pas à gérer le .lib:
ma source a l'air apparement bonne: www.hacking.free.fr/fft.cpp

mais le compilo me dit:
D:\BORLAND\BCC55\BIN>bcc32 fft8 -Lfftw3.lib
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
fft8.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_fftw_malloc' referenced from D:\BORLAND\BCC55\BIN\F
FT8.OBJ
Error: Unresolved external '_fftw_plan_dft_2d' referenced from D:\BORLAND\BCC55\
BIN\FFT8.OBJ
Error: Unresolved external '_fftw_execute' referenced from D:\BORLAND\BCC55\BIN\
FFT8.OBJ
Error: Unresolved external '_fftw_destroy_plan' referenced from D:\BORLAND\BCC55
\BIN\FFT8.OBJ
Error: Unresolved external '_fftw_free' referenced from D:\BORLAND\BCC55\BIN\FFT
8.OBJ

sur un autre compilo ça marche mieux ?
acx01b est déconnecté   Réponse avec citation
Vieux 21/12/2004, 00h03   Sujet fourier transformée - Message #6
zoup1
 
Date d'inscription: juillet 2004
Localisation: Paris
Âge: 44
Messages: 3 266
Re : fourier transformée
sur le site ils indiquent un truc spécial pour borland avec un .lib et un .def...
c'est bien cela que tu as utilisé ?
__________________
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
zoup1 est connecté maintenant   Réponse avec citation
Vieux 03/01/2005, 01h19   Sujet fourier transformée - Message #7
acx01b
 
Date d'inscription: avril 2004
Messages: 646
Re : fourier transformée
déja merci pour tes réponses

j'ai énormément avancé, j'ai réussi à utiliser FFTW3 dans c++builder6, j'ai en même temps appris à programmer les form et les composants graphiques de bases de l'api, je m'amuse comme un fou ; ) pour ceux qui n'ont pas envie d'essayer de déchiffrer les explications de www.fftw.org, vous pouvez allez voir mon post sur le forum c++ builder de developpez.com...

finalement le dernier problème en date que j'ai rencontré c'est comment afficher le spectre d'un (petit) échantillon non plus en deux dimensions (les fréquences en absisses, et les amplitudes en ordonnées) mais en une dimension, avec les fréquences en ordonnée, pour chaque fréquence un point de couleur variable, exprimant l'amplitude (rouge pour les amplitudes fortes, bleu pour les amplitudes presque nulles),
pour finalement pouvoir mettre le TEMPS en absisses (par exemple en calculant le spectre sur des échantillons de 50ms, 40fois par seconde de son)...

la question la voici : que représente le module de Ak où Ak (k varie de 0 à N-1) est la transformée discrète d'un signal ? car une fréquence en hertz c'est le nombre de périodes par seconde...
j'ai remarqué que la fréquence en hertz pouvait être calculée: sachant que l'on transforme un wav à 44100hertz mono 16bit, sur un échantillon de 2000 octets (après les 44 octets de l'en-tête pour un wav de base): si on cherche Ak pour k= 23, on cherche en fait l'amplitude de la fréquence 23*44100/2000 = 500hertz

par contre l'amplitude Ak varie aussi en fonction de la taille de l'échantillon, mais aussi de la fréquence k...

donc que représente Ak ???????? merci d'avance

Dernière modification par acx01b 03/01/2005 à 01h21.
acx01b est déconnecté   Réponse avec citation
Vieux 03/01/2005, 02h17   Sujet fourier transformée - Message #8
acx01b
 
Date d'inscription: avril 2004
Messages: 646
Re : fourier transformée
je voulais dire bien sur un échantillon de 4000 octets et non pas 2000 puisqu'il s'agit d'un wav mono sur 16bit...

dans le cas d'un wav ne contenant qu'une sinusoïde pure de fréquence mettons 500hertz:

j'ai l'impression que la valeur du module de Ak est une fonction de l'amplitude de la sinusoide pure, de la taille de l'échantillon, mais aussi du nombre de périodes présentes dans l'échantillon traité (si N est la taille de léchantillon, alors Ak est fonction de N, et de N/k*x où x est le tot de silence dans l'échantillon)...
bien sur je me pose des questions pratiques telles que: pourquoi obtient-on des résultats bizarres lorsqu'on prend un échantillon ne contenant que une dizaine de périodes où moins, et quels résultats obtient-on lorsque l'on enlève une demie période où un dizième de préiode au signal....

salut

Dernière modification par acx01b 03/01/2005 à 02h19.
acx01b est déconnecté   Réponse avec citation
Bienvenue
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !

Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...

Publicité

A voir aussi
transformée de fourier (Forum Mathématiques du supérieur)
Transformée de Fourier (Forum Mathématiques du supérieur)
Transformée de fourier (Forum Mathématiques du supérieur)
Transformée de Fourier (Forum Mathématiques du supérieur)
transformee de fourier (Forum Mathématiques du supérieur)










A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse


Dossiers à découvrir

Outils
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
05/07 17:28 - En bref : Galileo réussit ses premiers essais
04/07 14:09 - La Lodamine : un anticancéreux porté par des nanoparticules
04/07 11:33 - Structure de l'héliosphère : Stereo donne raison aux sondes Voyager
04/07 09:28 - Les marées en direct sur Géoportail
03/07 15:38 - Les boîtes quantiques sont-elles dangereuses pour la santé ?
03/07 14:55 - Les résultats du BAC 2008 gratuitement sur Internet
03/07 13:33 - Métastases du cancer du sein : un mécanisme élucidé

Fuseau horaire GMT +2. Il est actuellement 13h39.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone