Voici des scripts permettant de faire le calcul du rapport signal-bruit dans matlab ou SNR(Signal Noise Ratio):
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
Partager