9
[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100] Tabla 3.4. Primera fila del c´odigo bloque lineal y sistem´atico (5, 3).

[00000] [00101] [01011] [01110] [10010] [10111] [11001 ...personales.upv.es/~fjmartin/cd_web/traspas/cbl-total.pdfIII Cosets, l¶‡der de un coset y decodiflcaci¶on Ilustremos el

  • Upload
    buicong

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

III Cosets, lıder de un coset y decodificacion

Ilustremos el procedimiento con un ejemplo. Sea el codigo bloque lineal (n, k) = (5, 3) talque

m0 = [000] ←→ c0 = a = [00000];m1 = [001] ←→ c1 = b = [00101];m2 = [010] ←→ c2 = c = [01011];m3 = [011] ←→ c3 = d = [01110] :m4 = [100] ←→ c4 = e = [10010];m5 = [101] ←→ c5 = f = [10111];m6 = [110] ←→ c6 = g = [11001];m7 = [111] ←→ c7 = h = [11100].

Primer paso de la tabla estandar de decodificacion.- primera fila

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

Tabla 3.4. Primera fila del codigo bloque lineal y sistematico (5, 3).

Segundo paso.- Elegir una de las cinco n-plas con peso Hamming mınimo 1, por ejemplo[00001]

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

Tabla 3.5. Obtencion de la segunda fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

Dado que en esta segunda fila, tenemos la n-pla [00100] con igual peso Hamming que ladel lıder del coset, e1, el codigo no sera capaz de corregir ni el patron de error e1 = [00001],ni el patron de error [00100].

Tercer paso.- Elegir una de las tres n-plas que quedan con peso Hamming igual a launidad. Estas son [00010], [01000] y [10000]. Se escoge por ejemplo [01000],

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100]

Tabla 3.6. Obtencion de la tercera fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

En esta tercera fila, no nos ha aparecido ninguna n-pla con peso Hamming igual al dellıder del coset, e2, w(e2) = 1. Consecuentemente, el codigo sı sera capaz de corregir el patronde error e2 = [01000].

37

III Cosets, lıder de un coset y decodificacion

Ilustremos el procedimiento con un ejemplo. Sea el codigo bloque lineal (n, k) = (5, 3) talque

m0 = [000] ←→ c0 = a = [00000];m1 = [001] ←→ c1 = b = [00101];m2 = [010] ←→ c2 = c = [01011];m3 = [011] ←→ c3 = d = [01110] :m4 = [100] ←→ c4 = e = [10010];m5 = [101] ←→ c5 = f = [10111];m6 = [110] ←→ c6 = g = [11001];m7 = [111] ←→ c7 = h = [11100].

Primer paso de la tabla estandar de decodificacion.- primera fila

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

Tabla 3.4. Primera fila del codigo bloque lineal y sistematico (5, 3).

Segundo paso.- Elegir una de las cinco n-plas con peso Hamming mınimo 1, por ejemplo[00001]

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

Tabla 3.5. Obtencion de la segunda fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

Dado que en esta segunda fila, tenemos la n-pla [00100] con igual peso Hamming que ladel lıder del coset, e1, el codigo no sera capaz de corregir ni el patron de error e1 = [00001],ni el patron de error [00100].

Tercer paso.- Elegir una de las tres n-plas que quedan con peso Hamming igual a launidad. Estas son [00010], [01000] y [10000]. Se escoge por ejemplo [01000],

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100]

Tabla 3.6. Obtencion de la tercera fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

En esta tercera fila, no nos ha aparecido ninguna n-pla con peso Hamming igual al dellıder del coset, e2, w(e2) = 1. Consecuentemente, el codigo sı sera capaz de corregir el patronde error e2 = [01000].

37

III Cosets, lıder de un coset y decodificacion

Ilustremos el procedimiento con un ejemplo. Sea el codigo bloque lineal (n, k) = (5, 3) talque

m0 = [000] ←→ c0 = a = [00000];m1 = [001] ←→ c1 = b = [00101];m2 = [010] ←→ c2 = c = [01011];m3 = [011] ←→ c3 = d = [01110] :m4 = [100] ←→ c4 = e = [10010];m5 = [101] ←→ c5 = f = [10111];m6 = [110] ←→ c6 = g = [11001];m7 = [111] ←→ c7 = h = [11100].

Primer paso de la tabla estandar de decodificacion.- primera fila

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

Tabla 3.4. Primera fila del codigo bloque lineal y sistematico (5, 3).

