Veure perfil

Post on 08-Dec-2016

227 views 0 download

Transcript of Veure perfil

Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Codificación de Canal

Mónica Aguilar Igartua

22/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Índice

• Resumen fundamentos de codificación de canal• Códigos bloque

– Código Lineal.

– Matrices generadora y de comprobación.

– Distancia mínima de un código.

– Redundancia mínima para una capacidad correctora/detectora determinada.

– Probabilidad de error residual.

– Eficiencia de un código.

– Códigos e-perfectos.

– Códigos de Hamming.

– Código ISBN.

– Códigos cíclicos y polinómicos.

33/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Fundamentos de Codificación de Canal

• Objetivos de la transmisión digital de la información:

• Codificación de canal:

– Transmisión fiable (control de errores)

– Transmisión rápida (compresión)

– Transmisión segura (autenticidad, privacidad)

→ Codificación de canal

→ Codificación de fuente

→ Criptografía

– Protege la información frente a degradaciones del canal.

– Añade redundancia de forma inteligente.

– Detecta y/o corrige errores que produce el canal.

44/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Fundamentos de Codificación de Canal

• Ubicación del codificador/decodificador de canal en el Sistema de Transmisión de Datos:

Decodificaciónde canal

FuenteEquivalente

Codificaciónde canal

Destino MapeoInverso

Mapeo Modulación

Demodulación

Canal

Canal discreto equivalente

55/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Fundamentos de Codificación de Canal

• Estrategias de uso:

• Clasificación en función de cómo se introduce la redundancia:

– Detectora: ARQ (Automatic Repeat Request), solicitud automática de re-envío.

– Correctora: FEC (Forward Error Correction), corrige a partir de la información recibida.

– Códigos Convolucionales

– Códigos Bloque

⇒ De forma continua a medida que llega la información al codificador

⇒ Asociada a bloques de información

Códigox(i) y(i)

CódigoX Y

66/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Codificación de Bloque

X(x(1), …, x(k))

Y(y(1), …, y(n))

Z(z(1), …, z(n))

X(x(1), …, x(k))Canal

discretoequivalente

Codificadorde canal

Decodificadorde canal

X (k digitos)Mensaje de usuario

Y (n digitos, n>k)Palabra código

Z (n digitos)Palabra recibida

X (k digitos)Mensaje estimado

Código (n, k) →→ Redundancia = r = n-k

x(i) ∈ alfabeto de q símbolos

Para ser útil

• Aplicación biyectiva.– qk palabras código distintas.

• Código Lineal.

– se reduce la complejidad del código.

• Estructura sistemática de la palabra código.

– extraer de inmediato el mensaje de usuario.

X

qk

Codificador

Código Bloque

Y

qk

qn

k r

mensaje redundanciapalabra, n dígitos

77/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código Lineal de Bloque

El código bloque de qk palabras código (de longitud n) es un Código Lineal Bloque

(n, k) si y sólo si tiene estructura de subespacio vectorial k-dimensional (del espacio

vectorial formado por las n-tuplas) sobre un Cuerpo de Galois (GF).

• El Codificador se elige de tal manera que sea una aplicación lineal:

X1 → Y1

X2 → Y2c1 ⋅ X1 + c2 ⋅ X2 → c1 ⋅ Y1 + c2 ⋅ Y2

c1, c2 ∈ GF

