Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 66

realisation d'un filtre passe bande IIR



  1. #1
    zorgz

    realisation d'un filtre passe bande IIR

    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?

    -----


  2. Publicité
  3. #2
    F4DXU

    Re : realisation d'un filtre passe bande IIR

    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)

  4. #3
    zorgz

    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 ?

  5. #4
    F4DXU

    Re : realisation d'un filtre passe bande IIR

    représente la transformée en Z de la fonction de transfert du filtre, en aucun cas ça fait allusion aux fréquences. Il faut lourdement triturer la transformé en Z pour en extraire des coefficient qui seront utilisés dans l'algoritme numérique.
    Suis ces liens pour avoir une idée de ce qui t'attend :
    http://fr.wikipedia.org/wiki/Transform%C3%A9e_en_Z
    http://www-verimag.imag.fr/~caspi/COURS/SLE/z.pdf
    http://www.tele.ucl.ac.be/EDU/ELEC2900/2900_2.pdf
    et plein d'autres
    et encore sur les filtres numériques :
    http://perso.orange.fr/moulesj/mesure/numeriq.htm
    http://asi.insa-rouen.fr/enseignemen...tds/cours9.pdf
    et bien d'autres encore
    Bon courrage
    Cordialement, Jean-Marc de F4DXU (station radioamateur & pages web)

  6. #5
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par F4DXU Voir le message
    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

    Citation Envoyé par F4DXU Voir le message
    ... 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+

  7. A voir en vidéo sur Futura
  8. #6
    F4DXU

    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)

  9. Publicité
  10. #7
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    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

    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

    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+

  11. #8
    zorgz

    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.

  12. #9
    jiherve

    Re : realisation d'un filtre passe bande IIR

    Bonjour
    un site en or et en plus ça marche!
    http://www-users.cs.york.ac.uk/~fisher/mkfilter/
    JR

  13. #10
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par zorgz Voir le message
    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+

  14. #11
    zorgz

    Re : realisation d'un filtre passe bande IIR

    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.

    Par quoi s'y prendre?

    poste par jiherve

    Bonjour
    un site en or et en plus ça marche!
    http://www-users.cs.york.ac.uk/~fisher/mkfilter/
    JR
    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?

  15. #12
    zorgz

    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

  16. Publicité
  17. #13
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par zorgz Voir le message
    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é.

    Les premières valeurs sont:
    Y0=0.020 X0
    Y1=3.4390 Y0+0.020 X1
    Y2=3.4390 Y1-4.5302 Y0+0.020 X2-0.040 X0
    Y3=3.4390 Y2-4.5302 Y1+2.7308 Y0+0.020 X3-0.040 X1
    Y4=3.4390 Y3-4.5302 Y2+2.7308 Y1-0.6413 Y0+0.020 X4-0.040 X2+0.020 X0.
    Y5=3.4390 Y4-4.5302 Y3+2.7308 Y2-0.6413 Y1+0.020 X5-0.040 X3+0.020 X1.

    et ainsi de suite...

    A+

  18. #14
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Ah oui? donc a la sortie j'aurai un signal filtre passe-bande 5-15Hz?

    Et si je voudrai changer le diapason de frequences? les coefficients changeront mais la formule reste la meme...n'est ce pas?

  19. #15
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par zorgz Voir le message
    Ah oui? donc a la sortie j'aurai un signal filtre passe-bande 5-15Hz?

    Et si je voudrai changer le diapason de frequences? les coefficients changeront mais la formule reste la meme...n'est ce pas?
    Oui, chaque point Yn espacé de 2ms représentera le signal filtré.

    Qu'appelles-tu "diapason"?

  20. #16
    zorgz

    Re : realisation d'un filtre passe bande IIR

    pour moi, diapason veut dire l'interval 5-15Hz.

  21. #17
    zorgz

    Re : realisation d'un filtre passe bande IIR

    En fait c'est le diapason de la bande passante en question.

  22. #18
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Pour changer la courbe de réponse du filtre, il faut refaire l'étude complète, la fonction de transfert en z peut être totalement différente, donc les coefficients aussi.
    Par contre, une variation de la fréquence d'échantillonnage décale la réponse en fréquence en conservant les rapports.

  23. Publicité
  24. #19
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Merci bcp m'enfin pour la formule et les coeff.

    Alors si j'ai bien compris, modifier la bande passante ou le seuil de frequence (pour les passe-bas et passe-haut) implique a modifier la courbe de réponse du filtre et donc a recalculer la fonction de transfert en z?

  25. #20
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par zorgz Voir le message
    Merci bcp m'enfin pour la formule et les coeff.

    Alors si j'ai bien compris, modifier la bande passante ou le seuil de frequence (pour les passe-bas et passe-haut) implique a modifier la courbe de réponse du filtre et donc a recalculer la fonction de transfert en z?
    Hélas oui

    A+

  26. #21
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Dans ce cas la question qui me tracasse actuellement c'est comment calculer la fonction de transfert en z?

    J'ai compris que H(z) = Y(z) / X(z); Y(z) c'est la sortie et X(z) c'est l'entree.

  27. #22
    SiNeRgY

    Re : realisation d'un filtre passe bande IIR

    Hi
    Pour le calcule de la fonction de transfert en Z, il faut d'abord passer par l'analogique, donc faut la construire dans le domaine de LAPLACE puis passer en echantilloné en connaissant la période d'echantillonnage

  28. #23
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Citation Envoyé par zorgz Voir le message
    Dans ce cas la question qui me tracasse actuellement c'est comment calculer la fonction de transfert en z?
    C'est justement l'opération délicate quand on n'a pas l'habitude.
    Il faut partir du gabarit souhaité et déterminer la fonction de transfert en p (synthèse analogique "classique").
    Appliquer ensuite à cette fonction de transfert une transformation mathématique qui fera passer de p à z. Pour ça, on utilise souvent la transformation bilinéaire qui évite la remontée du gain en approchant de fe/2 (périodisation de la réponse du filtre), mais il y a aussi l'invariance impulsionnelle.
    Lorsque la fonction de transfert en z est établie, il ne reste plus qu'à la traduire en algorithme pour la programmer.

    Si toute cette étude est très intéressante pour comprendre ce qui se passe, par soucis d'efficacité dans un problème concret je te conseillerais d'utiliser un des outils informatiques de CAO proposés, c'est plus rapide et ça évite les erreurs de calcul.

    A+

  29. #24
    zorgz

    Re : realisation d'un filtre passe bande IIR

    je pensais que les fonctions de transfert en Z d'un certain ordre (d'ordre 2 comme dans mon cas par exemple) sont d'une forme generale. C'est a dire applicable pour tout signal, seuls les coeff. changent.

    Dans l'algorithme de detection du secteur QRS d'un ECG de Pan et Tompkins (Pan and Tompkins, 1985) ils donnent une fonctions de transfert en Z d'ordre 2 pour un filtre passe-bas comme suit:

    H(z) = ((1 - z^-6))^2 / ((1 - z^-1))^2

    Donc j'ai compris qu'une telle fonction peut s'appliquer a tout signal, mais seul les coeff. changent selon la frequence de filtrage.

    Qu'en pensez vouz?

  30. Publicité
  31. #25
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Salut,
    Pour un ordre donné, les degrés des polynômes sont les mêmes, les coefficients changent avec les paramètres du filtre mais je ne peux pas être plus précis.
    A+

  32. #26
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Salut,

    sur ce lien
    http://www-users.cs.york.ac.uk/~fish...lter/trad.html
    j'entre les parametres(l'ordre la frequence), le resultat pretend y etre correcte.

    J'ai comparer le resultat de ce site a votre equation d'hier (qui donne une courbe me paraissant etre correcte) et pourquoi c'est pas la meme chose?

  33. #27
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Salut,
    Difficile de comparer les 2 expressions: l'équation que j'ai donné n'est que la traduction de la fonction de transfert en z donnée au message #3 et je ne sais pas comment elle a été obtenue (fonction d'approximation de départ Butterworth ou Tchebycheff ou autre, transformation utilisée bilinéaire ou invariance etc...). Donc pour refaire le calcul des coefficients il manque des paramètres.
    Cela dit, ce site a l'air très bien.
    Petite mise en garde, l'ordre d'un filtre pour un passe bande est doublé et en remplissant les champs, il faut mettre ordre 2 et non ordre 4.
    J'ai essayé plusieurs configurations, les résultats sont assez proches dans certains cas. Il faut bien sûr appliquer un coefficient correspondant à un gain statique différent mais qui ne change pas la forme de la réponse.
    A+

  34. #28
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Salut,
    j'ai trouver la reailisation d'un filtre apparement simple.

    The general design equation has a standard recursive form for the four types of
    filters: low-pass, bandpass, high-pass, and band-reject:

    H(z) = (1 + a1Z-1 + a2Z-2) / (1 - b1Z-1 + b2Z-2)

    where b1 = 2.r.cos(theta) et b2 = r2.

    theta = 2*pi*fc/fs
    Dernière modification par zorgz ; 10/07/2007 à 11h19.

  35. #29
    zorgz

    Re : realisation d'un filtre passe bande IIR

    Salut,
    j'ai trouver la reailisation d'un filtre apparement simple.


    DESIGN METHODS FOR TWO-POLE FILTERS

    The general design equation has a standard recursive form for the four types of
    filters: low-pass, bandpass, high-pass, and band-reject:

    H(z) = (1 + a1Z-1 + a2Z-2) / (1 - b1Z-1 + b2Z-2)

    where b1 = 2.r.cos(theta) et b2 = r2.

    theta = 2*pi*fc/fs
    Les coeff a1 et a2 sont donnees et changent selon le type de filtre.

    Donc a mon tour je doit trouver b1 et b2 en choisissant le seuil de frequence fc pour le filtrage, fs dans mon cas est egale a 500Hz.

    Dans le tutorial il est dit qu'il faut choisir r qui est etre 0 et 1.

    Mais j'ai pas compris comment.

  36. #30
    m'enfin

    Re : realisation d'un filtre passe bande IIR

    Salut,
    je ne comprends plus trop où se situe le problème, je pensais que la fonction de transfert était connue (message #3). Sinon, s'il faut créer le filtre, le site indiqué plus haut est très bien.
    Si par contre, tu souhaites vraiment entrer dans le détail de la synthèse des filtres numériques, cela va être délicat via un forum, c'est un sujet très vaste qui fait appel à de nombreuses notions de traitement du signal difficiles à expliquer à distance.
    Concernant la fonction de transfert "simple", elle n'est pas du même ordre que celle dont il était question plus haut, elle n'aura pas les mêmes performances. Quant au choix de r
    A+

Sur le même thème :

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Fréquence de coupure d'un filtre passe-bande passif ?!
    Par Rizza dans le forum Électronique
    Réponses: 17
    Dernier message: 14/05/2012, 21h58
  2. dimentionnement d'un filtre passe bande
    Par CrH dans le forum Électronique
    Réponses: 8
    Dernier message: 09/10/2007, 14h55
  3. filtre passe bande
    Par mich67 dans le forum Physique
    Réponses: 3
    Dernier message: 04/12/2006, 18h55
  4. filtre passe bande
    Par dmaxpoil dans le forum Électronique
    Réponses: 1
    Dernier message: 12/06/2006, 22h40
  5. filtre passe bande
    Par bbdoll dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 21/12/2005, 18h32