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

Signal Discussion :

Filtrer un signal rampe


Sujet :

Signal

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut Filtrer un signal rampe
    Bonjour,
    J'ai un signal composée d'une sinusoïde et d'une rampe comme dans la pièce jointe.
    Mon but est de filtrer le signal rampe pour centrer la sinusoïde autour de l'axe x sauf que le signal rampe a une transformée de Fourier assez compliquée et je vois pas quel type de filtre utiliser et comment l'implémenter.
    Voilà le bout de code que j'ai commencé à écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    L=length(x)                  % length of signal x
    NFFT = 2^nextpow2(L); % Next power of 2 from length of x
    X = fft(x,NFFT)/L
    figure();
    plot(abs(X)); 
    X=fftshift(X);
    figure();
    plot(abs(X));
    Ceci donne la FFT dans la deuxième pièce jointe.
    Quelqu'un a une idée?
    Merci d'avance
    Images attachées Images attachées   

  2. #2
    Membre du Club Avatar de compaq610
    Homme Profil pro
    master de recherche
    Inscrit en
    Mai 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : master de recherche
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2010
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Bonsoir,
    Je pense que le signal rampe se comporte comme une sinusoïde a une fréquence "tend vers zéro" donc vous pouvez utilisé un filtre passe haut a une fréquence de coupure inférieure a celle de la sinusoïde.
    Voilà le code que j'ai modifié

    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
    clear all
    t=0:0.001:1;
    y=10*sin(t.*20*pi);
    x=20*t+y;
    figure(1)
    plot(x)
    L=length(x);                  % length of signal x
    NFFT = 2^nextpow2(L); % Next power of 2 from length of x
    X = fft(x,NFFT)/L;
    figure(2)
    plot(abs(X)); 
    X=fftshift(X);
    figure(3)
    plot(abs(X));
    [b,a]=butter(1,0.01,'high');   %filtre passe haut
    sig_rec=filter(b,a,x);             %signal reconstruit 
    figure(4)
    plot(sig_rec)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Citation Envoyé par compaq610 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [b,a]=butter(1,0.01,'high');   %filtre passe haut
    sig_rec=filter(b,a,x);             %signal reconstruit
    Merci pour ta réponse mais je ne dispose pas de la Signal Processing Toolbox et donc je ne peux pas utiliser la fonction "butter" pour calculer les coefficients du filtre.

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!

    Une première remarque: ne penses-tu pas qu'à la longue, ton signal va tendre vers l'infini?

    Tout cela mis à part, pourquoi vouloir utiliser une transformée de Fourier? Il y a beaucoup plus simple:
    1. Tu cherches tous les maxima et les minima de ta fonction.
    2. Tu écris les équations des deux droites qui passent par ces points. Ces équations sont de la forme x=A*t+B1 et x=A*t+B2.
    3. L'équation de ta rampe est x=A*t+(B1+B2)/2.


    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Merci de votre réponse. J'ai pensé aussi à cette solution mais le problème est que mon signal est bruité, il est donc très difficile de trouver les minimas et les maximas de la fonction.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Re,
    Finalement j'ai adopté la méthode la plus facile: calculer l'équation de la droite en utilisant le premier et le dernier point du signal.
    Merci quand même pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtrer un signal 1D
    Par JeKiffeLesMath dans le forum Signal
    Réponses: 0
    Dernier message: 12/10/2010, 19h14
  2. Filtrer un signal
    Par bassemb dans le forum Signal
    Réponses: 4
    Dernier message: 30/03/2010, 13h19
  3. Filtrer un signal avec une fonction defini
    Par Leonpolou dans le forum Signal
    Réponses: 4
    Dernier message: 26/11/2009, 16h07
  4. comment filtrer un signal bruité en python?
    Par momoh dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 01/12/2008, 10h16
  5. Filtrer un signal
    Par palikao29 dans le forum Signal
    Réponses: 4
    Dernier message: 08/05/2008, 13h00

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