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

Codificación de Canal
Mónica Aguilar Igartua
2 2/33 /33 Codificació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.
3 3/33 /33 Codificació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.
4 4/33 /33 Codificació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ón
de canal
Fuente
Equivalente
Codificación
de canal
Destino
Mapeo
Inverso
Mapeo
Modulación
Demodulación
Canal
Canal discreto equivalente
5 5/33 /33 Codificació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ódigo x(i) y(i)
Código
X Y
6 6/33 /33 Codificació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
discreto
equivalente
Codificador
de canal
Decodificador
de 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.
– q
k
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
q
k

Codificador
Código Bloque
Y
q
k

q
n

k r
mensaje redundancia
palabra, n dígitos
7 7/33 /33 Codificació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 q
k
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:
X
1
→ Y
1
X
2
→ Y
2
c
1


X
1
+

c
2
⋅ X
2
→ c
1


Y
1
+

c
2
⋅ Y
2
c
1
, c
2
∈ GF
{ {
000
001
010
011
100
101
110
111
00
01
10
11
01 ⊕ 11 = 10 → 101
011 ⊕ 110 = 101
Ejemplo:
Conjunto finito de elementos con los cuales se opera como
con los números reales. Consideraremos GF(2).
8 8/33 /33 Codificació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. (g
1
, g
2
, ..., g
k
) → Base
Cada palabra código Y es una combinación lineal de esas k palabras código:
k=3 → Y = x
1
·g
1
+ x
2
·g
2
+ x
3
·g
3
, x
i
= {0, 1}

,
`

.
|
·

,
`

.
|
·
kn k k
n
k
g g g
g g g
g
g
g
kxn
K
M M M
K
M
2 1
1 12 11
2
1
) G(
X = (x
1
, x
2
, ..., x
k
) ⇒ Y = X · G
• Matriz Generadora del Código
• Todo mensaje de usuario X puede expresarse como combinación lineal de una base:
X = (x
1
, x
2
, x
3
) = x
1
· (100) + x
2
· (010) + x
3
· (001)
• El código queda determinado conociendo la codificación de una base del conjunto de
mensajes de usuario, X:
(100) → (g
11
g
12
... g
1n
) = g
1
(010) → (g
21
g
22
... g
2n
) = g
2
(001) → (g
31
g
32
... g
3n
) = g
3
9 9/33 /33 Codificació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
p p
p
p p

1 0 0
0 1 0
0 0 1
) ( G
kr k1
21
1r 11
kxr kxn
k
·

,
`

.
|
·
M
L
K
M O M
L
k r
palabra, n dígitos
mensaje redundancia
• Estructura Sistemática
• Ejemplo:
Código de paridad.
k=2, n=3.
00
01
10
11
00
01
10
11
0
1
1
0

,
`

.
|
·

,
`

.
|
·
1
1
I
1
1

1 0
0 1
) 3 x 2 ( G
2
⇒ r=n-k=1
10 10/33 /33 Codificació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
equivalente
Codificador
de canal
Decodificador
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.
11 11/33 /33 Codificació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
2
n
palabras Z
Código C: 2
k
palabras Y
Subespacio vectorial ortogonal a C

,
`

.
|
·

,
`

.
|
·
n r r1
2n 21
1n 11
r
2
1
h h
h h
h h
h
h
h
) ( H
L
M M
L
L
M
rxn
G(kxn)
g
i
H(rxn)
h
j
g
i
⊥ h
j
⇒ g
i
· h
j
= 0
Y· H
T
= 0
G· H
T
= 0
Matriz de Comprobación del Código
12 12/33 /33 Codificació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) = ( I
k
| P(kxr) )
G ·H
T
= 0 ⇒ H
T
= ⇒ H(rxn) = ( -P
T
| I
r
)
-P
I
r
Nota: En GF(2)

, 1+1=0, -1≡1, -P≡P
• Ejemplo:
Código de paridad.
k = 2, n = 3 ⇒ r = n - k = 1
( ) ( ) ( ) 1 11 I 11 H(1x3) P(2x1) I
1
1

1 0
0 1
) 3 x 2 ( G
1 2
· · ⇒ ·

,
`

.
|
·
Z = 011 → Z · H
T
= (011) · = 0
Z ∈ C
1
1
1
Z = 001 → Z · H
T
= (001) · = 1 ≠ 0
Z ∉ C
1
1
1
13 13/33 /33 Codificació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 = (e
1
, ..., e
n
) con
• Una vez que se ha obtenido e ⇒
• SÍNDROME de Z: s = Z·H
T
→ s = (s
1
, ..., s
r
) →
• s = Z·H
T
= (Y+ e ) ·H
T
= Y·H
T
+ e ·H
T
= e ·H
T

Síndrome y detección de errores
Y Z
canal
e, vector de error
e
i
= 1 si Z
i
≠ Y
i
e
i
= 0 si Z
i
= Y
i
si Z·H
T
= 0 → s = 0 ⇒ No error
(*)
si Z·H
T
≠ 0 → s ≠ 0 ⇒ Error
Y = Z + e
s = e ·H
T
(*)
¿Es posible que Z sea
errónea siendo s=0?
- Si e ∈C, e≠0 ⇒ Z=Y+e ⇒ Z ∈C ⇒ s=0
- Hay 2
k
-1 palabras código ≠ 0 ⇒ Hay 2
k
-1 errores
no detectables
14 14/33 /33 Codificació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 ·H
T
( )

,
`

.
|
⋅ ·
n r n 2 n 1
2 r 22 12
1 r 21 11
n 2 1 r 2 1
h h h
h h h
h h h
) e ..., , e , e ( s ..., , s , s
L
M M M
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 2
k
soluciones, es decir hay 2
k
errores que producen igual síndrome:
15 15/33 /33 Codificación de Canal. Transmisión de Datos. Codificación de Canal. Transmisión de Datos.
• Canal Binario Simétrico (BSC)
Modelo de Canal
canal
Y Z
– errores aleatorios
e independientes
– no hay ráfagas
de errores
y
i
= 0 z
i
= 0
p
1-p
y
i
= 1 z
i
= 1
p
1-p
Canal 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
Y
1
000
Y
2
011
Y
3
101
Y
4
110
d(Y
1
, Y
4
)=W(000+110)=W(110)=2
d(Y
2
, Y
3
)=W(011+101)=W(110)=2
y
a
y
b
y
c
Y
1
Y
4
1
1
Y
2
Y
3
1
1
√2
√2
distancias de Hamming
distancias Euclídeas
16 16/33 /33 Codificació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
Y
1
Y
2
Y
3
Y
4
Y
5
1 2 3 4 5 6 7 8 9 10 11 12
n = 4
código
X Y
Y
1
Y
2
Y
3
Y
4
Y
5
1 2 3 4
5 6 7 8
X
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
17 17/33 /33 Codificació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 d
mín
se define como:
Distancia mínima de un código
d
mín
= mín. d(Y
i
, Y
j
), con Y
i
, Y
j
∈ C, i≠j
• Dado que C es un subespacio vectorial, Y
i
+ Y
j
es otra palabra código, por tanto:
d
mín
= mín. W(Y
k
) = W
mín
⇒ El menor de los pesos de todas las Y
Y
k
≠0
Y
1
000
Y
2
011
Y
3
101
Y
4
110
• Ejemplo: Código de paridad. k=2, n=3
W
2
= 2
W
3
= 2
W
4
= 2
⇒ W
mín
= 2 = d
mín
¿Qué relación guarda la d
mín
de un Código
con su capacidad detectora y correctora de
errores?
18 18/33 /33 Codificació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
Y
i
Y
j
d
mín
= 7
Z
Capacidad correctora
de errores
Capacidad detectora
de errores
]
]
]

·
2
1 - d
e
min
1 - d
min
· δ
1 e 2 d
min
+ ⋅ ≥
1 d
min
+ ≥δ
• BORRÓN:
canal
Y Z
{0, 1} {0, 1, #}
– Indica incertidumbre en su valor
– Corregir un error ⇒
– Conocemos la posición
– Mayor facilidad de corrección
Capacidad correctora
de borrones
1 d
min
+ ≥ ρ
- dónde?
- valor?
1 - d
min
· ρ
19 19/33 /33 Codificació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=5
k=3
⇒ r = n-k = 2
k=3 r=2
⇒ d
mín
= 1 + r
– En general,
d
mín
≤ r + 1 ⇒ d
mín
≥ 2· e + 1 ⇒ r ≥ d
mín
-1 ≥ 2· e ⇒ r ≥ 2· e
• P
E
, Probabilidad de error residual:
– Código bloque capaz de corregir e errores
– Canal binario simétrico con prob. error p
( )
i n
i
n
e i
p p
i
n

+ ·
− ⋅ ⋅

,
`

.
|
·

1 P
1
E
001 11
010 11
100 11
20 20/33 /33 Codificació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 = (s
1
, ..., s
r
)

,
`

.
|
+ +

,
`

.
|
+

,
`

.
|
+ · ·
e
n
...
2
n

1
n
1 2 síndromes de Nº
r
no error
1 error e errores
• Códigos de Hamming.
– Código 1-perfecto ⇒ e = 1 ⇒ corrige errores simples.
– 2
r
= 1 + = 1 + n
n = 2
r
-1
n
1
r = 2 ⇒ n = 2
2
-1=3 ⇒ k=n-r=1 ⇒ Código (3, 1)
r = 3 ⇒ n = 2
3
-1=7 ⇒ k=n-r=4 ⇒ Código (7, 4)
r = 4 ⇒ n = 2
4
-1=15 ⇒ k=n-r=11 ⇒ Código (15, 11)

21 21/33 /33 Codificació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 = (e
1
, e
2
, ..., e
7
)
· Hay 7 vectores error e diferentes
· Hay 7 errores corregibles ⇒ 7 síndromes s diferentes
– Como s = e · H
T
,
· Cada síndrome asociado a error corregible, coincide con una columna de H(rxn)
· H(3x7) tiene 7 columnas
( ) ( )

,
`

.
|
· − ·
1 0 0
0 1 0
0 0 1
I P 3x7 H
r
T
x x x x
x x x x
x x x x
– No puede haber una columna .
– 2 columnas no pueden ser iguales.
– Las 4 columnas serán las 2
3
-1-3 = 4 ternas
restantes, en cualquier orden.
0
0
0
¿Cómo elegimos las 4 columnas de H?
22 22/33 /33 Codificación de Canal. Transmisión de Datos. Codificación de Canal. Transmisión de Datos.
Código (7, 4) de Hamming
( ) ( )
r
T
I P -
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
3x7 H ·

,
`

.
|
· ( ) ( ) P I
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 1 1 0 0 0 1
4x7 G
k
·

,
`

.
|
·
r x n k x n
• Código
generado:
0000 000
0001 101
0010 111
0011 010
0100 011
0101 110
0110 100
0111 001
1000 110
1001 011
1010 001
1011 100
1100 101
1101 001
1110 010
1111 111
X
Y
Y = X·G
s = e ·H
T
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
23 23/33 /33 Codificació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·H
T
b) Capacidad detectora de errores:
Y = 0001101 → Z = 1101101
= (1101101) · = (101) ≠ (000) ⇒ Ha habido error. Los 2 errores han sido detectados.
110
011
111
101
100
010
001
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·H
T
a) Corrección de error simple:
Y = 0001101 → Z = 0001100
= (0001100) · = (001) ⇒
110
011
111
101
100
010
001
e = (0000001)
Y = Z + e = 0001100 + 0000001 =
= 0001101 = Y
⇒ e = (0001000)
24 24/33 /33 Codificació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
ρ = δ = 2
c) Corrección de borrones:
0000 000
0001 101
0010 111
0011 010
0100 011
0101 110
0110 100
0111 001
1000 110
1001 011
1010 001
1011 100
1100 101
1101 001
1110 010
1111 111
Comparando con todas las palabras
código, podemos decir SIN DUDA
que la palabra código transmitida
es Y = 0001101.
Con un número mayor de borrones, no podemos
asegurar el poder discernir entre varias palabras
código.
Ejemplo:
Z = # # 0 # 110 ⇒
Y = 0101110
Y = 1000110
?
25 25/33 /33 Codificación de Canal. Transmisión de Datos. Codificación de Canal. Transmisión de Datos.
Códigos de Hamming recortados
0000 000
0001 101
0010 111
0011 010
0100 011
0101 110
0110 100
0111 001
1000 110
1001 011
1010 001
1011 100
1100 101
1101 001
1110 010
1111 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 - B
k’ = k - B
r’ = r
e = 1 → d
mín
= 3
( ) ( ) ( )
r
T
I P -
1 0 0 1 1
0 1 0 0 1
0 0 1 1 1
3x5 H'
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
3x7 H ·