{ {000001010011100101110111

00011011

01 ⊕ 11 = 10 → 101

011 ⊕ 110 = 101

Ejemplo:

Conjunto finito de elementos con los cuales se opera comocon los números reales. Consideraremos GF(2).

88/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Matriz Generadora del Código Lineal de Bloque, G

• Del Código Lineal (n, k) hallamos k palabras código lin. indep. (g1, g2, ..., gk) → Base

Cada palabra código Y es una combinación lineal de esas k palabras código:

k=3 → Y = x1·g1 + x2·g2 + x3·g3 , xi = {0, 1}

=

=

knkk

n

k

ggg

ggg

g

g

g

kxn

K

MMM

K

M21

112112

1

)G(X = (x1, x2, ..., xk) ⇒ Y = X · G

• Matriz Generadora del Código

• Todo mensaje de usuario X puede expresarse como combinación lineal de una base:

X = (x1, x2, x3) = x1· (100) + x2· (010) + x3· (001)

• El código queda determinado conociendo la codificación de una base del conjunto de

mensajes de usuario, X: (100) → (g11 g12 ... g1n) = g1(010) → (g21 g22 ... g2n) = g2(001) → (g31 g32 ... g3n) = g3

99/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código Lineal Sistemático de Bloque

• Un código lineal (n, k) SISTEMÁTICO de bloque queda definido por una matriz G(kxn):

( ))P( I

pp

p

pp

100

010

001

)(G

krk1

21

1r11

kxrkxn k=

=M

L

K

MOM

L

k r

palabra, n dígitos

mensaje redundancia• Estructura Sistemática

• Ejemplo:

Código de paridad.

k=2, n=3.

00011011

00011011

0110

=

=

1

1 I

1

1

10

01)3x2(G 2

⇒ r=n-k=1

1010/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Detección/corrección de errores

• ¿Cómo detectar errores?

X(x(1), …, x(k))

Y(y(1), …, y(n))

Z(z(1), …, z(n))Canal discreto

equivalenteCodificador

de canalDecodificador

de canal

Y=X·G

?

• Si Z ≠ Y ⇒ ERROR. Pero Y no es conocida en recepción!

• Si Z ∉ código ⇒ ERROR. Es cierto.

• Si Z ∈ código ⇒ NO ERROR. Es una suposición: puede que el error haya transformado

una palabra código en otra! Diseñar el Código para que sea poco probable.

• ¿Cómo saber si Z ∈ a un código C? ⇒ Comparar Z con todas las Y del código. Ineficaz si k es grande!

• Una palabra Z ∈ a un código C si es ⊥ a C⊥ , subespacio vectorial ⊥ a C.

1111/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Un código lineal de bloque (n, k) tiene asociada otra matriz H(rxn):

Matriz de Comprobación del Código Lineal de Bloque, H

2n palabras Z

Código C: 2k palabras Y

Subespacio vectorial ortogonal a C

=

=

nr r1

2n21

1n11

r

2

1

hh

hh

hh

h

h

h

)(H

L

MM

L

L

Mrxn

G(kxn)

gi

H(rxn)

hj gi ⊥ hj ⇒ gi · hj = 0

Y·HT = 0

G·HT = 0

Matriz de Comprobación del Código

1212/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• En un código lineal de bloque (n, k) SISTEMÁTICO, la matriz H es de la forma:

Matriz de Comprobación del Código Lineal de Bloque, H

G(kxn) = ( Ik | P(kxr) )

G ·HT = 0 ⇒ HT = ⇒ H(rxn) = ( -PT | Ir)-P Ir

Nota: En GF(2) , 1+1=0, -1≡1, -P≡P

• Ejemplo:

Código de paridad. k = 2, n = 3 ⇒ r = n - k = 1

( ) ( ) ( )111I11H(1x3) P(2x1) I1

1

10

01)3x2(G 12 ==⇒=

=

Z = 011 → Z · HT = (011) · = 0

Z ∈ C

111

Z = 001 → Z · HT = (001) · = 1 ≠ 0

Z ∉ C

111

1313/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Sea un código lineal de bloque (n, k) sistemático del que conocemos sus matrices G y H.

• Sea Y una palabra código que se transmite por un canal ruidoso.

• Se recibe la palabra Z.

• Z = Y + e

• e = (e1, ..., en) con

• Una vez que se ha obtenido e ⇒

• SÍNDROME de Z: s = Z·HT → s = (s1, ..., sr) →

• s = Z·HT = (Y+ e ) ·HT = Y·HT + e ·HT = e ·HT

Síndrome y detección de errores

Y Zcanal

e, vector de error

ei = 1 si Zi ≠ Yi

ei = 0 si Zi = Yi

si Z·HT = 0 → s = 0 ⇒ No error(*)

si Z·HT ≠ 0 → s ≠ 0 ⇒ Error

Y = Z + e

s = e ·HT(*) ¿Es posible que Z sea errónea siendo s=0?

- Si e ∈C, e≠0 ⇒ Z=Y+e ⇒ Z ∈C ⇒ s=0

- Hay 2k-1 palabras código ≠ 0 ⇒ Hay 2k-1 errores no detectables

1414/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Para obtener e, basta con resolver r ecuaciones lineales, ¡con n incógnitas!

• Hay n - r = k grados de libertad.

Síndrome y detección de errores

s = e ·HT ( )

⋅=

nr n 2n 1

2r 2212

1r 2111

n21r21

hhh

hhh

hhh

)e ..., ,e ,e(s ..., ,s ,s

L

MMM

L

L

• Para minimizar la probabilidad de error, se elige el error e más probable.

• Regla de decisión para corregir errores: ¿Cómo determinar Y a partir de Z recibida?

• Distancia d(Y, Z) mínima → Depende del Modelo de Canal.

• Hay 2k soluciones, es decir hay 2k errores que producen igual síndrome:

1515/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Canal Binario Simétrico (BSC)

Modelo de Canal

canalY Z

– errores aleatorios e independientes– no hay ráfagas de errores

yi = 0 zi = 0p

1-p

yi = 1 zi = 1p

1-pCanal discreto equivalente p = Prob. error bit

• Distancia, d(Y, Z) = Nº de bits diferentes entre Z e Y = Distancia de Hamming =

= Peso (nº bits =1) de la suma = W(Y+Z)

Canal sin

memoria

• Ejemplo: Código de paridad. k=2, n=3

Y1 000

Y2 011

Y3 101

Y4 110

d(Y1, Y4 )=W(000+110)=W(110)=2

d(Y2, Y3 )=W(011+101)=W(110)=2

ya

yb

yc

Y1

Y4

1

1

Y2

Y3

1

1

√2

√2

distancias de Hamming

distancias Euclídeas

1616/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Canal con memoria. Se producen ráfagas de errores ⇒ ENTRELAZADO:• Ejemplo:

Modelo de Canal

– Canal b) necesita código con capacidad correctora 3 ⇒ Es necesaria una redundancia ≥ 6– Canal a) necesita código con capacidad correctora 1 ⇒ Es necesaria una redundancia ≥ 2.

