veure perfil
TRANSCRIPT
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