1 Introducción
Los códigos de paridad de baja densidad [4] son códigos de bloques lineales. En estos
códigos existe una matriz de generación G que convierte a los vectores de mensaje m en
vectores de código x . Asociada a la matriz G se encuentra la matriz de paridad H , la
cual cumple con la condición H o x = 0 para todo vector del código.
La construcción de estos códigos se basa en el diseño de la matriz H , cuya
característica más importante es que sus elementos son mayoritariamente ceros.
La codificación de las palabras de mensaje m se realiza por medio de la operación
matricial x = G T o m . Si el vector así generado, es transmitido por un canal afectado con
ruido aditivo n , el vector recibido resultará ser y = x + n .
2 Decodificación
Hod=0 (1)
La probabilidad de x está dada por:
∏p
xj
j (2)
j
donde:
1
p 1j = 2 ay j
(3)
−
1+ e σ2
p 0j = 1 − p 1j (4)
3 Algoritmo
Se basa en el supuesto que si un número z es menor que uno se lo puede poner como:
→ wz = ln( z )
− wz
z=e (5)
x x
Los valores de q ij se ajustan en un principio a la probabilidad a priori de los símbolos p j ,
0
que es la probabilidad de que el j ésimo símbolo sea x . En este caso, las variables q ij y
p xj = e
− wp xj
→ wp xj = ln p xj ( ) (6)
q ijx = e
− wqijx
→ wq ijx = ln q ijx ( ) (7)
Se define δq ij como:
δq ij = (− 1) ij e = (− 1) ij e
− wδqij − wq ij0 − wq ij1
−e
s s
(10)
donde:
(
wδq ij = min wq ij0 , wq 1ij + f − wq ij0 − wq ij1 ) ( ) (14)
δ rij = ∏δ q
j ′∈ N (i )\ j
ij ′ (15)
∏( ) (− 1) = (− 1) ∏( )
− wδ rij − w δ qi j ′ ∑ s ij ′ − wδ q ij ′
δ rij = e =
s ij ′
e e (16)
j ′∈N i \ j j ′∈ N i \ j
wδ rij = ∑ wδ q
j ′∈ N (i )\ j
ij ′ (17)
sδ rij = ∑ s ij ′
j ′∈ N (i )\ j
(18)
es decir:
δ rij0 = (− 1)
sδrij − wδ rij
e (19)
( )
ln rij0 = − wrij0 = ln1 + (− 1) δ ij e
s r − wδ rij
− ln (2 ) (22)
si sδ rij es par, se tiene:
wrij0 = ln(2) − ln1 + e
− wδ rij
= ln(2 ) − f + wδ rij − 0
( ) (23)
wrij0 = ln(2) + ln1 − e
− wδ rij
= ln(2 ) + f − wδ rij − 0
( ) (24)
(
donde f + wδ rij − 0 ) y ( )
f − wδ rij − 0 son tablas de búsqueda. De forma similar, si
sδ rij es par, se tiene:
wrij1 = ln(2) + ln1 − e
− wδ rij
= ln(2) + f − wδ rij − 0
( ) (25)
y si sδ rij es impar:
q ijx = α ij p xj ∏( )r x
i ′j
i ′∈M j \ i
(27)
y
const 2 ij = p 1j ∏( )r 1
i ′j
i ′∈M j \ i
(30)
con:
wconst 1ij = w p 0j + ∑( )wr
i ′∈M j \ i
0
i ′j (32)
de forma similar :
wconst 2 ij = w p 1j + ∑( )wr
i ′∈M j \ i
1
i ′j (33)
entonces:
(
α ij = 1 / const 1ij + const 2 ij ) (34)
por tanto:
const 1ij
q ij0 = (35)
const 1ij + const 2 ij
− wconst 1ij
− wq ij0 e
q ij0 = e = (36)
− wconst 1ij − wconst 2 ij
e +e
( )
wq ij0 = wconst1ij − min wconst1ij , wconst 2 ij + f + wconst1ij − wconst 2 ij ( ) (37)
(
donde f + wconst1ij − wconst 2 ij ) es una tabla de búsqueda. De forma similar:
const 2 ij
q ij1 = (38)
const 1ij + const 2 ij
se obtiene:
(
wq ij1 = wconst 2 ij − min wconst1ij , wconst 2 ij + f + wconst1 − wconst 2 ) ( ) (39)
0 1
luego se realiza una estimación a posteriori de las probabilidades q j y q j utilizando:
q xj = α j p xj ∏( r)
i ∈M j
x
ij (40)
q xj = α j p xj ∏( r)
i∈M j
x
ij = α j p xj ∏( )r
i ′∈M j \ i
x
i ′j ⋅ rijx (42)
const 3 j = p 0j ∏( r)
i∈M j
0
ij = p 0j ∏( )r
i ′∈M j \ i
0
i ′j ⋅ rij0 = const 1ij ⋅ rij0 (43)
= ln e (44)
por tanto:
wconst 3 j = wconst 1ij + wrij0 (45)
de forma similar:
wconst 4 j = wconst 2 ij + wrij1 (46)
entonces:
const 3 j
q 0j = (47)
const 3 j + const 4 j
− wconst 3 j
− wq 0j e
e = (48)
− wconst 3 j − wconst 4 j
e +e
( )
wq 0j = wconst 3 j − min wconst 3 j , wconst 4 j + f + wconst 3 j − wconst 4 j ( ) (49)
( ) (
wq 1j = wconst 4 j − min wconst 3 j , wconst 4 j + f + wconst 3 j − wconst 4 j ) (51)
por último se puede realizar una estimación para cada valor de símbolo d j usando:
)
( )
d j = max q xj (51)
es decir:
) )
d j = 0 si q 0j > q 1j sino d j = 1 (52)
y como:
− wq 0j − wq 1j
q 0j = e y q 1j = e (53)
esto es similar a poner:
d j = 0 si wq 0j < wq 1j , sino d j = 1 (54)
Resultados:
5 Conclusiones
Referencias
1. D.J.C.MacKay, R.M.Neal. Near Shannon limit performance of low density parity check
codes. Electronics Letters. 13th March 1997, Vol.33, N°6.
2. J.P. Woodard, L. Hanzo. Comparative Study of Turbo Decoding Techniques. IEEE
Transaction on Vehicular Technology. Nov 2000, Vol 49, N°6
3. T. Bhatt, K. Narayanan, N. Kehtarnavaz. Fixed Point DSP Implementation of Low-
Density Parity Check Codes. Proc IEEE DSP2000, Hunt, Tx, USA, Oct 15-18, 2000.
4. R. G. Gallager. Low Density Density Parity Check Codes. IRE Trans. Information
Theory, Vol. IT-8, N°1, pp 21-28, January 1962.
5. D.J.C.MacKay, R.M.Neal. Good Error-Correcting Codes based on Very Sparse Matrices.
Available from http://www.inference.phy.cam.ac.uk/mackay/CodesGallager.html