Está en la página 1de 33

Codificación de Canal

Mónica Aguilar Igartua

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.

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


Fundamentos de Codificación de Canal

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


– Transmisión fiable (control de errores) → Codificación de canal
– Transmisión rápida (compresión) → Codificación de fuente
– Transmisión segura (autenticidad, privacidad) → Criptografía

• Codificación de canal:
– Protege la información frente a degradaciones del canal.
– Añade redundancia de forma inteligente.
– Detecta y/o corrige errores que produce el canal.

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


Fundamentos de Codificación de Canal

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


Transmisión de Datos:

Fuente Codificación Mapeo


Equivalente Modulación
de canal

Canal

Destino Decodificación Mapeo


Demodulación
de canal Inverso

Canal discreto equivalente


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

• Estrategias de uso:
– 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.

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


– Códigos Convolucionales ⇒ De forma continua a medida que llega la
información al codificador
x(i) Código y(i)

– Códigos Bloque ⇒ Asociada a bloques de información

X Código Y

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


Codificación de Bloque
Código (n, k) → Redundancia = r = n-k
X Y Z X
Canal
(x(1), …, x(k)) Codificador (y(1), …, y(n)) (z(1), …, z(n)) Decodificador (x(1), …, x(k))
discreto
de canal equivalente de canal

X (k digitos) Y (n digitos, n>k) Z (n digitos) X (k digitos)


Mensaje de usuario Palabra código Palabra recibida Mensaje estimado

x(i) ∈ alfabeto de
q símbolos • Aplicación biyectiva.
Y – qk palabras código distintas.
Codificador qn
• Código Lineal.
X
– se reduce la complejidad del código.
Código Bloque
Para
ser útil • Estructura sistemática de la palabra código.
– extraer de inmediato el mensaje de usuario.
qk qk
mensaje redundancia
palabra, n dígitos
k r
Codificación de Canal. Transmisión de Datos. 6/33
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).

Conjunto finito de elementos con los cuales se opera como


con los números reales. Consideraremos GF(2).

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


Ejemplo: 000
X1 → Y1 001
010
X2 → Y2 c1 ⋅ X1 + c2 ⋅ X2 → c1 ⋅ Y1 + c2 ⋅ Y2 00
01 011
{

{
10 100
101
c1, c2 ∈ GF 11
110
111
01 ⊕ 11 = 10 → 101
011 ⊕ 110 = 101
Codificación de Canal. Transmisión de Datos. 7/33
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·g 1 + x2·g 2 + x3·g 3 , xi = {0, 1}

• 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

• Matriz Generadora del Código  g1 


   g 11 g 12 K g 1n 
g   
G( kxn ) =  2 = M M M 
X = (x1, x2, ..., xk) ⇒ Y = X · G 
M
  g k 1 K 
g  gk2 g kn 
 k 
Codificación de Canal. Transmisión de Datos. 8/33
Código Lineal Sistemático de Bloque
k r
• Estructura Sistemática mensaje redundancia
palabra, n dígitos

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

 1 0 L 0 p11 L p1r 
 
0 1 
= (I k P( kxr ) )
0 p 21
G ( kxn ) =  
M O M M

0 0 K 1 p p kr 
 k1

• Ejemplo: 00 00 0
01 01 1  1 0 1  1
Código de paridad.
10 10 1 G (2 x3) =   =  I2 
  1
k=2, n=3. ⇒ r=n-k=1 11 11 0  0 1 1   

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


Detección/corrección de errores
• ¿Cómo detectar errores?
X Y Z
?
(x(1), …, x(k)) Codificador (y(1), …, y(n)) Canal discreto (z(1), …, z(n)) Decodificador
de canal equivalente 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.

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


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

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

 h1   h11 L h1n  Matriz de Comprobación del Código


   
h  h L h 2n 
H( rxn) =  2  =  21
M M M 
    G(kxn) H(rxn)
h  h 
 r   r1 L h r n  gi ⊥ hj ⇒ gi · hj = 0
gi hj
2n palabras Z

Código C: 2k palabras Y

Y·HT = 0

Subespacio vectorial ortogonal a C G·HT = 0


Codificación de Canal. Transmisión de Datos. 11/33
11/33
Matriz de Comprobación del Código Lineal de Bloque, H

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

G(kxn) = ( Ik | P(kxr) )
-P
G ·H T = 0 ⇒ HT = ⇒ H(rxn) = ( -PT | Ir)
Ir

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

• Ejemplo:
 1 0 1
Código de paridad. G (2 x3) =   = (I 2 P(2x1) ) ⇒ H(1x3) = (11 I1 ) = (111)

k = 2, n = 3 ⇒ r=n-k=1  0 1 1
1 1
Z = 011 → Z · HT = (011) · 1 =0 Z = 001 → Z · HT = (001) · 1 =1≠0
1 1
Z∈C Z∉C

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


12/33
Síndrome y detección de errores
• 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. Y Z
canal
•Z=Y+e
ei = 1 si Zi ≠ Yi
• e = (e1, ..., en) con
ei = 0 si Zi = Yi e, vector de error

• Una vez que se ha obtenido e ⇒ Y = Z + e


si Z·H T = 0 → s = 0 ⇒ No error(*)
• SÍNDROME de Z: s = Z·H T → s = (s1, ..., sr) →
si Z·H T ≠ 0 → s ≠ 0 ⇒ Error
• s = Z·H T = (Y+ e ) ·H T = Y·H T + e ·H T = e ·H T
- Si e ∈C, e≠0 ⇒ Z=Y+e ⇒ Z ∈C ⇒ s=0
(*) ¿Es posible que Z sea
s = e ·H T - Hay 2k-1 palabras código ≠ 0 ⇒ Hay 2k-1 errores
errónea siendo s=0? no detectables
Codificación de Canal. Transmisión de Datos. 13/33
13/33
Síndrome y detección de errores
• Para obtener e, basta con resolver r ecuaciones lineales, ¡con n incógnitas!
• Hay n - r = k grados de libertad.
• Hay 2k soluciones, es decir hay 2k errores que producen igual síndrome:
 h 11 h 21 L hr1 
 
(s1 , s 2 , ..., s r ) = (e1 , e 2 , ..., e n ) ⋅  12
h h 22 L hr 2 
s = e ·H T
M M M 
 
h L h r n 
 1n h2n

• 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.

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


14/33
Modelo de Canal
1-p
• Canal Binario Simétrico (BSC) Y Z yi = 0 zi = 0
canal p
Canal sin – errores aleatorios
e independientes p
memoria yi = 1 zi = 1
– no hay ráfagas Canal discreto equivalente
de errores 1-p
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)
yc

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


Y2
1 distancias Euclídeas
Y1 000 d(Y1, Y4 )=W(000+110)=W(110)=2 √2
Y3
Y2 011
Y3 101 d(Y2, Y3 )=W(011+101)=W(110)=2 Y1
yb
Y4 110 1
√2

ya 1 Y4
Codificación de Canal. Transmisión de Datos. 15/33
15/33
Modelo de Canal
• Canal con memoria. Se producen ráfagas de errores ⇒ ENTRELAZADO:
• Ejemplo: n=4
a) X X X X X ...
Y1 Y2 Y3 Y4 Y5
b) X X X X X ...
1 2 3 4 5 6 7 8 9 10 11 12

