filtre RIF
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

filtre RIF



  1. #1
    gcortex

    filtre RIF


    ------

    Bonjour à tous

    est-il possible de faire un RIF passe haut
    (autre que le dérivateur) ?

    et un RIF passe bande simple à implémenter ?
    comment mettre au point ces filtres ??

    y a t-il plusieurs méthodes pour les passe-bas
    avec coefficients identiques ou différents ?

    Merci

    -----

  2. #2
    Murayama

    Re : filtre RIF

    Bonjour!

    Oui, il est possible de faire n'importe quel filtre, passe-haut,
    passe-bande, passe-bas, stoppe-bande...
    Dérivateur? Vous voulez dire simplement yn = xn - xn-1?

    Il y a plusieurs approches suivant ce qui est recherché.
    Vous pouvez tolérer du "ripple" (vagues dans la fonction de
    transfert)? Ou bien vous voulez un filtre "plat"? Vous voulez
    un filtre qui coupe très net? Ou alors vous pouvez tolérer un
    filtre qui coupe plus progressivement? De tous ces paramètres
    va dépendre la longueur (le nombre de coefs) du filtre.
    En gros, plus vous mettez des contraintes strictes, plus
    le filtre s'allonge.

    Pour faire des filtres sans trop se fatiguer, il y a un algorithme
    dit "Remez exchange algorithm" de Parks & McLellan, qui permet de
    calculer à peu près n'importe quel filtre FIR de façon optimisée.
    Quand on est un peu curieux et qu'on veut comprendre les choses
    en détail, on peut se fendre d'un bon livre de référence.
    Le livre de référence sur le filtrage (et autres problèmes de
    traitement de signaux) est à mon avis celui de Maurice Bellanger.
    "Digital processing of signals", sous titre "Theory and practice".
    Celui que j'ai sur ma table est la 2ème édition, et son ISBN est:
    0-471-92101-7
    Ce livre explique en particulier l'algorithme de Remez.
    Il doit probablement exister en Français parce qu'avec un nom
    comme Maurice Bellanger...

    Maintenant, il faut savoir que les filtres FIR ont un gros désavantage:
    comme ils demandent une convolution, on peut avoir de grandes
    quantités de calcul. Un filtre qui a 20 coefficients, ce sera 20
    multiplications et accumulations par échantillon. Il est donc parfois
    préférable de s'orienter vers un IIR.

    Pascal

    Citation Envoyé par gcortex Voir le message
    Bonjour à tous

    est-il possible de faire un RIF passe haut
    (autre que le dérivateur) ?

    et un RIF passe bande simple à implémenter ?
    comment mettre au point ces filtres ??

    y a t-il plusieurs méthodes pour les passe-bas
    avec coefficients identiques ou différents ?

    Merci

  3. #3
    gcortex

    Re : filtre RIF

    merci

    je suis intéressé par tous les types de filtres.
    notamment ceux qui ont un plus par rapport à un FII

    As tu des exemples simples ?

  4. #4
    erff

    Re : filtre RIF

    Salut

    La méthode pour calculer un FIR, c'est de dessiner le gabarit fréquentiel, de calculer la réponse impulsionnelle par TF^(-1), de prendre que les n premiers échantillons, ce qui revient à multiplier par une fenetre rectangulaire, et de calculer la TF de ces n premiers échantillons...on obtient un nouveau gabarit semblable au premier avec des défauts que l'on accepte ou non...Au lieu de multiplier par une fenetre rectangulaire, on peut multiplier par des fenêtres moins abruptes pour minimiser les ondulations etc...

    je suis intéressé par tous les types de filtres.
    notamment ceux qui ont un plus par rapport à un FII
    Je ne sais pas ce que tu demandes...si c'est une méthode de dimensionnement que tu cherches, il y a la transformée bilinéaire qui permet d'utiliser le savoir-faire analogique en numérique (IIR) : l'idée est de contracter l'intervalle ]-oo,+oo[ de l'analogique dans [-Fe/2,Fe/2] du numérique par un changement de variable judicieux, permettant de jongler facilement entre les "z" et les "p" (fonction tangente).
    http://en.wikipedia.org/wiki/Bilinear_transform

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

    Re : filtre RIF

    merci mais je vois pas trop la réponse impulsionnelle d'un passe haut, ni d'un passe bande d'ailleurs

    oui effectivement, je vais demander à Laplace

    Merci pour l'aide

  7. #6
    erff

    Re : filtre RIF

    merci mais je vois pas trop la réponse impulsionnelle d'un passe haut, ni d'un passe bande d'ailleurs
    C'est calculer :
    (En n'oubliant pas que le spectre est symétrique par rapport à l'axe des ordonnées.)
    H(n) est un passe-n'importe quoi : c'est pareil pour tt le monde.

  8. #7
    gcortex

    Re : filtre RIF

    merci

    autre question qui m'empèche de dormir : la symétrie des coefficients

    on fait vraiment comme çà, ou c'est juste pour faciliter le calcul ??

    en pratique qu'est-ce que çà va changer ??

  9. #8
    Murayama

    Re : filtre RIF

    Bonjour!

    La symétrie des coefficients vient du fait que quand on calcule une
    FFT d'un signal réel, le spectre est symétrique. En fait, on fait
    l'inverse ici, on calcule la transformée inverse de la réponse
    fréquentielle. Mais en pratique, FFT inverse, c'est une FFT, à un
    coefficient près. Donc le jeu de coefficients (la transformée
    inverse de la fonction de transfert) est symétrique. Donc ce n'est
    pas pour faciliter le calcul, c'est un fait mathématique et le filtre
    ne peut pas fonctionner autrement.

    Maintenant, la méthode exposée plus haut (H(f) -> IFFT -> limitation
    des coefficients) ne permet pas de faire un filtre optimal parce que
    la troncation du jeu de coefficient (qui est infini) induit des erreurs.
    La transformée d'une fenêtre rectangulaire (ce que l'on veut
    généralement pour un passe-bas) est un sinus cardinal (ou sinc)
    qui est en fait sin(x)/x. Pour utiliser un filtre par exemple en audio,
    il faut une erreur inférieure à -120 dB. C'est à dire une erreur de
    1/(1 million). Mais comme le sinc converge lentement, pour avoir
    suffisamment de coeffs pour limiter l'erreur à -120 dB, il faudrait
    tronquer vraiment très loin, donc il faudrait un gros DSP pour
    faire cela en temps réel.

    Donc il y a d'autres méthodes itératives qui consistent à calculer
    l'erreur, faire une correction, recalculer l'erreur, etc...
    L'algorithme de Remez doit pouvoir se trouver sur le net. Chercher
    Remez Parks McLellan.

    Bon, un exemple simple?
    Par exemple un filtre quart-bande (qui coupe à 1/4 de la fréquence
    d'échantillonnage). On va se donner une bande de transition large
    pour ne pas avoir trop de coefficients.

    Bande passante: 0 ~ 0,2
    Bande de transition: 0,2 ~ 0,3
    Bande coupée : 0,3 ~ 0,5
    Ripple dans la bande passante: 0,00001 dB (au moins c'est plat!)
    Ripple dans la bande stoppée: -40 dB

    Le nombre de coefs N est (environ) N = 2/3 log(1/(10*r1*r2)*(1/Tb)
    Tb est la bande de transition, donc ici 0,1.
    r1 et r2 sont les taux de "ripple". C'est à dire 0,000001 et 0,0001.

    Non, je ne me suis pas trompé d'un zéro: 0,000001 étant (en gros)
    égal à 1 - 0,00001 dB.

    Donc dans notre cas, log(10 * 0,0001 * 0,000001) = - 7. Le log
    de l'inverse est donc 7. Le 1/Tb est 10, et le nombre de coefficients
    est donc 2/3 de 70. Donc dans les 45~ 50. Si je fais la simulation, je
    trouve le jeu de coefficients suivant (voir plus bas): il y a 25
    coefficients, le filtre est symétrique autour de la raie centrale, donc
    mon filtre a 49 coefficients, ce qui est cohérent avec le calcul ci-
    dessus. Ah oui, j'ai oublié de dire que ce sont des logs à base 10,
    mais vu les résultats ci-dessus, vous aurez compris.

    Ce qu'il y a de remarquable, c'est que contrairement à la bande
    de transition, l'influence du gain et du ripple passant sont très
    modérés. Le nombre de coeffs est inversement proportionnel
    à la bande de transition. Un filtre 10 fois plus abrupt demandera
    10 fois plus de coefficients. Par contre, si vous voulez -80 dB au lieu
    de -40, vous aurez -11 au lieu de -7 pour le log, donc le nombre
    de coeffs sera autour de 2/3 de 110, donc 70. 20 coeffs de plus
    pour un filtre 10 000 fois plus sélectif.

    0.00007723467562033083
    -0.0005022999345263107
    0.0013910176404444243
    -0.001837278844509771
    0.00036457895575865126
    0.00217979146195409
    -0.001789560702731113
    -0.0026240522029032263
    0.0042280097863782555
    0.002345076952771318
    -0.007782579389564627
    -0.0005973706627711996
    0.01234365000937211
    -0.0034962430093555094
    -0.01761571999660974
    0.01109468716520491
    0.023134341135296735
    -0.024096593023275874
    -0.02832278586844103
    0.046892346748078295
    0.03257896704035412
    -0.09538904783534458
    -0.0353769408756505
    0.3146253450177886
    0.5363506133875282

    Pascal


    Citation Envoyé par gcortex Voir le message
    merci

    autre question qui m'empèche de dormir : la symétrie des coefficients

    on fait vraiment comme çà, ou c'est juste pour faciliter le calcul ??

    en pratique qu'est-ce que çà va changer ??

  10. #9
    gcortex

    Re : filtre RIF

    merci

    Donc le jeu de coefficients (la transformée
    inverse de la fonction de transfert) est symétrique. Donc ce n'est
    pas pour faciliter le calcul, c'est un fait mathématique et le filtre
    ne peut pas fonctionner autrement.
    pourtant quand j'ajoute :
    1+exp(-t/tau)+exp(-2t/tau)+exp(-3t/tau)+exp(-4t/tau)+exp(-5t/tau)+exp(-6t/tau)+exp(-7t/tau)

    je trouve bien la réponse à un échelon de mon "RC"

  11. #10
    erff

    Re : filtre RIF

    Symétrie des coef du filtre, c'est pour dire que le dernier coef=premier coef, etc... (dans le "monde de la TZ", pas dans le "monde temporel")

    En gros, pour reprendre les mots de Murayama : si tes coefs ne sont pas symétriques, ton signal temporel sera complexe (n'appartient pas à R), ce qui physiquement n'a pas de sens...donc si tu pars d'une réponse impulsionnelle réelle (c'est ce qu'on fait lorsque on la calcule à partir du gabarit par TF^-1, et qu'on la rend causale), que tu fais une TZ, alors tes coefs seront naturellement symétriques (on peut voir ça comme un moyen de vérifier qu'on ne s'est pas planté dans les calculs)

Discussions similaires

  1. sortie d'un filtre RIF
    Par invitea5ea0db3 dans le forum Électronique
    Réponses: 3
    Dernier message: 28/01/2011, 16h13
  2. filtre RIF
    Par invitea5ea0db3 dans le forum Physique
    Réponses: 1
    Dernier message: 28/01/2011, 16h08
  3. filtre numérique RIF
    Par invitea87c7dbb dans le forum Électronique
    Réponses: 2
    Dernier message: 18/05/2010, 09h15
  4. Filtre RIF
    Par gcortex dans le forum Électronique
    Réponses: 4
    Dernier message: 17/01/2010, 21h13
  5. synthese d'un filtre rif
    Par invite9a6e6389 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 1
    Dernier message: 24/11/2009, 17h34
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...