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