• Aucun résultat trouvé

Simulation d’une chaˆıne de transmission num´erique sur canal gaussien `a bande limit´ee

N/A
N/A
Protected

Academic year: 2022

Partager "Simulation d’une chaˆıne de transmission num´erique sur canal gaussien `a bande limit´ee"

Copied!
12
0
0

Texte intégral

(1)

Simulation d’une chaˆıne de transmission num´erique sur canal gaussien ` a bande limit´ee

encadrant responsable: Laurent ROS

<prenom.nom@gipsa-lab.grenoble-inp.fr>

(document initi´ e par: Damien ROQUE, 2013, et Robin GERZAGUET, 2014) 26 mars 2019

Nous souhaitons simuler une chaˆıne de transmission sur canal gaussien `a bande limit´ee (fig. 1). L’´emetteur transmet des donn´ees al´eatoires `a un d´ebit D= 1/T = 1 Mbit/s. La modulation utilis´ee est une 2-PAM avec symboles centr´es. Plusieurs filtres de mise en forme peuvent ˆetre utilis´es : NRZ, RZ, racine de cosinus sur´elev´e. Un bruit blanc gaussien s’ajoute au signal ´emis. Le r´ecepteur est suppos´e correctement synchronis´e.

Il est compos´e d’un filtre adapt´e, d’un ´echantillonneur ainsi que d’un d´etecteur `a seuil.

A travers cetravail dirig´e sur machine (ou Travail Pratique, TP), nous souhaitons ´etudier, pas-`a-pas, la chaˆıne de communication et v´erifier ses performances th´eoriques sur canal bruit´e.

Source CBS h(e)(t) + h(r)(t) CSB Destination

{bn} {ak} x(t) r(t) t0+kT

{bˆn} n(t)

Figure 1 – Synoptique d’une chaˆıne de transmission num´erique 2-PAM (`a temps continu).

Ce sujet de TP sera trait´e par binˆomes. Il faira l’objet d’un compte rendu par binˆomes `a rendre `a l’issu de l’ensemble des s´eances, qui sera not´e. Dans le compte-rendu apparaˆıtront les r´eponses aux questions de pr´eparation (encadr´es gris), les r´eponses aux questions pratiques (encadr´es blancs), les courbes, toutes les remarques pertinentes. Toutes les courbes pr´esent´ees comporteront une l´egende d´ecrivant les unit´es utilis´ees.

A noter que la pr´esence aux 5 s´eances de TD machine est obligatoire (toute absence injustifi´ee entrainera la note “0/20” pour la s´eance en question).

Quelques conseils avant de d´ebuter le sujet. . .

— Commencer chaque programme principal par les instructionsclear alletclose allafin de r´einitialiser l’espace de travail courant.

— D´efinir les constantes en entˆete de programme et utiliser les fonctions lorsque cela est n´ecessaire (comme dans tout langage proc´edural).

— Attention lors de copier/coller des extraits de code source `a partir de fichiers PDF car ils comportent parfois des caract`eres sp´eciaux mal interpr´et´es par Matlab ou Octave.

— ´Eviter d’utiliser le mode interactif `a outrance, pr´ef´erer l’´ecriture des scripts. Cela permet souvent de gagner du temps.

— Utiliser la commande help d`es que l’on rencontre une nouvelle fonction.

Il est fortement recommand´e de se munir du Guide d’introduction `aMatlab etOctave1.

1. Disponible surhttps://intranet.ensimag.fr/KIOSK/Matieres/4MMSTN/Ressources/guide-matlab-octave.pdf.

(2)

1 G´ en´ eration al´ eatoire des ´ el´ ements binaires

A chaque ex´` ecution du simulateur, nous souhaitons g´en´erer al´eatoirement les donn´ees binaires `a transmettre bn (´el´ements binaires ind´ependants et ´equiprobables).

Question 1

Cr´eer un vecteur lignebn(contenant les ´elements{bn}, pourn= 0, ..., N−1) de tailleN = 2048, `a valeurs dans{0,1}. On utilisera les fonctionsrandetround. Calculer la moyenne et la variance empirique debn`a l’aide des fonctionsmean,var, v´erifier que ces valeurs sont coh´erentes avec les valeurs th´eoriques (calcul´ees

`

a partir des probabilit´es) que l’on rappellera.