,
`

.
|
· ⇒

,
`

.
|
·
( ) ( )

,
`

.
|
· ·
1 0 1 1 0
1 1 1 0 1
P I 2x5 G'
k
Por ejemplo, B=2:
Código(6,3)
Código(5,2)
k’ x n’
r’ x n’
n’ = 7-2 = 5
k’ = 4-2 = 2
r’ = 3
e = 1 → d
mín
= 3
r x n
X
00
01
10
11
Y=X·G
26 26/33 /33 Codificació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 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.
4.- Hallar la eficiencia del
có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%
P
E
= 0,38%
Código (7, 4)
E = k/n = 4/7 = 0,57 = 57%
P
E
= 0,78%
27 27/33 /33 Codificació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:
( )

,
`

.
|
·
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
3x7 H
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) · 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?
a) e=1, D=4 → D≥2, P
E
≅ 10
-6
· = 10
-5
> 10
-7
, No.
b) e=2, D=1 → No, no se está entrelazando.
c) e=2, D=2 → D≥2, P
E
≅ 10
-9
· = 10
-9
< 10
-7
, Sí.
5
2
5
3
El proceso de entrelazado permite suponer errores
independientes y aleatorios.
Es aplicable la expresión P
E


· p
e+1
n
e+1
28 28/33 /33 Codificació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
29 29/33 /33 Codificació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 → m
1
m
2
m
3
m
4
m
5
m
6
m
7
m
8
m
9
* * * * * * * * *
posición → 1 2 3 4 5 6 7 8 9 → redundancia = 1· m
1
+2· m
2
+3· m
3
+4· m
4
+5· m
5
+6· m
6
+
+ 7· m
7
+8· m
8
+9· m
9
( ) ) 1 9 P( I
9 1 0 0 0 0 0 0 0 0
8 0 1 0 0 0 0 0 0 0
7 0 0 1 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0 0
5 0 0 0 0 1 0 0 0 0
4 0 0 0 0 0 1 0 0 0
3 0 0 0 0 0 0 1 0 0
2 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 1
) 10 9 ( G
9
x x ·

,
`

.
|
·
kxn kxr
( ) ( ) 1 2 3 4 5 6 7 8 9 10 I P ) 10 1 ( H
r
T
· − · x
rxn
0
1
2
3
4
5
6
7
10
9
8
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
X
“El manuscrito carmesí”, A. Gala. → 84 320 7022-X
30 30/33 /33 Codificación de Canal. Transmisión de Datos. Codificación de Canal. Transmisión de Datos.
Código ISBN
• Código ISBN. Ejemplo.
( ) ( ) ( ) X 843207022 10 843207022
9 1 0 0 0 0 0 0 0 0
8 0 1 0 0 0 0 0 0 0
7 0 0 1 0 0 0 0 0 0
6 0 0 0 1 0 0 0 0 0
5 0 0 0 0 1 0 0 0 0
4 0 0 0 0 0 1 0 0 0
3 0 0 0 0 0 0 1 0 0
2 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 0 1
843207022 G X Y ≡ ·

,
`

.
|
⋅ · ⋅ ·
( ) ( ) 0 11 mod 209 1 2 3 4 5 6 7 8 9 X 843207022X H Y
T
T
· · ⋅ · ⋅
“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
31 31/33 /33 Codificació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 = y
n-1
y
n-2
... y
3
y
2
y
1
y
0
∈ C
Y’ = y
n-2
... y
3
y
2
y
1
y
0
y
n-1
∈ C
Y’’ = y
0
y
n-1
y
n-2
... y
3
y
2
y
1
∈ C
• Correspondencia polinómica:
Y = y
n-1
y
n-2
... y
3
y
2
y
1
y
0
→ Y(D) = y
0
+ y
1
⋅D + y
2
⋅D
2
+ ... + y
n-1
⋅D
n-1
(MPI=Más Peso a la Izquierda)
32 32/33 /33 Codificació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) = y
0
+ y
1
⋅ D + y
2
⋅ D
2
+ ... + y
r-1
⋅ D
r-1
+ y
r
⋅ D
r
+ ... + y
n-1
⋅ D
n-1

