lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

32
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen Códs Cícl. 1 Comunicaciones II Conferencia 20: Detección en Códigos Lineales de Bloque. Generación de Códigos Cíclicos. UNIDAD VII: CODIFICACIÓN DE CANAL Instructor: Israel M. Zamora, MS Telecommunications Management Profesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones. Universidad Nacional de Ingeniería Universidad Nacional de Ingeniería

Upload: nica2009

Post on 07-Jul-2015

209 views

Category:

Education


0 download

DESCRIPTION

Telecom

TRANSCRIPT

Page 1: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

1

Comunicaciones II

Conferencia 20: Detección en Códigos Lineales de Bloque. Generación de Códigos Cíclicos.

UNIDAD VII: CODIFICACIÓN DE CANAL

Instructor: Israel M. Zamora, MS Telecommunications ManagementProfesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones.

Universidad Nacional de Ingeniería

Universidad Nacional de Ingeniería

Page 2: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

2

Outline

• Detección de errores– Ejemplo 2

• Decodificación del síndrome– Ejemplo Ilustrativo 3 Decodificación de canal

– Ejemplo Ilustrativo 4

• Códigos Cíclicos• Códigos Cíclicos: Generación

– Ejemplo

Page 3: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

3

Detección de errores

• La detección o verificación de errores se obtiene de un proceso matricial basado en una nueva matriz H denominada matriz de verificación de paridad.

• El objetivo es identificar el vector síndrome “s”. Si el síndrome resulta en el vector nulo, entonces el vector de código recibido no presenta error, de otra forma existe uno o mas bits alterados.

MatrizGeneradora

GVector mensaje m Vector código c

MatrizVerificaciónde paridad

H

Vector código r Vector síndrome

GENERACIÓN

DETECCIÓN

El ruido y otros efectos alteran la palabra de código cresultando en la palabra de código r en el receptor.

0 OK!!!

≠ 0 ERROR!!!s

Page 4: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

4

• Para cualquier código lineal podemos encontrar una matriz tal que sus filas son ortogonales a las filas de :

H es denominada la matriz de verificación de paridad y sus filas son linealmente independientes.

• Para códigos lineals de bloque sistemáticos tenemos:

0GH =T

