Vous êtes sur la page 1sur 11

Compte-rendu n°1

TP Transmission Numérique

Réalisé par :
Wael BEN SALAH

Groupe:
INDP2-D

Année Universitaire :
2016/2017

1
Fichier « filtre.m »

function [g ] = filtre( Tb, alpha,t)


g=(1/sqrt(Tb))*((sin((pi*t/Tb)*(1-
alpha))+((4*alpha*t/Tb).*cos((pi*t/Tb)*(1+alpha))))./((pi*t/Tb).*(1-
(4*t*alpha/Tb).^2)));
end

Fichier « main.m »
Partie 1 :
clc
clear all:
close all ;

%% partie 1
N =8; % Longueur de la séquence à générer
R =randint(N,1);
A=2; % Amplitude des symboles
R1 = (R*2*A)-A ;

f=8 ;

Tb= 1;
fe = f/Tb ; %Fréquence d'échantillonnage

z=zeros(1,(N-1)*f+1);

z(1:f:(N-1)*f+1)=R1 ;

axe=1:(N-1)*f+1;
figure (9)
scatter(axe,z) ;

2
Partie 2 :
Tb= 1;
alpha1=0.1;
alpha2=0.25;
alpha3=0.9;

%% 1)
syms t ;
f1=filtre(Tb,alpha1,t) ;
f2=filtre(Tb,alpha2,t) ;
f3 = filtre(Tb,alpha3,t ) ;

L11=eval(limit (f1,t,0))
L12=eval(limit(f1,t,(Tb/(4*alpha1))))
L13=eval(limit(f1,t,(-Tb/(4*alpha1))))

L21=eval(limit (f2,t,0));
L22=eval(limit(f2,t,(Tb/(4*alpha2))))
L23=eval(limit(f2,t,(-Tb/(4*alpha2))))

L31=eval(limit (f3,t,0));
L32=eval(limit(f3,t,(Tb/(4*alpha3))))
L33=eval(limit(f3,t,(-Tb/(4*alpha3))))

%% 2)
K=8 ; %Demi-mesure normalisée de l'intervalle considéré
axe=-K*Tb:1/K:K*Tb ;

v1=filtre(Tb,alpha1,axe) ;
v2=filtre(Tb,alpha2,axe) ;
v3=filtre(Tb,alpha3,axe) ;

v1(find(axe==0))=L11;
v1(find(axe==Tb/(4*alpha1)))=L12 ;
v1(find(axe==-Tb/(4*alpha1)))=L13 ;

v2(find(axe==0))=L21;
v2(find(axe==Tb/(4*alpha2)))=L22 ;
v2(find(axe==-Tb/(4*alpha2)))=L23 ;

v3(find(axe==0))=L31;
v3(find(axe==Tb/(4*alpha3)))=L32 ;
v3(find(axe==-Tb/(4*alpha3)))=L33 ;

%% 3)
figure (1)
plot(axe,v1, 'blue')
xlabel ('g(t)')
ylabel ('t')
title ('Evolution de l echantillon g(t) en fonction du temps')
hold on ;
plot(axe,v2,'green')
plot(axe,v3,'red')

3
%% 4)
E1=sum(v1.^2) % =8
E2=sum(v2.^2) % =8
E3=sum(v3.^2) % =8

ech1=conv (v1, R1)


ech2=conv (v2, R1)
ech3=conv (v3, R1)

figure (2)
plot(ech1,'blue')
xlabel ('e(t)')
ylabel ('t')
title ('Evolution de l echantillon e(t) en fonction du temps')
hold on
plot(ech2,'green');
plot(ech3,'red') ;

4
Partie 3:
% 1)
B = randn (1, length(ech1)) % Bruit blanc Gaussien
% 2)
Eb= A.^2 * f;
RSB = 5; %en dB
N0 = A^2*f*10^(-RSB/10)
B = sqrt (N0/2)*B

Partie 4:
% 1) les filtres adaptés gr(t) = g(t0-t)=g(-t)= g(t)
syms alpha ; syms t;
h=filtre(1,alpha,t);
% 2)
N=10;
F=8;
A=1;
Ts=1;
Tb=1;
K=8;