Segundo paso.- Elegir una de las cinco n-plas con peso Hamming mınimo 1, por ejemplo[00001]

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

Tabla 3.5. Obtencion de la segunda fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

Dado que en esta segunda fila, tenemos la n-pla [00100] con igual peso Hamming que ladel lıder del coset, e1, el codigo no sera capaz de corregir ni el patron de error e1 = [00001],ni el patron de error [00100].

Tercer paso.- Elegir una de las tres n-plas que quedan con peso Hamming igual a launidad. Estas son [00010], [01000] y [10000]. Se escoge por ejemplo [01000],

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100]

Tabla 3.6. Obtencion de la tercera fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

En esta tercera fila, no nos ha aparecido ninguna n-pla con peso Hamming igual al dellıder del coset, e2, w(e2) = 1. Consecuentemente, el codigo sı sera capaz de corregir el patronde error e2 = [01000].

37

CAPITULO 3. Codigos Bloque Lineales

Cuarto y ultimo paso.- Elegir una de las dos n-plas con peso Hamming mınimo 1, quequedan ([00010], [10000]); por ejemplo la segunda,

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100]

[10000] [10101] [11011] [11110] [00010] [00111] [01001] [01100]

Tabla 3.7. Obtencion de la cuarta fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

En esta cuarta y ultima fila, obviamente nos han aparecido todas las n-plas restantes. Enella tenemos la n-pla 00010 con igual peso Hamming que la escogida como lıder del coset, e3,por lo que el codigo no sera capaz de corregir ni el patron de error e3 = [10000] ni el patronde error [00010].

Se concluye que el codigo bloque lineal especificado (n, k) = (5, 3) solo es capaz de corregirun tipo de patron de error simple, el [01000]. Los cuatro restantes los detecta. Ello es consis-tente con que dmin = 2, y que 2t + 1 ≤ dmin ≤ 2t + 2 se satisface con t = 0. En la tabla dedecodificacion 3.8 se ha anadido una columna que indica la capacidad detectora y correctoradel codigo, ademas de ordenar, en primer lugar la capacidad correctora y en segundo lugarla capacidad detectora.

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100] tipo de error

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100] simple corregible

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101] simple detectable

[10000] [10101] [11011] [11110] [00010] [00111] [01001] [01100] simple detectable

Tabla 3.8. Tabla estandar del codigo bloque lineal y sistematico (5, 3).

Indicaremos otro par de ejemplos ilustrativos. El primero para el codigo lineal y sistemati-co (n, k) = (4, 2):

m0 = [00] ←→ c0 = a = [0000];m1 = [01] ←→ c1 = b = [0101];m2 = [10] ←→ c2 = c = [1011];m3 = [11] ←→ c3 = d = [1110].

cuya tabla de decodificacion resulta ser:

38

CAPITULO 3. Codigos Bloque Lineales

Cuarto y ultimo paso.- Elegir una de las dos n-plas con peso Hamming mınimo 1, quequedan ([00010], [10000]); por ejemplo la segunda,

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100]

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101]

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100]

[10000] [10101] [11011] [11110] [00010] [00111] [01001] [01100]

Tabla 3.7. Obtencion de la cuarta fila de la tabla estandar del codigo bloque lineal ysistematico (5, 3).

En esta cuarta y ultima fila, obviamente nos han aparecido todas las n-plas restantes. Enella tenemos la n-pla 00010 con igual peso Hamming que la escogida como lıder del coset, e3,por lo que el codigo no sera capaz de corregir ni el patron de error e3 = [10000] ni el patronde error [00010].

Se concluye que el codigo bloque lineal especificado (n, k) = (5, 3) solo es capaz de corregirun tipo de patron de error simple, el [01000]. Los cuatro restantes los detecta. Ello es consis-tente con que dmin = 2, y que 2t + 1 ≤ dmin ≤ 2t + 2 se satisface con t = 0. En la tabla dedecodificacion 3.8 se ha anadido una columna que indica la capacidad detectora y correctoradel codigo, ademas de ordenar, en primer lugar la capacidad correctora y en segundo lugarla capacidad detectora.

[00000] [00101] [01011] [01110] [10010] [10111] [11001] [11100] tipo de error

[01000] [01101] [00011] [00110] [11010] [11111] [10001] [10100] simple corregible

[00001] [00100] [01010] [01111] [10011] [10110] [11000] [11101] simple detectable

[10000] [10101] [11011] [11110] [00010] [00111] [01001] [01100] simple detectable

