Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Coadsdasd
Coadsdasd
• 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.
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.
X Código Y
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).
{
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
• 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
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ódigo C: 2k palabras Y
Y·HT = 0
G(kxn) = ( Ik | P(kxr) )
-P
G ·H T = 0 ⇒ HT = ⇒ H(rxn) = ( -PT | Ir)
Ir
• 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
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
¿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
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
– 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
i = e +1 i
– Canal binario simétrico con prob. error p
• 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
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:
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
• 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
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
• Correspondencia polinómica:
Y = yn-1 yn-2 ... y3 y2 y1 y0 → Y(D) = y0 + y1⋅D + y2 ⋅D2 + ... + 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)
Y = 1011 100