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 :

Rapport signal sur bruit


Sujet :

Signal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Rapport signal sur bruit
    Bonjour,
    Avec des enregistrements sismiques on doit essayer de faire un rapport signal sur bruit. Donc pour cela on regarde les parties du signal en bruit et en signal. On définit ainsi nos fenetre qui n'ont pas le même taille. Pour qu'elles l'aient on rajoute des zéro à celle pour qui il manque des points. Puis un calcul la FT, on normalise et on lisse puis on fait le rapport signal sur bruit. Le problème c'est que la forme du rapport qu'on obtient n'est pas bonne. En plus au début, toutes les valeurs du rapport sont égles à 1. Il y a surement un soucis dans le code mais on voit pas où! Voici le code pour si jamais vous pensez pouvoir nous aider dessus.
    Merci beaucoup,
    Tahoser


    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    %%%pas en fréquence %%%%
    pas=1/(Zu.npts*Zu.delta);
     
    P=Zu.trace;
     
    %%% Selection des fenêtres signal
     
    Psnew=P(1049:5759);
     
    %%% Selection des fenêtres bruit
     
    Pbnew=P(1:1040);
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%% En fréquence %%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    %%% vérifier longueur point%%%
    n=1;
    while 2^n<length(Psnew);
        n=n+1;
    end;
    corr=2^n;
    plus=corr-length(Psnew);
    ajout=zeros(plus,1);
    newPs=vertcat(Psnew,ajout);
    N=length(newPs);
     
    plusa=N-length(Pbnew);
    ajouta=zeros(plusa,1);
    newPb=vertcat(Pbnew,ajouta);
    Na=length(newPb);
     
    %%%% Transformée de fourier
    PSf=fft(newPs);
    PBf=fft(newPb);
     
    %%%% Selection d'une partie
    Sf=PSf(1:length(PSf)/2-1);
    Bf=PBf(1:length(PBf)/2-1);
    dureeS=length(Sf)*Zu.delta;
    dureeB=length(Bf)*Zu.delta;
     
    %%%% Module
    dt=Zu.delta;
    l=length(Sf);
    if nargin<2
            dk=1/l;
    else
            dk=1/dt/l;
    end
    t=0:dk:(l-1)*dk;
     
    TFS=horzcat(reshape(t,[length(t),1]),abs(Sf));
     
    dt=Zu.delta;
    l=length(Bf);
    if nargin<2
            dk=1/l;
    else
            dk=1/dt/l;
    end
    t=0:dk:(l-1)*dk;
     
    TFB=horzcat(reshape(t,[length(t),1]),abs(Bf));
     
     
     
    %%% Normalization pour même longueur
    Psnorma=TFS./sqrt(dureeS);
    Pbnorma=TFB./sqrt(dureeB);
     
     
    %%%Lissage
    Pslisse=smooth(Psnorma);
    Pblisse=smooth(Pbnorma);
     
     
    %%%% Rapport signal sur bruit
     
    SB=Pslisse./Pblisse;
    plot(pas*(0:length(SB)-1),SB);
    hold on; plot([0 length(SB)*pas], [3 3],'g');

  2. #2
    Membre du Club Avatar de legreg2
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 61
    Points : 68
    Points
    68
    Par défaut Problème sur le lissage
    Voila ce que j'ai compris:
    les matrices TFS et TFB contiennent, sur la première colonne le temps (ou fréquence ?), et sur la deuxième ta Transformé de Fourier.


    Ensuite, tu normalises et tu lisses toutes ta matrice, or je pense que tu ne voulais normaliser et lisser seulement les transformées de Fourier.
    Il faudrait donc normaliser et lisser seulement la deuxième colonne de TFS et TFB.

    Les matrices TFS et TFB sont de tailles 4095*2 et tes matrices Pslisse et Pblisse sont de taille 8190*1 : tu as lisser également le temps (ou la fréquence).



    Les "1" que tu trouves bizarre proviennent du rapport entre tes deux premières colonnes(identiques) qui correspondent au temps (ou à la fréquence)...



    Autre chose : tu as ajouter des zeros pour compléter tes matrices, newPb et newPs ont la même taille, les transformées de Fourier auront également la même taille. Ca ne sert à rien de séparer en deux ton programme.


    J'espère que tu as compris ce que j'ai raconté...


    Greg

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/07/2013, 16h54
  2. HNR rapport harmonique sur bruit
    Par red4000 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 25/06/2013, 21h13
  3. rapport signal sur bruit d'une image
    Par pikinos dans le forum Images
    Réponses: 4
    Dernier message: 10/12/2009, 14h47
  4. Rapport signal sur bruit d'une image
    Par pasqual dans le forum OpenCV
    Réponses: 1
    Dernier message: 20/12/2008, 15h19
  5. [Signal] Méthode pour augmenter le rapport signal/bruit
    Par sango85 dans le forum Traitement du signal
    Réponses: 48
    Dernier message: 16/07/2007, 08h46

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