D
r
⋅ X(D)
Y(D) = R(D) + D
r
⋅ X(D)
R(D) = D
r
⋅ X(D) mod g(D)
k posiciones r
D
r
⋅ X(D) R(D)
D
r
⋅X(D) = g(D)⋅C(D) + R(D)
D
r
⋅X(D)
g(D)
C(D) R(D)
Y(D) = R(D) + D
r
⋅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?
33 33/33 /33 Codificació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) = D
3
+ D
2
+ 1.
– Hallar la palabra código asociada al mensaje de usuario X = 1011.
X=1011 → X(D) = D
3
+ D + 1
r = n-k = 7-4 = 3
Y(D) = R(D) + D
r
⋅ X(D)
R(D) = D
r
⋅ X(D) mod g(D)
D
r
⋅ X(D) = D
3
⋅ (D
3
+ D + 1) = D
6
+ D
4
+ D
3

D
6
+ D
4
+ D
3
D
3
+ D
2
+ 1
D
3
+ D
2
D
6
+ D
5
+ D
3

D
5
+ D
4
D
5
+ D
4
+ D
2
D
2
= R(D)
Y(D) = R(D) + D
r
⋅ X(D) = D
2
+ D
6
+ D
4
+ D
3
= D
6
+ D
4
+ D
3
+ D
2

