11
Travaux Pratiques I : Quantification & Codage Exercice 1 : A/ Codifier la fonction y = c_midriser(N,x) déterminant la sortie d’un quantificateur uniforme de N bits et de marge dynamique entre -1 et 1 quand à l’entrée du quantificateur se trouve le vecteur des échantillons x. * Code principal: B / Codifier la fonction x_rec = d_midriser(N,y) déterminant la sortie d’un déquantificateur midriser uniforme de N bits et marge entre -1 et 1, quand-t- à l’entrée du déquantificateur se trouve un vecteur binaire où chaque N échantillons représente une valeur à reconstruire. Commandes : function[y]=c_midriser(x ,N) z =sin(x) q=quantification(z,N) Xpcm=bin_enc(q,N) y=par2ser(Xpcm) end function [Y]=quantification(x,N) d=2/(2^N) vect=[(-1+d/2):d:(1-d/ 2)] for i=1:length(x) [val,ind]= min(dist(x(i),vect)) Y(i)=vect(ind) end

Travaux Pratiques 1

Embed Size (px)

Citation preview

Page 1: Travaux Pratiques 1

Travaux Pratiques I   : Quantification & Codage

Exercice 1   :

A/ Codifier la fonction y = c_midriser(N,x) déterminant la sortie d’un quantificateur uniforme de N bits et de marge dynamique entre -1 et 1 quand à l’entrée du quantificateur se trouve le vecteur des échantillons x.

* Code principal:

B / Codifier la fonction x_rec = d_midriser(N,y) déterminant la sortie d’un déquantificateur midriser uniforme de N bits et marge entre -1 et 1, quand-t- à l’entrée du déquantificateur se trouve un vecteur binaire où chaque N échantillons représente une valeur à reconstruire.Commandes :

function x_rec = d_midriser(N,y) x_bin = ser2par(y,N) x_rec = bin_dec(x_bin)end

function[y]=c_midriser(x,N) z =sin(x)

q=quantification(z,N)Xpcm=bin_enc(q,N)y=par2ser(Xpcm)

end

function [Y]=quantification(x,N)d=2/(2^N)vect=[(-1+d/2):d:(1-d/2)]

for i=1:length(x) [val,ind]= min(dist(x(i),vect)) Y(i)=vect(ind)

end

Page 2: Travaux Pratiques 1

C/ La reconstruction pour N=3:

Visualisation du signal d’entrée choisi comme sinusoïde ; son signal quantifié et l’erreur de quantification :

0 200 400 600 800 1000 1200-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Signal d'entrée

Erreur de quantification

Signal quantifié

Remarque   :

On remarque que le signal quantifié sur 3 bits a introduit un taux d’erreur remarquable.

x=[0:0.01:10]s = sin(x)y= c_midriser(x,3);x_rec = d_midriser(3,y);hold onplot(s)plot(x_rec,'r')err =s-x_recplot(err,'g') %l'erreur de quantification

Page 3: Travaux Pratiques 1
Page 4: Travaux Pratiques 1

Exercice 2   :

A / Codification de la fonction x=Sinus2(M,A,f0) générant un vecteur x qui contient M échantillons d’une sinusoïde d’amplitude A et de fréquence f0.

Pour 100 échantillons d’une sinusoïde de fréquence f0=0.03 et d’amplitude A=1, on aura:

0 10 20 30 40 50 60 70 80 90 100-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

signal sinusoidal

La sortie du quantificateur déquantificateur, La sinusoïde et le bruit de quantification pour

N = 3 et N = 8.

function x =Sinus2(M,A,f0)y = -30:60/(M-1):30;x=A*sin(2*pi*f0*y);plot(x)end

Page 5: Travaux Pratiques 1

0 10 20 30 40 50 60 70 80 90 100-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

signal quantifié

Sinus2Erreur de quantification

pour N=3

Erreur de quantificationpour N=8

Remarques   : Pour N=3 La différence entre le signal initial et celui reçu est

considérable et de l’ordre de 0.1. Pour N=8 La différence entre le signal émis à l'entrée du quantificateur

x et le signal reçu x_rec est négligeable et tend vers 0.

Conclusion   : Plus on augmente le nombre de bits pour la quantification, plus l’erreur

de quantification et la dispersion du signal diminue ce qui est prouvé par N=8.

Exercice 3   :

