Académique Documents
Professionnel Documents
Culture Documents
Turbo codes
(convolutifs)
Timisoara
18-20 mars, 2003
Michel Jézéquel,
Claude Berrou et Catherine Douillard ENST Bretagne
Michel.Jezequel@enst-bretagne.fr
Plan
1. Les codes correcteurs d’erreurs 4. Turbo codes
1. Généralités • La philosophie
2. Limites Théoriques • Les différents schémas
2. Les codes convolutifs • Turbo décodage
1. Les codes classiques 5. Permutation
2. Les codes RSC
• Régulière
3. Poinçonnage et terminaison
• Aléatoire
3. Les algorithmes SISO • Pseudo-aléatoire
1. SOVA
6. Turbo codes duo-binaires
2. MAP
• Principe et avantages
3. SUB-MAP
• Performance
7. Conclusions et perspectives
ENST Bretagne 1
Timisoara 18-20 mars 2003
Chapitre 1
Milieu
de
transmission
ENST Bretagne 2
Timisoara 18-20 mars 2003
p1,1 p1,n-k
Forme matricielle
[r1 r2 ... rj ... rn-k] = [d1 d2 ... di ... dk] pk,1 pk,n-k
ENST Bretagne 3
Timisoara 18-20 mars 2003
Code (n , k , dmin)
de distance minimale dmin
Exemple :
ENST Bretagne 4
Timisoara 18-20 mars 2003
10-1 1 E
5
non codé erfc ( b )
2 N0
10-2 avec
5 ∞
2
10-3
mauvaise
erfc( x) = ∫ exp(−t 2 )dt
π t=x
5
convergence, gain
10-4 asymptotique élevé
5
10-5
5
10-6
Bonne
5
convergence, faible
10-7 gain asymptotique
5
Eb/N0 (dB)
10-8
0 1 2 3 4 5 6 7 8 9 10 11 12
Ga = 10 log (R.dmin)
Limite théorique
(R=1/2, 188 octets) dmin > 25
Exemple :
ENST Bretagne 5
Timisoara 18-20 mars 2003
di
(donnée) s1 s2 s3
Yi
di Hamming Yi di Hamming Yi
étendu étendu
0000 0000 0000 1111 1111 1111
0001 0111 1011 1110 1000 0100
0010 1101 0111 1101 0010 1000
0011 1010 1100 1100 0101 0011
0100 1110 1110 1011 0001 0001
0101 1001 0101 1010 0110 1010
0110 0011 1001 1001 1100 0110
0111 0100 0010 1000 1011 1101
(autre exemple : le code de Golay étendu (24, 12, 8) peut être représenté par un treillis circulaire 16 états)
ENST Bretagne 6
Timisoara 18-20 mars 2003
2
canal
à entrée
binaire
canal
continu
ENST Bretagne 7
Timisoara 18-20 mars 2003
ENST Bretagne 8
Timisoara 18-20 mars 2003
Chapitre 2
Codes convolutifs
Plan
• Codes convolutifs classiques
– Représentations
– Propriétés
• Codes convolutifs systématiques
• Codes convolutifs récursifs systématiques
• Rendement de codage et poinçonnage
• Fermeture de treillis
ENST Bretagne 9
Timisoara 18-20 mars 2003
Codes convolutifs
Registre à décalage (mb étages)
b bits b b
d’information
1 2 3 K=m+1
mot de code
fonctions linéaires n symboles
K= longueur de contrainte
R=b/n (rendement de codage)
di di-1 di-2
D D Elias, 1954
Mémoire du code : ν = 2
yi Longueur de contrainte :
K=ν+1=3
xi
R = 1/2
di di-1 di-2
D D Forney, 1970
yi
ENST Bretagne 10
Timisoara 18-20 mars 2003
Exemple
xi
• K=3
di di-1 di-2 • b=1
D D
• n=2
yi •R=b/n=1/2
xi
Exemple
di di-1 di-2
D D
yi
di
state 0 0 2 1 0 0 2 3 1 0 0 0 0 0
xi
yi
ENST Bretagne 11
Timisoara 18-20 mars 2003
Générateurs
2
xi =∑g1jdi− j
j =0
di di-1 di-2
D D
2
yi =∑g 2j di− j
j =0
Trois formes :
• arbre
• machine d’état
• treillis
ENST Bretagne 12
Timisoara 18-20 mars 2003
xi
arbre
di di-1 di-2
D D
xi yi
yi
00
00
00 11
0 01
11
10
11
01
1 11 00
10
10
01
Machine xi
d’états di D di-1 D di-2
xi yi
di =0
xi yi yi
di =1
10
11 10
00 01
00 01 00 11
11 10
01
ENST Bretagne 13
Timisoara 18-20 mars 2003
xi
Treillis
di di-1 di-2
xi yi D D
di =0
xi yi yi
di =1
00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
10 10 10 10
01 01 01
11
Treillis xi yi
di =0
xi yi
di =1
xi
00
di di-1 di-2 00
D D 11 11
01 00
yi 01
10 10
10
01
11
ENST Bretagne 14
Timisoara 18-20 mars 2003
Distance
(K=3) (5,7) -> distance libre = dlibre=5
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
Poids=P=1 10 10 10 10
01 01 01
11
Distance de
Hamming 0 + 2 + 1 + 2 + 0 + 0 =5
Distance
(K=3) (5,7) -> distance libre = dlibre=5
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
Poids =P=2 10 10 10 10
01 01 01
11
Distance de
Hamming 0 + 2 + 1 + 1 + 2 + 0 =6
ENST Bretagne 15
Timisoara 18-20 mars 2003
Distance
(K=3) (5,7) -> distance libre = dlibre=5
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
Poids =P=2
=P=2+2=4 10 10 10 10
01 01 01
11
Distance de
Hamming 0 + 2 + 1 + 0 + 1 + 2 =6
Distance
• Longueur de contrainte : K = 3
• Générateurs (5,7)
– Distance libre minimale = 5
– Spectre des distances:
• Distance = 5 (1 cas), P=1
• Distance = 6 (2 cas), P=4
• Distance = 7 (4 cas), P=12
• ….
ENST Bretagne 16
Timisoara 18-20 mars 2003
Codes systématiques
xi xi=di
di di D D
D D
yi yi
NSC SC
(Non Systematic Convolutional) (Systematic Convolutional)
Codes systématiques
(machine
x
d’états)
i xi=di
di D D di D D
NSC yi SC yi
10 10 10 10
11 01 11 11
00 00
00 00 11 00 10 11
01 01
11 10 01 00
01 xi yi 01
di =0
xi yi
di =1
ENST Bretagne 17
Timisoara 18-20 mars 2003
di D D di D D
NSC yi SC yi
00 00
00 00
11 11 11 01
01 00 01 10
01 01
10 10 xi yi 10 00
di =0
10 10
01 xi yi 01
11 di =1 11
Codes systématiques(distance)
00 00
00
00 11 01 00
01
01 11 11
01
01
10
00
Poids=P=1
Poids=P=1+2=3 10
11
Distance NSC 0 + 2 + 1 + 2 + 0 =5
libre
minimale SC 0 + 2 + 1 + 1 + 0 =4
0 + 2 + 1 + 0 + 1 =4
ENST Bretagne 18
Timisoara 18-20 mars 2003
Codes systématiques
(Taux d’Erreurs Binaire)
TEB
1,E+00
1,E-01
1,E-02
1,E-03
Non codé
1,E-04 SC
NSC
1,E-05
1,E-06
1,E-07
1,E-08 Eb/N0
0 2 4 6 8 10 12
ENST Bretagne 19
Timisoara 18-20 mars 2003
Codes convolutifs
????
ENST Bretagne 20
Timisoara 18-20 mars 2003
di di D D
D D
[1,(1+D+D2)/(1+D2)] yi
NSC yi
[(1+D2),(1+D+D2)]
xi
di
Exemple: D D
K=3,
b=1, n=2,
R=b/n=1/2 [1,(1+D2)/(1+D+D2)] yi
RSC yi
NSC yi
00 00
00 00
11 11 11 11
01 01 00
00
01 01
10 10 xi yi 10 10
di =0
10 10
01 xi yi 01
11 di =1 11
ENST Bretagne 21
Timisoara 18-20 mars 2003
yi yi
NSC RSC
10 10 10 10
11 01 11 01
00 00
00 00 11 00 00 11
01 01
11 10 11 10
01 xi yi 01
di =0
xi yi
di =1
Distance
libre
minimale RSC 0 + 2 + 1 + 2 + 0 =5
ENST Bretagne 22
Timisoara 18-20 mars 2003
ENST Bretagne 23
Timisoara 18-20 mars 2003
R=2/3 xi xi+1 yi+1 xi+2 xi+3 yi+3 xi+4 xi+5 yi+5 xi+6
R=3/4 xi xi+1 xi+2 yi+2 xi+3 xi+4 xi+5 yi+5 xi+6 xi+7
R=3/5 xi xi+1 yi+1 xi+2 yi+2 xi+3 xi+4 yi+4 xi+5 yi+5
Codes poinçonnés
(Taux d’Erreurs Binaire)
TEB Rendement de codage =3/4
1,E+00
1,E-01
1,E-02
1,E-03
Non codé
1,E-04 NSC
RSC
1,E-05
1,E-06
1,E-07
1,E-08 Eb/N0
0 2 4 6 8 10 12
ENST Bretagne 24
Timisoara 18-20 mars 2003
d X
meilleur est le
code convolutif Y
ν =2 ν =4
0.05 0.05 0.04
ν =6 ν =8
0.04 0.04 0.03
Fermeture de treillis
xi 00
di =0
di 01
D 0 D 0 di =1
10
Initialisation yi
11
00
01
10
11
0 1 2 3 n-1 n
Bloc de k bits, 2k bits transmis → R=1/2
ENST Bretagne 25
Timisoara 18-20 mars 2003
Fermeture de treillis
xi 00
di =0
di 01
D 0 D 0 di =1
10
Initialisation yi
11
00
01 Transmission
de l’état final
10 (K-1 bits)
11
0 1 2 3 n-1 n
Bloc de k bits, 2k+K-1 bits transmis → R=k/(2k+K-1)
Fermeture de treillis
xi xi
di 0
di D 0 D 0 D D Insertion
de
tail bits
Initialisation yi yi
00 00
01
10
11
0 1 2 3 n-1 n
Bloc de k bits, 2k+2(K-1) bits transmis → R=k/2(k+K-1)
ENST Bretagne 26
Timisoara 18-20 mars 2003
di
D D D
yi
000
001
010
011
100
101
110
111
0 1 1 0 1 1 0 1
di
D D D
yi
000
001
010
011
100
101
110
111
ENST Bretagne 27
Timisoara 18-20 mars 2003
A s1 s2 s3
B
s1,i Ai + Bi 1 0 1
Si = s2,i ; Xi = Bi ; G = 1 0 0
s3,i Bi 0 1 0
S i −1 = G.S i − 2 + X i − 2
S1 = G.S 0 + X 0
S k = G k .S 0 + ∑ G k − p X p −1 (2)
p =1...k
−1
Sc = I + G k . ∑ G k-p X p −1 (3)
p =1...k
ENST Bretagne 28
Timisoara 18-20 mars 2003
En pratique :
Le codeur est initialisé à S0 = 0 ; la séquence de longueur k est codée donnant, d’après (2) :
Sk 0 = ∑ G k − p X p −1
p =1...k
(3) devient :
−1
Sc = I + G k . Sk 0 (4)
ENST Bretagne 29
Timisoara 18-20 mars 2003
Fermeture de treillis
• “tail bits”
rendement de codage
☺ facile à implémenter
• codes circulaires (“tail biting” NSC)
pré-codage
☺ rendement de codage
ENST Bretagne 30
Timisoara 18-20 mars 2003
Chapitre 3
Algorithmes de décodage à
entrée et sortie pondérées ou
SISO (Soft-In Soft-Out)
ENST Bretagne 31
Timisoara 18-20 mars 2003
Xi
01 (1) 01 (1)
10 (2) 10 (2)
di D D
11 (3) 11 (3)
i-1 i
di = 0
Yi
di = 1
ENST Bretagne 32
Timisoara 18-20 mars 2003
k k
• Maximiser Pr{R1 |C1 }
k
[ 2
minimiser ∑ ( xi − X i ) + ( yi − Yi )
i =1
2
]
ENST Bretagne 33
Timisoara 18-20 mars 2003
ENST Bretagne 34
Timisoara 18-20 mars 2003
2
dˆi − L M is (2) = min ( M is (s))
s = 0,..., 3
3
i−L i − L −1 i − L − 2 i−2 i −1 i
ENST Bretagne 35
Timisoara 18-20 mars 2003
Si ∆M i −1 (1) >> 0
1
et ∆M i (2) = 0
2
=> le poids à l’instant i-1
3 doit être revu à la baisse
i−L i − L −1 i − L − 2 i−2 i −1 i
survivant concurrent
ENST Bretagne 36
Timisoara 18-20 mars 2003
ENST Bretagne 37
Timisoara 18-20 mars 2003
Exemple 0 0
k 1 1
* Pr{Si −1 = 1, Si = 2, r1 } = αi −1 (1) γ i (1,2)βi (2)
k 2 2
* Pr{Si −1 = 0, Si = 2, r1 } = α i −1 (0) γ i (0,2)βi (2)
3 3
i-1 i
di = 0
di = 1
α i −1 (1) γ i (1,0)βi (0) + α i −1 (2) γ i (2,1)βi (1)
Λ (d i ) = ln L
α i −1 (0) γ i (0,0)βi (0) + α i −1 (3) γ i (3,1)βi (1)
+ α i −1 (0) γ i (0,2)βi (2) + α i −1 (3) γ i (3,3)βi (3)
L
+ α i −1 (1) γ i (1,2)βi (2) + α i −1 ( 2) γ i (2,3)βi (3)
ENST Bretagne 38
Timisoara 18-20 mars 2003
2ν −1
α i (s) = ∑ αi −1 (s′) γ i (s′, s) (ν = mémoire du code)
s′= 0
2 2
α i −1 (2) α i +1 (2)
3 3
α i −1 (3)
i −1 i i +1
di ou di +1 = 0
di ou di +1 = 1
ENST Bretagne 39
Timisoara 18-20 mars 2003
β k (s k ) = 1, β k (s) = 0 ∀s ≠ s k
Si l’état final est inconnu :
1
β k (s) = ∀s
2ν
βi (s)
Normalisation: β′i (s) = ν
2 −1
∑ βi (s' )
s′= 0
di ou d i +1 = 0
di ou d i +1 = 1
ENST Bretagne 40
Timisoara 18-20 mars 2003
sinon
γ i (s′, s) = Pr{d i = j} Pr{ri ci }
ENST Bretagne 41
Timisoara 18-20 mars 2003
Solution 1: Log-MAP
− a −b
ln(e a + eb ) = max(a, b) + ln(1 + e )
☺ Performance MAP
Connaissance de σ requise
ln(e a + eb ) ≈ max(a, b)
ENST Bretagne 42
Timisoara 18-20 mars 2003
Λ′(d i ) ≈
1
{
min M iF−1 (s′) + mi (s′, s) + M iB (s)
2 (s′,s )∈Ti0
}
(
− min M iF−1 (s′) + mi (s′, s) + M iB (s)
(s′,s )∈Ti1
)
1
Λ′(d i ) ≈ min {M iF−1 (s′) + xi ± yi + M iB (s)}
2 (s′,s )∈Ti0
− min {M iF−1 (s′) − xi ± yi + M iB (s)}
(s′,s )∈Ti1
ENST Bretagne 43
Timisoara 18-20 mars 2003
Exemple:
1
Λ′( d i ) = [min(M iF−1 (0) + mi (0,0) + M iB (0), M iF−1 (3) + mi (3,1) + M iB (1),
2
M iF−1 (1) + mi (1,2) + M iB (2), M iF−1 (2) + mi (2,3) + M iB (3) )
− (
min M iF−1 (1) + mi (1,0) + M iB (0), M iF−1 (2) + mi ( 2,1) + M iB (1),
M iF−1 (0) + mi (0,2) + M iB (2), M iF−1 (3) + mi (3,3) + M iB (3) )]
0 0
1 1
2 2
3 3
i-1 i
ENST Bretagne 44
Timisoara 18-20 mars 2003
* (
Μ iF (0) = min Μ iF−1 (0) + mi (0,0), Μ iF−1 (1) + mi (1,0) )
* Μ iF (1) = min (Μ iF−1 (3) + mi (3,1), Μ iF−1 (2) + mi (2,1) )
di ou di +1 = 0
di ou di +1 = 1
* (
Μ iΒ (0) = min Μ iΒ+1 (0) + mi +1 (0,0), Μ iΒ+1 (2) + mi +1 (0,2) )
* (
Μ iΒ (2) = min Μ iΒ+1 (1) + mi +1 (2,1), Μ iΒ+1 (3) + mi +1 (2,3) )
* (
Μ iΒ−1 (1) = min Μ iΒ (0) + mi (1,0), Μ iΒ (2) + mi (1,2) )
ENST Bretagne 45
Timisoara 18-20 mars 2003
1 F B
Λ′( di ) ≈ min 0{M i −1 (s′) + xi ± yi + M i (s)}
2 (s′,s )∈Ti
− min {M iF−1 (s′) − xi ± yi + M iB (s)}
(s′,s )∈Ti1
Λ ′( d i ) peut s’écrire :
Λ′( di ) ≈ xi + Z i
[4] L.R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, “Optimal decoding of linear codes for
minimizing symbol error rate”, IEEE Trans. Inform. Theory, vol. IT-20, pp. 284-
287, 1974.
[5] P. Robertson, E. Villebrun, and P. Hoeher, “ A comparison of optimal and sub-
optimal MAP decoding algorithms operating in the log domain”, in Proc. IEEE Int’l
Conf. on Comm., Seattle, WA, 1995, pp.1009-1013.
[6] A. J. Viterbi, “An intuitive justification and a simplified implementation of the
MAP decoder for convolutional codes”, IEEE Journal on Selected Areas in Comm.,
Vol. 16, N°2, Feb. 1998.
[7] B. Vucetic, J. Yuan, Turbo Codes, Principles and Applications, Kluwer Academic
Publishers, 2000.
ENST Bretagne 46
Timisoara 18-20 mars 2003
Chapitre 4
Turbo codes
Plan
• Mots croisés
• “turbo codes historique”
• Pourquoi de si bons résultats ?
• Différents schémas
– Turbo Codes en bloc
– Turbo Codes convolutifs
ENST Bretagne 47
Timisoara 18-20 mars 2003
1 2 3 4 5
Mots croisés I D E G A T ☺
II G A M M A ☺
Horizontal III D I N E R ☺
I. Dommage IV U S R N T
II. Lettre V D A R I G
III. Repas
IV. Minent
V. Enchâssement 1 2 3 4 5
I D E G A T ☺
Vertical
1. Gras II O M E G A ☺
2. Envoyée III D I N E R ☺
3. Indisposer IV U S E N T ☺
4. Intermédiaire
5. Gâteau V S E R T E ☺
☺ ☺ ☺ ☺ ☺
Turbo Codes
Inventés* en 1990, les Turbo Codes est une mise en oeuvre
de la déclaration de Claude Shannon (1953) :
ENST Bretagne 48
Timisoara 18-20 mars 2003
xi
Données
Code 1
di y1i
Redondance
y2i
π Code 2 Rendement
naturel :1/3
xi
Données y1i
Code 1
di
yi
y2i Redondance
π Code 2
Poinçonnage
ENST Bretagne 49
Timisoara 18-20 mars 2003
xi
Données
Code 1
di y1i
Redondance
y2i
π Code 2
Xi
Y1i
Décodeur 1
π Décodeur 2
π
-1 ^
di
Y2i
Xi = (2xi-1) + ni (xi=di)
Y1i = (2y1i-1) + n1i
Y2i = (2y2i-1) + n2i
Turbo Codes
Décodeur
Construit sur la base de décodeurs élémentaires à entrées et sorties
pondérées (Soft Input Soft Output SISO)
Processus itératif (effet turbo)
π
-1
Xi
Y1i
Décodeur 1
(SISO)
π Décodeur 2
(SISO) π
-1 ^
di
Y2i
Xi = (2xi-1) + ni (xi=di)
Y1i = (2y1i-1) + n1i
Y2i = (2y2i-1) + n2i
ENST Bretagne 50
Timisoara 18-20 mars 2003
Turbo Codes
Décodeur
Construit sur la base de décodeurs élémentaires à entrées et sorties
pondérées (Soft Input Soft Output SISO)
Processus itératif (effet turbo)
première itération
Xi
π π
Décodeur 1 Décodeur 2 -1
Z1i
Y1i (SISO) (SISO)
Y2i
Xi = (2di-1) + ni
Y1i = (2xi-1) + n1i Z1i : information extrinsèque
Y2i = (2yi-1) + n2i
Turbo Codes
Décodeur
Itération p
Zp-1 i
Xi Décodeur 1
(SISO)
π Décodeur 2
(SISO)
π
-1
Zp i
Y1i
^
π
-1 di
Y2i
ENST Bretagne 51
Timisoara 18-20 mars 2003
Xi
Données
xi
Y1,i
Décodeur 1
π
Code 1
di y1,i
π
y2,i
π
Décodeur 2 -1
π Code 2
Y2,i
« Message passing »
« turbo »
π
-1
X1
X Décodeur 1 O1 =X1+Z1
Y1 (SISO)
Y2
Décodeur 2 O2 =X2+Z2
π X2 (SISO)
Z1
ENST Bretagne 52
Timisoara 18-20 mars 2003
π
-1
X1+Z2
X Décodeur 1 O1 =(X1+Z2)+Z'1
Y1 (SISO)
Y2
Décodeur 2 O2 =(X2+Z1)+Z'2
π
X2+Z1 (SISO)
Z1
Canal
Eb/N0
Décodeur 1
SNRZ1in SNRZ1out
G1
ENST Bretagne 53
Timisoara 18-20 mars 2003
G2-1
l 3ème itération
ne
tun
dépend 2ème itération
de Eb/N0 1ère itération
SNRin
D. Divsalar, S. Dolinar, F. Pollara, "Low Complexity Turbo-like Codes", Proc. 2nd International
Symposium on Turbo Codes and Related Topics, Brest, France sept. 2000, pp. 73-80
x
Π
C1
d X1
décodeur
(données)
Z1
SISO
Y1 8 états LLR 1(d)
y1 X x β x β sortie
permutation Y2
Π C2 décodeur LLR (d) décodée
2
Z2 SISO
Π 8 états
d^
X
2
y2 Π−1
ENST Bretagne 54
Timisoara 18-20 mars 2003
Information extrinsèque
x
Π
C1
d X1
décodeur
(données)
Z1
SISO
Y1 8 états LLR 1(d)
y1 X x β x β sortie
permutation Y2
Π C2 décodeur LLR (d) décodée
2
Z2 SISO
Π 8 états
d^
X
2
y2 Π−1
Réglage du Décodeurs à
gain de boucle entrées et sorties
pondérées
ENST Bretagne 55
Timisoara 18-20 mars 2003
Turbo codes :
similaires à des RSC de grande longueur
Il peut être comparé à un code convolutif ayant une
grande longueur de contrainte,
qu’il est possible de décoder.
Xi
xi Décodeur 1
Données Y1i
Code 1
di y1i
π
y2i Décodeur 2
π
-1
π Code 2
Y2i
d X
meilleur est le
code convolutif Y
ν =2 ν =4
0.05 0.05 0.04
ν =6 ν =8
0.04 0.04 0.03
ENST Bretagne 56
Timisoara 18-20 mars 2003
Turbo codes :
similaires à des RSC de grande longueur
xi
Données
Code 1 Code simple
di Y1,i
Mémoire ν
Y2,i
π Code 2
ν ≤ mémoire ≤ k +2ν
k bits
À prouver !
Xi
xi Décodeur 1
Données Y1i
Code 1
di y1i
π
y2i Décodeur 2
π
-1
π Code 2
Y2i
ENST Bretagne 57
Timisoara 18-20 mars 2003
Turbo codes :
une approche du codage aléatoire
Partie
systématique
Y1,0 Concaténation
Y1,k/N-1
k-1 0
parallèle de N codes
k données
binaires permutation
Π
CRSC
Treillis CRSC:
1 circulaire
(identity)
Y1,i M Codage
o
Y2,0 quasi-aléatoire
t
permutation
Π
CRSC Y2,k/N-1
k-1 0 (pour N ≥ 4)
2 d
Treillis
Tirés de
Y2,i
e circulaire Et c’est décodable !!
manière
c
aléatoire
o
d YN,0
e YN,k/N-1 Heureusement, N = 2
k-1 0
permutation
Π
CRSC
Treillis
est suffisant:
N
circulaire
YN,i
turbo codes
Le rôle fondamental de π :
minimiser la probabilité que les 2 décodeurs défaillent
(un problème très complexe combinant algèbre, géométrie, ...)
xi Xi Decodeur 1
Data
Code 1 Y1,i
di y1,i
π Code 2
y2,i π Decodeur 2
Y2,i
ENST Bretagne 58
Timisoara 18-20 mars 2003
Différents schémas de
turbo codes
k colonnes
Mot de code 1
Redondance 1
k lignes
n lignes
code
Mot de
Mot de code 2
Redondance 2
n colonnes
concaténation série de deux codes en bloc
ENST Bretagne 59
Timisoara 18-20 mars 2003
xi xi
Données Données
Code 1 Code 1
di y1i di yi
y2i
π Code 2 π
ENST Bretagne 60
Timisoara 18-20 mars 2003
Principe de décodage
Information extrinsèque (z)
1 k
y2i
π Code 2 π
xi
données données
Code 1 Code 1
ai,bi y1i di y1i
y2i y2i
π Code 2 π Code 2
ENST Bretagne 61
Timisoara 18-20 mars 2003
Chapitre 5
La permutation
Permutation
(Permutation ≡ entrelacement)
données A
Le comportement à faible C1 Y1
TEB (<10-5) est fonction
de la façon dont Π est
conçu Π
C2 Y2
ENST Bretagne 62
Timisoara 18-20 mars 2003
Séquences RTZ
xi yi
di =1
xi
00 00
di 11 11
D D
01 00
yi 01
10 10
10
11 01
Séquences RTZ
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
10 10 10 10
11 01 01 01
Distance de
Hamming 0 + 2 + 1 + 2 + 0 + 0 =5
ENST Bretagne 63
Timisoara 18-20 mars 2003
Séquences RTZ
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
10 10 10 10
11 01 01 01
Distance de
Hamming 0 + 2 + 1 + 0 + 1 + 2 =6
Séquences RTZ
00 00 00 00 00 00
00
11 11 11 11 11 11 11 11
01 00 00 00
01 01 01 01
10 10 10 10
10 10 10 10
11 01 01 01
Distance de
Hamming 0 + 2 + 1 + 0 + 1 + 0
ENST Bretagne 64
Timisoara 18-20 mars 2003
Séquences RTZ
xi
xi yi
di =0
di
D D xi yi
di =1
yi
10 10
00 11 01
00 01 00 11
11 10
01
Permutation Régulière
Condition : k = M.N
ENST Bretagne 65
Timisoara 18-20 mars 2003
Permutation Régulière
k-1 0
Adresse naturelle : i
0 ≤ i ≤ k-1
Adresse permutée : j
0 ≤ j ≤ k-1
j = P.i mod. k
Permutation Régulière
M colonnes
0100000010...0000000
période : 7 ...................................
0000000000...0000000 N lignes
0000000000...0000000
période : 7 0000000000...0000000
k → ∞ ⇒ d(w=2) → ∞
ENST Bretagne 66
Timisoara 18-20 mars 2003
xi xi yi
di =0
xi yi
D D D di =1
yi
di 00
110 111 11
100 01
00
11 11
00
000 10 10 011
00
11 11 01
001 01 101
01 010 10
Permutation Régulière
M colonnes
0110100000...0000000
période : 7 ...................................
0000000000...0000000 N lignes
0000000000...0000000
période : 7 0000000000...0000000
k → ∞ ⇒ d(w=3) → ∞
ENST Bretagne 67
Timisoara 18-20 mars 2003
Permutation Régulière
M colonnes
0100000010...0000000
0000000000...0000000
0000000000...0000000
période : 7 0000000000...0000000
0000000000...0000000 N lignes
0000000000...0000000
0000000000...0000000
période : 7
0100000010...0000000
.....................................
Permutation Régulière
M colonnes
0110100000...0000000
0110100000...0000000
0000000000...0000000
période : 7 0110100000...0000000
0000000000...0000000 N lignes
0000000000...0000000
0000000000...0000000
période : 7
0000000000...0000000
.....................................
ENST Bretagne 68
Timisoara 18-20 mars 2003
Permutation Aléatoire
ENST Bretagne 69
Timisoara 18-20 mars 2003
Permutation Aléatoire
Permutation aléatoire selon S. Benedetto et G. Montorsi
Tous les entrelaceurs sont considérés, de manière statistique,
en y incluant les pires
0100000010...0000000
...................................
0000000000...0000000
0000000000...0000000
ce couple a une 0000000000...0000000
probabilité de 1/k
de rester inchangé
après permutation
Permutation Aléatoire
Permutation aléatoire selon S. Benedetto et G. Montorsi
Cette approche conduit naturellement
à une borne qui a l’allure suivante :
1 R.Eb .d min
0100000010...0000000
Pe ≈ .erfc
k N0
...................................
0000000000...0000000 Donnant une évaluation très pessimiste !
0000000000...0000000
0000000000...0000000
ENST Bretagne 70
Timisoara 18-20 mars 2003
voir http://ftp.ccsds.org/all_books.html#telemetry
Permutation CCSDS
non-uniformité de degré 8
m = s − 1 mod 2
0110101000...010000011001001110100
s-1
i = 4 1110110101...001001100010001101001
k 1010001100...100010011101100101110
s-1 ik 1100101000...110011000010101001011
j= −
2 8 0111101000...010000111001111010101
t = 19i + 1 mod 4 0100010101...001001100010101101001
q = t mod 8 + 1 1010001100...100010001101100111110
k 1100101000...110011000000101001001
c = pq j + 21m mod .....................................
8
0100101011...110011010011001001010
Π ( s ) = 2(t + 4c + 1) − m
1110101010...010110011001011010110
p1 = 31; p2 = 37; p3 = 43; p4 = 47; 0100010101...001001100010101101001
p5 = 53; p6 = 59; p7 = 61; p8 = 67;
ENST Bretagne 71
Timisoara 18-20 mars 2003
Permutation
En conclusion :
ENST Bretagne 72
Timisoara 18-20 mars 2003
Chapitre 6
binaire duo-binaire
données (bits) données (couples) A
X
B
C1 Y1 C1 Y1
Π Π
C2 Y2 C2 Y2
ENST Bretagne 73
Timisoara 18-20 mars 2003
10-1 1 E
5
non codé erfc ( b )
2 N0
10-2 avec
5 ∞
2
10-3
mauvaise
erfc( x) = ∫ exp(−t 2 )dt
π t=x
5
convergence, gain
10-4 asymptotique élevé
5
10-5
5
10-6
Bonne
5
convergence, faible
10-7 gain asymptotique
5
Eb/N0 (dB)
10-8
0 1 2 3 4 5 6 7 8 9 10 11 12
Ga = 10 log (R.dmin)
Limite théorique
(R=1/2, 188 octets) dmin > 25
motifs de
verrouillage
C1 duo-binaire : C1
Diminue la corrélation
binaire
Π Durant le décodage Π
k
k /2
C2 C2
k k /2
ENST Bretagne 74
Timisoara 18-20 mars 2003
Π Π
C2 Y2 C2 Y2
001 001
010 010
110 110
111 111
exemples de k
k /2 3 1
motifs à 10000001
0 0
201 13
00
0 0
0 0
faibles distances 0
0
0
0
0 0
0 0
00
00 0 2
k 0 0 k/2 0
avec une 0
0
0
0
0 0
0 0
00
00
0 0 00 00 : 0
permutation 10000001 201 13
01 : 1
régulière 10 : 2
11 : 3
X A
B Périodicités du
Code duo-binaire
(a) Y (b) Y
ENST Bretagne 75
Timisoara 18-20 mars 2003
Permutation intra-symbole
(sans introduction de désordre aléatoire !)
1 3 1 3
2 0 1
0 0 0 0
0 0
0 0 0 0
0 0
0 0 0 0
0 0 0 0
0 0 0 0
(A,B) devient (B,A) 0 0 0 0 0 0
0 0
avant le codage vertical, 0 0 0 0 3 0 0 0 0 0 0 3
0 0
2 0 1 1 3 0 0
une fois de temps en temps 0 0 0 0
3 0 0 0 0 0 0 3 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 0 0 0 0 0 0 2 3 0 0 0 0 0 0 3 0 0
1 3
ENST Bretagne 76
Timisoara 18-20 mars 2003
Complexité
≈ 20.000 portes Π
par bit.itération SUB-MAP
@ horloge système 8 états Z1 1 1
+ mémoire LLR1 4 chemins Y1, Y2
couple A, B
décodé SUB-MAP 2 2
LLR2 Y1, Y2
8 états Z2
4 chemins
Π
−1
Π
Niveau 2 (inter-couple)
if j=0 mod 4 P=0
if j=1 mod 4 P=P1+ N/2
if j=2 mod 4 P=P2
if j=3 mod 4 P=P3 + N/2
i=π(j)=P0.j + P + 1 mod N
ENST Bretagne 77
Timisoara 18-20 mars 2003
Taille des blocs : 12, 16, 53, 55, 57, 106, 107,
108, 110, 188, 212, 214, 216 octets
0.001
Taux d’erreurs paquets
0.0001
1e-05
1e-06
1e-07
1e-08
1e-09
0 1 2 3 4 5 6 7 8 9 10
Eb/N0
ENST Bretagne 78
Timisoara 18-20 mars 2003
0.0001
1e-05
1e-06
1e-07
1e-08
1e-09
0 1 2 3 4 5 6 7 8 9 10
Eb/N0
10 -1
10 -2
10-3
R = 1/2 R = 2/3
5
R = 1/2 R = 4/5
10 -4
5 12 oct.
14 oct. 4 oct. 4 oct.
16 oct. 12 oct.
10-5
12 oct. 14 oct.
5 12 oct.
14 oct. 16 oct.
10-6 14 oct.
5 16 oct. 16 oct.
R = 4/5
10-7
R = 1/3
5
10-8
3 4 5 Eb/N0 (dB) 6 7 8
ENST Bretagne 79
Timisoara 18-20 mars 2003
Chapitre 7
Conclusions et perspectives
1
Non codé
188 octets 1/3 8 it.
0.1
188 octets 2/5 8 it.
188 octets 1/2 8 it.
0.01 188 octets 2/3 8 it.
188 octets 3/4 8 it.
188 octets 4/5 8 it.
0.001
Taux d’erreurs paquets
0.0001
1e-05
1e-06
1e-09
0 1 2 3 4 5 6 7 8 9 10
ENST Bretagne 80
Timisoara 18-20 mars 2003
0.0001
1e-05
1e-06
1e-07
1e-08
1e-09
0 1 2 3 4 5 6 7 8 9 10
Eb/N0
Standards actuels
Application turbo code terminaison polynômes rendements
CCSDS binaire, tail bits 23, 33, 25, 37 1/6, 1/4, 1/3,
16 états 1/2
ENST Bretagne 81
Timisoara 18-20 mars 2003
information
information extrinsèque
1
intrinsèque
locale
4
2
processeur
probabiliste
3
information
intrinsèque
partagée
Applications
turbo-égalisation,
turbo-synchro, Disques durs ?
turbo-crypto, CD-ROM ?
...
DVB-S ?
DSL ?
CCSDS UMTS
CDMA2000
DVB-RCS
patents M4 DVB-RCT
invention publication HiperAccess
ENST Bretagne 82
Timisoara 18-20 mars 2003
Signature
numérique de
La signature
n'a pas été
vérifiée.
Jezequel Bretagne, c=FR
Date :
2003.03.31
11:16:10 +02'00'
ENST Bretagne 83