Y = 1011 100

Í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) – Transmisión rápida (compresión) → Codificación de canal → 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 Equivalente Codificación de canal Mapeo Modulación Canal Destino Decodificación de canal Mapeo Inverso Demodulación Canal discreto equivalente Codificación de Canal. Transmisión de Datos. 4/33 .

Transmisión de Datos.Fundamentos de Codificación de Canal • Estrategias de uso: – Detectora: ARQ (Automatic Repeat Request). • Clasificación en función de cómo se introduce la redundancia: – Códigos Convolucionales x(i) ⇒ y(i) De forma continua a medida que llega la información al codificador Código – Códigos Bloque X ⇒ Código Asociada a bloques de información Y Codificación de Canal. 5/33 . – Correctora: FEC (Forward Error Correction). corrige a partir de la información recibida. solicitud automática de re-envío.

k) X (x(1). 6/33 . y(n)) X (k digitos) Mensaje de usuario x(i) ∈ alfabeto de q símbolos Y (n digitos. – se reduce la complejidad del código. …. z(n)) X Decodificador de canal (x(1). n>k) Palabra código Z (n digitos) Palabra recibida X (k digitos) Mensaje estimado Y Codificador qn Para ser útil • Aplicación biyectiva. …. x(k)) Codificador de canal (y(1).Codificación de Bloque Código (n. mensaje redundancia palabra. – qk palabras código distintas. – extraer de inmediato el mensaje de usuario. …. …. x(k)) → Y Redundancia = r = n-k Canal discreto equivalente Z (z(1). Transmisión de Datos. • Código Lineal. n dígitos k r qk qk Codificación de Canal. X Código Bloque • Estructura sistemática de la palabra código.

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). c2 ∈ GF { X2 → Y2 c1 ⋅ X1 + c2 ⋅ X2 → c1 ⋅ Y1 + c2 ⋅ Y2 00 01 10 11 01 ⊕ 11 = 10 → 101 011 ⊕ 110 = 101 Codificación de Canal. 7/33 . Consideraremos GF(2). Conjunto finito de elementos con los cuales se opera como con los números reales. • El Codificador se elige de tal manera que sea una aplicación lineal: X1 → Y1 Ejemplo: 000 001 010 011 100 101 110 111 { c1.

x2.. g2n) = g2 (001) → (g31 g32 . x2. . xk) ⇒ Y = X · G Codificación de Canal. (g1. g3n) = g3 • Matriz Generadora del Código X = (x1. 1} • Todo mensaje de usuario X puede expresarse como combinación lineal de una base: X = (x1.  g1  g G( kxn ) =  2 M  g  k    g 11   = M   g k1    g 12 M gk2 K K g 1n M g kn      8/33 . k) hallamos k palabras código lin. Transmisión de Datos..Matriz Generadora del Código Lineal de Bloque. X: (100) → (g11 g12 .... G • Del Código Lineal (n. 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... 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 .. . g1n) = g1 (010) → (g21 g22 . xi = {0... g2. indep...

n dígitos r redundancia • Un código lineal (n. 00 01 10 11 00 01 10 11 0 1 1 0  1 0 1  1    G (2 x3) =   0 1 1 =  I 2 1     9/33 . Transmisión de Datos. ⇒ r=n-k=1 k=2. k) SISTEMÁTICO de bloque queda definido por una matriz G(kxn):  1 0 L 0 p11 L p1r    0 p 21 0 1  G ( kxn ) =   = (I k P( kxr ) ) O M M M  0 0 K 1 p p kr  k1   • Ejemplo: Código de paridad. n=3. Codificación de Canal.Código Lineal Sistemático de Bloque • Estructura Sistemática k mensaje palabra.

• Si Z ∈ código ⇒ NO ERROR. z(n)) ? Decodificador de canal Y=X·G • Si Z ≠ Y ⇒ ERROR.Detección/corrección de errores • ¿Cómo detectar errores? X (x(1). Codificación de Canal. y(n)) Z Canal discreto equivalente (z(1). Ineficaz si k es grande! • Una palabra Z ∈ a un código C si es ⊥ a C⊥ . x(k)) Y Codificador de canal (y(1). subespacio vectorial ⊥ a C. Es cierto. 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. Transmisión de Datos. 10/33 10/33 . • ¿Cómo saber si Z ∈ a un código C? ⇒ Comparar Z con todas las Y del código. …. …. …. Pero Y no es conocida en recepción! • Si Z ∉ código ⇒ ERROR.

k) tiene asociada otra matriz H(rxn):  h1   h11 L h1n      L h 2n  h  h H( rxn) =  2  =  21 M M M       h  h  r   r1 L h r n  2n palabras Z Código C: 2k palabras Y Matriz de Comprobación del Código G(kxn) gi H(rxn) hj gi ⊥ hj ⇒ gi · hj = 0 Y·HT = 0 Subespacio vectorial ortogonal a C Codificación de Canal. Transmisión de Datos. G·HT = 0 11/33 11/33 . H • Un código lineal de bloque (n.Matriz de Comprobación del Código Lineal de Bloque.

Transmisión de Datos. -P≡P • Ejemplo: Código de paridad. k) SISTEMÁTICO. n = 3 Z = 011 → Z · ⇒ r=n-k=1 HT = (011) · 1 1 1  1 0 1  G (2 x3) =   0 1 1 = (I 2 P(2x1) ) ⇒ H(1x3) = (11 I1 ) = (111)   =0 Z = 001 → Z · HT = (001) · 1 1 1 =1≠0 Z∈C Z∉C Codificación de Canal.Matriz de Comprobación del Código Lineal de Bloque. -1≡1. H • En un código lineal de bloque (n. 12/33 12/33 . la matriz H es de la forma: G(kxn) = ( Ik | P(kxr) ) G ·H T = 0 ⇒ HT = -P Ir ⇒ H(rxn) = ( -PT | Ir) Nota: En GF(2) . 1+1=0. k = 2.

Síndrome y detección de errores • Sea un código lineal de bloque (n.Hay 2k-1 palabras código ≠ 0 ⇒ Hay 2k-1 errores no detectables 13/33 13/33 errónea siendo s=0? Codificación de Canal. k) sistemático del que conocemos sus matrices G y H. sr) → • s = Z·H T = (Y+ e ) ·H T = Y·H T + e ·H T = e ·H T s = e ·H T (*) ¿Es posible que Z sea si Z·H T = 0 → s = 0 ⇒ No error(*) si Z·H T ≠ 0 → s ≠ 0 ⇒ Error . en) con ei = 1 si Zi ≠ Yi ei = 0 si Zi = Yi e.. •Z=Y+e • e = (e1. . • Se recibe la palabra Z.. .. • Sea Y una palabra código que se transmite por un canal ruidoso. e≠0 ⇒ Z=Y+e ⇒ Z ∈C ⇒ s=0 ..Si e ∈C.. . Transmisión de Datos. vector de error Y canal Z • Una vez que se ha obtenido e ⇒ Y = Z + e • SÍNDROME de Z: s = Z·H T → s = (s1..

.. Z) mínima → Depende del Modelo de Canal. s 2 . • Hay 2k soluciones. e 2 . se elige el error e más probable. . 14/33 14/33 .. es decir hay 2k errores que producen igual síndrome:  h 11  h (s1 . Codificación de Canal. e n ) ⋅  12  M  h  1n h 21 h 22 M h2n L hr1   L hr 2  M   L hrn   s = e ·H T • Para minimizar la probabilidad de error.Síndrome y detección de errores • Para obtener e...r = k grados de libertad... • Regla de decisión para corregir errores: ¿Cómo determinar Y a partir de Z recibida? • Distancia d(Y. ¡con n incógnitas! • Hay n . s r ) = (e1 . Transmisión de Datos. basta con resolver r ecuaciones lineales.

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. Transmisión de Datos. n=3 1 1 Y2 distancias de Hamming distancias Euclídeas Y1 Y2 Y3 Y4 000 011 101 110 d(Y1. ya 1 Y4 15/33 15/33 . Y4 )=W(000+110)=W(110)=2 d(Y2.Modelo de Canal • Canal Binario Simétrico (BSC) Canal sin memoria – errores aleatorios e independientes – no hay ráfagas de errores Y canal Z yi = 0 p p 1-p zi = 0 Canal discreto equivalente p = Prob. k=2. Y3 )=W(011+101)=W(110)=2 Y3 Y1 1 √2 √2 yb Codificación de Canal. error bit yi = 1 1-p zi = 1 • Distancia. d(Y.

Modelo de Canal • Canal con memoria. pero procesar las Y antes de enviarlas al canal con memoria. canal 1 5 2 3 7 4 8 ¿Qué valor debe tener D? D ≥ Longitud media ráfaga D = profundidad de entrelazado ¿Qué problema surge? Aumenta el retardo Y1 X 6 X código Y Y2 Y3 Y4 Y5 X X X X n=4 Codificación de Canal. Se producen ráfagas de errores ⇒ ENTRELAZADO: n=4 • Ejemplo: a) b) X X X X X . 16/33 16/33 ... Transmisión de Datos.. – Diseñar código para canal del tipo a). – 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. Y1 X X X 1 2 3 4 5 Y2 X X 6 7 8 9 Y3 10 11 12 Y4 Y5 ..

k). d(Yi. por tanto: dmín = mín. Yj). su distancia mínima dmín se define como: dmín = mín. n=3 Y1 Y2 Y3 Y4 000 011 101 110 W2 = 2 W3 = 2 ⇒ Wmín = 2 = dmín W4 = 2 ¿Qué relación guarda la dmín de un Código con su capacidad detectora y correctora de errores? 17/33 17/33 Codificación de Canal.Distancia mínima de un código • Distancia de Hamming = d(Y. Yi + Yj es otra palabra código. Transmisión de Datos. i≠j • Dado que C es un subespacio vectorial. con Yi. Z) = W(Y+Z) • Dado un código C lineal de bloque (n. . W(Yk) = Wmín ⇒ El menor de los pesos de todas las Y Yk≠0 • Ejemplo: Código de paridad. Yj ∈ C. k=2.

1 d min ≥ ρ + 1 18/33 18/33 Codificación de Canal.Capacidad correctora/detectora de un código • Ejemplo: Yi e=3 δ=6 dmín = 7 Z Yj Capacidad correctora de errores  d . 1.1 e =  min   2  d min ≥ 2 ⋅ e + 1 Capacidad detectora de errores δ = d min . Transmisión de Datos. 1} {0.valor? – Conocemos la posición – Mayor facilidad de corrección Capacidad correctora de borrones ρ = d min .dónde? – Corregir un error ⇒ . #} Z – Indica incertidumbre en su valor . .1 d min ≥ δ + 1 • BORRÓN: Y canal {0.

3) sistemático. que consiste en añadir 1’s al mensaje de usuario. n i n −i PE = ∑   ⋅ p ⋅ (1 − p )   i = e +1  i  n 19/33 19/33 . n=5 k=3 ⇒ r = n-k = 2 001 010 100 k=3 11 11 11 r=2 ⇒ dmín = 1 + r – En general. error p Codificación de Canal. dmín ≤ r + 1 ⇒ dmín ≥ 2· e + 1 ⇒ r ≥ dmín -1 ≥ 2· e ⇒ r ≥ 2· e • PE . – Ejemplo: Código lineal de bloque (5. Transmisión de Datos.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. Probabilidad de error residual: – Código bloque capaz de corregir e errores – Canal binario simétrico con prob.

4) r = 4 ⇒ n = 24-1=15 ⇒ k=n-r=11 ⇒ Código (15.Códigos e-perfectos y Códigos de Hamming • Códigos e-perfectos. Transmisión de Datos.. – Código 1-perfecto ⇒ e = 1 ⇒ corrige errores simples.. . 11) n = 2 -1 Codificación de Canal.. – 2 =1+ ⇒ r n 1 =1+n r r = 2 ⇒ n = 22-1=3 ⇒ k=n-r=1 ⇒ Código (3. – Cada error corregible ⇔ Un síndrome diferente s = (s1.. 1) r = 3 ⇒ n = 23-1=7 ⇒ k=n-r=4 ⇒ Código (7. sr) n n Nº de síndromes = 2 r = 1 +   +   + .. + 1  2     no error 1 error e errores n   e   • Códigos de Hamming. 20/33 20/33 . – Corrige hasta e errores y ningún otro más.

Transmisión de Datos. · Cada síndrome asociado a error corregible.Código (7. e = (e1. – Código (n. e7) · Hay 7 vectores error e diferentes · Hay 7 errores corregibles ⇒ 7 síndromes s diferentes – Como s = e · HT . Generar un Código (7. 0 0 – 2 columnas no pueden ser iguales. . 4) de Hamming • Ejercicio. e2. 4) de Hamming. 21/33 21/33 Codificación de Canal.. en cualquier orden.k = 3 – Corrige 1 error simple: e = 1 ⇒ Sólo una componente de e es diferente de cero. k) ⇒ n = 7. – Se trata de obtener la matriz generadora G(kxn).. .. – Las 4 columnas serán las 23-1-3 = 4 ternas restantes. k = 4 ⇒ r = n . – e tiene n=7 componentes. coincide con una columna de H(rxn) · H(3x7) tiene 7 columnas H(3x7) = (− PT  x x x x 1 0 0   Ir ) =  x x x x 0 1 0   x x x x 0 0 1   ¿Cómo elegimos las 4 columnas de H? – No puede haber una columna 0 .

.PT Ir ) rxn  0 1 1 1 0 0 1   1  0 G(4x7) =  0 kxn  0  0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 1 0 0  1 = (Ik P) 1  1  • Código generado: Y = X·G 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 X 000 101 111 010 011 110 100 001 110 011 001 100 101 001 010 111 Y s=e ·H T 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 22/33 22/33 Codificación de Canal.Código (7. Transmisión de Datos. 4) de Hamming  1 0 1 1 1 0 0   H(3x7) =  1 1 1 0 0 1 0  = (.

100 010 001 No debo corregir. Transmisión de Datos. . 4) de Hamming a) Corrección de error simple: Y = 0001101 → Z = 0001100 110 011 111 101 = (001) ⇒ e = (0000001) 100 010 001 s = Z·H T = (0001100) · Y = Z + e = 0001100 + 0000001 = = 0001101 = Y b) Capacidad detectora de errores: δ = 2·e = 2 Y = 0001101 → Z = 1101101 s = Z·H T = (1101101) · 110 011 111 101 = (101) ≠ (000) ⇒ Ha habido error.Código (7. Los 2 errores han sido detectados. e=1: ⇒ e = (0001000) Y = Z + e = 1101101 + 0001000 = 1100101 ≠ Y 23/33 23/33 Codificación de Canal. pues el número de errores (2) excede la capacidad correctora.

no podemos asegurar el poder discernir entre varias palabras código.Código (7. 4) de Hamming c) Corrección de borrones: ρ=δ=2 Y = 0001101 → Z = # # 01101 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 101 111 010 011 110 100 001 110 011 001 100 101 001 010 111 24/33 24/33 Comparando con todas las palabras código. Ejemplo: Z = # # 0 # 110 ⇒ Y = 0101110 Y = 1000110 ? Codificación de Canal. Con un número mayor de borrones. podemos decir SIN DUDA que la palabra código transmitida es Y = 0001101. . Transmisión de Datos.

