Choix d'un filtre pour un échantillon
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Choix d'un filtre pour un échantillon



  1. #1
    invitea6fdf548

    Choix d'un filtre pour un échantillon


    ------

    Bonjour tout le monde,

    Dans le cadre d'un laboratoire je dois implémenter un programme qui me permet calculer les "tilt angles" à l'aide d'un accéléromètre et d'un uC (module STM iNEMO).
    Il me faut pour ça échantillonner les valeurs données par le capteur (40 Hz) et les filtrer (Passe-bas , fc = 8Hz).
    J'ai vu qu'il existait deux types de filtres, FIR et IIR.

    Ma question est la suivante :
    Lequel devrais-je utiliser si le temps d'exécution est le paramètre critique ?

    Merci

    -----

  2. #2
    gcortex

    Re : Choix d'un filtre pour un échantillon

    En général on filtre avant d'échantillonner.
    40Hz c'est lent pour un convertisseur et un µC
    tu ne parles pas du temps de réponse ?

    IIR = équa diff = régime transitoire
    FIR : il faut les bons coefficients mais pas de transitoire (retard pur)
    Dernière modification par gcortex ; 18/10/2011 à 09h09.

  3. #3
    invitea6fdf548

    Re : Choix d'un filtre pour un échantillon

    Oui je me suis trompé pour les 40Hz en fait il s'agit du nombre de tilt-angles que je dois calculer /s.

    Je dois avouer que je n'ai pas encore suivi de cours de traitement du signal donc je suis un peu perdu.
    Comment peut-on filtrer avant d'échantillonner ? Doit-on appliquer le filtre à chaque data input (FFT, *Filtre(jw) & IFT) ?

    En soit mon vrai problème c'est plutôt comment implémenter l'algorithme de calcul du signal filtré avec un temps d'exécution court (le design du filtre est plus aisé).

    Merci

  4. #4
    gcortex

    Re : Choix d'un filtre pour un échantillon

    le bon vieux filtre analogique pour être sûr de respecter shannon.
    sinon pourquoi veux tu filtrer après ? c'est quoi un "tilt-angle" ?
    Dernière modification par gcortex ; 18/10/2011 à 15h27.

  5. A voir en vidéo sur Futura
  6. #5
    invitea6fdf548

    Re : Choix d'un filtre pour un échantillon

    Plus ça va et plus j'ai du mal à comprendre comment filtrer ces données.
    Comment ferriez-vous ?

    Le filtre analogique aurait été la solution la plus simple et la plus rapide mais le problème c'est que le circuit (uC et accéléromètre) est déjà on-board.

    Le tilt-angle c'est l'angle de projection entre l'accélération mesurée et la gravité selon l'axe considéré.

  7. #6
    erff

    Re : Choix d'un filtre pour un échantillon

    Salut

    - Soit on filtre tout en analogique, et si on a besoin d'un ordre élevé ça devient vite la galère...
    - Soit on filtre en numérique, mais de toute façons, on sera obligé d'utiliser un petit filtre analogique (ordre 1 ou 2) en entrée pour ne pas ramener le bruit HF dans la bande utile.

    Si tu optes pour un filtre numérique (qui nécessite de ttes façons un filtre analogique passe bas, qui coupe au maximum à partir F_ech/2) il y a 2 stratégies :
    - Filtre IIR : avec un petit jeu de coefficients, on arrive à faire un filtre d'ordre élevé (bon pour le temps de calcul). Par contre on se risque à l'instabilité car une petite erreur de quantification sur les coefficients du dénominateur peut entrainer ces problèmes...C'est difficile de faire un filtre qui fait "exactement ce que l'on veut"...si on veut atténuer de 3dB par ci, 10 dB par là, on a du mal à déduire les coeffs qu'ils faut (un peu comme en analogique).
    - Filtre FIR : On se donne un gabarit nous même donc on peut modeler la réponse fréquentielle du filtre à notre guise. Pour ceci, il faut un grand jeu de coefficient (plus d'une centaine). Le fenêtrage temporel entraine une modification du gabarit qu'il faut anticiper. Aucun risque d'instabilité.

  8. #7
    Youscoul

    Re : Choix d'un filtre pour un échantillon

    Bonjour,

    Je suis tombé sur ce forum par hasard et j'ose espérer que je trouverai une solution à mon problème ici.

    En effet, j'ai implémenté un filtre passe-bas RII ordre 4 en C sur PIC24HJ (16bits).

    L'équation de récurrence de celui ci est de la forme :

    Sn = A*En + En_1 + En_3 - B*Sn_1 - C*Sn_2 - D*Sn_3 - E*Sn_4 + A*En_2 + A*En_4;

    Avec une fréquence de coupe à 5Hz et une fréquence d'échantillonnage du convertisseur A/D à 100mes/s mon filtre est instable à une certaine valeur.

    Sachant que je n'ai procédé à aucune quantification de mes coefficients !! Est-ce que mon problème viendrait de cette non quantification ?

    Si oui comment devrais-je m y prendre ?

    Merci d'avance.

    Cordialement

  9. #8
    erff

    Re : Choix d'un filtre pour un échantillon

    Bonjour,

    1 - Pour commencer, que valent les coefficients ? Tu nous mettrais le diagramme de Bode du filtre ?
    2 - Les as-tu mis à l'échelle avant d'implémenter ton filtre pour travailler avec des entiers ? Ou travailles-tu en flottant (je ne connais pas ce µC) ?

    Pour info :
    La quantification se fait d'elle même. Avec 16 bits, tu ne peux coder que 2^16 valeurs ... donc si on tombe entre 2 valeurs ... on a une erreur de quantification (qui peut être constante ou relative selon si on travaille en entier ou en float). Le pb c'est que cette erreur sur les coeffs du dénominateur d'un filtre entraîne des instabilités car le comportement de tels filtre est sensible aux coefficients, c'est d'autant plus flagrant que l'ordre est élevé.

  10. #9
    jiherve

    Re : Choix d'un filtre pour un échantillon

    Bonsoir,
    Un IIR c'est plus simple mais aussi plus délicat, un bon site:http://www-users.cs.york.ac.uk/~fisher/mkfilter/.
    Attention aux arrondis et autres limitations dans la précision des calculs, avec un passe bas bien vérifier que si l'entrée est constante la sortie aussi et de valeur égale.
    Il vaut mieux cascader des ordres 2 ou 1 que de faire un ordre supérieur en force brute.
    JR
    Dernière modification par jiherve ; 10/10/2012 à 20h22.
    l'électronique c'est pas du vaudou!

  11. #10
    Youscoul

    Re : Choix d'un filtre pour un échantillon

    Bonjour erff,

    Je te remercie pour m'avoir répondu.

    Pour répondre à ta question N°1
    Mes 4 coefficients ont pour valeurs :
    coeffB = -3.1806385489
    coeffC = 3.8611943490
    coeffD = -2.1121553551
    coeffE = 0.4382651423
    Et le Gain du filtre est de : 2.4727852e+03

    Pour répondre à ta question N°2
    Je n'ai pas procédé à une éventuelle mise à échelle avant d’implémenter ce filtre. Du coup, je travaille directement avec les flottants (double précision).
    D'où ma question : comment pourrais-je mettre à l’échelle mes coefficients afin de travailler avec des entiers ? surtout que mon point convertisseur A/D est un entier.

    Merci

    Cordialement

  12. #11
    Youscoul

    Re : Choix d'un filtre pour un échantillon

    Bonjour jiherve,

    Effectivement, j'utilise le même site pour générer l'algorithme de mon filtre.

    Mais comme l'utilisateur a le choix entre plusieurs fréquences d’échantillonnage (de 6.25 à 800 mes/s) et la fréquence de coupure peut varier selon l'ordre du filtre de 1.6 à 50Hz,
    j'utilise un autre algo qui me calcule le gain et les coeffs en fonction de la fréquence A/D et de la fréquence de coupure.

    Cependant, je suis partant pour mettre des filtres d'ordre 2 et 1 en cascade car avec des ordres élevés (exemple: 4) un RII n'est pas trop conseillé car la moindre erreur sur les coeffs peut entraîner l'instabilité du système. Mais comment devrais-je déterminer mes coeffs en fonction de l'ordre, les fréquences d’échantillonnage et de coupure si je fonctionne en cascade ?

    Merci

    Cordialement

  13. #12
    erff

    Re : Choix d'un filtre pour un échantillon

    Bonjour,

    Tu nous mettrais le diagramme de Bode du filtre ?
    Ou au moins, assure nous que tes pôles au sens 'TZ' sont dans le disque unité ... Tu m'en voudras pas, mais je n'ai pas envie de me farcir le calcul pour un ordre 4 !

    Vue tes fréquences de coupure faibles et ta fréquence d'échantillonnage vraiment très élevée (trop pour l'application), ça ne m'étonnerait pas que tes pôles frôlent le cercle unité ... et qu'une erreur de quantification suffise à déstabiliser le système.
    Solutions : échantillonner + lentement ou décimation + recalcul des coefficients (les pôles seront alors mieux placés) ou bien utilisation d'un FIR (cela dit l'étape de décimation reste nécessaire si tu ne veux pas être obligé de prendre un ordre 100000) ... ou encore + simple, un filtre analogique...


    Bref ! Attendons le diagramme de Bode, surtout le diagramme du placement des pôles .

Discussions similaires

  1. conseil choix filtre et roue a filtre
    Par invite47c25a3f dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 10
    Dernier message: 04/09/2018, 16h03
  2. Stats-choix d'un échantillon
    Par invite54e86c93 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 24/06/2009, 13h21
  3. masse d'un échantillon
    Par invite208036e6 dans le forum Physique
    Réponses: 5
    Dernier message: 24/11/2008, 18h14
  4. TAC d'un échantillon
    Par inviteb7901980 dans le forum Chimie
    Réponses: 1
    Dernier message: 25/11/2006, 10h34
  5. Intervalle de confiance d'un pourcentage pour un petit échantillon
    Par invitecc3d7fc9 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 03/11/2004, 16h50
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...