Detección de erroresnkn ×− )(H

][ Tkn PIH −=

G

FormateoCodificación

de canalModulación

Decodificaciónde canal

FormateoDemodulación

Detección

Fuente dedatos

Sumiderode datos

c

r

m

m

canal

error de vector opatrón ),....,,,(

recibido vector o código de palabra ),....,,,(

321

321

n

n

eeee

rrrr

==

e

r

Page 5: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

5

Detección de error

• Consideremos que el vector código c se transmite en un medio que lo altera de modo que el receptor recibe el vector r resultante del efecto del vector de error e provocado por el medio tal que:

ecr ⊕=

• El vector e se denomina vector de error o patrón de error. El i-ésimo elemento de e es igual a 0 si el elemento correspondiente de r es el mismo que el de c. Por otra parte, i-ésimo elemento de e es igual a 1 si el elemento correspondiente de r es diferente del de c, en cuyo caso se dice que ha ocurrido un error en la i-ésima posición. Es decir, para i=1,2,...,n, tenemos:

neeee ⋅⋅⋅= 21

=oringún erro existe n si n

aión i-ésimn la posicun error e ocurrido si haei 0

1

• El síndrome se obtiene de la expresión:

Con HT la matriz transpuesta de la matriz de verificación H.

TT eHrHs ==

Page 6: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

6

Detección de errores

• Propiedad 1: Los síndromes dependen sólo del patrón de error, y no de la palabra de código transmitida.

( ) TTTTT eHeHcHHecrHs =⊕=⊕==

...,,,, icee kii 2,321=⊕=

• Propiedad 2: Todos los patrones de error que difieren por una palabra de código tienen el mismo síndrome.

Para k bits de mensaje, hay Me=2k vectores de códigos distintos denotados como ci, i=1,2,...,2k. De manera correspondiente, para cualquier patrón de errores e, definimos los 2k distintos ei como:

[ ]Tkn PIH −=

• La matriz de Verificación de Paridad H se obtiene de la matriz de Paridad P y la matriz de identidad I según lo indicado.

Page 7: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

7

Detección de errores

• El conjunto de vectores {ei , i=1, 2,...,2k} se denomina un coconjunto del código. En otras palabras, un coconjunto tiene exactamente Me=2k elementos que difieren a lo mas por un vector de código. De esa manera, un código de bloques lineal (n,k) tiene 2n-k posibles coconjuntos. En cualquier caso, se puede observar que:

( ) TTi

TTi

Ti eHHceHHceHe =⊕=⊕=

• Que es independiente del índice i. Por lo tanto, es posible enunciar que cada coconjunto del código está caracterizado por un síndrome único.

Page 8: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

8

Ejemplo 2

[ ]

=

= −

1 1 1 0 1 0 0

0 1 1 1 0 1 0

1 1 0 1 0 0 1

H

PIH Tkn

Del ejemplo 1 anterior la matriz H está definida como:

Cuya matriz transpuesta es HT:

=

1 0 1

1 1 1

1 1 0

0 1 1

1 0 0

0 1 0

0 0 1

TH

Page 9: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

9

Ejemplo 2Asumiendo que el vector código enviado 1110010 por el transmisor es alterado de modo que el receptor recibe el vector 1100010, calcularemos el síndrome:

[ ]

[ ]1 0 0

1 0 1

1 1 1

1 1 0

0 1 1

1 0 0

0 1 0

0 0 1

0 1 0 0 0 1 1

=

==

s

rHs T

Un síndrome s distinto del vector nulo [0 0 0] indica la presencia de error en el código recibido.

Indica la presencia de error

Page 10: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

10

Decodificación del síndrome

• El receptor tiene la tarea de dividir los 2n vectores recibidos posibles en Me=2k subconjuntos disjuntos D1, D2,...,DM, de tal forma que i-ésimo subconjunto Di corresponda al vector de código ci para 1 ≤ i ≤ Me.

• El vector recibido r se decodifica en ci si éste se encuentra en el i-ésimo subconjunto. Para que la decodificación sea correcta, r debe estar en el subconjunto que pertenece al vector de código ci que realmente fue enviado.

• Los Me=2k subconjuntos descritos aquí constituyen un arreglo estándar del código de bloque lineal.

• Un arreglo estándar es un arreglo 2n-k x 2k cuyos elementos son secuencias binarias de longitud n.

Page 11: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

11

Decodificación del síndrome

• Para generar el arreglo estándar se procede de la siguiente manera:

1. Todos los 2k vectores o palabras de código se colocan en una fila o renglón iniciando por la palabra de código componentes todos cero al extremo izquierdo el cual nombramos c1. Esta constituye la primera fila.

2. Para la segunda fila o renglón se busca entre todas las secuencias binarias de longitud n que no están presentes en la primera fila del arreglo. Escojamos una de estas palabras de código que tenga el menor peso y nombrémosla e1. Escribámoslo debajo de c1 y escribamos ei ⊕ ci debajo de cada ci para 2≤ i ≤ M. Es importante que el patrón de errores elegidos como primer elemento en una fila o renglón no haya aparecido previamente en el arreglo estándar.

3. La tercera fila del arreglo se completa de forma similar. De las tupletas-n que no han sido usados en las primeras dos filas, los elementos de la tercera fila se vuelven ci⊕ e2. Este proceso se sigue hasta que no quede ninguna tupleta-n para comenzar una nueva fila.

Page 12: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

12

Decodificación del síndrome

k-kn-kn-kn-kn-kn

k

k

k

22i232222

Mjij3j2jj

23i333233

22i232222

2i321

ce ce ce ce e

ce ce ce ce e

ce ce ce ce e

ce ce ce ce e

c c c c 0c

⊕⊕⊕⊕

⊕⊕⊕⊕

⊕⊕⊕⊕

⊕⊕⊕⊕

=

•Representación esquemática de un arreglo estándar.

•Cada fila o renglón del arreglo estándar se llama coconjunto y el primer elemento de cada coconjunto (ei en general) se llama líder o guía del coconjunto.

Coconjunto líder

Co

con

jun

to

Page 13: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

13

Decodificación del síndrome• Visto lo anterior, es posible describir el procedimiento de

decodificación para un código de bloques lineal:

1. Para un vector o palabra de código recibido r, calculamos el síndrome .

2. Dentro del coconjunto caracterizado por el síndrome s, indentificamos el líder o guía del coconjunto (es decir, el patrón de errores con la probabilidad de ocurrencia más alta o patrón de error estimado, ); llámelo.

3. Calculamos el vector o palabra de código estimado como: erc ⊕=

Este procedimiento recibe el nombre de decodificación del síndrome.

•Note nuevamente que:THes =

c

e

TrHs =

)e(ecee)(cerc ˆˆˆˆ ++=++=+=ee =ˆ

ee ≠ˆ

Note que:

Si, , el error es corregido.

Si, , ocurre un error de decodificación NO DETECTABLE!!!.

PARA LA CONSTRUCCIÓN DE LA TABLADE SÍNDROMES DÉ ERRORES CORREGIBLES

Page 14: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

14

Ejemplo Ilustrativo 3: Decodificación de canal

=

1 0 0 0 1 0 1

0 1 0 0 1 1 1

0 0 1 0 1 1 0

0 0 0 1 0 1 1

G

• Del ejemplo 2 y tomando la matriz generadora mostrada abajo se obtiene el conjunto de vectores de códigos (7,4,3) que se resumen en la diapositiva siguiente.

Page 15: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

15

Ejemplo Ilustrativo 3: Decodificación de canal

Palabramensaje

Palabra CódigoPeso de palabra

de código

Palabramensaje

Palabra CódigoPeso de palabra

de código

0000 0000000 0 1000 1101000 3

0001 1010001 3 1001 0111001 4

0010 1110010 4 1010 0011010 3

0011 0100011 3 1011 1001011 4

0100 0110100 3 1100 1011100 4

0101 1100101 4 1101 0001101 3

0110 1000110 3 1110 0101110 4

0111 0010111 4 1111 1111111 7

• Conjunto de vectores de códigos (7,4,3) para el ejemplo 3.

Page 16: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

16

Ejemplo Ilustrativo 3: Decodificación de canal

Sindrome Patrón de error

000 0000000

100 1000000

010 0100000

001 0010000

110 0001000

011 0000100

111 0000010

101 0000001

• Mapeo de los 2n-k =2p = 27-4 = 23 = 8 síndromes. Puede demostrarse que la distancia mínima de Hamming es 3 y que el sistema es capaz de corregir 1 error.

Page 17: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

17

Ejemplo Ilustrativo 4

Consideramos el caso en el cual se transmitía el código 1110010 y que debido a perturbaciones del canal el receptor recibía el vector código 1100010, cuyo síndrome era s=(001).

En este caso, de la tabla que mapea los síndromes y los posibles patrones de errores encontramos que el receptor estima que el patrón de error cometido corresponde a e=(0010000).

Por tanto, la corrección resulta de sumar dicho patrón de error al vector de código recibido r:

)(c

)()(c

e r c

0010111ˆ

00100001100010ˆ

ˆˆ

=⊕=

⊕=

Bit corregido

Page 18: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

18

Ejemplo de arreglo de palabras de código (6,3)

010110100101010001

010100100000

100100010000

111100001000

000110110111011010101101101010011100110011000100

000101110001011111101011101100011000110111000010

000110110010011100101000101111011011110101000001

000111110011011101101001101110011010110100000000

Coconjunto líderes

Conconjuntos

Palabras de códigos

Page 19: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

19

Ejemplo de arreglo de palabras de código (6,3)

111010001

100100000

010010000

001001000

110000100

011000010

101000001

000000000

(101110)(100000)(001110)ˆˆ

estima se vector del corregida versión La

(100000)ˆ

es síndrome este a ientecorresponderror dePatrón

(100)(001110)

:calcula se de síndrome El

recibido. (001110)

ido. transmit(101110)

=+=+=

=

===

==

er

e

HrH

r

r

c

s

c

TT

Partrón de error Síndrome

Page 20: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

20

•Si el código es pequeño, por ejemplo (6,3) el decodificador se puede implementar con circuitería básica. De otra manera se requiere de programación e implementación en hardware.

•El decodificador dependerá de la ecuación booleana que resulta de proceso de determinación del síndrome o detección, y luego el proceso de corrección. Es decir, es fundamental la matriz de verificación de paridad H.

•Como ejemplo ilustrativo, tomemos como válida la siguiente matriz de verificación de paridad, dada por:

Implementación del Decodificador

=

1 0 1

1 1 0

0 1 1

1 0 0

0 1 0

0 0 1

TH [ ]

==

1 0 1

1 1 0

0 1 1

1 0 0

0 1 0

0 0 1

654321 rrrrrrTrHs

5533

5422

6411

rrrs

rrrs

rrrs

++=++=++=

Page 21: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

21

Implementación del Decodificador (6,3)

Page 22: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

22

Códigos Cíclicos

• Códigos cíclicos son una subclase de códigos lineales de bloque.

• Es un sistema de codificación más fácil que la mayoría de los demás.

• La codificación y el cálculo del síndrome son facilmente realizables usando registros de desplazamiento retroalimentado.

– Códigos de bloque relativamente largos pueden ser implementados con una complejidad razonable.

• Los códigos BCH y Reed-Solomon son códigos cíclicos.

• Características del código cíclico:– Propiedad de linealidad

• La suma de cualquier par de palabras de códigos del código es siempre otra palabra de código

– Propiedad cíclica• Cualquier desplazamiento en una palabra de código origina otra palabra de

código

Page 23: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

23

Códigos Cíclicos

• Un código lineal (n,k) se denomina cíclico si todos los desplazamientos cíclicos de una palabra de código, son también una palabra de código.

• Ejemplo:

{ }01

),...,,,,,...,,(

),...,,,(

121011)(

1210

, donde c

ccccccc

cccc

i

inninini

n

∈=

=

−−−+−−

c

c “i” desplazamientos cíclicos de c

ccccc

c

======

)1101( )1011( )0111( )1110(

)1101()4()3()2()1(

Page 24: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

24

Códigos Cíclicos

• La estructura algebraica de un código cíclico (n,k) , implica que es necesario exprear las palabras de códigos en forma polinomial coeficientes binarios de orden (n-1).

• La relación entre una palabra de código y sus desplazamientos cíclicos:

)1( grado ...)( 11

2210 n-xcxcxccx n

n−

−++++=C

)1()(

...

...,)(

1)1(

)1(

11

)(

12

2101

11

22

10

1)1(

++=

++++++=

+++=

+

−−−

−−

−−

nn

xc

nn

n

x

nnn

nn

nn

xcx

cxcxcxcxcc

xcxcxcxcxx

nn

C

C

C

)1( modulo )()()( += nii xxxx CCPor extensión

)1( modulo )()()1( += nxxxx CC

De allí que:

Page 25: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

25

Códigos Cíclicos: Generación

• Dentro del conjunto de códigos polinomiales en C, hay un único polinomio G(x) con mínimo grado llamado polinomio generador. En general, G(x) puede expandirse del modo siguiente:

nr <

∑−−

=

−++=1

1

1kn

i

knii xxg(x)G

• Cada código polinomial en C(x) puede expresarse unívocamente como:

)()( xx(x) GMC =

• El polinomio generador G(x) es un polinomio de grado r=n-k el cual es un factor de (xn + 1), de tal modo que el polinomio G(X) es el polinomio de menor grado en el código.

rr xgxggx +++= ...)( 10G

O bien, puede expresarse como:

{ }01, gi ∈

Page 26: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

26

Códigos Cíclicos: Generación

{ }011210

11

2210

, mdonde ),m,...,m,m(mmsi

xmx m...x mm(x)

ik-k-

kk

kk

∈=++++= −

−−

−M

• El mensaje también se expresa como polinomio con coeficientes binarios de orden (k-1).

• La palabra de código depende del mensaje M(x), y del residuo Res(x) vinculado al polinomio generador G(x).

(x)(x)x(x) k-n ResMC +=

2moden división (x)

(x)(x)

(x)

(x)xn-k

G

ResQ

G

M +=

• Relación del residuo con el polinomio Generador G(x)

• Q(x) es el cociente algebraico.

Page 27: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

27

Códigos Cíclicos: Generación

∑−−

=

−++=1

1

1kn

i

knii xxg(x)G

Flip FlopFF

Σ SumadoresMódulo 2

Codificador de un modo cíclico (n,k)Bits del mensaje

g1 g2 gn-k-1

ΣFF FF FF FF FFΣΣΣ

Bits de Paridad

Palabra de

Código

. . .

. . .

Compuerta

knkn xgxggx −

−+++= ...)( 10G

Page 28: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

28

Códigos Cíclicos: Generación

• En un código cíclico sistemático (n,k) los bits de mensaje se transmiten en forma inalterada.

• Los códigos de bloque sistematicos satisfacen la condición que los primeros p (=n-k) bits de la izquierda (o los últimos de la derecha) son idénticos a los correspondientes bits de paridad. Los últimos k bits de la derecha (o de la izquierda) son idénticos a los bits de mensaje, siendo como indica la siguiente estructura para una palabra de código:

p0,p1,...,pn-k-1, m0,m1,...,mk-1

n-k bits de paridad k bits de mensaje

CÓDIGOS CÍCLICOS SISTEMÁTICOS

Page 29: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

29

Ejemplo generación de código (1/2)

Encuentre la palabra código para el mensaje (bits de datos) M=1110. Se usa código cíclico (7,4) y un polinomio generador G(x)=1+x+x3

Solución:

:así quedaría matemática operación la

x 0xx1G(x)comoy

xxx0x0x0

xxx)xx(1xM(x)x

G(x)Res(x)

Q(x)G(x)

M(x)xyRes(x)M(x)x(x)Ccomo

3po4ky7ncon0xxx1M(x)

32

5432

54323k-n

k-nk-n

32

+++=+++++=

++=++=⇒

+=+=

===+++=

Page 30: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

30

Ejemplo generación de código (2/2)

Luego:C(x) = x3(1+x+x2)+x =0+x+0x2+x3+x4+x5+0x6 como n=7

el código es C = (0101110)Mensaje original

Page 31: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

31

BONIFICACIÓN 5:INVESTIGUE Y HAGA UN RESUMEN SOBRE LOS

CÓDIGOS CONVOLUCIONALESSE ENTREGA EN UNA SEMANA.

Bonificación

Page 32: Lecture 20 detección en códigos lineales de bloque. generación de códigos cíclicos

2S 2009 I. Zamora

UniVII-Conf20: Det Códs Linls. Gen Códs Cícl.

32