– Diseñar código para canal del tipo a), pero procesar las Y antes de enviarlas al canal con memoria.

a)

b)

...

...

X X X X X

X X X X X

Y1 Y2 Y3 Y4 Y5

1 2 3 4 5 6 7 8 9 10 11 12

n = 4

códigoX Y

Y1

Y2

Y3

Y4

Y5

1 2 3 4

5 6 7 8X

X

X

X

X

n = 4

D = profundidad de entrelazado

D ≥ Longitud media ráfaga

Aumenta el retardo

¿Qué valor debe tener D?

¿Qué problema surge?

canal

1717/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Distancia de Hamming = d(Y, Z) = W(Y+Z)

• Dado un código C lineal de bloque (n, k), su distancia mínima dmín se define como:

Distancia mínima de un código

dmín = mín. d(Yi, Yj), con Yi, Yj ∈ C, i≠j

• Dado que C es un subespacio vectorial, Yi + Yj es otra palabra código, por tanto:

dmín = mín. W(Yk) = Wmín ⇒ El menor de los pesos de todas las YYk≠0

Y1 000

Y2 011

Y3 101

Y4 110

• Ejemplo: Código de paridad. k=2, n=3

W2 = 2

W3 = 2

W4 = 2

⇒ Wmín = 2 = dmín

¿Qué relación guarda la dmín de un Códigocon su capacidad detectora y correctora de errores?

1818/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Ejemplo:

Capacidad correctora/detectora de un código

e = 3δ = 6

Yi

Yj

dmín = 7

Z

Capacidad correctorade errores

Capacidad detectorade errores

=

2

1-de min

1-d min=δ

1e2dmin +⋅≥ 1 dmin +≥ δ

• BORRÓN:

canalY Z