A/ Calcul de la puissance du bruit de quantification théorique et expérimentale en dB pour des valeurs de N allant de 1 à 10 d’un signal sinusoïdal échantillonné (M = 1000).

Page 6: Travaux Pratiques 1

Visualisation des deux puissances de bruit théorique et expérimentale :

1 2 3 4 5 6 7 8 9 10-70

-60

-50

-40

-30

-20

-10

0Puissance en dB

puissance expérimentale

puissance théorique

Remarque   : On remarque que la valeur de la puissance expérimentale du bruit converge

avec celle théorique dans le sens des n élevés donc on doit choisir n assez grand pour avoir des pertes minimes au niveau du canal.

On remarque que les deux courbes sont superposées à partir des valeurs supérieures à 8.

function[puis,puis_theorique]= puissance(M,A,f0) x= Sinus2(M,A,f0)

for N= 1:10y=c_midriser(x,N);x_rec=d_midriser(N,y);b=x-x_rec;∆=2^(1-N)puis(N)= sum((abs(b)).^2)/length(x)puis_theorique(N)= (∆^2)/12

end ;puisdB= 10*log10(puis) ;puis_theoriquedB=10*log10(puis_theorique) ;hold on

plot(puisdB);plot(puis_theoriquedB);

Page 7: Travaux Pratiques 1

Canal BinaireQuantificateur

Déquantificateur

xser yb yx

Conclusion   : Afin de rendre la transmission du train de bits plus fidèle et performante on a intérêt à augmenter le nombre de bits de quantification.

Exercice 4   :

Signal

de sortie

function [moyenne ,y]=canalbinaire(N,Pe)x = sinus2(100,1,0.03)xser = c_midriser(x,N);yb = chan_bin(xser,Pe);y = d_midriser(N,yb);

hold on;plot(x), title('Canal binaire avec probabilité d’’erreur');plot(y);

moyenne= 0;err = (x-y);

for i = 1:10 moyenne = moyenne+sum((abs(err)).^2)/length(err);end;

moyenne = moyenne/10;puissance= sum((abs(err)).^2)/length(err);

Signald’entrée

Page 8: Travaux Pratiques 1

On a exécuté la fonction canalbinaire(3,0.001), d’où la puissance du bruit en dB vaut -22.1237 dB Et la puissance du bruit de quantification de l’exercice précédent est -22.0761dB Remarque   : On remarque que la puissance du bruit du canal binaire avec probabilité d’erreur de transmission (0.001) est plus grande que celle du canal de l’exercice3 qui est parfait et sans perturbation de transmission qui introduit du bruit.

Visualisation du signal d’entrée x et de sortie y d’un canal binaire :

0 10 20 30 40 50 60 70 80 90 100-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Canal binaire avec probabilité d'erreur

Signal de sortie

Signal d'entrée

Bits eronnés

Remarque   : En visualisant le signal de sortie d’un canal binaire, on aperçoit l’apparition des piques, ce sont des symboles erronés qui reflètent des pertes au niveau de la puissance ;ces pertes sont plus importantes si la probabilité d’erreur de canal augmente.

Exercice 5   :

function[]= puissancebruit(N)x = sinus2(100,1,0.03);xser = c_midriser(x,n);Pe = [1E-1 1E-2 1E-3 1E-4 1E-5 1E-6]

for i=1:6 for j=1:10 yb = chan_bin(xser,Pe(i)); x_rec = d_midriser(n,yb); err = (x-x_rec); p(j) = sum((abs(err)).^2)/length(x) end; puismoy(i)=sum(p)/10;end;

plot(puismoy),title('Puissance de bruit en fonction de Pe');

Page 9: Travaux Pratiques 1

Visualisation de la puissance du bruit en fonction de la probabilité d’erreur Pe pour N=3 , N=8

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18Puissance de bruit en fonction de Pe

puissance de bruit pour N=3

puissance de bruit pour N=8

Page 10: Travaux Pratiques 1

Remarques   :

On fixe le nombre de bits de quantification N, on constate que la puissance du bruit du canal

diminue pour des probabilités d’erreur décroissantes. On remarque que la puissance de bruit pour N=3 est plus grande que celle de

N=8 pour des probabilités d’erreur supérieure à 1E-2

Conclusion   :

Pour clore, on s’aperçoit que Le choix du nombre de niveaux de décision de la quantification influence la sensibilité du signal au bruit.Donc pour réduire les pertes on minimise les probabilités d’erreur du canal et on maximise le nombre de niveau de décision.