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

Téléchargez Discussion :

Calcul du SNR (Signal Noise Ratio)


Sujet :

Téléchargez

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Calcul du SNR (Signal Noise Ratio)
    Voici des scripts permettant de faire le calcul du rapport signal-bruit dans matlab ou SNR(Signal Noise Ratio):

    Citation Envoyé par adrian07 Voir le message
    Salut à tous,

    Est ce que quelqu'un peut m'indiquer comment calculer le SNR(Rapport signal à bruit) à la réception?
    Pour calculer le rapport signal -bruit (SNR- Signal Noise Ratio) voici un petit script matlab:

    SNR.m contient:

    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
    % definir les variables amp- l'amplitude,fe-frequence
    % d'echantionnage,f-frequence,a-amplitude echantionne,n=nombre des echantions
    amp = 2;
    fes = 1000;
    f = 100;
    n = 200;
    a = 0.25;
     
    disp('Le rapport signal bruit SNR=Signal Noise Ratio est:') % afficher un message avant de calculer SNR
     
    rsz = 10*log10(amp^2/2/(2*a)^2/12) % le calcul du SNR donne par la formule; log10 c'est une fonction matlab pour lg
    disp('Echationage signal') % affichage du message avant d'echantionner les 2 signaux
    t = (0:n-1)/fes;
    sig = 2*a*rand(size(t))-a; % definir le bruit
     
    figure
    plot(t,sig) % tracer le graphique avec plot
    title ('Echantionnage du bruit') % le titre de la representation graphique
    xlabel('temps[s]') % etiquetation pour Ox
    ylabel('Amplitude[V]') % etiquetation pour Oy
    grid on  % tracer le reseau du graphique avec fonction grid on

    Ici on a as deux signaux un signal sinusoidal non-bruite (represente par la variable sig1) et un signal sinusoidal bruite (represente par la variable sig1) et dans la variable sig on fait la composition des 2 signaux et dans la variable rsz on fait le raport signal-bruit (SNR- Signal Noise Ratio):

    SNR2.m contient:

    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
    % definir les variables amp- l'amplitude,fe-frequence
    % d'echantionnage,f-frequence,a-amplitude echantionne,n=nombre des echantions
    amp = 2;
    fes = 1000;
    f = 100;
    n = 200;
    a = 0.25;
     
    disp('Le rapport signal bruit SNR(Signal Noise Ratio) est:') % afficher un message avant de calculer SNR
     
    rsz = 10*log10((amp^2/2)/((2*a)^2/12)) % le calcul du SNR donne par la formule; log10 c'est une fonction matlab pour lg 
    disp('Echantionnage des 2 signaux') % afficher un message avant echantionner les 2 signaux sig1 et sig2 
    t = (0:n-1)/fes;
     
    sig1 = 2*sin(2*pi*100*t); % definition du signal sinusoidal
    sig2 = (2*a*rand(size(t))-a); % definition du bruit
    sig = sig1+sig2; %composition des 2 signaux dans la variable sig
     
    figure
    plot(t,sig) % tracer le graphique avec plot
    title ('La sinusoide avec le bruit') % titre de la representation graphique
    xlabel('temps[s]') % etiquetation pour Ox
    ylabel('Amplitude[V]') %etiquetation pour Ox
    grid on % tracer le reseau du graphique avec fonction grid on

    Pour lancer les 2 application vous tappez SNR et SNR2 dans le command window.

    Amicalment,


    Michel

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    j'aimerai bien utiliser ton programme mais je suis débutant en MATLAB et j'aimerai avoir plus de renseignement stp.

    J'ai capturé un signal audio.wav sur MATLAB, il me le donne en forme de tableau, échantillon vs fréquence normalisé.

    A partir de la comment connaitre la valeur de:
    • amp= l'amplitude,f=frequence,a=amplitude échantillonnée,


    Merci grandement. La fonction que j'ai utilisé pour capturer le signal audio dans MATLAB est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [h,f]=wavread('nom_du_signal_audio.wav');
    h= tableau
    f= fréquence d'échantillonnage.
    J'attends vos réponses avec impatience

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2014, 07h19
  2. un programme en c pour calcul d un signal
    Par ssarah.z dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/12/2007, 21h10
  3. Calcul du SNR à partir d'une trame 802.11
    Par Kingdomofh dans le forum Développement
    Réponses: 2
    Dernier message: 12/03/2007, 09h45
  4. Peak Signal Noise Ratio
    Par Flow_75 dans le forum Signal
    Réponses: 3
    Dernier message: 10/11/2006, 15h02

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