{0, 1} {0, 1, #}

– Indica incertidumbre en su valor

– Corregir un error ⇒

– Conocemos la posición

– Mayor facilidad de corrección

Capacidad correctorade borrones

1 dmin +≥ ρ

- dónde?- valor?

1-d min=ρ

1919/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• REDUNDANCIA: ¿Cuál es el valor mínimo de r para garantizar una cierta capacidad correctora? ⇒ planteemos un caso extremo.

Redundancia y Probabilidad de error residual

– Ejemplo: Código lineal de bloque (5, 3) sistemático, que consiste en añadir 1’s al mensaje de usuario.

n=5k=3

⇒ r = n-k = 2

k=3 r=2

⇒ dmín = 1 + r

– En general, dmín ≤ r + 1 ⇒ dmín ≥ 2·e + 1 ⇒ r ≥ dmín -1 ≥ 2·e ⇒ r ≥ 2·e

• PE , Probabilidad de error residual:

– Código bloque capaz de corregir e errores– Canal binario simétrico con prob. error p

( ) inin

ei

ppi

n −

+=

−⋅⋅

= ∑ 1 P

1E

001 11010 11 100 11

2020/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

• Códigos e-perfectos.

– Corrige hasta e errores y ningún otro más.

– Cada error corregible ⇔ Un síndrome diferente

Códigos e-perfectos y Códigos de Hamming

s = (s1, ..., sr)

++

+

+==

e

n ...

2

n

1

n 1 2 síndromes de Nº r

no error1 error e errores

• Códigos de Hamming.

– Código 1-perfecto ⇒ e = 1 ⇒ corrige errores simples.

– 2r = 1 + = 1 + n

n = 2r -1

n1

r = 2 ⇒ n = 22-1=3 ⇒ k=n-r=1 ⇒ Código (3, 1)

r = 3 ⇒ n = 23-1=7 ⇒ k=n-r=4 ⇒ Código (7, 4)

r = 4 ⇒ n = 24-1=15 ⇒ k=n-r=11 ⇒ Código (15, 11)

2121/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código (7, 4) de Hamming

• Ejercicio. Generar un Código (7, 4) de Hamming.

– Se trata de obtener la matriz generadora G(kxn).

– Código (n, k) ⇒ n = 7, k = 4 ⇒ r = n - k = 3

– Corrige 1 error simple: e = 1 ⇒ Sólo una componente de e es diferente de cero.

– e tiene n=7 componentes, e = (e1, e2, ..., e7)

· Hay 7 vectores error e diferentes· Hay 7 errores corregibles ⇒ 7 síndromes s diferentes

– Como s = e · HT ,

· Cada síndrome asociado a error corregible, coincide con una columna de H(rxn)· H(3x7) tiene 7 columnas

( ) ( )

=−=

100

010

001

I P3x7H rT

xxxx

xxxx

xxxx – No puede haber una columna .

– 2 columnas no pueden ser iguales.

– Las 4 columnas serán las 23-1-3 = 4 ternas restantes, en cualquier orden.

000

¿Cómo elegimos las 4 columnas de H?

2222/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código (7, 4) de Hamming

( ) ( )rT I P-

1001110

0100111

0011101

3x7H =

= ( ) ( )P I

1011000

1110100

1100010

0110001

4x7G k=

=r x n k x n

• Código generado:

0000 0000001 1010010 1110011 0100100 0110101 1100110 1000111 0011000 1101001 0111010 0011011 1001100 1011101 0011110 0101111 111

XY

Y = X·G

s = e ·HT

error ↔ síndrome 1000000 110 0100000 011 0010000 111

0000001 001

1ª columna de H

2ª columna de H

3ª columna de H

7ª columna de H

Y = 0001101 – Corrección de errores simples– Detección de errores– Corrección de borrones

2323/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código (7, 4) de Hamming

Y = Z + e =

s = Z·HT

b) Capacidad detectora de errores: Y = 0001101 → Z = 1101101

= (1101101) · = (101) ≠ (000) ⇒ Ha habido error. Los 2 errores han sido detectados.

110011111101100010001

No debo corregir, pues el número de errores (2) excede la capacidad correctora, e=1:

1101101 + 0001000 = 1100101 ≠ Y

δ = 2·e = 2

s = Z·HT

a) Corrección de error simple: Y = 0001101 → Z = 0001100

= (0001100) · = (001) ⇒

110011111101100010001

e = (0000001) Y = Z + e = 0001100 + 0000001 =

= 0001101 = Y

⇒ e = (0001000)

2424/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código (7, 4) de Hamming

Y = 0001101 → Z = # # 01101ρ = δ = 2c) Corrección de borrones:

0000 0000001 1010010 1110011 0100100 0110101 1100110 1000111 0011000 1101001 0111010 0011011 1001100 1011101 0011110 0101111 111

Comparando con todas las palabrascódigo, podemos decir SIN DUDA

que la palabra código transmitida