– 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.

canal
¿Qué valor debe tener D?

Y1
1 2 3 4 D ≥ Longitud media ráfaga
X
5 6 7 8
X Y Y2 X
código Y3 X D = profundidad ¿Qué problema surge?
Y4 X de entrelazado
Y5 X Aumenta el retardo
n=4
Codificación de Canal. Transmisión de Datos. 16/33
16/33
Distancia mínima de un código
• 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:
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 Y


Yk≠0

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


Y1 000
Y2 011 W2 = 2 ¿Qué relación guarda la dmín de un Código
Y3 101 W3 = 2 ⇒ Wmín = 2 = dmín con su capacidad detectora y correctora de
Y4 110 W4 = 2 errores?

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


17/33
Capacidad correctora/detectora de un código
• Ejemplo: Z
Yj
Yi

e=3
δ=6
dmín = 7

 d - 1
Capacidad correctora e =  min  Capacidad detectora
δ = d min - 1
de errores  2  de errores
d min ≥ 2 ⋅ e + 1 d min ≥ δ + 1

• BORRÓN: – Indica incertidumbre en su valor Capacidad correctora


- dónde?
Y Z – Corregir un error ⇒ de borrones
canal - valor?
– Conocemos la posición ρ = d min - 1
{0, 1} {0, 1, #}
– Mayor facilidad de corrección d min ≥ ρ + 1
Codificación de Canal. Transmisión de Datos. 18/33
18/33
Redundancia y Probabilidad de error residual
• REDUNDANCIA: ¿Cuál es el valor mínimo de r para garantizar una cierta
capacidad correctora? ⇒ planteemos un caso extremo.

– Ejemplo: Código lineal de bloque (5, 3) sistemático, que consiste en añadir 1’s al
mensaje de usuario.
001 11
n=5 ⇒ r = n-k = 2 010 11 ⇒ dmín = 1 + r
k=3 100 11

k=3 r=2

– 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:


n
n i
PE = ∑   ⋅ p ⋅ (1 − p )
– Código bloque capaz de corregir e errores n −i

i = e +1  i 
– Canal binario simétrico con prob. error p

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


19/33
Códigos e-perfectos y Códigos de Hamming
• Códigos e-perfectos.
– Corrige hasta e errores y ningún otro más.
– Cada error corregible ⇔ Un síndrome diferente

n n n


s = (s1, ..., sr) Nº de síndromes = 2 r = 1 +   +   + ... +  
1  2 e
no error
1 error e errores

• Códigos de Hamming.
– Código 1-perfecto ⇒ e = 1 ⇒ corrige errores simples.
r
– 2 =1+
n
=1+n r = 2 ⇒ n = 22-1=3 ⇒ k=n-r=1 ⇒ Código (3, 1)
1
r = 3 ⇒ n = 23-1=7 ⇒ k=n-r=4 ⇒ Código (7, 4)
⇒ r
n = 2 -1
r = 4 ⇒ n = 24-1=15 ⇒ k=n-r=11 ⇒ Código (15, 11)
Codificación de Canal. Transmisión de Datos. 20/33
20/33
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 ¿Cómo elegimos las 4 columnas de H?
0
 x x x x 1 0 0 – No puede haber una columna 0 .
 
H(3x7) = (− PT Ir ) =  x x x x 0 1 0 
0
– 2 columnas no pueden ser iguales.
 x x x x 0 0 1
 
– Las 4 columnas serán las 23-1-3 = 4 ternas
restantes, en cualquier orden.
Codificación de Canal. Transmisión de Datos. 21/33
21/33
Código (7, 4) de Hamming
1 0 0 0 1 1 0
 1 0 1 1 1 0 0  
 
H(3x7) =  1 1 1 0 0 1 0  = (- PT Ir )
0 1
= (Ik P)
1 0 0 0 1
G(4x7) = 
 0 1 1 1 0 0 1 0 0 1 0 1 1 1
rxn
 
kxn
 
0 0 0 1 1 0 1
0000 000
• Código 0001 101
generado: 0010 111
0011 010 error ↔ síndrome
0100 011 1000000 110 1ª columna de H
0101 110
0100000 011 2ª columna de H
0110 100 s=e ·H T 0010000 111 3ª columna de H
0111 001
1000 110
Y = X·G 1001 011 0000001 001 7ª columna de H
1010 001
1011 100
1100 101
1101 001 – Corrección de errores simples
1110 010 Y = 0001101 – Detección de errores
1111 111
X – Corrección de borrones
Y
Codificación de Canal. Transmisión de Datos. 22/33
22/33
Código (7, 4) de Hamming
a) Corrección de error simple: Y = 0001101 → Z = 0001100