Tabla 3.8. Tabla estandar del codigo bloque lineal y sistematico (5, 3).

Indicaremos otro par de ejemplos ilustrativos. El primero para el codigo lineal y sistemati-co (n, k) = (4, 2):

m0 = [00] ←→ c0 = a = [0000];m1 = [01] ←→ c1 = b = [0101];m2 = [10] ←→ c2 = c = [1011];m3 = [11] ←→ c3 = d = [1110].

cuya tabla de decodificacion resulta ser:

38

III Cosets, lıder de un coset y decodificacion

[0000] [0101] [1011] [1110] tipo de error

[0010] [0111] [1001] [1100] simple corregible

[1000] [1101] [0011] [0110] simple corregible

[0100] [0001] [1111] [1010] simple detectable

Tabla 3.9. Ejemplo de codigo bloque lineal y sistematico (4, 2).

La distancia mınima del codigo es dmin = 2 por lo que t = 0 y el codigo no garantizala correccion de todos los patrones de errores. Unicamente corrige dos patrones de erroressimples [0010] y [1000], detectando -sin corregir- unicamente los otros dos patrones de errorsimple [0001] y [0100].

El segundo, el codigo lineal y sistematico (n, k) = (5, 2) que refleja la tabla 3.1. Su tabla dedecodificacion vendrıa dada por la tabla 3.3-a. La distancia mınima del codigo es dmin = 3 porlo que t = 1, garantizandose la correccion de todos los patrones de errores simples, reflejadosen la zona de correccion, zona B′. La correcion de algun patron de error doble no es posible.De los diez patrones posibles de errores dobles, cuatro son detectados correctamente, dospertenecientes al penultimo coset, el [10001] y el [01010], y otros dos que pertenece al ultimocoset, el [10010] y el [01001]. Esos dos ultimos cosets constituyen la zona de deteccion, zonaC. Los otros seis, no son detectables pues aparecen como componentes de cosets lideradospor patrones de errores simples. En el coset liderado por [00001] el patron [00110], en el cosetliderado por [00010] el patron [00101], en el coset liderado por [00100] los patrones [00011] y[11000], en el coset liderado por [01000] el patron [10100] y finalmente, en el coset lideradopor [10000] el patron [01100].

Se concluye del teorema presentado al inicio de la seccion III que un codigo lineal (n, k)con distancia mınima dmin es capaz de corregir todas las configuraciones de t errores o menos,pero no es capaz de corregir todas las configuraciones de patrones de errores de peso superiora t (empleando el criterio MLD). El lımite de la capacidad de correccion es aproximadamentet. Por otra parte, las configuraciones con dmin − 1 errores o menos son todas detectables(e incluso algunas son corregibles); las configuraciones con dmin errores o mas no son todasdetectables.

La capacidad de deteccion y de correccion de un codigo bloque (n, k), ya se discutio en elcapıtulo anterior. En la siguiente seccion se retoma este tema para codigos bloque lineales, ypara tal fin, se vuelve a representar por comodidad, la tabla generica de decodificacion, tabla3.10, que en el caso de un codigo bloque lineal resulta ser la tabla estandar con los lıderes decosets convenientemente elegidos.

39

CAPITULO 3. Codigos Bloque Lineales

Tabla 3.10. Tabla de decodificacion, especificando las zonas de correccion y de deteccion

IV. Capacidad de deteccion y correccion de errores

Particularizaremos aquı las capacidades de deteccion y correccion de un codigo bloque(n, k), ya discutidas en el capıtulo anterior, para el caso de que sea lineal. Con independenciade la estrategia de deteccion-correccion elegida, la probabilidad de que una palabra codigo su-fra errores al transmitirla por un canal binario simetrico, BSC, denotada por Pte (transmisionerronea), vendra dada por

Pte = 1− (1− p)n (3.2)

en donde p es la probabilidad de error de bit. Tales errores, podran ser corregidos o no. En elprimer caso hablaremos de decodificacion correcta, con probabilidad Pdec−c. Obviamente si latransmision esta libre de errores, entonces la decodificacion correcta. Cuando no sea posiblecorregir los errores, estos podran ser detectados o no. Denotemos por Pdtc la probabilidad dedeteccion de errores, y por Pndtc la probabilidad de no deteccion de errores. En la tabla 3.10,se pueden observar las tres posibles situaciones, disjuntas entre sı, y que ya se discutieron enel capıtulo anterior. Por tanto se verifica que

1 = Pdec−c + Pdtc + Pndtc =2k−1∑

