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 :

Calculer une densité spectrale de puissance en unité^2/Hz au lieu de dB/Hz


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Calculer une densité spectrale de puissance en unité^2/Hz au lieu de dB/Hz
    Bonjour à tous,

    J'ai cherché sans résultats....Je cherche à calculer une densité spectrale de puissance en "unité"^2/Hz, où "unité" est l'unité du signal au lieu de dB/Hz qui semble être la méthode de calcul par défaut. Par exemple, si le signal est une accélarétion en fonction du temps ce qui est mon cas, il me faudrait avoir les valeurs en "accélération"^2/Hz et non en dB (d'ailleurs matlab prend quelle référence poour la conversion en dB ????).

    Autre question: je me demande d'ailleurs comment récupérer les données concernant les abscisses et les ordonnées afin de pouvoir exporter tout ça vers un autre logiciel.


    Je vous remercie par avance pour votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    matlab ne calcule que ce que tu lui demande de calculer ? donc pas de conversion sans demande de conversion !!
    Tu utilise une fonction déjà faite ? peut tu nous la montrer ?
    ou une fonction que t'a programmée ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    C'est une fonction toute faite. J'ai potassé l'aide et ils précisent que la fonction retourne la psd en dB/Hz.

    Voici ce que j'utilise:

    Soit le signal temporel AA, supposé gaussien, échantillonné à la fréquence 6000 Hz

    hs=spectrum.welch('rectangular',300,50);
    psd(hs,AA,'6000',fs,'NFTT',NFFT);

    et ça me sort une densité specctrale en dB/Hz..., comme indiqué dans l'aide.
    Il n'est nulle part fait mention de d'autres possibilités. Je ne demande pourtant pas quelquechose d'exotique.....Je ne comprend pas pourquoi Matlab n'offre pas la possibilité de garder la grandeur d'entrée...C'est pourtant courant d'avoir des DSP en (m/s²)²/Hz dans le domaine des vibrations...Au moins s'ils expliquaient en quoi consiste ces decibels.....10 log (puissance/Pref) ??, 20 log((signal dans le domaine fréquentiel)²/(reférence²)) et indiquaient la référence utilisée, je pourrais dans ce cas convertir moi même les valeurs, si toutefois on peut extraire des données d'un objet dspdata....ce que je n'ai pas réussi à faire....

    Merci d'avance

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    je n'ai pas trouvé de fonction psd dans ma version matlab ?
    peut être que je n'ai pas la toolbox associée !
    je te conseille de jeter un coup d'oeil à la fonction ou la poster pour trouver la fonction de conversion, à mon avis c'est du 20*log(grandeur)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    je pense que tu as la toolbox:c'est signal processing. Cette fonction psd n'est plus détaillée, sauf en tapant help dsp: ils disent dailleurs qu'elle est obsolète. Elle est pourtant utilisée puisque j'ai utilisé ce script à partir de l'aide. Ils expliquent comment tracer des dsp dans spectrum, periodogramm etc....mais le problème, c'est que j'ai déja regardé et j'ai rien trouvé....pourtant cette possibilité doit forcément exister....ou c'est à n'y rien y comprendre...

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    je n'ai pas la signal processing toolbox dans mon bureau, mais bon essaie de taper open psd dans la command window y'aura plus de details sur ta fonction peut être ..

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Bah c'est super tu m'a dépanné !

    Etant novice en matlab, j'avais pas eu l'idée d'ouvrir le fichier m de la fonction PSD. J'ai pu voir dedans l'opération que la fonction réalisait pour aboutir à ces fameux dB. Je vais donc pouvoir me faire une fonction perso !

    Encore merci !

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    content de t'avoir aidé

    a+

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut impossible de modifier le fichier psd.m
    Re bonjour.

    ça fait plus d'une heure que je m'acharne à modifier le fichier psd.m en retirant le 10*log10() sans succès !!! quand je relance psd(......), ça me rebalance la meme figure (mêmes valeurs, etc....).

    C'est normal ? Les fichiers appartenant à matlab sont-ils protégés ?????

    Merci d'avance.

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    essaie d'ouvrir un nouveau m file (copier coller )et ensuite de changer le nom de la fonction et les lignes qui t'interessent.

  11. #11
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Il vaut mieux en effet ne pas modifier les fichiers d'origine de MATLAB et plutôt faire un Save As et sauver sous un nom à toi (my_psd par exemple) dans un de tes répertoires de travail.
    Sinon quand tu as plusieurs fichiers qui portent le même nom dans des répertoires différents tu fais :Le premier qui apparait est celui qui est appelé par défaut.
    Règles du Forum

    Adepte de la maïeutique

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    merci caro pour la commande which all.

    cela renvoie à deux fichier psd.m: l'un que j'ai modifié, et un autre, qui semble s'apparenter à un fichier aide.

    j'avais décidé de modifier directement le fichier psd (en faisant un backup) parce que lorsque que je fais save as un autre nom, la fonction ne veut pas fonctionner, en prenant soin de modifier l'entête "...=nouveaunom" (elle doit faire appelle à d'innombrables autres fonctions très certainement). Au final, en ayant exploré chaque fichier psd, et en notant que seul celui qui m'interesse est désigné par matlab par défaut, ...., sachant que j'ai supprimé 10log10(), et que cela m'afffiche malgré tout un truc en 10log10, et bien je ne vois pas du tout le probleme, et je crois que c'est tres mal parti ......

    il faudrait en fait que j'arrive à récupérer le tableau de valeur avant que matlab le plot et que je modifie moi même mes valeurs .... mais j'ai l'impression que les vecteurs plotés sont des vecteurs "temporaires"..........

    Une idée ???

    Merci d'avance.

  13. #13
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    c'est normal que le save as ne marche pas car le nom de la fonction doit être le même que m file donc il faut changer le nom de ta fonction (function myfun )et ensuite l'enregistrer sous ce même nom .

    Je te conseille d'utiliser des break points pour voir là où ça cloche ( le plot reste en Db )
    bon courage a+

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    c'est ce que j'avais fait. Y'a d'autre choses qui clochent. Tant pis je laisse tomber. En tout cas merci pour tout.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Sinon j'ai trouvé ça, mais je sais pas si le script est fiable. En tout cas ça a l'air bien.

    http://www.mathworks.com/matlabcentr...bjectType=FILE

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

Discussions similaires

  1. calcul de densité spectral d'un signal
    Par jena dans le forum Signal
    Réponses: 2
    Dernier message: 15/04/2009, 13h17
  2. [pburg] Estimation de la densité spectrale de puissance
    Par sousou2007 dans le forum Signal
    Réponses: 1
    Dernier message: 03/11/2008, 21h45
  3. Tracé de densité spectrale de puissance
    Par sousou2007 dans le forum Signal
    Réponses: 1
    Dernier message: 29/10/2008, 17h38
  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