110
011
111
s = Z·H T = (0001100) · 101 = (001) ⇒ e = (0000001) Y = Z + e = 0001100 + 0000001 =
100
010 = 0001101 = Y
001

b) Capacidad detectora de errores: δ = 2·e = 2 Y = 0001101 → Z = 1101101

110
011
111
s = Z·H T = (1101101) · 101 = (101) ≠ (000) ⇒ Ha habido error. Los 2 errores han sido detectados.
100
010
001

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

⇒ e = (0001000) Y = Z + e = 1101101 + 0001000 = 1100101 ≠ Y


Codificación de Canal. Transmisión de Datos. 23/33
23/33
Código (7, 4) de Hamming
c) Corrección de borrones: ρ=δ=2 Y = 0001101 → Z = # # 01101

0000 000
Comparando con todas las palabras 0001 101
código, podemos decir SIN DUDA 0010 111
0011 010
que la palabra código transmitida 0100 011
es Y = 0001101. 0101 110
0110 100
0111 001
Con un número mayor de borrones, no podemos 1000 110
asegurar el poder discernir entre varias palabras 1001 011
código. 1010 001
Ejemplo: 1011 100
Y = 0101110 1100 101
Z = # # 0 # 110 ⇒
Y = 1000110
? 1101 001
1110 010
1111 111

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


24/33
Códigos de Hamming recortados
• 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: Código(6,3)
0000 000
n’ = n - B n’ = 7-2 = 5 0001 101
k’ = k - B Por ejemplo, B=2: k’ = 4-2 = 2 0010 111 Código(5,2)
r’ = r r’ = 3 0011 010
e = 1 → dmín = 3 e = 1 → dmín = 3 0100 011
0101 110
0110 100
 1 0 1 1 1 0 0 1 1 1 0 0  0111 001
   
H(3x7) =  1 1 1 0 0 1 0  ⇒ H' (3x5) = 1 0 0 1 0  = (- PT Ir ) 1000 110
rxn  0 1 1 1 0 0 1 r’ x n’   1001 011
  1 1 0 0 1  1010 001
1011 100
X 1100 101
 1 0 1 1 1
