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