Nothing Special   »   [go: up one dir, main page]

Compte Rendu Tp1 CN Word

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 15

TP de communications numériques

TP1 : ECHANTILLONNAGE ET QUANTIFICATION

Le but du TP: est de comprendre les notions d'échantillonnage et de quantification en les im-
plémentant, et d'étudier les divers phénomènes qui leur sont liés. Nous verrons le cas le plus
simple de quantification d'un simple. d'un simple signal sinusoïdal a diverses fréquences afin
de mettre en évidence le phénomène d'aliasing. Nous étudierons aussi l'écrêtage (phénomène
qui survient lorsque l'amplitude du signal d'entrée est trop élevée) ainsi que l'influence du
nombre de bits de codage sur le bruit de quantification.

 Réalisé par :
MOUSLI ABDERRAHMANE
AKROUR LYES
DJIDEL ASMAA

 Enseignant de TP :
 Mr DEMRI

Faculté d’électronique et d’informatique Département de Telecom


PARTIE I : ECHANTILLONNAGE:
1- Les données :

Un signal sinusoïdal défini : s(t) = A*sin( 2*pi*f0*t) , avec: A=1V et f0=1000 hz.

 I-1- Création de trois versions échantillonnées de s(t) pour :


Fe1=1500Hz, Fe2=2000Hz et Fe3 = 3000Hz

 Sous matlab on effectue le programme suivant:


clear all ; close all
F0=1000, T0=1/F0
A=1
Fe1=1500, Te1=1/Fe1
t1=0:Te1:1
s1=A*sin(2*pi*F0*t1) %signal associé à la fréquence F1
Fe2=2000, Te2=1/Fe2
t2=0:Te2:1
s2=A*sin(2*pi*F0*t2) %signal associé à la fréquence F2
Fe3=3000, Te3=1/Fe3
t3=0:Te3:1
s3=A*sin(2*pi*F0*t3) %signal associé à la fréquence F3
plot(t1,s1,'r',t2,s2,'b',t3,s3,'g')
xlim([0,2*T0])

 En exécutant le programme on obtient la figure suivante représentant les trois signaux tracés
sur le même graphe pour déférentes Fe:

Figure 1: trois versions échantillonnées de s(t)en fonction de


1-2-La période de chaque signal :
de chaque signal : t[s]
 Signal s1 : c’est le signal en "rouge" d’où: T1=2ms.
 Signal s2 : c’est le signal en "bleu" d’où: T2=0ms.
 Signal s3 : c’est le signal "vert" d’où: T3=1ms.

On constate que :Le signal "s3" est le plus juste car il respecte la lois de Shannon qui dit que la
fréquence d'échantillonnage doit être strictement supérieure à deux fois la plus grande fré-
quence Fe> 2fmax=2f0.

1-3- Le nombre d’échantillons de chaque signal :

Formule générale 
générale : n=Fe/F0

 Signal s1 
s1 : n1=Fe1/F0=1500/1000=1.5 donc 1 échantillon.
 Signal s2 
s2 : n2=Fe2/F0=2000/1000=2 échantillons.
 Signal s3 
s3 : n3=Fe3/F0=3000/1000=3 échantillons.
 Interprétation des valeurs :

Pour Fe1=1500hz<2*Fmax on a un seul échantillon et le Signal est mal échantillonné donc Pour
éviter l'apparition de ces fréquences de repliement, il faut respecter le principe du théorème de
Shannon disant qu'il faut au moins 2 échantillons pour décrire un signal sinusoïdal ou
Fe>2*Fmax comme le cas du signal s3

1-4- Le signal semble nul lorsque Fe=2000Hz:

Le signal semble nul pour Fe2 car la fonction sin est nul pour Te2 :
S2(t2) =sin(2Pi*1000*(1/2000))=sin(pi)=0

 I-2-Création de la quatrième version échantillonnée de s(t)

on a : Fe4 = 100000 Hz
Le programme :
clear all ;close all
F0=1000, T0=1/F0
A=1
Fe1=1500, Te1=1/Fe1
t1=0:Te1:1
s1=A*sin(2*pi*F0*t1)
Fe2=2000, Te2=1/Fe2
t2=0:Te2:1
s2=A*sin(2*pi*F0*t2)
Fe3=3000, Te3=1/Fe3
t3=0:Te3:1
s3=A*sin(2*pi*F0*t3)
Fe4=100000 , Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
 Dans le même graphe précédent la 4eme version est représentée dans la figure sui-
vante (couleur jaune)

Figure 2: quatre versions échantillonnées de s(t)


 Comparaison avec les trois signaux précédents :

 La période: D’après la figure le signal en jaune correspond à ce signal (s4) ayant une
période: T4=1ms.
 Le nombre d’échantillons:
on a : Signal s4: Fe4/ f0= 100échantillon.
On remarque que :
Fe4>Fe3>Fe2>Fe1 echan4>echan3>echan2>echan1

