Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > MATLAB > Téléchargez
Téléchargez Récupérez et commentez les sources et outils mis à disposition par la rubrique MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/07/2009, 22h38   #1
mihaispr
Membre extrêmement actif
 
Avatar de mihaispr
 
Inscription : décembre 2008
Messages : 1 025
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1 025
Points : 750
Points : 750
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 :
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
mihaispr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2009, 19h11   #2
bibed
Invité de passage
 
Inscription : avril 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 13
Points : 4
Points : 4
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 :
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
bibed est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h17.


 
 
 
 
Partenaires

Hébergement Web