Laser Doppler Flowmetry
La LDF est une technique basée sur l’effet Doppler. Elle est, entre autre, utilisée dans la fluxmétrie dans l’oeil. Le signal Doppler à acquérir et à traiter, pour obtenir les paramètres hémodynamiques, provient directement de cette technique. Un laser émet un signal optique avec une fréquence de base, f0 . Le signal, réfléchi par l’oeil, est décalé d’une fréquence ∆f. Lorsque le signal est réfléchi sur le tissu de l’oeil, la fréquence ∆f vaut zéro, ce n’est pas le cas lorsqu’il est réfléchi par les cellules rouges. Ces décalages en fréquence sont directement explicables par l’effet Doppler . Le signal est intercepté sur un photodétecteur qui le convertit en un signal électrique. C’est ce signal électrique qui appelé signal Doppler.
Effet Doppler
L’effet Doppler permet d’expliquer les décalages en fréquence que subit le signal optique lorsqu’il est réfléchi . Le signal optique est réfléchi sur une cellule rouge, considérée comme la source. Du fait de la vitesse de déplacement de cette dernière, le signal perçu par le récepteur, dans notre cas, un photodétecteur, est décalé d’une fréquence ∆f.
Traitement du signal Doppler
Le photodétecteur récolte plusieurs signaux optiques en même temps. Ces signaux optiques n’ont pas tous la même fréquence. De ce fait, le signal Doppler généré par le photodétecteur possède plusieurs fréquences. Sa bande de fréquence utile, dépendant de la vitesse des cellules rouges (donc du sang), se situe entre 30Hz et 30kHz (Source [4]). Les plus grandes fréquences du signal Doppler sont dues aux cellules rouges. tandis que les plus basses sont dues au tissu . Un signal Doppler issu du photodétecteur a typiquement une composante DC qui se situe entre 0V et 1V. Sa composante AC est d’environ 10mVRMS (Figure 1.3). Le spectre de puissance d’un signal Doppler, P(f), à une forme décroissante . Il permet de calculer les paramètres hémodynamiques :
• ChBVel est la vitesse du sang. Cette valeur est proportionnelle à la moyenne des vitesses des cellules rouges .
• ChBVol est le volume de sang.
• ChBF est le flux du sang.
Système existant
Schéma bloc
Son système comporte quatre étages distincts :
• Une électronique qui amplifie la composante AC du signal Doppler et coupe les fréquences supérieures à 40kHz (la bande de fréquence utile du signal va de 30Hz à 30kHz, mais les fréquences entre 30kHz et 40kHz sont utiles pour calculer le bruit)
• Une Discovery board qui échantillonne le signal et sauvegarde temporairement ses valeurs dans un buffer
• Un Raspberry qui met à disposition une interface web de pilotage du système et de récupération des valeurs
• Un ordinateur client qui calcule les paramètres hémodynamiques .
Notes : L’amplification de la composante AC permet d’améliorer l’erreur de quantification (Source [3]). Les fréquences supérieures à 40kHz sont coupées afin d’éviter des problèmes de repliement.
L’électronique est alimentée en +5V et +-12V. Elle permet :
• D’inverser le signal Doppler
• De choisir entre le signal inversé ou non inversé grâce à un jumper
• D’amplifier la composante AC du signal d’un facteur dépendant d’une résistance interchangeable
• De régler sa composante DC grâce à un potentiomètre
• De couper les fréquences du signal supérieures à 40kHz à l’aide d’un filtre passe-bas numérique .
Améliorations souhaitées pour le nouveau système :
• Alimentation unique en +5V (utilisable depuis le Raspberry) de l’électronique
• Réglage du facteur d’amplification grâce à un potentiomètre
• Coupure des fréquences avec un filtre analogique (un filtre numérique utilise une horloge qui peut apporter des problèmes de fréquences parasites) Notes : L’étage d’inversion permet de réinverser le signal Doppler lorsqu’il est inversé en entrée, se situant entre -1V et 0V. Le réglage de la composante DC permet de supprimer le bruit de fond.
ws_client
C’est l’interface web (Annexe A.6) de pilotage du Raspberry. Elle est fournie par Apache lorsqu’un ordinateur client tape l’adresse IP du Raspberry dans son navigateur. En haut à droite dans l’interface se trouvent les appareils de mesure (les Raspberry). Ceux qui sont utilisables sont écrits en vert, les autres étant écrits en rouge. Elle comporte trois onglets :
• Préférences pour saisir la façon dont va se dérouler l’expérience (durée, fréquence de départ et de fin, etc.)
• Subject pour saisir les informations sur la patient (nom, prénom, etc.)
• Results pour visualiser le signal échantillonné en direct, démarrer l’expérience et récupérer les résultats
L’interface se connecte au serveur WebSocket. Une requête du client est dans le format JSON (JavaScript Object Notation). Elle doit contenir un nom de commande ainsi que des paramètres. Une réponse du serveur est aussi dans ce format.
Un diagramme de séquence (Figure 3.14) montre les messages échangés. L’interface demande au serveur de recevoir les données en direct, avec un interval de 500ms entre chaque réception. L’utilisateur renseigne les données de l’expérience et la démarre. Une nouvelle requête est envoyée au serveur avec les données saisies. Les résultats de l’expérience sont retournés et l’utilisateur peut récupérer ces derniers. Un contrôle des données de l’expérience est fait côté serveur. Si l’utilisateur essaie de démarrer une expérience sans avoir renseigné correctement les données de cette dernière, il obtient des messages d’erreur . Lorsque l’expérience est finie, les résultats sont retournés à l’utilisateur . L’utilisateur dispose d’un lien où il peut télécharger les fichiers de résultats.
ws_server
Le serveur WebSocket a été implémenté dans Node.js. Il se lance de la manière suivante : sudo node s e r v e r . j s Comme le Raspberry peut être éteint, il a fallu trouver une manière de lancer automatiquement le serveur au démarrage. Ainsi, la commande de lancement du serveur a été ajoutée dans le fichier rc.local du Raspberry. Les WebSockets ont été utilisés afin d’avoir une connexion bidirectionnelle entre le client et le serveur. Ceci permet de développer une interface qui devient très fluide, sans besoin de faire des recharges de page, comme c’est le cas pour une application web standard. Son fonctionnement (Figure 3.18) est le suivant : Lorsqu’il reçoit une requête du client, il détermine quel programme lancer. Il lance le programme par le biais de la console. Le programme s’exécute ensuite et les informations qu’il écrit dans la console sont récupérées par ce dernier. Ces informations sont envoyées au client. Le serveur n’accepte qu’un seul client à la fois. Ceci pour éviter que plusieurs expériences soient lancées en même temps sur le Raspberry, celui-ci ne possédant qu’un ADC.
Notes : Le fichier rc.local est utile pour l’exécution de commandes au démarrage du Raspberry.
Le système développé par M. Francesco Marazzi, basé sur la Fluxmétrie Doppler par Laser (LDF), permet d’extraire les paramètres hémodynamiques d’un signal Doppler. Le signal est échantillonné sur une carte embarquée et le calcul des paramètres hémodynamiques est fait sur un ordinateur. Dans le cadre de mon travail, l’objectif principal était de créer un nouveau système dont le calcul des paramètres hémodynamiques soit fait directement sur la carte embarquée. Ce travail était aussi l’occasion d’apporter des améliorations pour le nouveau système. La nouvelle électronique est maintenant plus simple au niveau des branchements : Une seul tension d’alimentation est requise, prise sur le Raspberry. Le facteur d’amplification de la composante AC peut être réglé à l’aide d’un potentiomètre. Le filtre anti-repliement numérique a été changé par un analogique, évitant les problèmes d’horloge du filtre numérique qui ajoutaient du bruit sur le signal. La Discovery board a été remplacée par un ADC, simplifiant le système et le rendant plus compact. En contrepartie, des problématiques de temps réel sont apparues. Ces considérations ont été prises en compte dans le développement de l’application en utilisant un minuteur système temps réel. Malgré ces précautions, les tests ont révélé que la transformée de Fourier calculée à partir des valeurs échantillonnées d’un sinus de référence n’était pas parfaite. A partir de cela, des tests complémentaires ont été réalisés afin de vérifier l’impact de ces problèmes sur le calcul des paramètres hémodynamiques. Lors de ces tests complémentaires, un sinus dont la fréquence a été variée, a démontré que les résultats obtenus étaient satisfaisants. Effectivement, le paramètre ChBVel, correspondant à la vitesse de déplacement du sang, varie linéairement en fonction de la fréquence avec un coefficient de détermination R2 de 1. Le paramètre ChBVol, quant à lui, associée au volume du sang reste quasi constant avec une variation maximale de 3.85%. Le cas où l’amplitude d’un sinus a été variée montre également de bons résultats. Le paramètres ChBVol varie linéairement en fonction de l’amplitude avec un coefficient de détermination R2 de 0.951. Le paramètre ChBVel est constant avec un variation maximale de 0.06%. Ainsi, ces tests ont donnés des resultats prometteurs. Pour valider ce nouveau système, celui-ci a été testé dans son intégralité en incluant un laser et un photodetecteur pour réaliser une vraie mesure de signal Doppler. Naturellement, il fallait un système en mouvement permettant d’engendrer l’effet Doppler, un disque tournant en téflon a donc été utilisé. Les résultats ont également été satisfaisants. Effectivement, le paramètre ChBVel varie linéairement en fonction de la tension d’alimentation du moteur. Le coefficiant de détermination R2 est 0.9686. Pour ce qui est du paramètre ChBVol, il reste constant avec une variation maximale de 4.55%.
|
Table des matières
1 Introduction
1.1 Laser Doppler Flowmetry
1.2 Effet Doppler
1.3 Traitement du signal Doppler
2 Système existant
2.1 Schéma bloc
2.2 Electronique
2.3 Discovery board
2.4 Raspberry
2.5 Ordinateur client
3 Nouveau système
3.1 Schéma bloc
3.2 Electronique
3.2.1 Convertisseur de tension
3.2.2 Inverseur
3.2.3 Amplificateur AC
3.2.4 Régleur DC
3.2.5 Filtre anti-repliement
3.3 Convertisseur analogique-numérique
3.4 Raspberry
3.4.1 GetVoltage
3.4.2 GetExperiment
Main
AdcData
FramesSelection
DataProcessing
HemodynamicParamters
3.4.3 ws_client
3.4.4 ws_server
4 Tests
4.1 Electronique
4.1.1 Convertisseur de tension
4.1.2 Inverseur
4.1.3 Amplificateur AC
4.1.4 Régleur DC
4.1.5 Filtre anti-repliement
4.2 GetVoltage
4.3 GetExperiment
4.3.1 FFT et spectre de puissance
4.3.2 Echantillonnage à 100kHz
4.3.3 Calcul des paramètres hémodynamiques
En fonction de la fréquence d’un signal sinusoïdal
En fonction de l’amplitude d’un signal sinusoïdal
4.4 Système complet
5 Conclusion
Télécharger le rapport complet