On constate que

Par Comparaison avec les signaux 


signaux précédents on constate que 
que plus la fréquence d’échantillon-
nage est beaucoup supérieure à 2Fmax plus le nombre d’échantillons augmente donc on aura
un meilleur échantillonnage et Pas des fréquences artificielles qui ne sont pas représenta-
tives
 du notre
I-3-Les signal.  de chaque graphe :
spectres
Le programme :

clear all,close all

F0=1000
T0=1/F0
A=1
Fe1=1500
Te1=1/Fe1
t1=0:Te1:1
s1=A*sin(2*pi*F0*t1) %signal associé a la frequence F1
Fe2=2000, Te2=1/Fe2
t2=0:Te2:1
s2=A*sin(2*pi*F0*t2) %signal associé a la frequence F2
Fe3=3000, Te3=1/Fe3
t3=0:Te3:1
s3=A*sin(2*pi*F0*t3)%signal associé a la frequence F3
Fe4=100000, Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4) %signal associé a la frequence F4

%spectre du signal s1
L1=length(s1) % longueur du signal s1
NFFT1 =2^nextpow2(L1)
Y1=fft(s1,NFFT1)/L1;
f1=Fe1/2*linspace(0,1,NFFT1/2+1);
%spectre du signal s2
L2=length(s1) % longueur du signal s2
NFFT2 =2^nextpow2(L2)
Y2=fft(s2,NFFT2)/L2;
f2=Fe2/2*linspace(0,1,NFFT2/2+1);
%spectre du signal s3
L3=length(s3) % longueur du signal s3
NFFT3=2^nextpow2(L3)
Y3=fft(s3,NFFT3)/L3;
f3=Fe3/2*linspace(0,1NFFT3/2+1);
%spectre du signal s4
L4=length(s4) % longueur du signal s4
NFFT4 =2^nextpow2(L4)
Y4=fft(s4,NFFT4)/L4;
f4=Fe4/2*linspace(0,1,NFFT4/2+1);

%les figures
subplot(2,2,1),plot(f1,abs(Y1(1:NFFT1/2+1)))
xlabel('frequency[hz]');ylabel('Y1')
subplot(2,2,3),plot(f2,abs(Y2(1:NFFT2/2+1)))
xlabel('frequency[hz]');ylabel('Y2')
subplot(2,2,2),plot(f3,abs(Y3(1:NFFT3/2+1)))
xlabel('frequency[hz]');ylabel('Y3')
subplot(2,2,4),plot(f4,abs(Y4(1:NFFT4/2+1)))
xlabel('frequency[hz]');ylabel('Y4')
En exécutant le programme: on aura :

Figure 3: le tracé des spectres associés aux 4 signaux

LES SIGNAUX Y2 et Y4 SEMBLE NUL PAR CONTRE Y1 pour Fe="1500hz",


la raie est à "500 hz" et Y3 pour Fe="3000hz" la raie est à "1000 hz"

On constate que : le troisième signal est le plus juste car sa raie est a 1000hz=f0

4-: non, il faut respecter la loi de Shannon fe>2fmax


PARTIE II :QUANTIFICATION:

II.1- la variable double peut être stocker


de -1037 a 1037 donc c 1037*2 = C++ ,,,,,For floating-point numbers, MATLAB uses 4
or 8 bytes for single and double types.

II.2-Calcul du Pas de Quantification pour n1=8 états :


On a : q=2/n1= 0.25

II.3 Quantification linéaire non centrée en utilisant un arrondi par défaut :


 Sous matlab on effectue le programme suivant:
Fe4=100000
Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4) %signal original
n1=8
q=2/n1
S4q=floor(s4/q)*q %signal quantifié
plot(t4,s4,t4,S4q)

 En exécutant le programme La figure suivante représente le graphe du signal résultant sur le


graphe du signal original 

Figure4 : signal quantifié sur le signal original


 Le nombre de niveau obtenu : d'âpres la figure on a: 9 niveaux.
 Par comparaison du signal originale et celui quantifier on constate que  ce dernier
atteint l’amplitude maximale A=1 avec 9 états et ce n’est pas le cas pour q=0,25.

II-4-correction du problème :
 Pour corriger le problème on a utilisé les fonctions min et max afin de simuler l’écrêtage du
signal :

Programme sous matlab  :

Fe4=100000
Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
n1=8
q=2/n1

S4q=floor(s4/q)*q
S4q=min(S4q,1-q)
S4q=max(S4q,-1)
plot(t4,s4,t4,S4q)

 La figure suivante représente le signal résultant après cette correction :

Figure5 : nouveau signal quantifié sur le signal original

 le nombre de niveau est de 8niveau.


II.5-On a doublé l’amplitude de signal d’entrée : La figure suivante représente le
signal quantifié après cette opération :

Figure6 : signal quantifié sur le signal original avec A=2