Conseil : D´eclarer N en entˆete de programme. Pr´eciser dans votre compte-rendu les valeurs de N utilis´ees pour les diff´erentes questions. La valeur de N pourra en effet ˆetre adapt´ee en fonction de la situation. Par exemple N = 32 pourra ˆetre ad´equat pour les visualisations temporelles, mais des valeurs beaucoup plus grandes pourront ˆetre n´ecessaires pour faire des mesures pr´ecises (N = 2048, ou encore 218= 262144, ...).

2 Conversion des ´ el´ ements binaires en symboles (mapping )

Les symboles de modulationak prennent leurs valeurs dans une constellation 2-PAM. Ils sont g´en´er´es `a partir des ´el´ements binairesbn en suivant la relation

ak= 2bk−1, k∈ {0, . . . , N−1}. (1)

Question 2

Cr´eer le vecteurak`a partir debn.

Mesurer la moyenne et la variance empirique deak et v´erifier leur ad´equation avec la th´eorie.

Faire de mˆeme pour la puissance moyenne temporelle empirique du vecteur ak, P(ak), qui sera d´efinie et mesur´ee (cas discret) par :

P(ak) = 1 N

N−1

X

i=0

ak[i]2, et qui pourra se calculer avec Matlab par l’instruction :mean(ak.2).

Question 3

Tracer (pour N=32 par exemple) la repr´esentation temporelle d’une r´ealisation de la suite discr`ete{ak}`a l’aide de la fonctionplot,en prenant bien soin que l’axe des abscisses soit gradu´e en unit´e de temps (de 0 `a (N-1).T secondes).

Aide : cr´eer un vecteur tempst a = 0 : T : N*T -T, et utiliser la commandeplot(t a, ak, ’*’) pour marquer chaque symbole par une ast´erixe “ * ”.

Question 4

Tracer ensuite la constellation des symboles `a l’aide de la fonctionplot.

Prenez une marge dans les valeurs min et max de vos axes afin que le diagramme soit bien lisible.

Aide : la constellation est une repr´esentation qui ne fait plus intervenir le temps, mais qui pointe sur un diagramme X, Y les parties imaginaires des ´echantillons (nulles ici) en fonction de la partie r´eelle, ce qui peut s’obtenir en Matlab parplot(real(ak), imag(ak),’x’).

(3)

3 Conversion num´ erique - analogique

3.1 Expansion

En pratique,mettre en formeles symboles consiste `a leur associer un signal analogique (`a temps continu) afin de permettre leur transmission sur un canal. Dans le cadre d’un simulateur num´erique, nous pouvons si- muler l’aspect d’un signal continu en utilisant un signal discret avec plusieurs ´echantillons par dur´ee symbole.

Nous r´ealisons ensuite une interpolation lin´eaire entre les points lors de l’affichage.

Dans notre cas, nous ins´erons 15 z´eros entre chaque symbole pour cr´eer le vecteur sur´echantillonn´e st. Cette op´eration d’expansion est donc caract´eris´ee par le facteur de sur´echantillonnage F=16. Egalement, les amplitudes sont multipli´ees par le facteur d’expansion F (ce qui permettra de conserver la puissance moyenne des symboles apr`es filtrage d’´emission pour le signalxten 3.3). On doit obtenir finalement :

st=F

N−1

X

k=0

akδ[t−kF], pourt∈ {0, . . . , F N−1}, avec δ[t−kF] =

(1, si t=kF, 0, si t6=kF. (2) Pour cela cr´eer dans un premier temps un vecteur lignestcontenantN F z´eros `a l’aide de la fonctionzeros.

Ins´erer ensuite les ´el´ements du vecteur ak dans st avec un pas ´egal `a F, et multiplier le tout par F (le premier ´el´ement de st doit ˆetre un symbole et non pas un z´ero).

Conseil : D´eclarerF en entˆete de programme.

Question 5

Visualiser ce signal en fonction du temps (la dur´ee globale toujours `a peu pr`es de N.T sec), en cr´eant le vecteur tempst sappropri´e pour les abscisses (il d´ebutera `a 0 et comprendra autant d’´el´ements ques t).

N.B. : Notez que la puissance moyenne est multipli´ee parF apr`es cette expansion (P(st)= F×P(ak))

3.2 Etude des filtres ´

Au cours de cette partie, nous ´etudions plusieurs filtres d’´emission parmi lesquels les filtres rectangulaires (NRZ et RZ) et les filtres en racine de cosinus sur´elev´e (SRRC). SoitT la dur´ee symbole,αle facteur d’exc`es de bande (roll-off) et sinc(x) = sin(πx)/πx. La fonction indicatrice est d´efinie telle que

