Projets diffusion d`images sur un lien DVB S2

Transcription

Projets diffusion d`images sur un lien DVB S2
Projets diffusion d’images sur un lien
DVB S2
Partie I : étude du système DVB S2
1
Introduction
Introduction L’objectif du projet de communication numérique est de simuler sous Matlab une
chaı̂ne de transmission au standard DVB-S2 (diffusion par satellite) et de réaliser la transmission
d’un flux compressé sur ce lien afin de réaliser l’impacte d’erreur sur l’applicatif. Le trvail à
réaliser sera fait en deux partie : la première concerne la mise en place des éléments de base de la
chaı̂ne de transmission DVB S2, la seconde la transmission et la gestion d’un flux compressé dans
un canal variant dans le temps et soumis à des non linéarités.
Dans la première partie, nous concidérerons donc le système DVB S2 seul. Le canal de propagation considéré en premier lieu est le canal à bruit additif Gaussien (AWGN). Nous regarderons
ensuite l’effet des non linéarité sur le signal reçu et la perte induite au récepteur. La simulation se
fera par étapes. Dans un premier temps on mettra en place le couple modulateur/démodulateur. On
évaluera alors les performances asymtptotiques du DVB S2 en calculant la capacité du système.
On ajoutera ensuite le codage canal. Enfin, on considèrera d l’influence de non linéarité sur le
système.
2
Mise en oeuvre du modulateur démodulateur
Le modulateur DVB-S2 utilise différentes modulations : QPSK,8-PSK, 16-APSK et 32-APSK
(représentées Figure 1 et Table 1). On se limitera ici aux trois premières uniquement. Le filtrage
de mise en forme est réalisé un filtre en racine de cosinus surélevé (SRRCF : Square root raised
cosine filter). La densité spectrale bilatéralé de puissance associée au bruit n(t) introduit par le
canal s’écrit Sn (f ) = N 0/2. Afin de réduire le temps de simulation on travaillera sur la chaine
équivalente bande de base associée à la chaine de transmission sur fréquence porteuse (voir Figs.
2 et 3).
MODAP Télécommunications sans fil Multimédia
Moreover their performance on linear channels are almost as good as their QAM
competitors.
Moreover their performance on linear channels are almost as good as their QAM
competitors.
Q
Q
100
10
110
00
Q
Q
ρ=1
10
010
00
100
110
I
ρ=1
000
I
001
ρ=1
11
011
01
010
I
(a) QPSK
11
000
ρ=1
101
111
I
001
011 (b) 8-PSK
01
101
111
(a) QPSK
(b) 8-PSK
Q
Q
1010
1000
0010
0000
R2
R1
1110
0111
1100
11100
0100
11001
00101
11110
00000
00100
10100
10101
10000
10001
Q
R1
1000
10110
0101
10111
0001
0000
R2
1011
11001
11010
00101 00010 00001
R3
11100
11111
00111
00100
00011
R2
1001
01111
R1
1110
1100
0100
01001
10010
10011
01100
01110
00110
0010 0011
11000
01101I
text
1101
01000
R2
11101
1111
1010
0110
00001
I
text
Q
01001
01100
R3
0110
01101
11101
11110
10101
R1
10000
10001
I
text
(c) 16-APSK
(d) 32-APSK
10110
10111
Figure
6.
Constellation
Labelings
0101
1101
1111
11000
I
text
0111
01000
11011
01011
10100
00000
01010
10010
10011
F IGURE 1 – Modulations possibles
sur DVB-S2
01110
00010
00110
0011
11010
0001
00111
11111
1011
00011
1001
01111
MODAP Télécommunications sans fil Multimédia
(c) 16-APSK
Figure 6. Constellation Labelings
01011
(d) 32-APSK
11011
01010
Constellation Peak to aver
Constellation Peak to average =2.15 dB
γ
45
TABLE 1 – Tableau sur les rayons optimum sur DVB-S2
Robert Vallet
14/04/2005
46
F IGURE 2 – Chaı̂ne de transmission sur porteuse
F IGURE 3 – Chaı̂ne de transmission passe-bas équivalente
MODAP Télécommunications sans fil Multimédia
2.1
Génération de l’enveloppe complexe associée au signal à transmettre
Pour chaque modulation, on générera une suite de symboles équiprobables et indépendants,
sk , conformément aux constellation du standard DVB-S2 (voir Fig. 1 En utilisant la fonction kron
de matlab, on génerera la suite d’impulsions de Dirac correspondante.
Pour la génération des symboles, on utilisera de préférence les fonctions Matlab. La génération
de symboles PSK est illustrèe par le code suivant :
% C o n s t r u c t a m o d u l a t o r o b j e c t f o r QPSK m o d u l a t i o n .
h = modem . pskmod ( 4 )
% C o n s t r u c t a m o d u l a t o r o b j e c t f o r 8−PSK m o d u l a t i o n w i t h
% c o n s t e l l a t i o n s h i f t e d by p i / 8 r a d i a n s .
h = modem . pskmod ( 8 , p i / 8 )
%
%
%
h
C o n s t r u c t an o b j e c t t o m o d u l a t e b i n a r y
m o d u l a t i o n . The c o n s t e l l a t i o n h a s Gray
s h i f t e d by −p i / 1 6 r a d i a n s .
= modem . pskmod ( 'M ' , 1 6 , ' P h a s e O f f s e t ' ,
' SymbolOrder ' , ' Gray ' ,
d a t a u s i n g 16−PSK .
mapping and i s
−p i / 1 6 , . . .
' InputType ' , ' Bit ' )
Pour générer des symboles à l’aide des précédents objets, on utilisera les fonctions suivantes
%M a t l a b m o d u l a t e f u n c t i o n
modulatedsig = modulate ( h , message ) ;
Le constructeur pour la modulation 16-APSK et la modulation du signal sera réalisé à l’aide
des fichiers fournis :
% 16 APSK c o n s t e l l a t i o n and b i t Mapping
gamma = gamma_dvbs2 ( R ) ;
[ constellation , bitMapping ] = DVBS2Constellation ( ' 16APSK ' , gamma ) ;
% M o d u l a t e t h e s i g n a l f o r 16−APSK
modulatedsig = mod_ 16apsk ( codword , gamma ) ;
La période symbole Ts sera composée de N échantillons : Ts = N Te , Te étant la période
d’échantillonnage et N le nombre d’échantillons par symbole. On mettra en forme en utilisant
un filtre en racine de cosinus surélevé de roll-off α qui pourra prendre différentes valeurs comme
spécifié par le standard α = {0.2, 0.25, 0.35} et de réponse impulsionnelle notée h(t). La synthèse
de h(t) pourra être effectuée en utilisant par exemple la fonction rcosfir() de Matlab.
f u n c t i o n K = kron (A , B)
%KRON
Kronecker t e n s o r product .
%
KRON(X, Y) i s t h e K r o n e c k e r t e n s o r p r o d u c t o f X and Y .
%
The r e s u l t i s a l a r g e m a t r i x f o r m e d by t a k i n g a l l p o s s i b l e
%
p r o d u c t s b e t w e e n t h e e l e m e n t s o f X and t h o s e o f Y .
For
%
example , i f X i s 2 by 3 , t h e n KRON(X, Y) i s
%
%
[ X( 1 , 1 ) *Y X( 1 , 2 ) *Y X( 1 , 3 ) *Y
%
X( 2 , 1 ) *Y X( 2 , 2 ) *Y X( 2 , 3 ) *Y ]
%
MODAP Télécommunications sans fil Multimédia
%
%
I f e i t h e r X or Y i s sparse , only nonzero elements are m u l t i p l i e d
i n t h e c o m p u t a t i o n , and t h e r e s u l t i s s p a r s e .
f u n c t i o n [ bb , tim ] = rcosfir ( r , N_T , rate , T , fil_type , col )
%RCOSFIR D e s i g n a r a i s e d c o s i n e FIR f i l t e r .
%
B = RCOSFIR ( R , N T , RATE , T ) d e s i g n s and r e t u r n s a r a i s e d c o s i n e FIR f i l t e r .
%
A r a i s e d c o s i n e f i l t e r i s t y p i c a l l y u s e d t o s h a p e and o v e r s a m p l e a symbol
%
s t r e a m b e f o r e m o d u l a t i o n / t r a n s m i s s i o n a s w e l l a s a f t e r r e c e p t i o n and
%
demodulation .
I t i s u s e d t o r e d u c e t h e b a n d w i d t h o f t h e o v e r s a m p l e d symbol
%
stream without introducing intersymbol i n t e r f e r e n c e .
%
%
The t i m e r e s p o n s e o f t h e r a i s e d c o s i n e f i l t e r i s ,
%
%
h ( t ) = SINC ( t / T ) COS( p i R t / T ) / ( 1 − 4 Rˆ 2 t ˆ 2 / T ˆ 2 )
%
%
The f r e q u e n c y domain h a s t h e s p e c t r u m
%
%
/ T
when 0 < | f | < (1− r ) / 2 / T
%
|
pi T
1−R
T
1−R
1+R
%
H( f ) = < ( 1 + c o s(−−−−) ( | f | − −−−−) −−−
when −−− < | f | < −−−
%
|
r
2T
2
2 T
2 T
%
\ 0
when | f | > ( 1 + r ) / 2 / T
%
%
%
T i s t h e i n p u t s i g n a l s a m p l i n g p e r i o d , i n s e c o n d s . RATE i s t h e
%
o v e r s a m p l i n g r a t e f o r t h e f i l t e r ( o r t h e number o f o u t p u t s a m p l e s p e r i n p u t
%
s a m p l e ) . The r o l l o f f f a c t o r , R , d e t e r m i n e s t h e w i d t h o f t h e t r a n s i t i o n
%
band . R h a s no u n i t s . The t r a n s i t i o n band i s (1−R ) / ( 2 * T ) < | f | <
%
( 1 +R ) / ( 2 * T ) .
%
%
N T i s a s c a l a r or a vector of length 2.
I f N T i s s p e c i f i e d as a
%
s ca la r , then the f i l t e r length i s 2 * N T + 1 input samples .
If N T is
%
a vector , i t s p e c i f i e s the e x t e n t of the f i l t e r . In t h i s case , the f i l t e r
%
length i s N T ( 2) − N T ( 1) + 1 input samples ( or
%
( N T ( 2 ) − N T ( 1 ) ) * RATE + 1 o u t p u t s a m p l e s ) .
%
%
The d e f a u l t v a l u e f o r N T i s 3 . The d e f a u l t v a l u e o f RATE i s 5 .
%
The d e f a u l t v a l u e o f T i s 1 .
%
%
B = RCOSFIR ( R , N T , RATE , T , FILTER TYPE ) d e s i g n s and r e t u r n s a
%
s q u a r e r o o t r a i s e d c o s i n e f i l t e r i f FILTER TYPE == ' s q r t ' . The d e f a u l t
%
v a l u e o f FILTER TYPE , ' normal ' , r e t u r n s a n o r m a l r a i s e d c o s i n e f i l t e r .
%
%
RCOSFIR ( R , N T , RATE , T , FILTER TYPE , COL) p r o d u c e s t h e t i m e r e s p o n s e
%
and f r e q u e n c y r e s p o n s e w i t h t h e c u r v e c o l o r a s s p e c i f i e d i n t h e s t r i n g
%
v a r i a b l e COL . The s t r i n g i n COL c a n be any t y p e a s d e f i n e d i n
%
PLOT .
I f COL i s n o t p r e s e n t , t h e d e f a u l t c o l o r w i l l be u s e d i n t h e p l o t
%
%
[ B , Sample Time ] = RCOSFIR ( . . . ) r e t u r n s t h e FIR f i l t e r and t h e o u t p u t s a m p l e
%
t i m e f o r t h e f i l t e r . Note t h a t t h e f i l t e r s a m p l e t i m e i s T / RATE .
%
%
See a l s o RCOSIIR , RCOSFLT , RCOSINE , FIRRCOS , RCOSDEMO, GAUSSFIR .
2.2
Mise en place du récepteur en l’absence de canal
On placera en réception un filtre permettant de respecter le critère de Nyquist. On mettra
ensuite en place l’échantillonneur. On choisira l’instant optimal d’échantillonnage en faisant at-
MODAP Télécommunications sans fil Multimédia
tention de prendre en compte les retards introduits par les filtres de la chaine de transmission. On
vérifiera que le taux d’erreur symbole est bien nul dans ce cas.
2.3
Canal de transmission et démodulation souple
On ajoutera ensuite un canal AWGN (canal satellite fixe, voie aller) à la chaı̂ne de transmission
précédente. On pourra utiliser plusieurs puissances de bruit que l’on calculera en fonction de
Es /N0 (rapport signal sur bruit par symbole codé). On rappelle que la variance du bruit à appliquer
sur les voies en phase et quadrature du bruit complexe ne(t) s’écrit en fonction du Es /N0 souhaité
de la manière suivante :
P
|h(n)|2 σs2
2
2
σnI = σnQ = n
,
(1)
2Es /N0
où σs2 représente la variance des symboles sn , h(n) la réponse impulsionnelle numérique du filtre
de mise en forme et Es /N0 le rapport signal à bruit par symbole à l’entrée du récepteur.
Pour la démodulation souple, on implantera ensuite l’organe de décision à l’aide des fonctions
natives de Matlab qui permettent de générer des log-likelihood ratios (LLR). On pourra vérifier
que le taux d’erreur binaire est bien nul à fort rapport signal sur bruit.
Les fonctions de démodulations suivent l’exemple suivant :
% C o n s t r u c t a d e m o d u l a t o r o b j e c t from an e x i s t i n g
% m o d u l a t o r o b j e c t f o r PSK m o d u l a t i o n i n o r d e r t o
% compute a p p r o x i m a t e l o g−l i k e l i h o o d r a t i o f o r
% a b a s e b a n d s i g n a l whose e s t i m a t e d n o i s e v a r i a n c e i s 0 . 8 1 .
modObj = modem . pskmod ( 'M ' , 8 , ' I n p u t T y p e ' , ' B i t ' )
demodObj = modem . pskdemod ( modObj , ' D e c i s i o n T y p e ' , . . .
' LLR ' , ' N o i s e V a r i a n c e ' , 0 . 8 1 )
% Compute l o g−l i k e l i h o o d r a t i o s (AWGN c h a n n e l ) from n o i s y r e c e i v e d s i g n a l
llr = demodulate ( demodObj , noisedsig ) ;
Pour le cas de la modulation 16-APSK, on réalisera une fonction de démodulation souple
spécifique.
3
Codage de canal et entrelacement
Le standard DVB-S2 spécifie un codage canal constitué de deux codes concaténés : un code
BCH suivi d’un code LDPC. Dans un premier temps, on ne mettra en oeuvre que les codes LDPC
pour la taille du mode standard N = 64800 bits codés. Pour générer le code, coder et décoder,
on utilisera les fonctions natives de Matlab données comme données si après. Un exemple de
déclaration est donné ci-dessous.
% LDPC c o n s t r u c t i o n
R=2/3;
% R a t e o f t h e LDPC c o d e
H = dvbs2ldpc ( R ) ;
% C o n s t r u c t DVB−S2 LDPC m a t r i x w i t h r a t e R
enc = fec . ldpcenc ( H ) ; % C o n s t r u c t an LDPC e n c o d e r o b j e c t l i n k e d t o H
% C o n s t r u c t a companion LDPC d e c o d e r o b j e c t
dec = fec . ldpcdec ( H ) ;
MODAP Télécommunications sans fil Multimédia
Interleaver
Robert Vallet
14/04/2005
F IGURE 4 – Paramètres d’entrelacement
44
dec . DecisionType = ' Hard d e c i s i o n ' ;
dec . OutputFormat = ' I n f o r m a t i o n p a r t ' ;
dec . NumIterations = 5 0 ;
% S t o p i f a l l p a r i t y −c h e c k s a r e s a t i s f i e d
dec . DoParityChecks = ' Yes ' ;
L’encodage peut sécrire de la manière suivante :
% G e n e r a t e and e n c o d e a random b i n a r y m e s s a g e
msg = randint ( 1 , enc . NumInfoBits , 2 ) ;
codeword = encode ( enc , msg ) ;
Le décodage est réalisé avec la function suivante à partir des LLRs reçus après démodulation :
% Decode r e c e i v e d s i g n a l u s i n g LLR and ' dec ' LDPC d e c o d e r o b j e c t
decodedmsg = decode ( dec , receivedllr ) ;
L’entrelacement est un entrelacement ligne-colonne dont les caractéristiques sont données Fig.
4 avec un exemple d’utilisation pour la 8-PSK pour des rendements différent de R = 3/5.
MODAP Télécommunications sans fil Multimédia
4
Travail à réaliser
1. Mettre en place les différents éléments de la chaı̂ne,
2. Calculer les capacités des systèmes mis en oeuvre pour différentes modulations,
3. Calculer les taux d’erreurs binaires pour les différentes modulations et différents rendement
pour 50 itérations de décodage. En déduire les plages d’utilisation des différents couples
(rendement, modulation),
4. Comparer l’efficacité du système à l’efficacité spectrale théorique pour les différents modes
pour un taux d’erreur binaire cible de 10−5 ,
5. si vous le temps, introduire le code BCH.
MODAP Télécommunications sans fil Multimédia