Bonjour,
je suis entrain d'ecrire une appli en JAVA qui permet d'analyser un ECG.
Je doit pouvoir detecter automatiquement les secteurs QRS.
Pour ca je doit d'abord realiser un filtre passe bande 5-15Hz.
J'ai plein de question la dessus, puisque je suis newbie dans le domaine de traitement des signaux.
Question 1:
Est ce que realiser 2 filtres de suite, dont l'un est passe-bas avec un seuil de 15Hz, ensuite un passe-haut avec un seuil de 5Hz equivaut a un filtre passe bande 5-15 Hz?
Bonjour zorgz and all,
On peut tout à fait concevoir un filtre passe-bande de cette manière.
En analogique il y a un problème car les fréquences de coupures étant très proches, la fonction de transfert d'un filtre réagit avec la fonction de transfert de l'autre et inversement. On palie à ce "défaut" en isolant les impédances des filtres.
Cordialement, Jean-Marc de F4DXU (station radioamateur & pages web)
06/07/2007 - 16h58
zorgz
Date d'inscription
juillet 2007
Âge
35
Messages
18
Re : realisation d'un filtre passe bande IIR
D'accord alors question numero 2:
j'ai le ds un tutaorial cela:
...
Le filtre utilisé est un filtre numérique récursif de bande passante 5-15 Hz, d’ordre 4
La fonction de transfert en z du filtre est:
Y/X = (0.020 - 0.040z^-2 + 0.020z^-4) / (1 - 3.4390z^-1 + 4.5302z^-2 - 2.7308z^-3 + 0.6413z^-4)
où X est l’entrée et Y la sortie.
...
alors reguardant cette formule je comprends pas quelle partie de la formule fait allusion a la bande 5-15 Hz?
Qu'est ce qui changera ds la formule si je change la bande a c1~c2 ?
Cordialement, Jean-Marc de F4DXU (station radioamateur & pages web)
06/07/2007 - 18h52
m'enfin
Date d'inscription
février 2006
Localisation
Var
Âge
50
Messages
518
Re : realisation d'un filtre passe bande IIR
Envoyé par F4DXU
représente la transformée en Z de la fonction de transfert du filtre, en aucun cas ça fait allusion aux fréquences. ...
Tout à fait d'accord
Envoyé par F4DXU
... Il faut lourdement triturer la transformé en Z pour en extraire des coefficient qui seront utilisés dans l'algoritme numérique.
...
Bon courrage
Là par contre, je le suis moins: z-1 représente un retard d'un échantillon, les coefficients de la fonction de transfert sont ceux qui sont utilisés dans l'algorithme.
Je suppose que le tutoriel en question donne la période d'échantillonnage.
A+
06/07/2007 - 20h18
F4DXU
Date d'inscription
avril 2007
Localisation
Vienne
Messages
731
Re : realisation d'un filtre passe bande IIR
Il faut bien quitter le monde des Z pour repasser dans les réels.. non?
Le filtre peut bien s'écrire ensuite sous la forme d'un polynome de degré n?
Ya longtemps que je n'est pas jouer avec Z
Cordialement, Jean-Marc de F4DXU (station radioamateur & pages web)
Salut,
Bien sûr qu'il faut quitter le "monde des z" pour celui des échantillons. Mais pour le calcul numérique à partir de la suite des échantillons, cela se fait presque tout seul: si l'échantillon actuel est le numéro n, alors celui affecté de z-1 sera l'échantillon n-1, z-2 l'échantillon n-2, etc...
Appliqué à la fonction de transfert citée plus haut cela donne:
Yn=échantillon numéro n en sortie
Xn=échantillon numéro n en entrée
L'échantillon de sortie sera calculé à partir des échantillons d'entrée et de sortie précédents:
Yn=3.4390 Yn-1-4.5302 Yn-2+2.7308 Yn-3-0.6413 Yn-4+0.020 Xn-0.040 Xn-2+0.020 Xn-4
Les coefficients utilisés sont ceux de la fonction de transfert en z.
J'espère que ces quelques explications et la notation utilisée ne sont pas trop confuses.
A+
08/07/2007 - 12h21
zorgz
Date d'inscription
juillet 2007
Âge
35
Messages
18
Re : realisation d'un filtre passe bande IIR
poste par F4DXU
X /Y représente la transformée en Z de la fonction de transfert du filtre, en aucun cas ça fait allusion aux fréquences.
mais alors pourquoi utilise t-on cette fonction pour appliquer des filtres...passe-bas par example.
Si le seuil de frequance n'a aucun impacte sur cette fonction...comment pourrai je filtrer avec cette fonction toute frequence inferieurs a un seuil donne ??
J'ai trouver des algo ecris en c++ sur le net...mais je veux un peu comprendre comment tout cela fonctionne avant de les appliquer.
mais alors pourquoi utilise t-on cette fonction pour appliquer des filtres...passe-bas par example.
Si le seuil de frequance n'a aucun impacte sur cette fonction...comment pourrai je filtrer avec cette fonction toute frequence inferieurs a un seuil donne ??
J'ai trouver des algo ecris en c++ sur le net...mais je veux un peu comprendre comment tout cela fonctionne avant de les appliquer.
Pour passer d'un système à temps continu à un système à temps discret (échantillonné), il faut avoir recours à un outil mathématique différent, c'est la transformée en z. On passe donc d'une fonction de transfert en p (par exemple) à une fonction de transfert en z par une transformation (on choisit l'invariance impulsionnelle, la transformée bilinéaire, etc... en fonction du besoin). Dans la fonction en z ainsi obtenue n'apparait plus clairement la fréquence comme c'était le cas pour p, certes elle y est toujours mais pour la retrouver il faut pas mal "triturer" (comme dit F4DXU ) cette fonction.
Dans l'opérateur z se cache, non seulement la fréquence du signal traité mais aussi la fréquence d'échantillonnage, et cette dernière a une influence directe sur les caractéristiques fréquentielles du filtre.
Quand on dit qu'il n'est pas fait allusion aux fréquences, cela ne veut pas dire qu'elles n'y sont pas du tout mais plutôt qu'elles n'apparaissent pas directement. La transformée en z n'a pas pour but le calcul d'une réponse fréquentielle, elle est faite pour travailler sur les échantillons.
A+
Je sais pas trop si j'ai compris ou pas...en fait voila mon pb.
J'ai un tableau de 2000 valeurs (en java)...la frequence d'echantillonage est de 500Hz...mon application lit le tableau et trace la courbe de l'ECG sur le moniteur.
Voila...c'est tout ce que j'ai.
Maintenant apres avoir trace la courbe, je doit la filtrer en supprimant toutes les frequences en dessous de 15hz et au dela de 5Hz.
j'avai deja ce lien, mais merci quand meme. Au moins j'ai compris que la je pourrai calculer mes coefficients pour mon filtre du second ordre.
Et voila...je suis plante...quoi faire maintenant?
08/07/2007 - 20h43
zorgz
Date d'inscription
juillet 2007
Âge
35
Messages
18
Re : realisation d'un filtre passe bande IIR
et puis je voulai aussi ajouter que le traitement des signaux numeriques c'est pas mon domaine, c'est pour ca que je pose des questions qui vous paraissent surement betes
08/07/2007 - 21h04
m'enfin
Date d'inscription
février 2006
Localisation
Var
Âge
50
Messages
518
Re : realisation d'un filtre passe bande IIR
Envoyé par zorgz
et puis je voulai aussi ajouter que le traitement des signaux numeriques c'est pas mon domaine, c'est pour ca que je pose des questions qui vous paraissent surement betes
Ce qui est bête, c'est de ne pas poser les questions
Tu as donc 2000 échantillons Xn numérotés de n=0 à n=1999, pour chaque échantillon Xn il faut faire le calcul:
Yn=3.4390 Yn-1-4.5302 Yn-2+2.7308 Yn-3-0.6413 Yn-4+0.020 Xn-0.040 Xn-2+0.020 Xn-4.
En restituant les échantillons Yn au rythme de 500Hz, tu récupères ton signal filtré.