∀I⊂R,∀t∈R, χI(t) =

(1, sit∈I, 0, sit /∈I.

Les r´eponses impulsionnelles (R.I.) de ces diff´erents filtres sont donn´ees dans le tableau1.

Type R´eponse impulsionnelle discr`ete

NRZ h(e)[q] = 1

0,...,F−1[q]

RZ h(e)[q] =

√ 2

F χ0,...,F /2−1[q]

SRRC h(e)[q] = 1 F





1−α+α, siq= 0

α

2 1 + π2

sin π

+ 1−π2

cos π

, si|q|= T

sin πTq(1−α)

+ 4αTq cos πTq(1 +α)

·

πTqTq2−1

, sinon.

Table1 – R´eponses impulsionnelles ´echantillonn´ees des filtres d’´emission.

(4)

Note : pour ces versions discr`etes de filtres (d’´emission et de r´eception), les R.I. des filtres sont normalis´ees telles que

h(e)

2 = h(r)

2 =P

q|hq|2 = 1/F (ce qui est coh´erent avec la normalisation utilis´ee en cours pour les versions analogiques des filtres telles que

h(e)

2 = h(r)

2 =R

|h(t)|2dt= 1/T, en rempla¸cant le temps symbole T par le nombre d’´echantillons F par dur´ee symbole.).

En utilisant la fonction gen filters3 donn´ee en annexe A, il est possible de g´en´erer les R.I.

sur´echantillonn´ees de diff´erents filtres de mise en forme. Les filtres rectangulaires permettent de mettre en œuvre les codes en ligne NRZ et RZ. Le filtre en racine de cosinus sur´elev´e (SRRC) permet la transmission

`

a bande limit´ee en respectant le crit`ere de Nyquist.

Aide : nous pouvons tronquer les R.I. `a 8 temps symboles en fixantL = 8. Il est n´ecessaire de d´efinir le vecteur temps correspondant :t filtre = [0 : T/F : L*T - (T/F)]. Le vecteur contenant les coefficients de la R.I. du filtre d’´emission est calcul´e par :h t=gen filters3(type filtre,t filtre,T,F,L,alpha)o`u les diff´erents param`etres sont pr´ecis´es en annexe.

Les r´eponses fr´equentielles des diff´erents filtres peuvent ˆetre calcul´ees et affich´ees `a l’aide de la fonction spectrum, disponible en annexeB, et qui affiche le module (ainsi que la phase) de la Transform´ee de Fourier.

Question 6

Tracer et commenter la r´eponse impulsionnelle h(e)t et le module de la r´eponse fr´equentielle |Hf(e)| des diff´erents filtres de mise en forme. Commenter les sp´ecificit´es de chaque forme d’onde (dur´ee utile, bande passante, ...). On pourra faire varier le facteur d’exc`es de bande ou “roll-off” α dans le cas du filtre en racine de cosinus sur´elev´e.

Concernant la phase des filtres, est-ce logique d’observer une variation de phase lin´eaire avec la fr´equence ? Remarque : la fonctionspectrum2peut afficher le module de la repr´esentation fr´equentielle en ´echelle lin´eaire (typ = ‘lin’) ou d´ecibel (typ = ‘log’). Chaque visualisation peut avoir son int´erˆet selon ce que l’on cherche `a voir (forme globale, d´efauts de faibles amplitudes dus `a certaines approximations n´ecessaires, ...).

Exemple : spectrum2(h t,T/F, ’lin’) o`u T/F est la p´eriode d’´echantillonnage.

3.3 Mise en forme des symboles

Pour la suite de ce TP, nous utiliserons par d´efaut l’impulsion de mise en forme en racine de cosinus sur´elev´e, avecα= 0.5.

Cr´eer le vecteur lignext, r´esultat du filtrage de stparh(e)t . On utilisera la fonctionconv.

Question 7

Afficher dans une mˆeme fenˆetre les signauxstet xt. On utilisera la fonctionsubplotet on veillera `a cr´eer le vecteur temps appropri´e,t x. Que dire de la longueur de ces signaux (nombre d’´echantillons, et dur´ee r´eelle enµsec) ?

Aide : on pourra d´efinir le vecteur x t=conv(s t,h t), mesurer sa longueur par : L xt = length(x t) ; et cr´eer le vecteur temps : t xt = 0 : T/F : L xt*T/F - (T/F) ;

Exemple de code : figure ;

subplot(211) ; plot(t st, s t) ; grid ;

axis([0 L xt*T/F -1.5 1.5])

title(’signal avant filtre de mise en forme’) ; xlabel(’Temps [s]’) ;

ylabel(’Amplitude [V]’) ;

(5)

subplot(212) ; plot(t xt, x t, ’r’) ; grid ;

axis([0 L xt*T/F -1.5 1.5])

title(’signal apr`es filtre de mise en forme he’) ; xlabel(’Temps [s]’) ;

ylabel(’Amplitude [V]’) ; Question 8

Mesurer la puissance moyenne empirique du signal ´emis, P(xt).

Est-ce coh´erent avec la th´eorie ?

Aide : pour d´eterminer la valeur th´eorique on pourra adapter au cas discret la formule th´eorique de puissance P(x) =E{a2}.T

h(e)

2associ´ee au signal analogique `a modulation lin´eairex(t) =T.P+∞

k=−∞akh(e)(t−kT).

Question 9

Tracer une estimation des densit´es spectrales de puissance dextavec N suffisamment grand, `a partir de la fonctionspectrum2fournie. La forme est-elle coh´erente avec la th´eorie (rappeler la DSP th´eorique) ? Question 10

Que se passe-t-il th´eoriquement si l’on utilise des symboles non-centr´es ? Le v´erifier exp´erimentalement.

Pour que le ph´enom`ene soit plus observable, on pourra donner la visualisation avec un filtre d’´emission RZ (avec des symboles centr´es ou non centr´es).

4 Ajout du bruit blanc gaussien

Nous souhaitons ajouter un bruit blanc gaussien centr´e nt au signal ´emis xt. En pratique, le param`etre d’entr´ee du r´ecepteur est le rapport (Eb/N0)dB o`u Eb repr´esente l’´energie par bit du signal utile et N0 la densit´e spectrale de puissance monolat´erale du bruit. Dans la simulation, il faut pouvoir r´egler la variance du bruit, σn2, en accord avec la valeur pratique d´esir´ee de (Eb/N0)dB = 10.log10(Eb/N0). Le lien entre le rapportEb/N0et le rapport signal `a bruit du signal ´echantillonn´e (P(xt)/σn2) utilis´e dans la simulation est :

Eb N0

= F

2 ×P(xt)

σn2 (3)

Question 11

Justifier la formule pr´ec´edente, `a partir du lien entre la puissance moyenne P(xt) et Eb. Etant donn´e l’expression de P(xt) vue `a la question 8 (avec symboles centr´es de variance unit´e et filtres normalis´es), exprimer finalementσn2 en fonction du rapportEb/N0.

Aide : on aσ2n = N20.FT (puissance moyenne d’un bruit blanc stationnaire de DSP bilat´erale N0/2 mesur´ee dans la bande d’´echantillonnage FT).

conseil : d´eclarer (Eb/N0)dB en entˆete de programme, et d´eduisez-enσn. Cr´eer le vecteur de bruit :n t=sigma n*randn(1,length(x t));

Cr´eer le vecteurrt, somme des vecteursxtetnt.

(6)

5 Conversion analogique - num´ erique (Variable de d´ ecision)

5.1 Filtrage adapt´ e

Question 12

Rappeler la d´efinition du filtre adapt´e et justifier son utilisation dans le cadre d’une chaˆıne de communica- tion.

Question 13

En observant la r´eponse impulsionnelle du filtre de mise en forme h(e)t , justifier la forme de la r´eponse impulsionnelle du filtre adapt´eh(r)t .

Aide : le filtre adapt´e causalh(r)t peut-ˆetre construit `a l’aide de la fonctionfliplr.

Le filtre ´equivalent ´emission-r´eception s’´ecritpt=h(e)t ∗h(r)t . Cr´eerpt`a l’aide de la fonctionconv. L’afficher dans la mˆeme figure que h(e)t `a l’aide de la fonction subplot. On d´efinira un vecteur temps appropri´e `a la longueur de ce vecteur en expliquant la d´emarche suivie (causalit´e, nombre d’´echantillons).

Aide : on pourra utiliser p t=conv(h t,fliplr(h t)) et le vecteur temps : t2=T/F :T/F :2*(L*T)-T/F . Question 14

Proposer une m´ethode pour v´erifier le crit`ere de Nyquist `a partir de pt. Pourra-t-on transmettre sans interf´erence entre symboles (IES) ici ? Expliquer.

Cr´eer le signalyt en filtrant le signal re¸curtparh(r)t `a l’aide de la fonctionconv.

Afficher le diagramme de l’œil du signal re¸cuyt`a partir de la fonctioneyepatternlist´ee en annexe C.

Exemple de code :

taille visu=2 ; % nombre de symboles dans la fenˆetre begin offset=length(h t) ;

end offset=2*length(h t) ;

eyepattern(y t,T,F,taille visu,1,1) ;

eyepattern(y t,T,F,taille visu,begin offset,end offset) ; Question 15

Expliquer la pr´esence d’´eventuelles anomalies. Commenter l’´evolution du diagramme de l’œil pour diff´erentes valeurs deEb/N0(100 dB, 10 dB, 2 dB).

5.2 D´ ecimation

En pratique l’´echantillonnage du signal re¸cu consiste `a pr´elever la valeur du signal analogiquey(t) en sortie du filtre adapt´e, aux instantst0 +k.T, k∈Z en prenant soin de bien r´egler le d´ecalage t0.

Question 16

En consid´erant un filtre de mise en forme et un filtre adapt´e, chacun de longueur LT, `a quels instants doit-on th´eoriquement ´echantillonner le signal re¸cu (autrement dit quel est let0optimal) ?

Dans le cadre de notre simulateur num´erique, il suffit de d´ecimer le signal yt par un facteurF, c’est `a dire pr´elever sa valeur tous lesF ´echantillons, mais `a partir du bon d´ecalage.

(7)

Question 17

Quelle serait la cons´equence d’ue erreur de synchronisation symbole, autrement dit d’un mauvais choix de t0? Expliquer `a partir du diagramme de l’œil.

Question 18

Visualiser le vecteurytet rep´erer les instants d’´echantillonnage optimaux. Cr´eer le vecteuryk en d´ecimant ytpar un facteurF et en choisissant l’instant d’´echantillonnage (ou d´ecalaget0) initial qui convient et que l’on pr´ecisera en fonction des param`etres (L ? F ?).

V´erifier que la taille du vecteur obtenu est identique `a celle deak.

6 Prise de d´ ecision (demapping )

La prise de d´ecision sur symboles re¸cus yk s’effectue en comparant leurs valeur `a un seuil judicieusement choisi. On obtient ainsi les ´el´ements binaires estim´es ˆbn.

Question 19

Afficher la constellation des symboles re¸cus yk `a l’aide de la fonctionplot. En d´eduire la valeur du seuil optimal en fonction des caract´eristiques statistiques du bruit.

Cr´eer le vecteur ˆbn en mettant en œuvre le d´etecteur `a seuil optimal.

7 Calcul du taux d’erreur binaire

Le taux d’erreur binaire constitue un estimateur de la probabilit´e d’erreur binaire de la chaˆıne de transmission.

Il est d´efini de la mani`ere suivante :

TEB = Nombre d’´el´ements binaires faux

Nombre d’´el´ements binaires transmis. (4) Dans un premier temps, compter le nombre d’erreurs en comparant les vecteursbnet ˆbn`a l’aide des fonctions sumetxor. En d´eduire la valeur du taux d’erreur binaire.

Exemple de code : b decide = y k>0 ;

erreurs = sum(xor(b emis(1 :length(b emis)),b decide)) ; teb=erreurs/N ;

8 Mesures de performances

Afin d’´evaluer les performances d’une chaˆıne de transmission, nous souhaitons mesurer le TEB pour diff´erentes valeurs de Eb/N0. Pour cela, une solution consiste `a transformer votre programme principal du simulateur en une fonction que l’on appelle de mani`ere it´erative et qui renvoie le taux d’erreur binaire mesur´e pour une valeur deEb/N0 donn´ee.

On rappelle que la probabilit´e d’erreur th´eorique pour une modulation 2-PAM avec symboles centr´es sur canal `a BABG est donn´ee par la formule suivante :

PEB =Q

r2Eb

N0

!

(5)

(8)

o`u Qrepr´esente la fonction de r´epartition compl´ementaire d’une loi normale centr´ee et r´eduite.

Faire apparaˆıtre dans un mˆeme graphique les performances th´eoriques et les performances mesur´ees de la chaˆıne de transmission.

Question 20

Commenter les courbes de performances en justifiant, s’il y a lieu, les diff´erences constat´ees entre la th´eorie et la pratique.

conseils:

- avant de faire une boucle, v´erifier que votre fonction (programme intial) renvoie par exemple pour (Eb/N0)dB = 6 dB une valeur coh´erente du TEB par rapport `a la valeur th´eorique attendue. Selon le temps restant, on pourra seulement pr´esenter ce r´esultat.

- pour une mesure pr´ecise et efficace du TEB, le nombre de bits transmis N peut ˆetre adapt´e en fonction du TEB cible (et donc de (Eb/N0)dB). La courbe th´eorique peut-ˆetre obtenue `a l’aide de la fonction getBER (voir son utilisation dans l’annexeD, selon peb=getBER(EbN0Lin,’PAM’,2) ;.

9 Optionnel (questions ind´ ependantes)

9.1 Autres impulsions de mise en forme

Nous avons montr´e que l’´emetteur est capable d’utiliser diverses impulsions de mise en forme. Effectuer une revue du code source afin de s’assurer que le r´ecepteur soit suffisamment g´en´erique pour utiliser les impulsions rectangulaires des codes en ligne NRZ et RZ.

Question 21

Les performances de la chaˆıne de transmission sont-elles identiques pour les trois impulsions de mise en forme propos´ees ? Justifier.

Question 22

Que se passerait-il si l’on utilisait des symboles non-centr´ees ? Le justifier en affichant un ou des r´esultats de simulation.

Question 23

Annexe : les performances seraient-elles identiques avec une modulation de type QPSK ? Quels sont les blocs de la chaˆıne de transmission `a modifier pour mesurer les performances de cette modulation ?

9.2 R´ ecepteur par corr´ elation

On suppose ici que le filtre d’´emission est le filtre 1/2Nyquist SRRC. Le r´ecepteur d´evelopp´e proc`ede par 2 op´erations pour obtenir la variable de d´ecision yk : ”filtre adapt´e au filtre d’´emission”, et

”sous-´echantillonage (d´ecimation) au rythme symbole”.

(9)

Question 24

En lien avec la partie 5, expliquer comment on pourrait remplacer les deux op´erations pr´ec´edentes par une seule op´eration de corr´elation d´elivrant yk, en pr´ecisant pour la portion de signal utilis´e (nombre d’´echantillons et leurs indices d´ebut/fin).

Effectuer une r´evision du code source pour mettre en place cette solution, et v´erifier qu’elle donne les mˆemes constellations deyk. En terme calculatoire, quelle solution est la plus efficace, avec quel facteur ?

9.3 Rapport signal ` a bruit sur la variable de d´ ecision

Question 25

En lien avec la partie5.2 : pour une valeur deEb/N0 que vous pr´eciserez (en lin´eaire et en dB), mesurer le rapport signal `a bruitRSByksur la variable de d´ecisionyk (on rappelle queyk est obtenue en d´ecimant yt par un facteurF, et au bon instant d’´echantillonnage). Commenter cette valeur en lien avec la th´eorie.

Aide :RSByk peut ˆetre calcul´ee en faisant 2 mesures de la puissance du signalyk, une sans bruit (donnant P(yk signal sans bruit), et une sans signal (donnant P(yk bruit sans signal).

9.4 Analyseur de spectre

Question 26

En lien avec la partie3.3, proposer un autre estimateur pour mesurer les densit´es spectrales de puissance destet xt.

Aide : utiliser la fonctionxcorr(.), en s’appuyant sur la d´efinition math´ematique de la densit´e spectrale de puissance d’un signal stationnaire (mˆeme si ici le signal est plutˆot cyclo-stationnaire).

ANNEXES

(10)

A G´ en´ eration des filtres

function y = g e n f i l t e r s 3 (type, t , T, F , L , a l p h a )

%GEN FILTERS Retourne la r´eponse impulsionnelle de diff´erents filtres de

%mise en forme.

% type : ’nrz’ pour une porte de dur´ee T

% ’rz’ pour une porte de dur´ee T/2

% ’srrc’ pour un filtre en racine de cosinus sur´elev´e

% t : vecteur temps [s]

% T : dur´ee symbole [s]

% F : facteur de sur´echantillonnage

% L : dur´ee de la r´eponse impulsionnelle du filtre [T*s]

% alpha : coefficient d’exc`es de bande (pour filtre srrc), compris entre 0 et 1

% modification version 2 (Mars 2015) : norme des filtres en 1/F

% modification version 3 (Mars 2017) : sans utiliser la fonction sinc qui n´ecessite une biblioth`eque sp´eciale (d´efinition de fonction Sincard).

s w i t c h type c a s e{’ n r z ’}

% Cr´eation de l’impulsion rectangulaire NRZ (non-centr´ee) y=(1/F)∗[ o n e s ( 1 , F) zeros( 1 ,length( t )−F) ] ; c a s e{’ r z ’}

i f mod( F , 2 )

error( ’ Le f a c t e u r de ´e s u r c h a n t i l l o n n a g e d o i t ˆe t r e un m u l t i p l e de deux ’ )

; end

y= (sqrt( 2 ) /F)∗[ o n e s ( 1 , F/ 2 ) zeros( 1 ,length( t )−F/ 2 ) ] ; c a s e{’ s r r c ’}

% D´ecalage pour obtenir une r´eponse causale t=t−T∗L / 2 ;

% Construction du vecteur de sortie dans le cas g´en´eral (abs(t) != T/(4*alpha))

y=(1/F)∗( 1 . / ( 1−( 4∗a l p h a .∗t /T) . ˆ 2 ) ) .∗( ( 1−a l p h a )∗S i n c a r d ( ( t /T)∗(1−a l p h a ) ) +(4∗

a l p h a /pi) .∗cos( (pi∗t /T)∗(1+ a l p h a ) ) ) ; %version3

% Correction des ´eventuelles valeurs non-d´efinies (t=0 et abs(t) = T/(4*alpha)) f o r i n d i c e =1:length( t )

%if t(indice)==0

i f abs( t ( i n d i c e ) ) < 10ˆ(−10)

y ( i n d i c e ) =(1/F)∗(1−a l p h a +4∗( a l p h a /pi) ) ; end

%if abs(t(indice))==T/(4*alpha)

i f abs(abs( t ( i n d i c e ) ) − T/ ( 4∗a l p h a ) ) < 10ˆ(−10)

y ( i n d i c e ) =( a l p h a / ( )sqrt( 2 )∗F) )∗((1+2/pi)∗s i n(pi/ ( 4∗a l p h a ) ) + (1−2/

pi)∗cos(pi/ ( 4∗a l p h a ) ) ) ; end

end end

% — Define Sincard function (version 3) ——

function o u t = S i n c a r d ( i n ) i f( i n ==0)

S i n c a r d ( i n ) =1;

e l s e

o u t = s i n(pi∗i n ) . / (pi∗i n ) ; end

end

(11)

B Analyseur de spectre (ou plutˆ ot “traceur de TF”)

function [ S f , f ] = s p e c t r u m 2 ( s t , Te , typ )

%SPECTRUM Affiche la r´eponse fr´equentielle (Transform´ee de Fourier) d’un signal.

% s t : signal temporel

% Te : p´eriode d’´echantillonnage (ici T/F)

% Type : ’linear’, ’log’ : scale for display (linear by default)

% modification versions 2 : afficahge lin´eaire ou dB/Log i f nargin == 2

typ = ’ l i n e a r ’ ; end

[ S f , f ]= f r e q z ( s t , 1 , 6 5 5 3 6 , 1 / Te ) ; %8192 ou 65536 f i g u r e;

subplot( 2 1 1 ) ;

i f strcmp( typ , ’ l o g ’ )

plot( f , 2 0∗log10(abs( S f ) ) ) ; grid;

y l a b e l( ’ Gain [ dB ] ’ ) ; e l s e

plot( f ,abs( S f ) . ˆ 2 ) ;

y l a b e l( ’ Gain [ E c h e l l e L i n e a i r e ] ’ ) ; grid;

end

t i t l e( ’ Module de l a t r a n s f o r m e e de F o u r i e r ’ ) ; x l a b e l( ’ F r e q u e n c e [ Hz ] ’ ) ;

y l a b e l( ’ Gain [ dB ] ’ ) ; subplot( 2 1 2 ) ;

plot( f ,angle( S f ) ) ;

t i t l e( ’ Phase de l a t r a n s f o r m e e de F o u r i e r ’ ) ; x l a b e l( ’ F r e q u e n c e [ Hz ] ’ ) ;

y l a b e l( ’ Phase [ r a d ] ’ ) ;

C Diagramme de l’œil

function [ ] = e y e p a t t e r n ( y t , T, F , t a i l l e v i s u , b e g i n o f f s e t , e n d o f f s e t )

%EYEPATTERN Affiche le diagramme de l’oeil.

% y t : signal re¸cu (sur´echantillonn´e).

% T : dur´ee d’un symbole [s].

% F : facteur de sur´echantillonnage.

% taille visu : nombre de symboles `a visualiser.

% begin offset : nombre d’´echantillons `a ´ecarter en d´ebut de signal.

% end offset : nombre d’´echantillons `a ´ecarter en fin de signal.

% Cr´eation du vecteur temps

t v i s u =0:T/F : t a i l l e v i s u∗T−T/F ;

% Troncature du signal `a visualiser

y t=y t ( b e g i n o f f s e t :end−e n d o f f s e t ) ;

(12)

% Visualisation sur un nombre entier de trajectoires

n b t r a j e c t o i r e s=f l o o r(length( y t ) /length( t v i s u ) ) ;

% Remise en forme du signal pour diagramme de l’oeil

y t m a t=reshape( y t ( 1 : n b t r a j e c t o i r e s∗t a i l l e v i s u∗F) , t a i l l e v i s u∗F , n b t r a j e c t o i r e s )

;

% Affichage du diagramme de l’oeil f i g u r e;

plot( t v i s u , y t m a t ) ;

t i t l e( ’ Diagramme de l ’ ’ o e i l du s i g n a l r e c u ’ ) ; x l a b e l( ’ Temps [ s ] ’ ) ;

y l a b e l( ’ Amplitude [ V] ’ ) ; end

D Mesure des performances : fichier mesures performances.m

% Initialisation de l’environnement de travail c l e a r a l l;

c l o s e a l l;

% D´efinition des param`etres de la simulation EbN0dB = 1 : 1 0 ;

EbN0Lin = 1 0 . ˆ ( EbN0dB/ 1 0 ) N=16000;

NbTrames =100;

t e b=zeros( 1 ,length(EbN0dB) ) ;

% Estimation des performances f o r k =1:length(EbN0dB)

f o r l =1:NbTrames

% Transmission d’une trame

t e b t e m p=s i m u q p s k a w g n (EbN0dB( k ) ,N) ; %mettre votre fonction

% Moyenne du TEB

t e b ( k )=t e b ( k )+t e b t e m p ; end

t e b ( k )=t e b ( k ) /NbTrames ; end

% Performances th´eoriques

peb=getBER ( EbN0Lin , ’PAM’ , 2 ) ;

% Trac´e des courbes de performances f i g u r e;

semilogy( EbN0dB , teb , ’−∗’ ) ; hold( ’ on ’ ) ;

semilogy( EbN0dB , peb , ’ r ’ ) ;

t i t l e( ’ Courbes de p e r f o r m a n c e s ’ ) ; x l a b e l( ’ E b / N 0 [ dB ] ’ ) ;

y l a b e l( ’ Taux d ’ ’ e r r e u r ’ ) ; legend( ’ S i m u l a t i o n ’ , ’ T h e o r i e ’ ) ;

Références

Documents relatifs

On suppose d´ esormais que F est un sous-espace de dimension infinie... V´ erifier que T est continue, et calculer

La m´ ethode de Gauss est un algorithme qui permet de d´ ecomposer toute forme quadratique q ∈ Q( K n ) en com- binaison lin´ eaire de carr´ es... Enfin, en appliquant le Lemme 3.33,

Dans la suite nous appliquerons les r´ esultats qu’on a montr´ e, principalement le fait que E admet une base orthogonale pour q, pour ´ ecrire q sous une forme simple. Th´ eor`

Pour les sommes de type II, on doit faire la diff´erence entre la somme des carr´es relative aux erreurs dans le mod`ele avec les seuls effets de F 2 et la mˆeme somme dans le

[r]

✍ Trouver la forme d’une structure m´ ecanique qui soit la plus l´ eg` ere possible tout en ´ etant la plus solide possible. ✍ Th`eme de recherche actuellement

A l’aide du Th´ eor` eme 10.2.8, montrer que les points de minimum de J sur la sph` ere unit´ e sont des vecteurs propres de A associ´ es ` a la plus petite valeur

Si T est inf´ erieur ` a la distance de K ` a la fronti` ere de Ω, la solution explicite donn´ ee par l’exercice pr´ ec´ edent est aussi solution de l’´ equation des ondes dans