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

MATLAB Discussion :

Densité spectrale de puissance et filtrage


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut Densité spectrale de puissance et filtrage
    Bonjour à tous,

    Pour le temps qu'il me reste de stage je suis chargé de réaliser une petite étude spectrale de certaines données d'impédances. Dans un premier temps je suis partie sur le travail suivant : les données en questions sont simplement des vecteurs 1 colonne. Par exemple valeurs_Imp1 un tel vecteur. Mon tuteur m'a demandé d'utiliser les fonctions psd et detrend afin d'obtenir le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeurs_Imp1_psd_1=psd(detrend(valeurs_Imp1),2048,1);
    Cependant je ne comprends pas très bien ce que je fais ainsi. A l'aide de detrend, il semble qu'on retire au vecteur valeurs_Imp1 sa valeur moyenne puis à l'aide de psd on calcule la densité spectrale de puissance sur une durée 2048. Est-ce exacte ? Pourriez-vous m'en dire plus sur ce que fait la ligne précédente. De plus, pourriez-vous me dire pourquoi l'axe des abscisses est gradué jusqu'à 1200 si je fais un plot d'une courbe psd. Je ne comprends pas comment les valeurs en abscisses sont construites.

    Je fais ceci pour 6 vecteurs différents puis je visualise les résultats comme suit seulement entre les fréquences 2 et 10 puisque le reste des signaux ne nous intéresse pas :

    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
    figure(1)
    plot(valeurs_Imp1_psd_1(2:10),'c')
    hold on
    plot(valeurs_Imp2_psd_1(2:10),'r')
    hold on
    plot(valeurs_Imp3_psd_1(2:10),'g')
    hold on
    plot(valeurs_Imp4_psd_1(2:10),'b')
    hold on
    plot(valeurs_Imp5_psd_1(2:10),'k')
    hold on
    plot(valeurs_Imp6_psd_1(2:10),'m')
    hold on
    title('DSP des impédances pour un patient donné')
    legend('Imp1','Imp2','Imp3','Imp4','Imp5','Imp6','Location','NorthEast')
    xlabel('fréquences')
    ylabel('impédances')
    Ce qui nous donne par exemple :



    Ce qui m'intéresse c'est de filtrer les signaux obtenus à l'aide d'un passe-bas par exemple. La fréquence de coupure sera là où je trouve le plus petit minimum d'une courbe donnée mais pour cela je pense me débrouiller par la suite. Pour l'instant disons par exemple que je veuille filtrer une des courbes à partir de la fréquence 2 : tout ce qui est supérieure à 2 est enlevé des courbes, le reste étant conservé. Comment mettre en oeuvre un tel passe-bas ?

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Je viens d'essayer quelque chose naïvement en construisant le filtre suivant inspiré de la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function X=filtre_passe_bas(Y)
    fs=50;
    Wn=2*2/fs;
    b=fir1(1,Wn);
    % X=freqz(b,1);
    X=filter(b,1,Y);
    J'ai choisi fs=50 "au hasard" ; mes données sont échantillonnées à 1Hz mais fs=1 ne fonctionne pas. Si j'essaye ce filtre il fait bien quelque chose mais j'ignore quoi. En fait ce que je voudrais mettre en oeuvre c'est le filtre passe-bas de fréquence de coupure 2. Par exemple pour la courbe noire ci-dessus je ne veux pas conserver tout ce qui va au-delà de 2 sur l'axe des abscisses.

Discussions similaires

  1. [pburg] Estimation de la densité spectrale de puissance
    Par sousou2007 dans le forum Signal
    Réponses: 1
    Dernier message: 03/11/2008, 21h45
  2. Tracé de densité spectrale de puissance
    Par sousou2007 dans le forum Signal
    Réponses: 1
    Dernier message: 29/10/2008, 17h38
  3. Réponses: 14
    Dernier message: 02/04/2008, 18h44
  4. Priodogramme et densité spectrale de puissance
    Par legreg2 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/01/2008, 16h56
  5. densité spectrale de puissance
    Par yoann_deygas dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 12/06/2007, 12h42

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