Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2008-12-10 09:46:32 analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

analyse FFT de listes de valeurs dans un texte



voilà je recherche une routine qui faire l'analyse d'une liste de valeur telles que celle ci (extrait
143
143
143
143
143
144
144
144
144
144
144
et ainsi de suite sur plusieurs milliers de valeurs.
et le texte entier est
http://thevenet.jean.free.fr/journal/200812041021.txt
les valeurs sont extraites d'un xml
http://thevenet.jean.free.fr/historique … 041021.tgz
dans l'idéal il serait bien qu'une routine extrait elle même la fréquence cardiaque d'un tel fichier, en ignorant bien sur (c'est le piège) les deux valeurs de FC moyen et de FC max à chaque temps partiel (donc il faut enlever les portions de texte entre deux laps avant)
c'est en fait un listing de la fréquence cardiaque à chaque seconde, si on a configuré le cardio pour cela..
les autres listings sont fait en fréquence d'échantillonnage variable, pour faire une analyse FFT il faudrait refaire tous les intermédiaires et il y aurait un manque des fréquences élevés, du "bruit" justement qui est intéressant à analyser.

il existes de nombreux enregistrements de courbes de fréquences cardiaques et je voudrais faire l'analyse de fourrier.
On ne connaît actuellement que ce type de visualisation
http://thevenet.jean.free.fr/journal/200812041021.gif
Or, l'analyse FFT d'un listing de quelques milliers de points pourrait donner idée de la rapidité de réaction du coeur (fréquences "élevées"), de fatigues particulière (manque d'une bande de fréquence, ou cycles de type yoyo), et puis l'expérience est à faire.

le plus simple serait peut être d'utiliser les analyseur FFT des logiçiels sonores après avoir fait un fichier wave portant ces valeurs de fréquence cardiaque. il y aurait des logiciels faisant des analyses de fourrier de listing de mesure de tension ou autre.
une autre application serait faire les analyse de fourrier d'une liste de mesure aqcsuises sur une très grande durée (par exemple une mesure par minute dur un an) du niveau d'une rivière, en milieu naturel et d'une rivière soumise au rythme humains artificiels (qui ferait sans doute 2 pics de fréquence: la semaine et les jours!)
la présence de fréquences "naturelles" (redondance avec la rivière sans les barrages) donnerait une vue immédiate du niveau d'influence des affluents dans une portion de fleuve court-circuité par un canal, par exemple...

voilà, je suis tout oui aux solutionx logicielles qui pourrait aboutir à une visualisation FFT de ces listes de valeurs.
ou qui pourrait les transformer en wave.
pour les fréquence cardiaque, écouter en accélérer un son de quelques dixièmes de seconde mis en boucle, pourrait, avec un peu d'entraînement permettre un diagnostic très rapide à l'oreille des types de fatigues. d'une marque de cardio à l'autre, les courbes sont assez différentes quand on les voit, mais à l'oreille ça ne serait pas bien gênant, ça serait juste comme écouter un réglage grave aigus différents, ce qui ne gène pas pour reconnaître un son (recconnaître donc un comportement cardiovasculaire à l'effort, ou au repos)

Hors ligne

 

#2 2008-12-10 11:39:34 Re : analyse FFT de listes de valeurs dans un texte

22_80
membre
Lieu: Paris
Date d'inscription: 2008-02-29
Messages: 205

Re: analyse FFT de listes de valeurs dans un texte



citation :

