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

Scilab Discussion :

Application d'un filtre passe bas à un signal


Sujet :

Scilab

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Application d'un filtre passe bas à un signal
    Bonjour,

    Je suis sur un projet Scilab et je dois appliquer un filtre passe bas à un signal. Je bloque complètement malgré des heures de recherche.

    Mes données sont simple, il s'agit de 2000 mesures effectué en 20 seconde. J'ai donc un vecteur temps ou le pas est de 0.01 et un vecteur contenant les 2000 mesure.

    Je ne m'y connais pas en traitement du signal, et j'ai pour consigne d'appliquer un filtre passe bas sur ce signal (qui a priori ici est de 100Hz).

    Je vous remercie pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Filtre passe-bas
    Bonjour.
    Un exemple de PB d'ordre un (1/(1+tau*p) associé au bloqueur d'ordre zéro. (Il y a plusieurs sortes de Passe-bas en numérique) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //EQUATION RECURRENTE DU PASSE-BAS D'ORDRE UN
    //-------------------------------------------
    T=0.01;// Période d'échantillonnage
    tau=0.9;// Constante de temps
    beta=exp(-T/tau);
    alpha=1-beta;
    xmin=1;xmax=2000;
    //
    //INITIALISATION
    //--------------
    e=ones(1,xmax);// Signal d'entrée : Echelon
    s=0;enm1=0;
    //
    //EQUATION RECURRENTE
    //--------------------
    //
    // Filtre
    for i=xmin:xmax;
    s(i)=alpha*e(i)+beta*enm1;
    enm1=s(i);// Vieillissement
    end;
    //
    //TRACE
    //-----
    xset("colormap",[1 0 0]);
    i=[1:xmax];
    plot(i,s(i));
    xset("colormap",[0 1 0]);
    xgrid();
    xtitle("PASSE BAS ORDRE UN","nT","Sn");
    Tu peux aussi utiliser la fonction de transfert avec filter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    num=alpha;
    den=[1 -beta];
    [y,zf] = filter(num,den,e,[0])
    figure(1)
    plot(i,y,'r',i,e)
    xgrid()

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.

    J'ai plus ou moins compris mais sa dépasse le niveau que j'ai dans ce domaine. Du coup je suis passé par la transformée de fourier et j'ai sélectionné les première valeur de mon vecteur pour reconstruire un signal. J'imagine que c'est une alternative valable ?

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Filtre Passe-Bas
    Bonjour,

    Cela dépend du but recherché.
    Voici une solution simple pour filtrer un signal temporel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    clear
    T=0.01;// Période d'échantillonnage
    tau=0.9;// Constante de temps
    t=0:T:20;
    e=sin(2*%pi*0.1*t);// Signal d'entrée
    s=poly(0,'s');
    Sys=syslin('c',[1/(tau*s+1)]);// Définition du filtre en analogique F(p)
    FTZ=ss2tf(dscr(tf2ss(Sys),T));// Fonction de transfert en Z
    SF=flts(e,tf2ss(FTZ));   // Sortie du filtre
    clf();
    plot(t,e,'b');// Tracé du signal d'entrée
    plot(t,SF,'r');// Tracé du signal de sortie
    xgrid()
    xtitle("PASSE BAS ORDRE UN")

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ce code.

    Je pense l'utiliser car avec la transformé de Fourier la forme du signal est la même, filtré, mais les valeur sont totalement différente ce qui ne permet pas de superposer les deux signaux.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/11/2015, 10h27
  2. [Débutant] Application d'un filtre passe-bas
    Par johnnybgood1602 dans le forum Signal
    Réponses: 3
    Dernier message: 08/05/2014, 19h41
  3. signal modulé dans un filtre passe bas
    Par nono73000 dans le forum Simulink
    Réponses: 3
    Dernier message: 02/06/2009, 16h32
  4. [Signal] Implémentation filtres Passe-Bas en C
    Par Snark dans le forum Traitement du signal
    Réponses: 24
    Dernier message: 11/02/2009, 15h32
  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