es Y = 0001101.

Con un número mayor de borrones, no podemosasegurar el poder discernir entre varias palabras código.

Ejemplo:

Z = # # 0 # 110 ⇒Y = 0101110

Y = 1000110?

2525/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Códigos de Hamming recortados

0000 0000001 1010010 1110011 0100100 0110101 1100110 1000111 0011000 1101001 0111010 0011011 1001100 1011101 0011110 0101111 111

• Si borramos cualesquiera B columnas de la matriz de comprobación H(rxn) de un código Hamming, obtenemos una matriz H’ de orden r x (n-B).

• A partir de H’ podemos obtener la matriz G’ (estructura sistemática) de un código Hamming recortado con los siguientes parámetros:

n’ = n - Bk’ = k - Br’ = re = 1 → dmín = 3

( ) ( ) ( )rT I P-

10011

01001

00111

3x5H'

1001110

0100111

0011101

3x7H =

=⇒

=

( ) ( )

==

10110

11101P I2x5G' k

Por ejemplo, B=2:

Código(6,3)

Código(5,2)

k’ x n’

r’ x n’

n’ = 7-2 = 5k’ = 4-2 = 2r’ = 3e = 1 → dmín = 3

r x n

X 00011011

Y=X·G

2626/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código (5, 2) de Hamming recortado

• Diseñar un Código (5,2) con el simulador Ptolemy.

1.- La probabilidadde error del canalequivalente es del 2%.

2.- Diseñar las tablas deemisor y receptor.

3.- Hallar la probabilidadde error final residual.

4.- Hallar la eficiencia delcódigo. Compararla con la del Código (7,4).

5.- Conclusiones.

p(0)

Código (5, 2)

E = k/n = 2/5 = 0,4 = 40%

PE = 0,38%

Código (7, 4)

E = k/n = 4/7 = 0,57 = 57%

PE = 0,78%

2727/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Ejercicios

• 1. La matriz de comprobación H(3x7) de un Código de Hamming (7, 4) es:

( )

=

1001110

0100111

0011101

3x7H Se recibe la palabra Z = 10ab110.

¿Cuál fue el mensaje enviado?

Es de Hamming → Capacidad correctora de errores e=1 → Capacidad correctora de borrones ρ=2

s = (10ab110) · HT = (a+b+1, b, a+1) = (0, 0, 0) ⇒ b=0, a=1 ⇒ Mensaje = 1010

• 2. Se tiene un canal caracterizable por una prob. de error de bit de 10-3 que genera ráfagas de error

de longitud 2. Es inaceptable una prob. de error de usuario de 10-7. Considere n=5.

¿Con qué codificador es posible?

a) e=1, D=4 → D≥2, PE ≅ 10-6 · = 10-5 > 10-7, No.

b) e=2, D=1 → No, no se está entrelazando.

c) e=2, D=2 → D≥2, PE ≅ 10-9 · = 10-9 < 10-7, Sí.

52

53

El proceso de entrelazado permite suponer erroresindependientes y aleatorios.

Es aplicable la expresión PE ≅ · pe+1ne+1

2828/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código ISBN

• Código ISBN (International Standard Book Number).

– Código utilizado para detectar errores producidos al mecanografiar.

– El mensaje de usuario consta de k=9 símbolos ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X}.

– Se añade otro símbolo de ese mismo alfabeto como redundancia, r=1.

– La palabra código consta de n=k+r=10 símbolos.

– Trabajamos en el Cuerpo de Galois GF(11) , utilizando aritmética módulo 11.

– El código es sistemático: la palabra código está formada por el mensaje de usuario seguido de la redundancia.

– Obtención de la redundancia: Suma de los 9 dígitos del mensaje ponderados por su posición ⇒Proporciona información para detectar errores comunes de transposición.

– Puede corregir 1 borrón -> ρ=1 => No corrige ningún error => e=0

2929/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código ISBN

• Código ISBN. Obtención de las matrices de generación G y de comprobación H.

mensaje → m1 m2 m3 m4 m5 m6 m7 m8 m9

* * * * * * * * *

posición → 1 2 3 4 5 6 7 8 9 → redundancia = 1·m1+2·m2+3·m3+4·m4+5·m5+6·m6+ + 7·m7+8·m8+9·m9

