IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Fabrication d'un filtre passe-bas


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 47
    Par défaut Fabrication d'un filtre passe-bas
    Bonjour à tous

    Malheureusement pour moi, j'ai un boulot dans lequel j'ai pas mal de choses à faire avec la programmation et c'est un domaine dans lequel je ne suis vraiment pas performant dans la mesure où personne ne m'a jamais donné de cours là dessus. Par conséquent, ma seule chance de progresser et d'arriver ensuite à me débrouiller par moi même est de me tourner vers cette communauté, qui m'a déjà sorti des épines du pied à plusieurs reprises (et je vous en remercie).

    Mon problème actuel consiste à créer un filtre passe bas en langage C. En gros, la situation se présente de la manière suivante:

    J'ai un fichier d'entrée avec deux colonnes, la première étant du temps et la seconde des mesures (en l'occurrence magnétiques). Il se trouve que mon signal magnétique a une furieuse tendance a danser dans tous les sens et je voudrais le calmer un peu, autrement dit filtrer les fréquences supérieures à environ 50Hz pour ne laisser apparaître que les grandes tendances. Malheureusement, comme il s'agit de données expérimentales, elles ne répondent pas à une équation particulière. Je ne peux donc pas dire que mon signal est du type Y = A * sin (w.t + Phi) + B ou quoi que ce soit d'autre.

    Étant complètement débutant en C, je ne sais pas du tout par où aborder le problème. Quelqu'un aurait il des idées sur la marche à suivre?

    Je vous remercie tous par avance.

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Il s'agit donc juste de faire un filtre passe bas numérique "tout simple", après le type et l'ordre dépend de ton application, des restrictions quand au temps de calcul ou à la puissance de la machine?

    Sinon après le problème n'est pas l'implémentation en C mais surtout la conception du filtre en elle même, as-tu des notions/connaissances la dessus?

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 47
    Par défaut
    Bonjour,

    Je te remercie pour ta réponse. Mes connaissances dans ce domaine sont très limitées. On m'en avait vaguement parlé quand j'étais encore étudiant, mais ça remonte à pas mal d'années et quand on ne pratique pas, on oublie

    En fait, oui, il s'agit d'un filtre simple, mais par manque de connaissances, aussi bien d'un point de vue théorique que de programmation, je ne sais pas par où aborder le problème.

  4. #4
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Pour le début, le plus simple est d'utiliser un simple filtre FIR (filtre à réponse impulsionnelle finie) qui est un filtre du type y(n) = a.s(n) + b.s(n-1) + ...
    et ainsi de suite selon l'ordre que tu désire (plus grand sera l'ordre du filtre, plus abrupte sera la coupure, mais ça demande plus de mémoire et de calcul).
    Après, quoi mettre dans a et b et ... , je te laisse un peu chercher, sinon c'est pas drôle et ça n'a aucun intérêt.

  5. #5
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Un logiciel comme MatLab ne serait-il pas préférable à un programme écrit en c pour résoudre ce type de problème?

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 47
    Par défaut
    C'est vraiment cool de recevoir toute cette aide sur ce site.

    Jowo, malheureusement, il se trouve que je ne dispose pas de licence Matlab sur mon ordinateur et ça ne devrait pas changer à court terme . Je ne peux qu'avoir recours au langage C.

    Jabbounet, merci pour le lien. J'ai commencé à le lire.

    Haraelendil, j'apprécie vraiment ta manière de me venir en aide. C'est parfait. Ca m'oblige à cogiter, ce qui est la meilleure solution. Il me semble donc que les coefficients dépendent de l'ordre du filtre que je veux obtenir et qu'ils sont définis en fonction du rapport entre la fréquence de coupure (probablement aux alentours de 50 Hz en ce qui me concerne) et la fréquence de Niqvist (Je ne suis pas sûr de l'orthographe), qui elle même vaut 1/T avec T le pas d'échantillonnage. Je suis complètement à l'ouest ou ça va à peu près?

  7. #7
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Salut,

    un livre comme celui ci peux t'intéresser.
    http://www.nrbook.com/a/bookcpdf.php

    par contre il date un peu et est en anglais.

Discussions similaires

  1. Comment générer un filtre passe bas
    Par sandball22 dans le forum Signal
    Réponses: 2
    Dernier message: 29/03/2007, 14h40
  2. Filtre passe bas
    Par vinzzzz dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 26/02/2007, 13h51
  3. Filtre passe bas et filtre de peigne
    Par jena dans le forum Signal
    Réponses: 8
    Dernier message: 04/02/2007, 15h53
  4. Classe filtre passe-bas
    Par nostub dans le forum Multimédia
    Réponses: 1
    Dernier message: 24/12/2006, 17h20
  5. Lire un son WAVE + filtre passe BAS/HAUT
    Par selmak7 dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/08/2006, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo