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