On remarque que c’est le meme signal quantifié malgrés la doublure de l’amplitude du signal original

 II.6- calcule du signal d’erreur de quantification Pour A=1 et du SNR :


Programme sous matlab :
Fe4=100000, Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
n1=8, q=2/n1, A=1
S4q=floor(s4/q)*q
S4q=min(S4q,1-q)
S4q=max(S4q,-1)
%l'Erreur
E=s4-S4q
plot(t4,s4,t4,S4q,t4,E)
xlim([0,2*T0])
%Calcul du SNR
L4=length(s4)
PS=sum(s4.^2)/L4
PE=sum(E.^2)/L4
SNR=10*log10(PS/PE);
 La figure suivante représente le signal d'erreur avec les signaux quantifiés et original

Figure7 : tracé des signaux : quantifié, signal original et le signal d'erreur

 Le SNR est de : 13.5935 (sans unité).

 II.7-on effectue une quantification linéaire centré (avec écrêtage) :


Programme sous matlab :

F0=1000, T0=1/F0
A=1
Fe4=100000, Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
n1=8, q=2/n1

S4q2=floor(s4/q)*q+q/2;
S4q2=min(S4q2,1-q/2);
S4q2=max(S4q2,-1+q/2);
plot(t4,s4,t4,S4q2)
xlim([0,2*T0])
 le graphe représentant le signal quantifié avec l’original :

Figure8 : signal quantifié sur le signal original

Comparaison avec le signal de la question 3  3 : Par comparaison du signal obtenue avec
celui de la question 3 on remarque que la différence est au niveau de Vmin et Vmax de si-
gnal quantifié .

 II.8- On calcule le signal d’erreur pour cette quantification et le représenter


sur le même graphe et on calcule aussi le SNR
Programme :
F0=1000, T0=1/F0 , A=1
Fe4=100000, Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
n1=8, q=2/n1
S4q2=floor(s4/q)*q+q/2;
S4q2=min(S4q2,1-q/2);
S4q2=max(S4q2,-1+q/2);
E2=s4-S4q2 % l'Erreur
plot(t4,s4,t4,S4q2,t4,E2)
xlim([0,2*T0])
L4=length(s4)
PS=sum(s4.^2)/L4
PE2=sum(E2.^2)/L4
SNR2=10*log10(PS/PE2)
Figure9 : signal erreur avec le signal original

la valeur rendu du SNR est de:

 SNR = 19.0401

 II.9- Réalisation d’une quantification linéaire centrée sur 16 états :


Programme sous matlab :

n2=16
q=2/n2
F0=1000
T0=1/F0
A=1
Fe4=100000
Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
S4q2=floor(s4/q)*q+q/2;
S4q2=min(S4q2,1-q/2);
S4q2=max(S4q2,-1+q/2);
plot(t4,s4,t4,S4q2)
xlim([0,2*T0])
Figure10 :signal quantifié centrée 16 états avec le signal original

Comparaison :
Ce signal avec le signal de la question 7: Vmax et Vmin du signal s(t) sont identiques

Ce signal avec le signal de la question 3 : Vmax et Vmin du signal s(t) sont différents

-on calcule du signal d’erreur de quantification et le SNR :


n2=16
q=2/n2
F0=1000 , T0=1/F0, A=1
Fe4=100000, Te4=1/Fe4
t4=0:Te4:1
s4=A*sin(2*pi*F0*t4)
S4q2=floor(s4/q)*q+q/2;
S4q2=min(S4q2,1-q/2);
S4q2=max(S4q2,-1+q/2);
plot(t4,s4,t4,S4q2)
xlim([0,2*T0])
E3=s4-S4q2
plot(t4,s4,t4,S4q2,t4,E3)
xlim([0,2*T0])
L4=length(s4)
PS=sum(s4.^2)/L4
PE3=sum(E3.^2)/L4
SNR3=10*log10(PS/PE3)
Figure11 : signal d’erreur de quantification

 La valeur du SNR est: SNR3=24.9739

Conclusion:
Si n (nombre d’état) augmente ,le SNR augmente et le bruit diminue donc il y’a une rela-
tion de corrélation directe entre le SNR et le Nombre d’état
PARTIE III:codage

Fe1=1500, Te1=1/Fe1
t1=0:Te1:1
F0=1000, T0=1/F0
A=1
s1=A*sin(2*pi*F0*t1) %signal associé a la frequence F1
Fe2=2000
Te2=1/Fe2
t2=0:Te2:1
s2=A*sin(2*pi*F0*t2) %signal associé a la frequence F2
Fe3=3000
Te3=1/Fe3
t3=0:Te3:1
s3=A*sin(2*pi*F0*t3)%signal associé a la frequence F3
partition=[-1:.2:1]
codebook=[-1.2:.2:1]
[index,quants]=quantiz(s1,partition,codebook)
plot(t1,s1,t1,quants),xlim([0,2*T0])

Figure12 :signal s1 codé

Vous aimerez peut-être aussi