Reconstruction de la permutation d`un turbo-code
Transcription
Reconstruction de la permutation d`un turbo-code
Reconstruction de la permutation d’un turbo-code Jean-Pierre Tillich, Audrey Tixier, Nicolas Sendrier Inria Paris-Rocquencourt Journées C2 - mars 2014 Plan 1 Reconnaissance de code Problème Motivations Historique 2 Reconstruction de Turbo-codes Codes convolutifs et turbo-codes Exemple Reconstruction de la permutation 3 Résultats Résultats pratiques Analyse théorique 4 Conclusion Problème de la reconnaissance de code Le problème : E une famille de codes C un code tiré uniformément dans E c1 , . . . , cM des mots de code tirés uniformément dans C Les données : ĉ1 , . . . , ĉM les mots de code bruités Les objectifs : 1. Retrouver C 2. Décoder ĉ1 , . . . , ĉM 1/20 Motivations Conception de récepteurs intelligents Domaine des télécommunications Récepteurs auto-adaptifs en fonction des données reçues Compréhension du codage de l’ADN Comment modéliser la redondance présente dans l’ADN ? Dans un milieu non-coopératif, on dispose de données codées par un code inconnu Pouvoir décoder ces données 2/20 Historique [Val01] : Problème NP Complet pour les codes linéaires Codes convolutifs [Ric95] [Val01] [BSH06] [ZMGR11] [Fil97] [Fil00] [LSLZ04] [DH07, WHZ07] Turbo-codes [Bar07] [MGB12] [CF09, CS09, MGB09] [CS10, CFT10] [DHJ12] [NAF11] [GMB08] [Bar05] Codes LDPC [CT08] [CF09] 3/20 Codes convolutifs Un code convolutif (n, k) possède une matrice génératrice infinie de la forme G1 G2 . . . Gs G1 G2 . . . Gs G = G1 G2 . . . Gs ... ... ... Où Gi est une matrice binaire de taille k × n (u1 , u2 , . . . , uK ) ×G = (v1 , v2 , . . . , vN ) | {z information } | {z mot de code } 4/20 Turbo-codes Schéma de codage x = (x1 , x2 , . . . , xK ) u = (u1 , u2 , . . . , uK ) π C1 v C2 w canal u y = (y1 , y2 , . . . , yK ) z = (z1 , z2 , . . . , zK ) Notations : C1 et C2 des codes convolutifs π une permutation de longueur K 5/20 Exemple u = (u1 , . . . , uK ) x = (x1 , . . . , xK ) π(u) C2 canal π z = (z1 , . . . , zK ) w = (w1 , . . . , wK ) C2 tel que : Avec wt = uπ(t) ⊕ et−1 e t = wt e =0 0 uπ(t) wt et−1 6/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 e1 e2 e3 e4 0 0 0 0 π=( , , , , ) 7/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 e1 e2 e3 e4 0 0 0 0 π=( , , , , ) 8/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 e1 e2 e3 e4 0 0 0 0 π = (3, , , , ) 9/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 0 0 0 0 e1 e2 e3 e4 1 0 ? 1 π = (3, , , , ) 10/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 0 0 0 0 e1 e2 e3 e4 1 0 ? 1 π = (3, 5, , , ) 11/20 Exemple Code C2 tel que : mot mot mot mot 1 2 3 4 x1 1 1 1 ? x2 1 1 0 ? x3 1 ? ? 1 wt = uπ(t) ⊕ et−1 e =w t t e =0 0 x4 0 1 1 0 x5 0 0 0 1 z1 1 0 ? ? z2 1 ? 1 0 z3 1 1 0 ? z4 0 ? 1 1 z5 ? ? 1 0 e0 0 0 0 0 e1 1 0 ? 1 e2 1 0 1 0 e3 1 1 0 0 e4 0 0 1 1 π = (3, 5, 4, 1, 2) −→ Reconstruction de la permutation pas à pas 12/20 Reconstruction de la permutation Information contenue dans une liste de mots de code p(π(t) = j|π(1), . . . , π(t − 1), x1 , z11..t , . . . , xM , zM 1..t ) Proposition Avec λ une constante de normalisation p(π(t) = j|π(1), . . . , π(t − 1), x1 , z11..t , . . . , xM , zM 1..t ) s s = λΠM s=1 p(π(t) = j|π(1), . . . , π(t − 1), x , z1..t ) Information contenue dans chaque mots (mots indépendants) p(π(t) = j|π(1), . . . , π(t − 1), xs , zs1..t ) 13/20 Reconstruction de la permutation Notations : et l’état du codeur à l’instant t xπ1..t−1 = (xπ(1) , xπ(2) , . . . , xπ(t−1) ) P ab α→β : la somme sur tous les triplets (a, b, β) tels que le codeur passe de l’état α à l’état β en entrant a, la redondance émise correspondante est b Proposition Avec γ une constante de normalisation p(π(t) = j|π(1), . . . , π(t − 1), x, z1..t ) = XX γ p(xj |uj = a)p(zt |wt = b)p(et−1 = α|xπ1..t−1 , z1..t−1 ) × p(xj ) α ab α→β 14/20 Résultats pratiques 2 1+D Canal Gaussien (AWGN) d’écart type σ, C2 : (1, 1+D+D 2) K σ 64 64 64 512 512 512 512 512 10 000 0.43 0.6 1 0.6 0.8 1 1.1 1.3 0.43 M 20 34 243 46 111 346 660 1820 40 M[1] 50 115 1243 170 600 2 800 3 837 29 500 300 temps de calcul en secondes 0.02 0.02 0.17 1.87 7 17 20 64 797 temps de calcul en secondes [1] 0.2 0.3 12 11 37 173 357 4 477 8173 [1] : Cluzeau, Finiasz, Tillich, “Methods for the Reconstruction of Parallel Turbo Codes,” ISIT 2010, pp. 2008–2012. 15/20 Résultats pratiques 2 1+D Canal Binaire Symétrique, C2 : (1, 1+D+D 2 ) et K = 64 Probabilité d’erreur sur la permutation 1 0.1 0.01 0.001 p = 0.08 p = 0.10 p = 0.12 p = 0.14 p = 0.16 0.0001 0 100 200 300 400 500 600 Nombre de mots de code observés 16/20 Résultats pratiques 2 1+D A capacité de canal fixée, C2 : (1, 1+D+D 2 ) et K = 64 1 Probabilité d’erreur sur la permutation 0.1 0.01 0.001 0.0001 C = 0.5 Canal effacement C = 0.5 Canal binaire symétrique C = 0.5 Canal gaussien C = 0.9 Canal effacementl C = 0.9 Canal binaire symétrique C = 0.9 Canal gaussien 1e−05 1e−06 0 50 100 150 200 250 300 Nombre de mots de code observés 17/20 Analyse théorique Hypothèses Canal à effacement de probabilité p 1 C2 : (1, 1+D ) Probabilité de ne pas retrouver la permutation 10 pratique : p=0.1 exacte : p=0.1 approx. : p=0.1 pratique : p=0.3 exacte : p=0.3 approx. : p=0.3 pratique : p=0.5 exacte : p=0.5 approx. : p=0.5 1 Probabilité d’erreur sur la permutation 0.1 0.01 0.001 0.0001 1e−05 1e−06 1e−07 1e−08 1e−09 0 50 100 150 200 250 Nombre de mots de code Perreur = O K 2 !M √ 2p + (( 2 − 1)p + 1)2 (1 − p)2 2(1 + p 2 − p) 18/20 Conclusion Algorithme de reconstruction de la permutation d’un turbo-code Peu complexe : O(MK 2 ) Utilise l’information de façon optimale Avec de bons résultats dans le cas bruité 19/20 Conclusion Généralisable Aux turbo-codes parallèles poinçonnés (faiblement) x π C1 v C2 w v ′ w′ Canal u Poinçonnage u y z u C1 u π v C2 s w Canal Aux turbo-codes séries x z Perspective Trouver une méthode pour le cas fortement poinçonné 20/20