2) 25/33 25/33 .B k’ = k . obtenemos una matriz H’ de orden r x (n-B).Códigos de Hamming recortados • Si borramos cualesquiera B columnas de la matriz de comprobación H(rxn) de un código Hamming.3) n’ = n . B=2: n’ = 7-2 = 5 k’ = 4-2 = 2 r’ = 3 e = 1 → dmín = 3  1 0 1 1 1 0 0 1 1 1 0 0      H(3x7) =  1 1 1 0 0 1 0  ⇒ H' (3x5) = 1 0 0 1 0  = (. X 00 01 10 11 Y=X·G 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 000 101 111 010 011 110 100 001 110 011 001 100 101 001 010 111 Código(5.PT Ir ) rxn r’ x n’   0 1 1 1 0 0 1    1 1 0 0 1  G' (2x5) = (I k k’ x n’  1 0 1 1 1 P) =   0 1 1 0 1    Codificación de Canal. Transmisión de Datos. • 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.B r’ = r e = 1 → dmín = 3 Por ejemplo.

Diseñar las tablas de emisor y receptor.Hallar la eficiencia del código. 4) E = k/n = 4/7 = 0. Compararla con la del Código (7.Conclusiones...Código (5.La probabilidad de error del canal equivalente es del 2%.4). p(0) 4. 2. 2) de Hamming recortado • Diseñar un Código (5. Código (5.38% Código (7. Transmisión de Datos. 5. Codificación de Canal..4 = 40% PE = 0..Hallar la probabilidad de error final residual. 1.57 = 57% PE = 0.2) con el simulador Ptolemy.. 3.78% 26/33 26/33 . 2) E = k/n = 2/5 = 0.

D=1 → No. 0. a=1 ⇒ Mensaje = 1010 • 2. ¿Con qué codificador es posible? 5 a) e=1. PE ≅ 10-9 · = 10-9 < 10-7. no se está entrelazando. 5 c) e=2. b) e=2. 4) es:  1 0 1 1 1 0 0   H(3x7) =  1 1 1 0 0 1 0   0 1 1 1 0 0 1   Se recibe la palabra Z = 10ab110. PE ≅ 10-6 · 2 = 10-5 > 10-7. Se tiene un canal caracterizable por una prob. de error de bit de 10-3 que genera ráfagas de error de longitud 2. Considere n=5. El proceso de entrelazado permite suponer errores independientes y aleatorios. n Es aplicable la expresión PE ≅ · pe+1 e+1 27/33 27/33 . 0) ⇒ b=0. No. La matriz de comprobación H(3x7) de un Código de Hamming (7. D=2 → D≥2. Transmisión de Datos. D=4 → D≥2. 3 Codificación de Canal. ¿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.Ejercicios • 1. Sí. a+1) = (0. Es inaceptable una prob. de error de usuario de 10-7. b.

– 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. 8. 4. – Trabajamos en el Cuerpo de Galois GF(11) . 6. 9. 28/33 28/33 . 3. r=1. – La palabra código consta de n=k+r=10 símbolos. X}. – Se añade otro símbolo de ese mismo alfabeto como redundancia. – El mensaje de usuario consta de k=9 símbolos ∈ {0. utilizando aritmética módulo 11.Código ISBN • Código ISBN (International Standard Book Number). – Puede corregir 1 borrón -> ρ=1 => No corrige ningún error => e=0 Codificación de Canal. 5. – Código utilizado para detectar errores producidos al mecanografiar. Transmisión de Datos. 7. – El código es sistemático: la palabra código está formada por el mensaje de usuario seguido de la redundancia. 1. 2.

6 -5 5 -6 29/33 29/33 . → 84 320 7022-X Codificación de Canal. Obtención de las matrices de generación G y de comprobación H.Código ISBN • Código ISBN. mensaje → m1 m2 m3 m4 m5 m6 m7 m8 m9 posición → 1 1  0 0  0 G (9 x10) =  0  kxn 0  0 0  0  * * * * * * * 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 * * 0 0 0 0 0 0 0 0 1  1 0 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 3  0 0 1 0 0 0 0 0 4  0 0 0 1 0 0 0 0 5  = (I 9 P( 9 x1) ) kxr 0 0 0 0 1 0 0 0 6  0 0 0 0 0 1 0 0 7 0 0 0 0 0 0 1 0 8  0 0 0 0 0 0 0 1 9  H(1x10) = (− P T I r ) = (10 9 8 7 6 5 4 3 2 1) rxn X -1 10 -2 9 -3 8 7 -4 0 -10 1 2 -9 3 -8 4 -7 “El manuscrito carmesí”. Transmisión de Datos. Gala. A.

Gala. “El manuscrito carmesí”.Código ISBN • Código ISBN. → 84 320 7022-X 1  0 0  0 Y = X ⋅ G = (843207022 )⋅  0  0  0 0  0  0 0 0 0 0 0 0 0 1  1 0 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 3  0 0 1 0 0 0 0 0 4  0 0 0 1 0 0 0 0 5  = (843207022 10 ) ≡ (843207022 X ) 0 0 0 0 1 0 0 0 6  0 0 0 0 0 1 0 0 7 Redundancia = 0 0 0 0 0 0 1 0 8  = 1·8+2·4+3· 3+4· 2+5· 0+6·7+7· 0+8· 2+9· 2 = 0 0 0 0 0 0 0 1 9  = 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 30/33 30/33 Codificación de Canal. A. Ejemplo. Transmisión de Datos. .

• Un código bloque lineal C es cíclico si: Y = yn-1 yn-2 .Códigos cíclicos y Códigos polinómicos • Códigos cíclicos. y3 y2 y1 y0 Codificación de Canal... + yn-1 ⋅Dn-1 31/33 31/33 (MPI=Más Peso a la Izquierda) . – Pueden ser modelados fácilmente mediante polinomios. y3 y2 y1 ∈ C • Correspondencia polinómica: Y = yn-1 yn-2 . → Y(D) = y0 + y1⋅D + y2 ⋅D2 + . – Subconjunto de los códigos bloque lineales. – Pueden ser implementados con registros de desplazamiento LFSR (Lineal Feedback Shift Register).. y3 y2 y1 y0 yn-1 ∈ C Y’’ = y0 yn-1 yn-2 .... Transmisión de Datos.... y3 y2 y1 y0 ∈C Y’ = yn-2 ..

No error ≠ 0. + yr-1 ⋅ Dr-1 + yr ⋅ Dr + ...Códigos cíclicos y Códigos polinómicos • Códigos cíclicos sistemáticos. grado r = 0... + yn-1 ⋅ Dn-1 Y(D) = R(D) + Dr ⋅ X(D) R(D) = Dr ⋅ X(D) mod g(D) k posiciones r Dr ⋅ X(D) Dr ⋅X(D) = g(D)⋅C(D) + R(D) ⇓ Y(D) = R(D) + Dr ⋅X(D) = g(D)⋅C(D) Y(D) = g(D)⋅C(D) Y(D) mod g(D) = 0 Dr ⋅X(D) g(D) R(D) C(D) Dr ⋅ X(D) R(D) g(D) = polinomio generador. Y(D) = y0 + y1⋅ D + y2 ⋅ D2 + . Transmisión de Datos. Codificación de Canal. 32/33 32/33 . Error 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) ¿Qué errores se detectan? Aquellos cuyo e(D) no sea múltiplo de g(D).

Transmisión de Datos. – 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 Y(D) = R(D) + Dr ⋅ X(D) R(D) = Dr ⋅ X(D) mod g(D) r = n-k = 7-4 = 3 Dr ⋅ X(D) = D3 ⋅ (D3 + D + 1) = D6 + D4 + D3 D6 + D4 + D3 D6 + 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 Codificación de Canal. 33/33 33/33 D3 + D2 + 1 D3 + D2 .Códigos cíclicos y Códigos polinómicos • Ejemplo.