filtrage numerique
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

filtrage numerique



  1. #1
    invite85375064

    filtrage numerique


    ------

    Bonjour à tous ,

    j'aimerai filtrer un signal analogique (30hz+50hz): une sorte de signal bruité donc le bruit serait le 50hz; je dois donc faire un filtre passe bas pour cela.
    - ce signal est obtenu a partir de 02 générateurs de signaux de sorte que la visualisation sur l'oscilloscope soit bien la somme des 02 signaux.
    - le filtrage doit se faire via un PIC 18f458
    - a la sortie du PIC se trouve un CNA (convertisseur numérique analogique )qui reconvertit le signal numérique qui a été filtré au niveau du PIC en un signal analogique(filtrée cette fois ).

    Le problème
    c'est que je n'arrive pas a stocker le signal analogique qui entre dans le PIC dans un tableau(erreur de depassement de la RAM après une certaine taille du tableau; mais même quand je réduis la taille du tableau j'obtiens en sortie sur l'oscilloscope une sortie qui ne correspond pas a mon attente) pour pouvoir traiter ces échantillons après avec ma fonction de filtrage.
    j'aimerai savoir si quelqu'un n'aurait pas une idée à mon problème sachant que je programme en C.
    nb: j'ai déjà lu bigonoff mais je n'arrive pas malgré tout à voir se qu'il faut faire ; en plus bigonoff est pour de l'assembleur; certe je pourrai traduire en C mais ça reste lourd quand on ne voit pas trop bien ce qu'il faut faire.mais si quelqu'un a un lien qui ressouds ce genre de pb je suis tres preneur; ou une idée de resolution.

    -----

  2. #2
    micka_ch

    Re : filtrage numerique

    Bonjour,

    Quelle structure de filtre utilise-tu ?

    Si tu fais un filtre récursif tu n'a pas besoin de stocké les valeurs d'entré, enfin tu dois quand même en mémorisé 3-4 cela dépend de l'ordre de ton filtre. Cela te donne un filtre du genre :

    y(n)=a0*x(n)+a1*x(n-1)+a2*x(n-2)+b1*y(n-1)+b2*y(n-2)

    Encore plus simple un passe bas du 1er ordre :

    y(n)=(a-1)/a*y(n-1)+x(n-1)/a, avec a qui dépend de fe et fc (je ne sais pas par coeur la relation). En C ça donne quelque chose de tout simple si tu arrive à choisir a comme puissance de 2.

    Code:
      S16  x=0,y=0;         //Variable signée de 16 bits
      S32  yc=0;              //Variable signée de 32 bits
    
      yc=yc-(yc>>8)+x;    //a = 2^8 = 256
      y=yc>>8;
    Salutations
    Dernière modification par micka_ch ; 24/05/2012 à 11h32.

  3. #3
    inviteede7e2b6

    Re : filtrage numerique

    mouaif....

    plutôt qu'un pique , j'envisagerais l'usage d'un DSP , maintenant abordables et "fépour"

  4. #4
    invite29971eb1

    Re : filtrage numerique

    Et moi un MAX7400 avec une horloge 3,5 kHz

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

    Re : filtrage numerique

    salut
    il existe un logiciel associé aux dsPIC FAMILLE MICROCHIP) micro c for dsPIC, ou tu trouves un outil tool filter, tu choisis les parametres de ton filtre numérique et le code source en C est généré
    bon courage

  7. #6
    invite85375064

    Re : filtrage numerique

    Bonjour à vous,
    Merci pour vos réponses.
    à micka_ch: vraiment merci pour ton aide; en effet il s'agit d'un filtre récursif IIR.Ta réponse selon laquelle il me faut seulement 03 ou 04 échantillons est vraiment proche de ce que je pensais mais je n'avais rien m'en convaincre;merci de m'avoir eclairé sur ce point.
    En ce qui concerne ton code je ne comprends pas bien ce que tu fais sur ces lignes:
    yc=yc-(yc>>8)+x; //a = 2^8 = 256
    y=yc>>8;
    je sais que l'opérateur >> est une multiplication mais je ne vois pas pourquoi tu en fais ici et pourquoi 8 c'est à dire pourquoi on cherche le 256 ?
    et la variable yc est-ce bien une variable intermédiaire utilisée, afin d'obtenir y ?

    à fredo081: oui je connais ce logiciel et je l'ai utilisé mais quand je met le code obtenu dans mon application en simulation sous proteus ça ne fonctionne pas;
    j'utilise CCS pour programmer et proteus pour le schéma électronique.
    je pourrai vous envoyer à micka_ch et toi par mail mon schéma et mon code si vous avez ces deux logiciels et si vous voulez bien regarder mon code.

    Aux autres: Merci de me proposer des plateformes différentes mais je dois réussir à faire tourner mon application sur ce PIC là.

    à vous lire ...

  8. #7
    micka_ch

    Re : filtrage numerique

    Bonjour,

    Les 256 c'était pour l'exemple. En fait la pulsation de coupure du filtre est donné par wc=fe/a.

    Par contre si tu veux supprimé du bruit à 50 Hz sur un signal utile de 30 Hz, il te faudra quelque chose de plus pointu que cela.

    Salutations

  9. #8
    Qristoff
    Animateur Électronique

    Re : filtrage numerique

    j'aimerai filtrer un signal analogique (30hz+50hz): une sorte de signal bruité donc le bruit serait le 50hz
    basiquement, j'aurais tendance à dire que tu as un problème de "ronflette" et c'est plutôt coté alim qu'il faut se tourner pour réduire ce bruit (qui n'en est pas un un ! mais plutôt un défaut de réjection d'alim..)
    Tout existe, il suffit de le trouver...!

Discussions similaires

  1. Q: filtrage numérique?
    Par invite84413e1e dans le forum Électronique
    Réponses: 5
    Dernier message: 24/09/2011, 04h04
  2. un peu de filtrage numérique avec matlab
    Par fouga dans le forum Électronique
    Réponses: 0
    Dernier message: 18/04/2011, 15h01
  3. Filtrage numérique
    Par invite81d498d8 dans le forum Électronique
    Réponses: 5
    Dernier message: 14/04/2009, 12h52
  4. filtrage numérique par microcontroleur
    Par invite593a42d4 dans le forum Électronique
    Réponses: 5
    Dernier message: 18/02/2009, 20h41
  5. Filtrage numérique
    Par invite3f53d719 dans le forum Physique
    Réponses: 5
    Dernier message: 29/12/2005, 00h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...