Jean-Pierre Tillich, AudreyTixier, Nicolas Sendrier
Transcript of Jean-Pierre Tillich, AudreyTixier, Nicolas Sendrier
Reconstruction de la permutation d’un turbo-code
Jean-Pierre Tillich, Audrey Tixier, Nicolas Sendrier
Inria Paris-Rocquencourt
Journees C2 - mars 2014
Plan
1 Reconnaissance de codeProblemeMotivationsHistorique
2 Reconstruction de Turbo-codesCodes convolutifs et turbo-codesExempleReconstruction de la permutation
3 ResultatsResultats pratiquesAnalyse theorique
4 Conclusion
Probleme de la reconnaissance de code
Le probleme :
E une famille de codesC un code tire uniformement dans Ec1, . . . , cM des mots de code tires uniformement dans C
Les donnees :
c1, . . . , cM les mots de code bruites
Les objectifs :
1. Retrouver C2. Decoder c1, . . . , cM
1/20
Motivations
Conception de recepteurs intelligents
Domaine des telecommunicationsRecepteurs auto-adaptifs en fonction des donnees recues
Comprehension du codage de l’ADN
Comment modeliser la redondance presente dans l’ADN?
Dans un milieu non-cooperatif, on dispose de donnees codeespar un code inconnu
Pouvoir decoder ces donnees
2/20
Historique
[Val01] : Probleme NP Complet pour les codes lineaires
Codes convolutifs[Ric95]
[Fil97] [Fil00]
[Val01]
[LSLZ04]
[BSH06]
[DH07, WHZ07] [CF09, CS09, MGB09]
[ZMGR11]
[MGB12]
Turbo-codes
[Bar05]
[Bar07]
[GMB08]
[CS10, CFT10]
[NAF11]
[DHJ12]
Codes LDPC
[CT08] [CF09]
3/20
Codes convolutifs
Un code convolutif (n, k) possede une matrice generatriceinfinie de la forme
G =
G1 G2 . . . Gs
G1 G2 . . . Gs
G1 G2 . . . Gs
. . . . . . . . .
Ou Gi est une matrice binaire de taille k × n
(u1, u2, . . . , uK )︸ ︷︷ ︸
information
×G = (v1, v2, . . . , vN)︸ ︷︷ ︸
mot de code
4/20
Turbo-codes
Schema de codage
u = (u1, u2, . . . , uK )
u
v
w
x = (x1, x2, . . . , xK )
y = (y1, y2, . . . , yK )
z = (z1, z2, . . . , zK )
C1
C2π
cana
l
Notations :
C1 et C2 des codes convolutifsπ une permutation de longueur K
5/20
Exemple
u = (u1, . . . , uK )
π(u)
π
C2
w = (w1, . . . ,wK )
cana
l
x = (x1, . . . , xK )
z = (z1, . . . , zK )
Avec C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
uπ(t) wt
et−1
6/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0mot 2 1 1 ? 1 0 0 ? 1 ? ? 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0mot 4 ? ? 1 0 1 ? 0 ? 1 0 0
π = ( , , , , )
7/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0mot 2 1 1 ? 1 0 0 ? 1 ? ? 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0mot 4 ? ? 1 0 1 ? 0 ? 1 0 0
π = ( , , , , )
8/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0mot 2 1 1 ? 1 0 0 ? 1 ? ? 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0mot 4 ? ? 1 0 1 ? 0 ? 1 0 0
π = (3, , , , )
9/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0 1mot 2 1 1 ? 1 0 0 ? 1 ? ? 0 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0 ?mot 4 ? ? 1 0 1 ? 0 ? 1 0 0 1
π = (3, , , , )
10/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0 1mot 2 1 1 ? 1 0 0 ? 1 ? ? 0 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0 ?mot 4 ? ? 1 0 1 ? 0 ? 1 0 0 1
π = (3, 5, , , )
11/20
Exemple
Code C2 tel que :
wt = uπ(t) ⊕ et−1
et = wt
e0 = 0
x1 x2 x3 x4 x5 z1 z2 z3 z4 z5 e0 e1 e2 e3 e4mot 1 1 1 1 0 0 1 1 1 0 ? 0 1 1 1 0mot 2 1 1 ? 1 0 0 ? 1 ? ? 0 0 0 1 0mot 3 1 0 ? 1 0 ? 1 0 1 1 0 ? 1 0 1mot 4 ? ? 1 0 1 ? 0 ? 1 0 0 1 0 0 1
π = (3, 5, 4, 1, 2)
−→ Reconstruction de la permutation pas a 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 , zM1..t)
Proposition
Avec λ une constante de normalisation
p(π(t) = j |π(1), . . . , π(t − 1), x1, z11..t , . . . , xM , zM1..t)
= λΠMs=1p(π(t) = j |π(1), . . . , π(t − 1), xs , zs1..t)
Information contenue dans chaque mots (mots independants)
p(π(t) = j |π(1), . . . , π(t − 1), xs , zs1..t)
13/20
Reconstruction de la permutation
Notations :
et l’etat du codeur a l’instant t
xπ1..t−1 = (xπ(1), xπ(2), . . . , xπ(t−1))∑
αab→β
: la somme sur tous les triplets (a, b, β) tels que le
codeur passe de l’etat α a l’etat β en entrant a, la redondanceemise correspondante est b
Proposition
Avec γ une constante de normalisation
p(π(t) = j |π(1), . . . , π(t − 1), x, z1..t) =
γ
p(xj)×∑
α
∑
αab→β
p(xj |uj = a)p(zt |wt = b)p(et−1 = α|xπ1..t−1, z1..t−1)
14/20
Resultats pratiques
Canal Gaussien (AWGN) d’ecart type σ, C2 : (1, 1+D2
1+D+D2 )
K σ M M[1]temps de calculen secondes
temps de calculen secondes [1]
64 0.43 20 50 0.02 0.264 0.6 34 115 0.02 0.364 1 243 1243 0.17 12512 0.6 46 170 1.87 11512 0.8 111 600 7 37512 1 346 2 800 17 173512 1.1 660 3 837 20 357512 1.3 1820 29 500 64 4 477
10 000 0.43 40 300 797 8173
[1] : Cluzeau, Finiasz, Tillich, “Methods for the Reconstruction of ParallelTurbo Codes,” ISIT 2010, pp. 2008–2012.
15/20
Resultats pratiques
Canal Binaire Symetrique, C2 : (1, 1+D2
1+D+D2 ) et K = 64
0.0001
0.001
0.01
0.1
1
0 100 200 300 400 500 600
Pro
babi
lité
d’er
reur
sur
la p
erm
utat
ion
Nombre de mots de code observés
p = 0.08p = 0.10p = 0.12p = 0.14p = 0.16
16/20
Resultats pratiques
A capacite de canal fixee, C2 : (1, 1+D2
1+D+D2 ) et K = 64
1e−06
1e−05
0.0001
0.001
0.01
0.1
1
0 50 100 150 200 250 300
Pro
babi
lité
d’er
reur
sur
la p
erm
utat
ion
Nombre de mots de code observés
C = 0.5 Canal effacementC = 0.5 Canal binaire symétrique
C = 0.5 Canal gaussienC = 0.9 Canal effacementl
C = 0.9 Canal binaire symétriqueC = 0.9 Canal gaussien
17/20
Analyse theorique
HypothesesCanal a effacement de probabilite p
C2 : (1, 11+D
)
Probabilite de ne pas retrouver la permutation
1e−09
1e−08
1e−07
1e−06
1e−05
0.0001
0.001
0.01
0.1
1
10
0 50 100 150 200 250
Pro
babi
lité
d’er
reur
sur
la p
erm
utat
ion
Nombre de mots de code
pratique : p=0.1exacte : p=0.1
approx. : p=0.1pratique : p=0.3
exacte : p=0.3approx. : p=0.3
pratique : p=0.5exacte : p=0.5
approx. : p=0.5
Perreur = O
K 2
(
2p + ((√2 − 1)p + 1)2(1 − p)2
2(1 + p2 − p)
)M
18/20
Conclusion
Algorithme de reconstruction de la permutation d’unturbo-code
Peu complexe : O(MK 2)
Utilise l’information de facon optimale
Avec de bons resultats dans le cas bruite
19/20