SUP’COM 2018 1. Transmission numerique en bande de base 2. Transmission numériq
SUP’COM 2018 1. Transmission numerique en bande de base 2. Transmission numérique en bande transposee 3. codage/decodage de l’information NB : compléter ce document et le remettre en version électronique à la fin de la séance TP N°1 : Transmission numérique en bande de base Kachouri Mehdi 18/11/2018 Nom et Prénom de l’étudiant(e) Date Nom et Prénom de l’enseignant(e) Note finale 1. Objectif : Ce TP a pour objectif d’étudier avec l’utilisation de MATLAB, chaque bloc, représenté dans la Figure 1, constituant une chaîne de transmission numérique en bande de base. FIGURE 1 – Chaîne de trans miss ion numérique en bande de base t0+ kT z(t) r(t) e(t) a k Source binaire g(t) Codage de Gray gr(t) â k B(t) Filtre de mise en forme Filtrage adapté 2. Introduction : Nous souhaitons transmettre sur un canal de type BBAG (Bruit Blanc Additif Gaussien) une suite de symboles {ak} d’information à la cadence 1/T, T étant la durée d’un bit ou d’un symbole. Avant d’être émise sur le canal physique, cette suite est mise en forme par le biais d’un filtre linéaire analogique de mise en forme g(t). Ainsi, le signal analogique émis e(t) est le suivant : e (t )=∑ k ak g(t−kT ) (1) Le signal reçu, r(t), après le passage du signal émis e(t) dans le canal est donné par : r (t)=e (t )+B(t) (2) où B(t) est le BBAG. Page 2 sur 27 3. Travail demandé : Partie 1 : Durée estimée (30mn) Note : /1pt 1. Générer à l’aide de la fonction Matlab “randint” N échantillons (quelconque) d’une source binaire où N est le nombre de bits à émettre. Les N échantillons seront stockés dans un vecteur ligne. Représenter quelques périodes du signal et uploader la courbe dans la zone réservée et commenter le résultat. %Données de l’énoncé N=5; Tb=1; M=2; A=4; F=8; x=-A; fe=F/Tb; %1) Sb=randi([0,1],N,1); figure plot(Sb); Insérer votre courbe En fait, on a généré aléatoirement à l’aide de la fonction randin un vecteur ligne composé de N=5 bits Insérer votre commentaire Note : /1pt 2. Effectuer, l’opération de codage de Gray, avec les fonctions de MATLAB, de la source binaire en symboles ak dans l’alphabet M-aire {± A ,± A3,…..,±(M−1) A } où A est un réel Page 3 sur 27 strictement positif permettant de contrôler l’énergie moyenne transmise par bit. Dans la suite, nous nous limitons au cas binaire M = 2. On doit convertir le signal en temps discret composé des symboles ak en un signal analogique : a (t )=∑ k ak g(t−kT) (3) où δ (t) est l’impulsion de Dirac et T correspond à la durée d’un bit. Ensuite, nous proposons d’échantillonner ce signal à la fréquence d’échantillonnage égale à fe =F/T où F est le facteur de sur échantillonnage que l’on fixera à 8. Échantillonner le signal a(t) à fe = F/T revient à insérer F-1 zéros entre deux symboles consécutifs. Représenter le signal discret ainsi obtenu (utiliser la fonction “scatter” de Matlab). g=zeros(1,N); for i=1:N if(Sb(i)==1) g(1,i)=A; else g(1,i)=-A; end end a=[]; for k=1:N-1 a=[a g(1,k) zeros(1,7)]; end a=[a g(1,N)]; t=1:(N-1)*(F-1) +N; scatter(t,a) Le but de sur-échantillonner le signal est de diminuer le bruit présent dans la bande utile et d'augmenter le rapport signal sur bruit Page 4 sur 27 Insérer votre courbe Partie 2 : Durée estimée (60mn) On désire simuler un filtre dit filtre de mise en forme en racine de cosinus surélevé, couramment utilisé dans les chaînes de transmissions numériques. Sa réponse impulsionnelle a pour expression : (4) Où α est dit coefficient de retombé (roll-off) compris entre 0 et 1. On fixera Tb = 1s (durée d’un bit). Il est à noter que g(t) est de durée infinie et présente trois formes indéterminées en t = 0 et t = ±Tb/4 α . Note : /2pt 1. Calculer les limites correspondantes par développement limité ou en utilisant la fonction “limit” de Matlab. Étudier cette fonction pour l’utiliser ultérieurement. alpha1=0.1; alpha2=0.25; alpha3=0.9; syms t ; f1=filtre(Tb,alpha1,t) ; f2=filtre(Tb,alpha2,t) ; f3 = filtre(Tb,alpha3,t ) ; %pour alpha1 ,on definit les limittes L11=eval(limit (f1,t,0)); L12=eval(limit(f1,t,(Tb/(4*alpha1)))); L13=eval(limit(f1,t,(-Tb/(4*alpha1)))) ; %pour alpha2,on definit les limittes L21=eval(limit (f2,t,0)); L22=eval(limit(f2,t,(Tb/(4*alpha2)))); L23=eval(limit(f2,t,(-Tb/(4*alpha2)))); %pour alpha3,on definit les limittes L31=eval(limit (f3,t,0)); L32=eval(limit(f3,t,(Tb/(4*alpha3)))); L33=eval(limit(f3,t,(-Tb/(4*alpha3)))); Page 5 sur 27 Dans un 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 Insérer votre commentaire Note : /2pt 2. Pour les valeurs de α = 0.1, 0.25 et 0.9, stocker dans un vecteur ligne les échantillons de la troncature de g(t) sur [−KTb, KTb] où K = 8. T racer et commenter sur la même figure l’évolution des échantillons du filtre g(t) en fonction du temps pour les différentes valeurs de α (fonction “subplot” de MATLAB). K=8 ; 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 ; 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') Page 6 sur 27 Insérer votre courbe On définit en premier lieu l’axe du temps puis on ajoute les valeurs indéterminées trouvées par développement limité à g(t) et on dessine les 3 courbes. Insérer votre commentaire Note : /1pt 3. Vérifier que l’énergie du filtre échantillonné g(t) vaut F . E1=sum(v1.^2) E2=sum(v2.^2) E3=sum(v3.^2) On remarque que E1~= E2~=E3 ~=8=F Insérer votre commentaire Page 7 sur 27 Note : /2pt 4. Générer une version échantillonnée du signal émis, e(t), en effectuant la convolution discrète des versions échantillonnées de a(t) et g(t). On utilisera la commande Matlab “conv”. ech1=conv (v1, a); ech2=conv (v2, a); ech3=conv (v3, a); 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') ; Insérer votre courbe Partie 3 : Durée estimée (30mn) Note : /1pt 1. Étudier la fonction “randn” de Matlab. Déduire comment on peut générer un bruit Gaussien de moyenne nulle et de variance σ2 quelconque. Br =randn (1,length(a)); Insérer votre commentaire Note : /1pt 2. Utiliser cette fonction pour générer des échantillons d’un bruit B k discret, Gaussien et de variance N0/2. La valeur de N0 sera déduite de la valeur en décibel de Eb/N0 qu’on désire simuler. Page 8 sur 27 RSB=5; %(A*A*F) energie par bit %10^(-RSB/10) RSB en dicibels N0=(A*A*F)/10^(-RSB/10); Br=sqrt(N0/2)*Br; figure plot(Br) Insérer votre commentaire Partie 4 : Durée estimée (60mn) Note : /2pt 1. T racer le diagramme de l’œil pour α = 0.1, 0.25 et 0.9. On rappelle que le diagramme de l’œil s’obtient en superposant toutes les traces de la sortie du filtre adapté en absence de bruit (utiliser la fonction MATLAB eyediagram). Interpréter l’ouverture horizontale du diagramme de l’œil en fonction de la valeur du coefficient de retombée. Nb :je n’ai pas pu utiliser la fonction eyediagram correctement donc j’ai opté pour une autre solution tabalpha=[0.1 0.25 0.9]; tabK=[8 4 2]; for k=1:3 alpha=tabalpha(k); K=8; for i=1:50 R=randi([0,1],N,1);; R1=(2*R-ones(1,N))*A; S=[]; for i=1:1:length(R1) S=[S R1(i) zeros(1,F-1)]; Page 9 sur 27 end syms t; f1=filtre(1,alpha,t); %Les limites: l0=eval(limit(f1,t,0)); l1=eval(limit(f1,t,T s/(4*alpha))); l2=eval(limit(f1,t,-T s/(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(k) plot(tz,z1); hold on; end end Et donc on obtient ces trois courbes avec alpha respectivement égale à 0.1 0.25 et 0.9 : Page 10 sur 27 On remarque que plus alpha s’approche de 1 plus le diagramme d’œil est plus décontracté. Note : /2pt 2. Étudier l’effet de l’interférence entre symboles à travers la fermeture verticale du diagramme de l’œil pour une troncature très sévère du filtre de mise en forme g(t). On rappelle qu’en pratique le critère de Nyquist n’est vérité qu’approximativement pour des grandes valeurs de K. Prendre par exemple K = 2 et K = 4 pour α = 0, 25. En fait, il s’agit du même code précédent juste en modifiant son début : tabalpha=[0.1 0.25 0.9]; tabK=[8 4 2]; for k=1:3 K=tabK(k); //les modifications alpha=0.25; //les modifications for i=1:50 R=randi([0,1],N,1);; R1=(2*R-ones(1,N))*A; S=[]; for i=1:1:length(R1) S=[S R1(i) zeros(1,F-1)]; end Page 11 sur 27 syms t; f1=filtre(1,alpha,t); %Les limites: l0=eval(limit(f1,t,0)); l1=eval(limit(f1,t,T s/(4*alpha))); l2=eval(limit(f1,t,-T s/(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); % 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(k) plot(tz,z1); hold on; end end Insérer votre courbe Conformément à l’énoncé, on remarque que l’interférence entre symboles (IES) augmente plus lorsque on diminue davantage K(en allant de la figure 1 qui correspond à K=8 jusqu’à K=2 dans la figure 3) Page 12 sur 27 Note : /2pt 3. Générer le signal filtré décimé d’un facteur F servant à la prise de décision. L’instant d’échantillonnage t0 doit correspondre à l’ouverture maximale du diagramme de l’œil. Le filtre g(t) étant non causal, on devrait le retarder lors de l’implémentation sous uploads/s3/ fascicule-des-travaux-pratiques-en-transmissions-numeriques-29oct2018.pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 18, 2021
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.9204MB