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
    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
    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