%% Pour alpha =0.1


alpha=0.1;
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
%Les limites:
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));

%Déterminer les cas extremes:


axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

%Détermination de r(t) et z(t)


r1=conv(S,v1); % r(t) : le signal après la mise en forme avec le filtre
adapté
z1=conv(r1,v1); % z(t): le signal après le filtre de réception
tz=-length(z1)/2:(length(z1)-1)/2;
figure(3)
plot(tz,z1);
hold on;
title( 'alpha=0.1 & K=8')
end

5
%% Pour alpha =0.25
alpha=0.25;
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
%Les limites:
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));

%Déterminer les cas extremes:


axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

%Détermination de r(t) et z(t)


r1=conv(S,v1); % r(t) : le signal après la mise en forme avec le filtre
adapté
z1=conv(r1,v1); % z(t): le signal après le filtre de réception
tz=-length(z1)/2:(length(z1)-1)/2;
figure(4)
plot(tz,z1);
hold on;
title( 'alpha=0.25 & K=8')
end

6
%% Pour alpha =0.9
alpha=0.9;
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
%Les limites:
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));

%Déterminer les cas extremes:


axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

%Détermination de r(t) et z(t)


r1=conv(S,v1); % r(t) : le signal après la mise en forme avec le filtre
adapté
z1=conv(r1,v1); % z(t): le signal après le filtre de réception
tz=-length(z1)/2:(length(z1)-1)/2;
figure(5)
plot(tz,z1);
hold on;
title( 'alpha=0.9 & K=8')
end

7
%% 3)
figure(6)
alpha=0.25 ;
subplot(2,2,1);
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));

axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

r1=conv(S,v1);
z1=conv(r1,v1);
tz=-length(z1)/2:(length(z1)-1)/2;
plot(tz,z1);
hold on;
title( 'alpha=0.25 et K=8')
end

8
%% K=4
subplot(2,2,2);
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));
K=4;
axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

r1=conv(S,v1);
z1=conv(r1,v1);
tz=-length(z1)/2:(length(z1)-1)/2;
plot(tz,z1);
hold on;
title( 'alpha=0.25 et K=4')
end
%% K=2
subplot(2,2,3);
for i=1:50
R=randint(1,N);
R1=(2*R-ones(1,N))*A;
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));
K=2;
axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;

r1=conv(S,v1);
z1=conv(r1,v1);
tz=-length(z1)/2:(length(z1)-1)/2;
plot(tz,z1);
hold on;
title( 'alpha=0.25 et K=2')
end

9
%% 4)
alpha=0.25;
N=8;
Ts=1;
Tb=1;
K=8;
R=randint(1,N);
R1=(2*R-ones(1,N))*A
S=[];
for i=1:1:length(R1)
S=[S R1(i) zeros(1,F-1)];
end
syms t;
f1=filtre(1,alpha,t);
l0=eval(limit(f1,t,0));
l1=eval(limit(f1,t,Ts/(4*alpha)));
l2=eval(limit(f1,t,-Ts/(4*alpha)));
axe=-K*Tb:Tb/F:K*Tb;
v1=filtre(1,alpha,axe) ;
v1(find(axe==0))=l0;
v1(find(axe==Tb/(4*alpha)))=l1 ;
v1(find(axe==-Tb/(4*alpha)))=l2 ;
r1=conv(S,v1);
z1=conv(r1,v1);
z=z1(length(axe):8:length(axe)+8*(N-1))
tz=0:length(z)-1
figure(7)
stem(z); % Afficher les valeurs discrètes

10
%% 5)
D'après la courbe on a z(t0+nTs) = an F = 8
%% 6)
B = randn (1, length(r1)) % Bruit blanc Gaussien
RSB = 5; %en dB
N0 = A^2*f*10^(-RSB/10)
B = sqrt (N0/2)*B
Z1_bruit=conv(r1+B,v1)
Z_bruit=Z1_bruit(length(axe):8:length(axe)+8*(N-1))
tz=0:length(Z_bruit)-1
figure(8)
stem(Z_bruit); % Afficher les valeurs discrètes

11