copie de Lettre de la Salle des Marchés du

Download Report

Transcript copie de Lettre de la Salle des Marchés du

TP 2 : Transmission en bande de base en pr´esence de bruit blanc
gaussien
Communications num´eriques - AIR2
2013 - 2014
dn
Conversion
bits/symboles
ak
Filtre de
mise en
forme he (t)
x(t)
+
y(t)
Filtre de
r´
eception
hr (t)
z(t)
Echantillonnage
zk
D´
ecision
aˆk
D´
ecodage
dˆn
b(t)
Le but de ce TP est d’´etudier une chaˆıne de transmission en bande de base en pr´esence de bruit blanc
gaussien. On supposera ici que le r´ecepteur est optimal, ce qui guidera le choix des filtres d’´emission et de
r´eception (rappel : on doit avoir hr (t) = he (−t) et h = he ∗ hr qui doit ˆetre un filtre de Nyquist).
• A l’´emetteur, on part d’une s´erie de bits dn , que l’on convertit en symboles ak selon un dictionnaire choisi.
On cr´ee ensuite `
a partir de ces symboles un signal physique x(t) grˆ
ace `a un filtre de mise en forme he
correctement choisi (contrairement au TP 1, on ne supposera pas n´ecessairement que le support temporel
du filtre est born´e)
• Le canal est mod´elis´e uniquement par un bruit additif gaussien b(t) de variance σ 2 , cr´eant un signal bruit´e
y(t) = x(t) + b(t).
• Au niveau du r´ecepteur, on aura un filtre de r´eception hr (t) (choisi pour que le r´ecepteur soit optimal),
une ´etape d’´echantillonnage puis de prise de d´ecision pour retrouver les symboles. Enfin, on d´ecodera les
symboles pour tenter de retrouver le message binaire original.
On ´etudiera en particulier l’influence des filtres d’´emission et de r´eception, le choix du dictionnaire, ainsi
que de la variance du bruit sur les performances de la chaˆıne de traitement.
1
Emetteur
Pour construire l’´emetteur, nous avons deux ´etapes successives `a r´ealiser :
1. Conversion bits/symboles
2. Filtre de mise en forme he (t)
On peut n´eanmoins remarquer que
• L’´etape 1 a d´ej`
a ´et´e r´ealis´ee : il s’agit de la fonction a = bits2symbols(d, method f il) d´ej`
a cod´ee durant
le TP 1.
• L’´etape 2 a aussi d´ej`
a r´ealis´ee, mais uniquement pour des filtres de mise en forme dont la r´eponse impulsionnelle he (t) avait un support strictement inf´erieur `a T . Pour rappel, le signal x(t) avait ´et´e form´e en
concat´enant les r´eponses impulsionnelles he (t) multipli´ees par les symboles `a transmettre. Ceci n’est pas
faisable si on suppose que he (t) a un support quelconque.
Il va donc falloir modifier l’´etape 2 pour qu’elle prenne en compte les filtres de mise en forme `a support
temporel sup´eP
rieur `
a T . Nous allons donc utiliser une toute autre strat´egie, `a savoir, commencer par former le
K
signal a(t) = k=1 ak δ(t − kT ), puis le convoluer avec la r´eponse impulsionnelle du filtre he (t) que l’on aura
pris sur un certain intervalle de temps (sup´erieur `a T ).
1
1.1
Filtre de mise en forme
Cr´eer une fonction Matlab
[x, t] = f iltre emission(a, T, t step, method f il)
qui g´en`ere un signal mis en forme x(t) `
a partir d’une s´erie de K symboles a, avec une p´eriode symbole T , un
pas de vecteur temps t step, et un filtre de mise en forme he d´esign´e par la variable method f il. t repr´esente le
vecteur temps associ´e au signal x.
Indications
• Commencer par d´efinir le vecteur temps t, qui va de t = 0 `a t = (K + 1)T − tstep avec un pas de tstep .
PK
• G´en´erer ensuite le signal a(t) = k=1 ak δ(t − kT ). On s’inspirera pour cela de la fonction codageligne
r´ealis´ee au TP 1 (un dirac peut etre vu comme un filtre de mise en forme `a support temporel strictement
inf´erieur `a T !)
• Compl´eter la fonction Matlab he = createf ilter(t, T, method f il) r´ealis´ee au TP 1 pour qu’elle g´en`ere un
filtre en racine de cosinus surelev´e lorsqu’on lui donne l’option method f il = 4. On pourra utiliser pour
cela de la fonction rootraisedcosine.m fournie. Dans la suite on supposera que le param`etre du filtre est
β = 0.25 (on pourra le changer par la suite si on le d´esire).
• Afin de simplifier le processus de r´eception, on normalisera les filtres cr´ees par la fonction createf ilter
pour que leur ´energie soit ´egale `
a 1. L’´energie d’un filtre sera estim´ee comme la somme de la r´eponse
impulsionnelle au carr´e.
• Pour r´ealiser la convolution entre le signal a(t) et la r´eponse impulsionnelle du filtre de mise en forme
he (t) afin de former x(t), on utilisera la fonction prodconv.m fournie. Lorsque l’on utilisera le filtre en
racine de cosinus surelev´e, on ne pourra pas choisir un support temporel infini. On pourra donc se limiter
la r´eponse impulsionnelle aux temps compris entre −5T et 5T . Attention, le signal obtenu en sortie n’a
plus le mˆeme support temporel, il faut donc travailler ensuite avec le nouveau vecteur temps fourni en
sortie de la fonction prodconv.m.
1.2
Finalisation de l’emetteur
Combiner ces fonctions, ainsi que les fonctions cr´eees lors du TP 1, afin de fournir une fonction Matlab
[x, t, a, T ] = emetteur(d, Db, t step, method dic, method f il)
g´en´erant un signal x mis en forme `
a partir d’une s´erie de bits d. t repr´esente le vecteur temps associ´e au signal
x, a la liste des symboles qui ont ´et´e transmis, T la p´eriode symbole. Db repr´esente ici le d´ebit binaire, t step
le pas du vecteur temps `
a utiliser, method dic le dictionnaire `a utiliser et method f il le filtre de mise en forme
a utiliser.
`
Indications
• On pourra prendre pour les tests les param`etres suivants N = 10 (nombre de bits de d), Db=10
bits/seconde et tstep = 10−3 secondes.
• Pour tracer le signal x(t) il faudra bien faire attention de le tracer uniquement que sur la p´eriode voulue.
On pourra utiliser la fonction xlim de Matlab pour cela.
2
Canal
Cr´eer une fonction Matlab
y = canal(x, sigma2)
qui prend en entr´ee le signal x et lui rajoute un bruit blanc additif gaussien de variance sigma2.
Indications
• Pour cr´eer N ´echantillons d’un bruit blanc additif gaussien de variance sigma2, on pourra utiliser la
commande b = sqrt(sigma2) ∗ randn(N, 1).
• Pour les simulations, on prendra σ 2 = 0.1
3
R´
ecepteur
Pour construire le r´ecepteur, il y a quatre ´etapes `a r´ealiser :
1. Filtre de r´eception hr (t)
2. Echantillonnage
3. D´ecision
4. D´ecodage
On peut n´eanmoins remarquer que
• L’´etape 1 n’est pas difficile vu que hr (t) = he (−t) : il suffit de convoluer le signal par la r´eponse impulsionnelle he (t) invers´ee temporellement
• L’´etape 4 de d´ecodage a d´ej`
a ´et´e faite dans le TP 1 : il s’agit de la fonction d = symbols2bits(a, method dic)
3.1
Filtre de r´
eception
Cr´eer une fonction
[z, t z, E he] = f iltre reception(y, t y, T, t step, method f il)
qui prend en entr´ee un signal bruit´e y, le convolue avec un filtre de r´eception sp´ecifi´e par la variable method f il
et sort un signal z. t y et t z sont les vecteurs temps respectivement associ´es `a y et z et t step le pas de ces
vecteurs temps. T est la p´eriode symbole. E he est ici l’´energie du filtre d’´emission he utilis´e (qui est aussi
´egale `a celle du filtre de r´eception).
Indications
• Pour cr´eer la r´eponse impulsionnelle du filtre de r´eception, il suffit de cr´eer celle du filtre d’´emission mais
avec t = −t
• On prendra toujours la r´eponse impulsionnelle du filtre entre −5T et 5T
• Attention, la convolution change le vecteur de temps donc t z n’est pas le mˆeme que t y.
3.2
Echantilonnage
Cr´eer une fonction
[z k] = echantillonnage(z, t, T, K)
qui prend un signal z ayant un vecteur temps t, et renvoie uniquement les valeurs situ´ees `a kT avec k compris
entre 0 et K − 1.
Indications
• Au lieu de chercher les valeurs pr´ecises de kT dans le vecteur temps t, on cherchera la valeur la plus
proche.
3.3
D´
ecision
Cr´eer une fonction
[a hat] = decision(z k, E he, method dic)
qui prend une s´erie de valeurs z k et associe `a chacune un symbole du dictionnaire sp´ecifi´e par la variable
method dic. E he est ici l’´energie du filtre d’´emission he utilis´e.
3.4
Finalisation du r´
ecepteur
En combinant toutes ces fonctions, ainsi que celles r´ealis´ees lors du TP 1, cr´eer une fonction
[d hat, a hat, E he] = recepteur(y, t y, T, K, t step, method dic, method f il)
qui prend en entr´ee un signal bruit´e y (auquel correspond un vecteur temps t y avec un pas t step) et renvoyant
une estimation du message binaire originellement envoy´e d hat. a hat repr´esente l’estimation des symboles
envoy´es et E he l’´energie du filtre de mise en forme. T est la p´eriode symbole, K le nombre de symboles `a
retrouver, et method dic et method f il pr´ecisent respectivement le dictionnaire et les filtres `a utiliser.
Indications
• Si tout fonctionne bien, en prenant σ 2 = 0, on doit retrouver exactement les bits envoy´ees.
4
Evaluation
Pour cette partie, on choisira N = 5000, Db = 103 bits/seconde et tstep = 10−5 secondes.
• Evaluer le rapport signal sur bruit, ainsi que le taux d’erreur symbole et le taux d’erreur binaire grˆ
ace
aux formules
r
Eh e
qu’on pourra exprimer en dB
σ2
nombre de symboles mal transmis
T ES =
nombre total de symboles emis
SN R =
T EB =
nombre de bits mal transmis
nombre total de bits emis
• Tester les performances de la chaˆıne de transmission pour plusieurs dictionnaire, plusieurs filtres de mise
en forme, plusieurs valeurs de σ 2 , ... et commenter.
• Comparer le taux d’erreur symbole `
a la probabilit´e d’erreur th´eorique
r
M −1
2Ehe
err
Psym = 2
)
Q(
M
N0