4-1 : Détection des pics R
Non-syntactic QRS Détection (Pan et Tompkins) :
Cette méthode a été présentée par Pan et W. J. Tompkins, traitant de la détection des complexes QRS .
Cette méthode, relativement simple, est basée sur les principales Caractéristiques des complexes QRS pour réaliser leur détection (fig. 4-1).
Fig 4-1 : Algorithme de détection des pics R de la méthode Pan et Tompkins
Le signal sortant des amplificateurs est filtré par un filtre passe-bas, puis un filtre passe haut, présentant les fonctions de transfert suivantes (fig. 4-2) :
Filtre Passe-bas : Filtre Passe-haut :
Fig 4-2 : Fonctions de transfert des filtres passe-bas et passe-haut
Le signal ainsi obtenu à la sortie de ces deux filtres subit d’une part un seuillage direct, et d’autre part un seuillage indirect, après dérivation, élévation au carré et application d’un filtre à Réponse Impulsionnelle Finie (RIF) – ou Moving Average filter (MA filter).
Chaque seuillage est réalisé à l’aide d’un comparateur, renvoyant un signal TTL b,c’est-à-dire un signal logique 0 ou 1 (High or Low) selon le niveau de l’entrée x[n] par rapport au seuil T (fig. 4-3).
Fig 4-3 : Obtention d’un signal ″tout ou rien″ b par application d’un seuil T au signal x[n]
Un retardateur (delay) permet de compenser le retard du au traitement (dérivation, carré…),et ainsi de resynchroniser les deux signaux logiques (seuillages T1 et T2).
Le MA filter correspond à un filtre dont la sortie peut s’écrire :
où Nw représente la longueur du moyennage.
On obtient ainsi en sortie un signal TTL qui renvoit un ‘1’ lorsqu’un pic est détecté, et vaut 0 sinon (fig. 4-4).
Fig 4-4 : En haut, signal ECG - En bas, détection des battements cardiaques
4-2 : Règles de détection :
- Les seuils T1 et T2 sont ajustés de battements en battements dans le but de compenser les évolutions d’amplitude des pics R.
- Lorsqu’un pic R n’est pas détecté après un intervalle de temps défini, l’algorithme traite à nouveau le signal en revenant à la détection précédente, en appliquant un seuil plus bas.
• Nonlinear high pass filter for R-wave detection (Keselbrener, Keselbrener et Akselrod) : Un article publié en 1997 par L. Keselbrener, M. Keselbrener et S. Akselrod présente une autre méthode, simple et facile à implémenter, pour la détection des pics R sur un signal ECG.
Cette méthode est basée sur la soustraction d’une version filtrée du signal, au signal original. Le principe est de corriger la ligne de base, afin de pouvoir appliquer un seuillage fixe.
Fig 4-5 : Organigramme de la procédure de détection des pics R
Les différentes étapes de l’application de cette méthode sur un signal présentant des variations de la ligne de base (A) sont représentées sur la figure (4-5).
Tout d’abord un filtre passe-bas est appliqué au signal ECG : le filtre utilisé est un filtre médian non linéaire, avec une fenêtre rectangulaire. On obtient ainsi, après filtrage, un signal lissé ne présentant plus aucune trace de pics R (B). En effet, seules les variations très lentes sont conservées (variations du niveau isoélectrique).
On soustrait ensuite ce signal lissé (B) au signal original (A), ce qui équivaut à un filtrage passe-haut : le signal résultant de la soustraction présente des pics R non déformés, sans déviation de la ligne de base (niveau isoélectrique constant).
Enfin, une détection par seuillage simple est appliquée au signal filtré passe-haut obtenu :
un maximum est détecté chaque fois que le signal dépasse une valeur de seuil spécifiée par l’utilisateur. Bien évidemment, des méthodes de détection plus élaborées peuvent également être appliquées, mais un seuillage constant est généralement suffisant.
L’avantage de la méthode de soustraction du signal lissé par application d’un filtre médian est qu’elle crée un filtre passe-bas non linéaire capable de supprimer ces variations de la ligne de base, sans pour autant déformer les pics R. En effet, le signal soustrait au signal original est une version filtrée passe-bas ne présentant aucune trace de complexes QRS ; le signal obtenu après soustraction ne présentera donc pas de distorsion dans la détection des intervalles R-R.
De plus, elle permet d’utiliser ensuite une détection par simple seuillage. Enfin, cette méthode permet une détection précise des pics R, même dans le cas de signaux ECG complètement non stationnaires.
4-3 Problématiques des signaux ECG
A tout signal ECG, viennent se greffer des phénomènes accessoires qui peuvent le polluer et qui dans certain cas, le rendent méconnaissable. Ces signaux parasites sont le bruit. Ce bruit a des origines diverses :
- L’agitation thermique des électrodes.
- La présence de champs électromagnétiques due à la proximité d'émetteurs, de transformateurs, de moteurs et de générateurs d’ondes de basse ou de moyenne fréquence sont aussi à l’origine de parasites (radio, TV, radar, téléphone portable, etc.) et peuvent induire des courants dans le patient.
- Les signaux biologiques peuvent constituer du bruit les un pour les autres. Ainsi en est-il de l’électromyogramme (EMG) qui est un bruit très gênant pour l’ECG
Les remèdes sont nombreux et variant selon la cause. Citons par exemple la mise à la terre pour évacuer les parasites du potentiel du secteur, les divers modes de blindage pour constituer des cages de faraday, utilisation des filtres analogiques et des filtres numériques.
Nous avons utilisé une techniques permettent d'améliorer le rapport S/B et permettant de détecter le pique R. Le filtrage numérique du signal
Les méthodes numériques de filtrage sont indispensables dans ce cas et devront être choisies avec soin. Elles reposent toutes sur le principe, d'une élimination des indésirables et d'une restauration ultérieure du signal débarrassé du bruit.
Nous avons opté pour filtrage qui lui-même se divise en deux parties : un filtre passe bas et un filtre passe haut
4-4 Implémentation
4-4-1 Matlab
Matlab est un environnement de calcul intégré basé sur un langage de programmation qui permet le développement rapide d'applications. Le langage permet la manipulation d'objets mathématiques à l'aide de fonctions. Matlab qui ont été conçus à l'origine pour le calcul matriciel (MATrix LABoratory).
Matlab dispose de fonctions de calcul de base ainsi que de bibliothèques plus spécialisées appelées boîtes à outils (toolboxes). Nous allons nous intéresser à l'une d'elles en particulier, la boîte à outils ondelettes.
4-4-2 Les ondelettes
La théorie des ondelettes est apparue au début des années 90, elle touche de nombreux domaines des mathématiques, notamment le traitement du signal et le traitement d’images. La boîte à outils Ondelettes de Matlab propose de nombreuses fonctions de manipulation des ondelettes.
L'analyse multirésolution donne un ensemble de signaux d'approximation et de détails d'un signal de départ en suivant une approche fin-à-grossier (fine-to-coarse). On obtient une décomposition multi-échelle du signal de départ en séparant à chaque niveau de résolution les basses fréquences (approximation) et les hautes fréquences (détails) du signal.
L utilisations de la transformée en ondelettes pour des signaux ECG est réalisée dans [Daubechies 88] Les auteurs constatent que les coefficients prépondérants décrivent les complexes QRS et que ces complexes sont bien analysée en approximations et détails en utilisant l’ondelette Daubechies .
4-5 Pratique et programme sous matlab
Nous avons téléchargé du site web officiel de « University of rochester medical center » centre « for quantitative électrocardiography and cardiac safety » Centre pour l’électrocardiographie quantitative et sécurité cardiaque, la base de données de l’ECG NORMAL ce qui est un fichier sous l’extension (TXT),
- On copie ce fichier dans le système d’exploitation de l’ordinateur.
- On va sur le MATLAB, en cliquant sur « Editor » puis on écrit le code suivant :.
x1 = importdata('base des donnees.txt');
base des donnees.txt : nom du fechier
- D’un clic sur le bouton d’Exécution « RUN » Le matlab va automatiquement télécharger la base des données en donnant les valeurs que porte cette base.
Pour qu’on puisse voir le graphe de l’ECG il suffit de taper le code
plot (x1)
Figure 4-6 Tracé de l’ECG x1
- On utilisant ces codes
plot(t(200:600),x1(200:600))
xlim([1 3])
On constate l’apparition d’un nouveau graphe qui montre un fragment de l’ECG, limité entre 01 et 03 secondes.
Figure 4-7 Tracé de l’ECG x1 et un fragment de 3 seconds.
- Filtrage LPF (filtre passe bas), en tapant les codes de wavelete dans toolbox suivants :
h_LP=filter(b,a,[1 zeros(1,12)]);
x2 = conv (x1 ,h_LP);
x2 = x2/ max( abs(x2 ));
On obtient le graphe suivant :
Figure 4-8 Tracé de l’ECG x1 après le filtrage passe bas.
- Filtrag HPF(filtre passe haut) : en tapant les codes de wavelete dans toolbox suivants
h_HP=filter(b,a,[1 zeros(1,32)]);
x3 = conv (x2 ,h_HP);
x3 = x3/ max( abs(x3 ));
Pour obtenir le graphe suivant :
Figure 4-9 Tracé de l’ECG x1 après le filtrage passe haut.
La dernière et la plus importante étape est celle de la détection du complexe QRS, donc on utilise les codes de détecteur de wavalete.
Et on obtient les résultats du graphe suivant :
Figure 4-10 Tracé de l’ECG x1 avec détection des position des onde Q, R, et S..
- Le triangle: signifie la position du R, autrement dit, la détection de la plus ample onde du signal ECG
- Le cercle signifie la position du Q, autrement dit, la détection du début du complexe QRS.
- L’étoile signifie la position du S, autrement dit, la détection du la fin du complexe QRS.
4-5 Conclusion
Les résultats obtenus avec cette méthode sont très satisfaisants.
La détection des instants d’apparition des pics R est réalisée avec une grande précision.
La méthode a été testée sur des signaux simulés et des signaux réels.
Les signaux simulés permettent de chiffrer la précision de la détection, par comparaison avec les instants exacts d’apparition des pics.