G' (2x5) = (I k P ) =   00 1101 001
k’ x n’  0 1 1 0 1  01 Y=X·G 1110 010
10 1111 111
Codificación de Canal. Transmisión de Datos. 11 25/33
25/33
Código (5, 2) de Hamming recortado
• Diseñar un Código (5,2) con el simulador Ptolemy.
1.- La probabilidad
de error del canal
equivalente es del 2%.

2.- Diseñar las tablas de


emisor y receptor.
3.- Hallar la probabilidad
de error final residual.
p(0)
4.- Hallar la eficiencia del
código. Compararla con la
del Código (7,4).
Código (5, 2) Código (7, 4)
5.- Conclusiones. E = k/n = 2/5 = 0,4 = 40% E = k/n = 4/7 = 0,57 = 57%
PE = 0,38% PE = 0,78%
Codificación de Canal. Transmisión de Datos. 26/33
26/33
Ejercicios
• 1. La matriz de comprobación H(3x7) de un Código de Hamming (7, 4) es:
 1 0 1 1 1 0 0
 
H(3x7) =  1 1 1 0 0 1 0  Se recibe la palabra Z = 10ab110.
 0 1 1 1 0 0 1 ¿Cuál fue el mensaje enviado?
 

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

s = (10ab110) · H T = (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?
5
a) e=1, D=4 → D≥2, PE ≅ 10-6 · 2 = 10-5 > 10-7, No. El proceso de entrelazado permite suponer errores
independientes y aleatorios.
b) e=2, D=1 → No, no se está entrelazando. n
5 Es aplicable la expresión PE ≅ · pe+1
c) e=2, D=2 → D≥2, PE ≅ 10-9 · = 10-9 < 10-7, Sí. e+1
3
Codificación de Canal. Transmisión de Datos. 27/33
27/33
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

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


28/33
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

1 0 0 0 0 0 0 0 0 1
 
0 1 0 0 0 0 0 0 0 2
H(1x10) = (− P T I r ) = (10 9 8 7 6 5 4 3 2 1)
0 0 1 0 0 0 0 0 0 3
  rxn
X
0 0 0 1 0 0 0 0 0 4
G (9 x10) =  0 0 0 0 1 0 0 0 0 5  = (I 9 P( 9 x1) )

kxn 0 0 0 0 0 1 0 0 0 6 kxr -1 0 -10
  10
1
0 0 0 0 0 0 1 0 0 7 2 -9
0 0 0 0 0 0 0 1 0 8
-2 9
 
0 0 0 0 0 0 0 1 9 
3 -8
0 -3 8 4
-7
7
5
“El manuscrito carmesí”, A. Gala. → 84 320 7022-X -4 6 -6
-5

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


29/33
Código ISBN
• Código ISBN. Ejemplo.
“El manuscrito carmesí”, A. Gala. → 84 320 7022-X
1 0 0 0 0 0 0 0 0 1
 
0 1 0 0 0 0 0 0 0 2
0 0 1 0 0 0 0 0 0 3
 
0 0 0 1 0 0 0 0 0 4
Y = X ⋅ G = (843207022 )⋅  0 0 0 0 1 0 0 0 0 5  = (843207022 10 ) ≡ (843207022 X )

0 0 0 0 0 1 0 0 0 6
 
0 0 0 0 0 0 1 0 0 7
Redundancia =
0 0 0 0 0 0 0 1 0 8
 
0 0 0 0 0 0 0 1 9 
= 1·8+2·4+3· 3+4· 2+5· 0+6·7+7· 0+8· 2+9· 2 =
0
= 109 mod 11 =
= 10 ≡ X

Y ⋅ H T = (843207022X)⋅ (X 9 8 7 6 5 4 3 2 1) = 209 mod 11 = 0


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

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


30/33
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)


Codificación de Canal. Transmisión de Datos. 31/33
31/33
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) Dr ⋅X(D) g(D)
R(D) = Dr ⋅ X(D) mod g(D) Dr ⋅X(D) = g(D)⋅C(D) + R(D)
R(D) C(D)

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

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

Y(D) mod g(D) = 0 g(D) = polinomio generador, grado r


Errores: Z(D) = Y(D) + e(D) = 0, No error
S(D) = Z(D) mod g(D) = Y(D) mod g(D) + e(D) mod g(D) = e(D) mod g(D)
≠ 0, Error
¿Qué errores se detectan? Aquellos cuyo e(D) no sea múltiplo de g(D).
Codificación de Canal. Transmisión de Datos. 32/33
32/33
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 Dr ⋅ X(D) = D3 ⋅ (D3 + D + 1) = D6 + D4 + D3

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


D6 + D4 + D3 D3 + D2 + 1
R(D) = Dr ⋅ X(D) mod g(D)
D6 + D5 + D3 D3 + D2
r = n-k = 7-4 = 3 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

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


33/33

También podría gustarte