Or, l'analyse FFT d'un listing de quelques milliers de points pourrait donner idée de la rapidité de réaction du coeur (fréquences "élevées"), de fatigues particulière (manque d'une bande de fréquence, ou cycles de type yoyo), et puis l'expérience est à faire.

Salut Jean,

Connais-tu l'apprentissage automatique (Réseaux de Neurones) ?
On s'en sert pour faire des diagnostiques / classification statistique à partir de données bruitées.
Dans ton cas, de l'apprentissage supervisé i.e. avec des classes déjà identifiées (coeur sain, problèmes cardiaques de type A, de type B, ...) : http://fr.wikipedia.org/wiki/Apprentiss … rvis%C3%A9

Ainsi, après avoir construit un set d'exemples déjà classifiés, tu peux - de manière automatique - classifier de nouvelles données : http://www-lipn.univ-paris13.fr/~rouvei … -1-2x2.pdf

Hors ligne

 

#3 2008-12-10 15:44:33 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



non, c'est pas ce que je cherche: je recherche l'analyse fft par ce que ça correspond déjà à un savoir et que en plus, en passant dans les fréquences audibles (en lisant ces fluctuations à 8KHz ou 32 ou 44.1 on peut utiliser l'aptitude de l'ouie pour recconaitre le résultat, l'oreille fait déjà, naturellement l'analyse de fourrier, c'est surtout des fréquences que l'on entend, on ne suit pas point à point la courbe de pression acoustique, la transformée de fourrier se fait dans le colimaçon, c'est donc obtenir une transposition audible qui est essentielle.
il suffirait simplement, c'est très simple pour un programmeur je pense, pouvoir générer un fichier wav à partir d'une liste de valeur inscrite dans un fichier texte, et tout serait résolu, il y a audacity, samplitude, sigview, sonic-visualiseur, et des tas de programmes très puissants, à condition d'avoir un wav au départ.

Dernière modification par jean thevenet (2008-12-10 15:49:12)

Hors ligne

 

#4 2008-12-10 16:41:57 Re : analyse FFT de listes de valeurs dans un texte

solipse
membre
Date d'inscription: 2008-03-23
Messages: 86
Site web

Re: analyse FFT de listes de valeurs dans un texte



Bonjour,

Si j'ai bien compris, tu as une liste de valeurs que tu souhaites transformer
en wav. Hors temps réel, je pense qu'il doit être possible d'utiliser un tableau,
dans Pure Data, par ex., dans lequel tu stockes tes valeurs. Puis il suffit de
relire ce tableau à la fréquence voulue, avec l'objet [tabread~], et d'enregistrer
le résultat au format wav...

Mais est-ce bien cela que tu souhaites?

solipse.

Hors ligne

 

#5 2008-12-10 16:53:53 Re : analyse FFT de listes de valeurs dans un texte

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: analyse FFT de listes de valeurs dans un texte



Bonjour et bienvenue sur le forum,

Le projet que tu décris est original, et je pense peu habituel pour les membres de ce forum. Je ne suis pas sur que quelqu'un ait déjà un truc tout prêt sous la main. Fabriquer un fichier wav n'est pas forcément le plus simple, par contre créer un fichier texte contenant des valeurs sonores et le transformer en fichier son avec un utilitaire parait assez simple. Le fichier son pourra être utilisé avec n'importe quel analyseur

Un format texte de valeurs audio, comme le .dat utilisé avec sox

citation :

.dat
    Text Data files. These files contain a textual representation of the sample data. There is one line at the beginning that contains the sample rate. Subsequent lines contain two numeric data items: the time since the beginning of the first sample and the sample value. Values are normalized so that the maximum and minimum are 1 and -1. This file format can be used to create data files for external programs such as FFT analysers or graph routines. SoX can also convert a file in this format back into one of the other file formats.

(extrait de http://sox.sourceforge.net/soxformat.html )

Ensuite tu peux utiliser sox pour transformer ce fichier texte en fichier sonore traditionnel ( http://sox.sourceforge.net/ )

Evidemment avant ça, il y a l'étape préliminaire qui consiste à transformer les battements cardiaques en valeurs sonores, comment passer de l'un à l'autre ?
Une possibilité, mais je ne sais pas si c'est la plus judicieuse :
- analyser le fichier, extraire les 2 valeurs extrêmes : minimum et maximum pour rapporter ça à une échelle normalisée, chercher la valeur centrale
- lire le fichier des battements ligne par ligne, transformer la valeur lue en sa valeur normalisée et enregistrer dans le nouveau fichier
Pour faire ça, tu peux utiliser n'importe quel langage de script ou de programmation (php ou python par exemple).



ps : as tu pensé à transformer tes valeurs en valeurs midi ? ça deviendrait beaucoup plus simple

Hors ligne

 

#6 2008-12-10 17:55:21 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



je n'ai pas bien les connaissances pour tirer grand chose de la page (extrait de http://sox.sourceforge.net/soxformat.html ) mais il s'avère que le passage d'un .dat à un .wav est plus proche de ce que je recherche. mais quel est le format .dat. il semble que il s'agit encore de fichiers binaires avec simplement une entête en texte.

il suffirait simplement de transférer en fichier wav une liste de valeur inscrite en txt.
je ne pensais pas normaliser dans le fichier texte, cela ferait un calcul compliqué alors qu'une fois sous le logiçiel de son c'est facile.
des valeurs fluctuant de 60 à 180 seraient un son très faible d'amplitude 120, mais une fois normalisée, dans un format du genre 8 bits (256 valeurs), cela remplirait bien la forme d'onde avec certes du bruit de quantification mais enfin, on peut dire que les fluctuations cardiaques  fréquence cardiaque est codée sur 8 bites et qu'il y a encore -6dB environ, ce qui suffira pour visualiser.

ce qui est peut être délicat est la tension parasite du fait que la valeur est toujours positive, c'est comme si on demandait à la membrane de haut parleur de rester en avant tout au long de la lecture du wav, mais il me semble que certains logiciels de son genre samplitude s'en foutent.

en fait, ça va faire des sons assez courts, un dixième de seconde à une demi seconde. la tension continu n'influe pas sur les analyse de fourrier.

c'est délicat en tout cas de calculer sur le fichier text, il faudrait effectivement un prétraitement qui consiste au moyennage.
pour la normalisation je ne sait pas si c'est une si bonne idée, le fait de garder le niveau d'origine peut renseigner sur l'importance des fluctuations.

Hors ligne

 

#7 2008-12-10 18:36:47 Re : analyse FFT de listes de valeurs dans un texte

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: analyse FFT de listes de valeurs dans un texte



jean thevenet a écrit:

mais quel est le format .dat. il semble que il s'agit encore de fichiers binaires avec simplement une entête en texte.

Non, dans ce format, tout le fichier est en texte, ça ressemble à ça (d'après ce sujet de la mailing list de sox)

; Sample Rate 44100
0 -0.1524353
2.2675737e-05 -0.19134521
4.5351474e-05 -0.2215271
6.8027211e-05 -0.21386719
9.0702948e-05 -0.18746948
0.00011337868 -0.17770386

La première valeur correspondant à l'écart temporel avec le premier sample (c'est à dire 1 / 44100e de sec. de plus à chaque fois), la deuxième à la valeur sur une échelle allant de -1 à 1

Il te faut quand même un script qui transforme tes valeurs dans cette échelle là, est ce que tu as un langage de programmation sous la main ? Sinon, installe processing, ça me semble le plus simple, voila à quoi ressemblerait un synopsis du programme à faire :
1.charger le fichier de valeur avec loadStrings
2.parcourir l'ensemble pour trouver min et max, le nombre de valeurs, créer un tableau de taille nombre de valeurs + 1 (pour mettre la ligne d'entete : "; Sample Rate 44100" ), écrire l'entête en index 0 de ce tableau
3.parcourir à nouveau l'ensemble, traduire les valeurs sur une échelle allant de -1 à 1, enregistrer le résultat dans le tableau
4.enregistrer cette chaine sous formes de fichier ".dat" (avec saveStrings )

Par la suite, tu auras juste à relancer ton script pour récupérer un fichier .dat smile et le convertir en wav avec sox par la commande

sox audio.dat audio.wav

(c'est aussi possible de créer le wav directement avec processing, mais plus compliqué)

Hors ligne

 

#8 2008-12-10 20:55:35 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



http://thevenet.jean.free.fr/journal/hem.gif
il faut avoir l'habitude de programmer pour exploiter ce conseil, c'est pas évident quand on n'a pas les bases, mais cela donne déjà la marche à suivre dans les grandes lignes.

Je vais essayer de trouver quelqu'un habitué à la programmation et le diriger sur cette page de forum.
j'ai mis les liens de toute cette démarche à partir de
http://pourlaterre.forum2ouf.com/etude- … ce-t40.htm

le fichier exemple est stéréo? (il y a deux valeurs).

(c'est gros http://www.processing.org/download/processing-1.0.1.tgz , 65Mo?!)

merci.

je donne à tout hasard quelques exemples de fichiers à transformer en wav.
par exemple dans les .tcx, c'est du langage de type xml,  la fréquence cardiaque est entre les balises "value"
exemples. les fichiers compressés  en bas de page
http://thevenet.jean.free.fr/journal/bouzid/index.html
(c'est un champion de France Véréran en course de Barque, mais il fait beaucoup de lactique: ses courbes sont lisses et dérives)

Mes logs sont dans
http://thevenet.jean.free.fr/historiques.tcx/index.html
mais seuls quelque que uns sont en un point par seconde
par exemple
http://thevenet.jean.free.fr/historique … 101103.tgz

dans la page
http://thevenet.jean.free.fr/journal/es … index.html
j'ai mis des liens vers des fichiers où je n'ai retenu que la FC (avec ultraedit j'ai copié collé seulement les lignes contenant "value"
exemple
http://thevenet.jean.free.fr/journal/200812041021.txt

les fichiers hrm polar eux sont de ce type (j'en ai pas encore mis en ligne mais c'est des listing en collonnes, la FC étant la première. (la deuxième la vitesse en hectomètres/heure, la troisième la cadence, la quatrième l'altitude.

après une entête assez longue. (c'est aligné si on utilise la police courrier)

[HRData]
117    61    83    8
117    61    83    8
120    62    91    8
121    64    92    8
122    76    93    8
124    84    94    8
126    121    94    8
128    124    94    8
133    119    95    8
134    121    95    7
137    126    96    7
139    129    97    7
139    139    98    7

voilà la nature du matériel à entrer à la moulinette... http://thevenet.jean.free.fr/journal/0chimiste.gif

Dernière modification par jean thevenet (2008-12-10 21:47:24)

Hors ligne

 

#9 2008-12-10 23:14:44 Re : analyse FFT de listes de valeurs dans un texte

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: analyse FFT de listes de valeurs dans un texte



Ah oui, processing c'est "gros", effectivement si tu as une connection bas débit, ce serait très long à charger, en fait il y a tout ce qui faut pour faire des programmes java avec. Processing est une librairie pour java, et un environnement de programmation très simple (sans 10000 boutons aux fonctions cryptiques), c'est le langage le plus simple à aborder sans connaissances préalables, sur ce forum pas mal de monde l'utilise et pourrait t'aider au fur et à mesure.

Comme alternative, et relativement accessible, il y a la possibilité d'utiliser php, par exemple sur windows en utilisant wampserver, php manipule très facilement des fichiers et tu pourrais utiliser le schéma que je t'ai proposé précédemment.

Voila, ce sont des pistes si à un moment tu décides de le programmer par toi-même, sinon un programmeur et n'importe quel langage devraient résoudre l'affaire!

Bonne continuation à ton projet.

Hors ligne

 

#10 2008-12-11 12:22:53 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



solipse a écrit:

Bonjour,

Si j'ai bien compris, tu as une liste de valeurs que tu souhaites transformer
en wav. Hors temps réel, je pense qu'il doit être possible d'utiliser un tableau,
dans Pure Data, par ex., dans lequel tu stockes tes valeurs. Puis il suffit de
relire ce tableau à la fréquence voulue, avec l'objet [tabread~], et d'enregistrer
le résultat au format wav...

Mais est-ce bien cela que tu souhaites?

solipse.

Ça , ça pourrait faire l'affaire. passer d'un texte à un tableau ne semble pas trop compliqué, même manuellement.

peut tu détailler la manip que tu proposerait?

Hors ligne

 

#11 2008-12-11 15:34:48 Re : analyse FFT de listes de valeurs dans un texte

solipse
membre
Date d'inscription: 2008-03-23
Messages: 86
Site web

Re: analyse FFT de listes de valeurs dans un texte



Bonjour,

Voilà l'illustration de ce que je te proposais:

http://codelab.fr/up/patch.jpg

et le patch correspondant en fichier joint.

Bon, cela reste à adapter au résultat que tu veux obtenir.
Les valeurs doivent être normalisées entre -1 et 1, pour
ne pas saturer à l'enregistrement.

solipse.

Hors ligne

 

#12 2008-12-11 17:13:01 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



bon, je viens de faire  sudo apt-get install puredata
donc c'est installé, 6.8Mo ça va (je suis avec un eeepc701 alors je fais quand même attention à ce que j'installe)

http://thevenet.jean.free.fr/journal/hem.gif maintenant que fait je, point à point avec ton script par exemple si je veux transformer le fichier
http://thevenet.jean.free.fr/journal/200812041021.txt
en un fichier wav mono échantillonné à 8KHz (ou 44.1KHz, ça revient au même, ça ne change que l'échelle)


(pour les fichiers .tcx il faudrait une routine de plus pour extraire la fréquence cardiaque entre les balises "values" après avoir supprimé les portions de texte bilan temps partiel (entre deux balises laps, et pour les fichiers polars, il faut simplement copier la collonne de texte qui nous intéresse.

sous windows, ultra édit regroupe les lignes contenant une chaine de caractère recherché, ce qui permet de ne garder que celles ci, et sous linux, et ultraédit windows, on peu sélectionner seulement une collonne dans un texte.


j'ai actuellement Audacity, je ne suis pas encore parvenu à installer sonic-visualiseur
d'ailleurs, je cherche de l'aide depuis 2 mois pour résoudre ce problème
/home/user> sudo apt-get install sonic-visualiser
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Aucune version du paquet sonic-visualiser n'est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète
ou qu'il n'est disponible que sur une autre source

(j'ai essayé aussi avec dkpg, mais il y a toujours des problèmes de dépendance) si en passant quelqu'un peut m'aider là aussi ça serait bien http://thevenet.jean.free.fr/journal/prier.gif

(je suis sous xandros et sonic visualiseur est sous débian, mais je vais peut être avoir d'occas un latitude X1 (portable sans ventilateur donc utilisable) qui accueillera unbutu studio et un windows aussi configuré pour le son (j'ai une licence samplitude)

Dernière modification par jean thevenet (2008-12-11 17:15:14)

Hors ligne

 

#13 2008-12-15 15:53:55 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



solipse a écrit:

Bonjour,

Voilà l'illustration de ce que je te proposais:

http://codelab.fr/up/patch.jpg

et le patch correspondant en fichier joint.

Bon, cela reste à adapter au résultat que tu veux obtenir.
Les valeurs doivent être normalisées entre -1 et 1, pour
ne pas saturer à l'enregistrement.

solipse.

essaie voârrre de convertir un des fichiers textes de
http://thevenet.jean.free.fr/journal/20 … 81220.html
(j'en ai mis de coté quelques uns pour test) et dis mois point à point comment faire?

merci.

Hors ligne

 

#14 2008-12-16 11:57:12 Re : analyse FFT de listes de valeurs dans un texte

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: analyse FFT de listes de valeurs dans un texte



Avant d'utiliser le patch que Solipse t'a préparé, tu vas devoir filtrer ton fichier de données, je ne crois pas que tu échappes à cette étape. Si tu ne souhaites installer ni processing ni php, tu peux utiliser les outils installés sur ton linux, bash par exemple, tu devrais pouvoir réaliser un filtre (= parser) avec ce langage. Une petite recherche (parser bash texte) renvoie des trucs intéressants :

http://forum.ubuntu-fr.org/viewtopic.php?id=25476
http://blog.devo.fr/2008/08/25/parser-l … r-en-bash/

Ca te permettra d'obtenir le fichier avec des valeurs normalisées de -1 à 1 que tu pourras ouvrir à partir du patch de Solipse.

Hors ligne

 

#15 2008-12-16 15:33:57 Re : analyse FFT de listes de valeurs dans un texte

jean thevenet
membre
Date d'inscription: 2008-12-10
Messages: 13

Re: analyse FFT de listes de valeurs dans un texte



j'ai du mal en fait car toutes les explications concernant ces outils sont en anglais, qui est une langue que je ne maitrise pas.
quand tu dis "filtrer", ça veut dire recalculer?

peut être que cette étape pourrait être gérer par l'autre coureur à pied qui lui semble maitriser le PHP. en plus cette routine pourrait éviter d'extraire "à la main" les fréquences cardiaques qui sinon sont dans un fichier xml toutes les 10 lignes mélangées à d'autre données. (je recherche toute les lignes contenant <value>, que ultra édit sous windows liste (je ne connais pas d'autre logiçiels qui "listent" ainsi les lignes contenant la chaine de caractère recherchée, je colle alors cette liste dans le presse papier, j'élimine les partiels (qui contiennent aussi <value> mais avec des espaces en plus, donc pas alligné en collone.

pour le moment je calle. je pense que si quelqu'un faisait la manip et disais point à point ce qu'il a fait, ça ferait comme un tuto, avec possibilité d'y parvenir à faire pour un autre fichier, ou au moins ça aiderait l'autre coureur à programmer sa routine.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024