( ))19P( I

9100000000

8010000000

7001000000

6000100000

5000010000

4000001000

3000000100

2000000010

1000000001

)109(G 9 xx =

=kxn kxr

( ) ( )1 2 3 4 5 6 7 8 9 10I P)101(H rT =−=x

rxn

01

2

3

4

56

7

10

9

8

-1

-2

-3

-4-5

-6

-7

-8

-9

-10

X

“El manuscrito carmesí”, A. Gala. → 84 320 7022-X

3030/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Código ISBN

• Código ISBN. Ejemplo.

( ) ( ) ( )X84320702210843207022

9100000000

8010000000

7001000000

6000100000

5000010000

4000001000

3000000100

2000000010

1000000001

843207022GXY ≡=

⋅=⋅=

( ) ( ) 011 mod 2091 2 3 4 5 6 7 8 9 X843207022XHY TT ==⋅=⋅

“El manuscrito carmesí”, A. Gala. → 84 320 7022-X

Redundancia =

= 1·8+2·4+3·3+4·2+5·0+6·7+7·0+8·2+9·2 =

= 109 mod 11 =

= 10 ≡ X

Corrige 1 borrón ⇒ ρ = 1 ⇒ e = 0

3131/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Códigos cíclicos y Códigos polinómicos

• Códigos cíclicos.

– Subconjunto de los códigos bloque lineales.

– Pueden ser modelados fácilmente mediante polinomios.

– Pueden ser implementados con registros de desplazamiento LFSR (Lineal Feedback Shift Register).

• Un código bloque lineal C es cíclico si:

Y = yn-1 yn-2 ... y3 y2 y1 y0 ∈ C

Y’ = yn-2 ... y3 y2 y1 y0 yn-1 ∈ C

Y’’ = y0 yn-1 yn-2 ... y3 y2 y1 ∈ C

• Correspondencia polinómica: Y = yn-1 yn-2 ... y3 y2 y1 y0 → Y(D) = y0 + y1⋅D + y2 ⋅D2 + ... + yn-1 ⋅Dn-1

(MPI=Más Peso a la Izquierda)

3232/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Códigos cíclicos y Códigos polinómicos

• Códigos cíclicos sistemáticos.

Y(D) = y0 + y1⋅ D + y2 ⋅ D2 + ... + yr-1 ⋅ Dr-1 + yr ⋅ Dr + ... + yn-1 ⋅ Dn-1

Dr ⋅ X(D)Y(D) = R(D) + Dr ⋅ X(D)

R(D) = Dr ⋅ X(D) mod g(D)

k posiciones r

Dr ⋅ X(D) R(D)

Dr ⋅X(D) = g(D)⋅C(D) + R(D)Dr ⋅X(D) g(D)

C(D)R(D)

Y(D) = R(D) + Dr ⋅X(D) = g(D)⋅C(D)

Y(D) mod g(D) = 0

Y(D) = g(D)⋅C(D)

g(D) = polinomio generador, grado r

Errores: Z(D) = Y(D) + e(D) S(D) = Z(D) mod g(D) = Y(D) mod g(D) + e(D) mod g(D) = e(D) mod g(D)

= 0, No error

≠ 0, Error

Aquellos cuyo e(D) no sea múltiplo de g(D).¿Qué errores se detectan?

3333/33/33Codificación de Canal. Transmisión de Datos.Codificación de Canal. Transmisión de Datos.

Códigos cíclicos y Códigos polinómicos

• Ejemplo.

– Código cíclico (7, 4) sistemático definido por el polinomio generador g(D) = D3 + D2 + 1.

– Hallar la palabra código asociada al mensaje de usuario X = 1011.

X=1011 → X(D) = D3 + D + 1

r = n-k = 7-4 = 3

Y(D) = R(D) + Dr ⋅ X(D)

R(D) = Dr ⋅ X(D) mod g(D)

Dr ⋅ X(D) = D3 ⋅ (D3 + D + 1) = D6 + D4 + D3

D6 + D4 + D3 D3 + D2 + 1

D3 + D2D6 + D5 + D3

D5 + D4

D5 + D4 + D2

D2 = R(D)

Y(D) = R(D) + Dr ⋅ X(D) = D2 + D6 + D4 + D3 = D6 + D4 + D3 + D2

Y = 1011 100