Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Djellout manel
Anabi nadjet
Groupe : 01
TP N°03 :
But de TP :
Partie 1 :
1) Calculer Rxx par corrélation et par convolution
y=[2 -1 0 1 4];
x=[-3 1 2 -1 0 1 1];
[Rxx,lags]=xcorr(x,x);
subplot(2,1,1)
plot(lags,Rxx)
grid;
x1=fliplr(x)
r=conv(x,x1)
subplot(2,1,2)
plot(lags,r)
grid;
20
10
-10
-6 -4 -2 0 2 4 6
20
10
-10
-6 -4 -2 0 2 4 6
Les 2 résultats sont les mêmes. Les 2 méthodes donnent le même résultat.
2) Calculer Rxy par corrélation et par convolution
y=[2 -1 0 1 4 0 0];
x=[-3 1 2 -1 0 1 1];
[Rxy,lags]=xcorr(x,y);
subplot(2,1,1)
plot(lags,Rxy)
grid;
r=conv(x,fliplr(y));
subplot(2,1,2)
plot(lags,r)
grid;
10
-5
-10
-15
-6 -4 -2 0 2 4 6
10
-5
-10
-15
-6 -4 -2 0 2 4 6
y=[2 -1 0 1 4 0 0];
x=[-3 1 2 -1 0 1 1];
[Rxy,lags]=xcorr(x,y);
subplot(2,1,1)
plot(lags,Rxy)
grid;
[Ryx,lags]=xcorr(y,x);
subplot(2,1,2)
plot(lags,Ryx)
grid;
10
-5
Les 2 -10
résultats sont identiques. Alors
-15
-6 -4 -2 0 2 4 6
résultat. 5
-5
4) Calculer -10
Rxx par FFT :
-15
-6 -4 -2 0 2 4 6
y=[2 -1 0 1 4 0 0];
x=[-3 1 2 -1 0 1 1];
[Rxx,lags]=xcorr(x,x);
subplot(2,1,1)
plot(lags,Rxx)
grid;
y=fft(x,length (Rxx));
c=y.*conj(y);
d=ifft(c, length (Rxx));
h=fftshift (d);
subplot(2,1,2)
plot(lags,h)
grid;
20
10
-10
-6 -4 -2 0 2 4 6
20
10
-10
-6 -4 -2 0 2 4 6
5) Calculer Rxy par fft et ifft:
y=[2 -1 0 1 4 0 0];
x=[-3 1 2 -1 0 1 1];
[Rxy,lags]=xcorr(x,y);
subplot(2,1,1)
plot(lags,Rxy)
grid;
o=fft(x,length (Rxy));
u=fft(y,length (Rxy));
c=o.*conj(u);
d=ifft(c, length (Rxy));
h=fftshift (d);
subplot(2,1,2)
plot(lags,h)
grid;
10
-5
-10
-15
-6 -4 -2 0 2 4 6
10
-5
-10
-15
-6 -4 -2 0 2 4 6
Figure 5
Les 2 résultats sont les même , alors les 2 méthodes donnent la même résultat
Partie 2 :
1) Générer N=50 échantillons d’un signal x(n) Gaussien de moyenne nulle et de variance 2
par la fonction randn de matlab. :
N=50;
x=sqrt(2)*randn(N,1);
[Rx1,lags1]=xcorr(x,x, 'biased');
[Rx2,lags2]=xcorr(x,x, 'unbiased');
subplot(2,1,1);
plot(lags1,Rx1);
grid;
subplot(2,1,2);
plot(lags2,Rx2);
grid;
-1
-50 -40 -30 -20 -10 0 10 20 30 40 50
-2
-50 -40 -30 -20 -10 0 10 20 30 40 50
L’estimateur qui parait satisfaisant est l’estimateur biased, parce que il nous donne le
signal (information) après il diminue jusqu’au 0 donc il est moins couteux en Energie
1.5
0.5
-0.5
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
-1
-2
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
a)Représenter et Vérifier a=0
N=100;
a=0;
x=sqrt(2)*randn(N,1);
y(1)=x(1);
for n=2:N;
y(n)= a*y(n-1)+x(n);
end
subplot(2,1,1);
plot(x);
grid;
subplot(2,1,2);
plot(y);
grid;
-2
-4
0 10 20 30 40 50 60 70 80 90 100
-2
-4
0 10 20 30 40 50 60 70 80 90 100
b)Calculer Rxy par xcorr en utilisant l’estimateur biaisé ‘biased’ pour 0.85 et 0.995.
N=100;
a=0.85;
x=sqrt(2)*randn(N,1);
y(1)=x(1);
for n=2:N;
y(n)= a*y(n-1)+x(n);
end
[Rxy lags]= xcorr (x,y,'biased');
subplot(2,1,1);
plot(lags,Rxy)
grid;
a=0.995;
x=sqrt(2)*randn(N,1);
y(1)=x(1);
for n=2:N;
y(n)= a*y(n-1)+x(n);
end
[Rxy lags]= xcorr (x,y,'biased');
subplot(2,1,2);
plot(lags,Rxy)
grid;
-1
-100 -80 -60 -40 -20 0 20 40 60 80 100
15
10
-5
-100 -80 -60 -40 -20 0 20 40 60 80 100
N=100;
a=0.85;
x=sqrt(2)*randn(N,1);
y(1)=x(1);
for n=2:N;
y(n)= a*y(n-1)+x(n);
end
[Rxx lags]= xcorr (x,y,'biased');
subplot(2,1,1);
plot(lags,Rxx)
grid;
a=0.995;
x=sqrt(2)*randn(N,1);
y(1)=x(1);
for n=2:N;
y(n)= a*y(n-1)+x(n);
end
[Rxx lags]= xcorr (x,y,'biased');
subplot(2,1,2);
plot(lags,Rxx)
grid;
-1
-100 -80 -60 -40 -20 0 20 40 60 80 100
-2
-4
-100 -80 -60 -40 -20 0 20 40 60 80 100
c) N=1000
2
1.5
0.5
-0.5
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
1.5
0.5
-0.5
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
1.5
0.5
-0.5
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
-1
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
Remarque :
que dans Rxx en modifiant le a rien ne change parce que
Mais dans Rxy en modifiant le a le signal change
3) Soit signal y(n)=x(n-D) à partir du signal x(n) précédent où D est un retard.
clear all
clc
N=100;
D1=zeros(15,1);
D2=zeros(35,1);
x= sqrt(2)*randn(N,1);
y(1)=x(1)
y1=[D1;x];
y2=[D2;x];
subplot(3,1,1);
plot(x)
subplot(3,1,2);
plot(y1)
subplot(3,1,3);
plot(y2)
-5
0 10 20 30 40 50 60 70 80 90 100
5
-5
0 20 40 60 80 100 120
5
-5
0 20 40 60 80 100 120 140
N=100;
a=0.85;
d1=zeros(15,1);
d2=zeros(35,1);
x=sqrt(2)*randn(N,1);
y1=[d1;x];
y2=[d2;x];
Rx1=xcorr(y1,x);
Rx2=xcorr(y2,x);
subplot(2,1,1);
plot(Rx1);
grid;
subplot(2,1,2);
plot(Rx2);
grid;
200
150
100
50
-50
0 50 100 150 200 250
200
150
100
50
-50
0 50 100 150 200 250 300
Oui on peux remarquer la valeurs de D du graphe c’est la différence entre les écarts d’où
débute le signal
4) Soit un signal bruité y(n)=s(n)+b(n) où s(n) est un signal sinusoïdal et b(n)
un bruit gaussien
N=100;
f=0.1;
A=1;
SNR1= -5;
SNR2= 10;
n= 0:N;
s=2*sin(0.2*pi*n);
bn1=awgn(s,SNR1);
bn2=awgn(s,SNR2);
subplot(3,1,1);
plot(s);
grid;
subplot(3,1,2);
plot(bn1);
grid;
subplot(3,1,3);
plot(bn2);
grid;
2
-2
0 20 40 60 80 100 120
10
-10
0 20 40 60 80 100 120
5
-5
0 20 40 60 80 100 120
Remarque :
Si change la valeur de SNR le signal déforme car du bruit .