i=0

Pr(Ai)Pr(Bi/Ai) + Pdtc + Pndtc (3.3)

40

VII Algunas cotas para codigos lineales

00000 00101 01011 01110 10010 10111 11001 11100 tipo de error 00

00001 00100 01010 01111 10011 10110 11000 11101 simple detectable 01

01000 01101 00011 00110 11010 11111 11000 10100 simple corregible 11

10000 10101 11011 11110 00010 00111 01001 01100 simple detectable 10

Tabla 3.13. Tabla estandar del codigo bloque lineal y sistematico (5, 3) incluyendo lossındromes (columna de la derecha)

VII. Algunas cotas para codigos lineales

Un numero significativo de trabajos publicados se refieren a las cotas de codigos bloquelineales. Referidas a la distancia mınima dmin, cabe distinguir entre dos clases de cotas,cotas superiores e inferiores. Las principales cotas utiles son las de Hamming, Plotkin y lade Varsharmov-Gilbert. Las de Hamming y Plotkin indican la dmin maxima que se puedealcanzar en un codigo bloque lineal, dados n y k. La cota de Varsharmov-Gilbert es una cotainferior para dmin indicando la existencia de un codigo, par unos valores de n y k dados.En las siguientes lıneas las presentamos. Recuerdese que la relacion existente entre dmin y lacapacidad de correccion de un codigo bloque t, es 2t + 1 ≤ dmin ≤ 2t + 2.

VII.1. Cota de Hamming

Alternativamente, nos da un lımite inferior sobre el numero de bits redundantes n − k

requeridos para corregir t errores en un codigo bloque lineal de longitud n. El lımite de lacapacidad de correccion y deteccion de un codigo lineal viene dada por su distancia mınimadmin, la cual es coincidente con el peso Hamming mınimo de las n-plas no nulas que configuranel codigo. El codigo es capaz de corregir todos los patrones de errores de tamano t o inferior,siendo 2t+1 ≤ dmin ≤ 2t+2. Dado que la tabla estandar de decodificacion tiene 2n−k filas, enestas ha de haber: una primera fila para el propio codigo, n filas para albergar los n posiblespatrones de errores simples, Cn

2 filas para albergar los patrones de errores dobles, Cn3 filas

para albergar los patrones de errores triples, etc. Esto es

2n−k ≥t∑

j=0

(n

j

)(3.17)

La anterior expresion es conocida como desigualdad de Hamming. Tomando logaritmosbase dos, tendrıamos que

n− k ≥ log2

t∑

j=0

(n

j

) (3.18)

Cuando para algun t se verifica con signo de igualdad, se dice que tenemos un codigoperfecto. Ello equivale a considerar que la zona de deteccion de la tabla 3.10, es nula, no

49

VIII Codigos Hamming

errores simples corregibles, en el ejemplo un total de n1 = 8.

Los patrones de errores dobles, en total Cn−12 , en el ejemplo C8

2 = 28 daran comosındrome vectores de n1 − k1 bits no presentes en Ht

1, y el decodificador alertara de ladeteccion de errores, sin posibilidad de correccion.

VIII.3. Relacion entre el acortamiento y la extension de codigos Hamming

Las operaciones de acortar y extender un codigo Hamming tienen el fin comun de aumen-tar la distancia Hamming del codigo de partida. Dado que el objetivo es comun cabe pensaren que las dos operaciones aplicadas a codigos Hamming distintos, nos den un mismo codigocon distancia Hamming dmin = 4.

En efecto, segun hemos visto en la operacion de acortamiento de un Hamming (15, 11)hemos obtenido un codigo lineal (8, 4) con dmin = 4. Tambien, segun hemos visto en la opera-cion de extension de un Hamming (7, 4) hemos obtenido un codigo lineal (8, 4) con dmin = 4,y que de hecho es coincidente con el obtenido con la primera operacion de acortamiento. Larelacion entre ambas operaciones queda reflejada en la figura adjunta.

Código(7,4)

Código(8,4)

Extender Extender Extender Extender Extender

Acortar Acortar Acortar Acortar

Código

(2 -1,m

2 -1- )m

m

Código

(2 ,m

2 -1- )m

m

Código

(2 ,m+1

2 -2- )m+1

m

Código(15,11)

Código(16,11)

Código(31,26)

...

...

...

...

Figura 3.1. Relacion entre el acortamiento y la extension de un codigo Hamming(n, k) = (2m − 1, 2m − 1−m)

57