Debug EDF Files

lun. 04 octobre 2010 by Martin Deudon

Missing header information

L'en-tête (header) des fichiers .edf contient des métadonnées sur le patient, l'hôpital... Si certaines de ces données sont absentes, cela peut poser problème lors de l'ouverture du fichier selon le lecteur utilisé (cela ne semble pas avoir d'impact sur EEGLAB mais pose problème sur Anywave).

Il existe dans le logiciel EDFBrowser un outil permettant de modifier l'en-tête du fichier (ou du moins le remplacer par des valeurs "nulles").

Une fois le logiciel installé, aller dans Tools/Header Editor, sélectionner le fichier qui pose problème et le sauvegarder. Il n'est pas nécessaire de modifier les valeurs qui apparaissent. Mieux vaut ne pas modifier le fichier original.

Annotation problems

Ce problème peut provoquer une erreur lors de l'ouverture d'un fichier EDF dans EEGLAB via l'interface BIOSIG :

Le format EDF+ introduit la possibilité d'ajouter des annotations, pouvant correspondre à différents évènements, stimuli, temps. Pour cela un signal est ajouté, même lorsque les annotations ne sont pas utilisées et son label est “EDF Annotations”. Ce signal, comme tous les autres, est divisé en différents blocs en général d'une seconde.

Un exemple de fichier normal : le premier bloc du signal annotations démarre toujours par +0 suivie de deux caractères de code hexadécimal 14, d'un autre chiffre ici 0.55 (durée de l’événement annoté en secondes ?) suivie du code hexa 14 et de l'annotation rentrée lors de l'acquisition du signal (ici DAMIER S2) encore une fois suivie du code hexa 14.

Dans le cas des fichiers posant problème, le premier bloc du signal annotation contient seulement le +0 suivi de deux codes hexa 14. Il semble que l'interface BIOSIG attende une valeur de durée ainsi qu'une annotation. Une solution possible est donc de modifier manuellement le fichier dans HexEdit:

Faire une copie du fichier avant de le modifier

  • rentrer une durée après les deux octets de valeur hexa 14 (la valeur semble avoir aucune importance), par exemple +0.55
  • entrer un octet de valeur hexa 14
  • entrer l'annotation désirée
  • entrer un octet de valeur hexa 14

Il est nécessaire de ne pas modifier la longueur du bloc, il faut donc repérer la fin du bloc d'annotations et après la modification décrite ci-dessus, rajouter (ou supprimer) éventuellement des octets de valeur hexa 00 afin de conserver la longueur de bloc.

Comment trouver le premier bloc du signal annotation ?

La méthode la plus simple est de rechercher la suite d'octets de valeur hexa 2B 30 14 14. Pour cela, une fois le signal ouvert dans HexEdit, aller dans l'onglet Tools et sélectionner Find Hex… :