2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls.

Gen
Códs Cícl.
1
Comunicaciones II











Conferencia 20: Detección en Códigos Lineales de Bloque.
Generación de Códigos Cíclicos.
UNIDAD VII: CODIFICACIÓN DE CANAL

Instructor: Israel M. Zamora, MS Telecommunications Management
Profesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones.
Universidad Nacional de Ingeniería
Universidad Nacional de Ingeniería
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
2
Outline
• Detección de errores
– Ejemplo 2
• Decodificación del síndrome
– Ejemplo Ilustrativo 3 Decodificación de canal
– Ejemplo Ilustrativo 4
• Códigos Cíclicos
• Códigos Cíclicos: Generación
– Ejemplo

2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
3
Detección de errores
• La detección o verificación de errores se obtiene de un proceso
matricial basado en una nueva matriz H denominada matriz de
verificación de paridad.

• El objetivo es identificar el vector síndrome “s”. Si el síndrome resulta
en el vector nulo, entonces el vector de código recibido no presenta
error, de otra forma existe uno o mas bits alterados.
Matriz
Generadora
G
Vector mensaje m
Vector código c
Matriz
Verificación
de paridad
H
Vector código r
Vector síndrome
GENERACIÓN
DETECCIÓN
El ruido y otros efectos alteran la palabra de código c
resultando en la palabra de código r en el receptor.
0 OK!!!
= 0 ERROR!!! s
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
4
• Para cualquier código lineal podemos encontrar una matriz tal
que sus filas son ortogonales a las filas de :


H es denominada la matriz de verificación de paridad y sus filas son
linealmente independientes.
• Para códigos lineals de bloque sistemáticos tenemos:
0 GH =
T
Detección de errores
n k n × ÷ ) (
H
] [
T
k n
P I H
÷
=
G
Formateo
Codificación
de canal
Modulación
Decodificación
de canal
Formateo
Demodulación
Detección
Fuente de
datos
Sumidero
de datos
c
r
m
m
ˆ
canal
error de vector o patrón ) ,...., , , (
recibido vector o código de palabra ) ,...., , , (
3 2 1
3 2 1
n
n
e e e e
r r r r
=
=
e
r
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
5
Detección de error
• Consideremos que el vector código c se transmite en un medio que lo altera de
modo que el receptor recibe el vector r resultante del efecto del vector de error
e provocado por el medio tal que:
e c r © =
• El vector e se denomina vector de error o patrón de error. El i-ésimo elemento
de e es igual a 0 si el elemento correspondiente de r es el mismo que el de c.
Por otra parte, i-ésimo elemento de e es igual a 1 si el elemento
correspondiente de r es diferente del de c, en cuyo caso se dice que ha
ocurrido un error en la i-ésima posición. Es decir, para i=1,2,...,n, tenemos:
n
e e e e · · · =
2 1
¹
´
¦
=
or ingún err o existe n si n
a ión i-ésim n la posic un error e ocurrido si ha
e
i
0
1
• El síndrome se obtiene de la expresión:
Con H
T
la matriz transpuesta de la matriz de verificación H.

T T
eH rH s = =
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
6
Detección de errores
• Propiedad 1: Los síndromes dependen sólo del patrón de error, y no de la
palabra de código transmitida.
( )
T T T T T
eH eH cH H e c rH s = © = © = =
..., , , , i c e e
k
i i
2 , 3 2 1 = © =
• Propiedad 2: Todos los patrones de error que difieren por una palabra de
código tienen el mismo síndrome.
Para k bits de mensaje, hay M
e
=2
k
vectores de códigos distintos denotados
como c
i
, i=1,2,...,2
k
. De manera correspondiente, para cualquier patrón de
errores e, definimos los 2
k
distintos e
i
como:

| |
T
k n
P I H
÷
=
• La matriz de Verificación de Paridad H se obtiene de la matriz de Paridad P y
la matriz de identidad I según lo indicado.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
7
Detección de errores
• El conjunto de vectores {e
i
, i=1, 2,...,2
k
} se denomina un coconjunto del
código. En otras palabras, un coconjunto tiene exactamente M
e
=2
k
elementos
que difieren a lo mas por un vector de código. De esa manera, un código de
bloques lineal (n,k) tiene 2
n-k
posibles coconjuntos. En cualquier caso, se
puede observar que:
( )
T T
i
T T
i
T
i
eH H c eH H c e H e = © = © =
• Que es independiente del índice i. Por lo tanto, es posible enunciar que cada
coconjunto del código está caracterizado por un síndrome único.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
8
Ejemplo 2
| |

=
=
÷
1 1 1 0 1 0 0
0 1 1 1 0 1 0
1 1 0 1 0 0 1
H
P I H
T
k n
Del ejemplo 1 anterior la matriz H está definida como:
Cuya matriz transpuesta es H
T
:

=
1 0 1
1 1 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
T
H
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
9
Ejemplo 2
Asumiendo que el vector código enviado 1110010 por el transmisor es
alterado de modo que el receptor recibe el vector 1100010, calcularemos el
síndrome:
| |
| | 1 0 0
1 0 1
1 1 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
0 1 0 0 0 1 1
=

= =
s
rH s
T
Un síndrome s distinto del vector nulo [0 0 0] indica la presencia de error en el
código recibido.
Indica la presencia de error
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
10
Decodificación del síndrome
• El receptor tiene la tarea de dividir los 2
n
vectores recibidos posibles en
M
e
=2
k
subconjuntos disjuntos D
1
, D
2
,...,D
M
, de tal forma que i-ésimo
subconjunto D
i
corresponda al vector de código c
i
para 1 s i s M
e
.

• El vector recibido r se decodifica en c
i
si éste se encuentra en el i-ésimo
subconjunto. Para que la decodificación sea correcta, r debe estar en el
subconjunto que pertenece al vector de código c
i
que realmente fue enviado.

• Los M
e
=2
k
subconjuntos descritos aquí constituyen un arreglo estándar del
código de bloque lineal.

• Un arreglo estándar es un arreglo 2
n-k
x 2
k
cuyos elementos son secuencias
binarias de longitud n.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
11
Decodificación del síndrome
• Para generar el arreglo estándar se procede de la siguiente manera:

1. Todos los 2
k
vectores o palabras de código se colocan en una fila o renglón
iniciando por la palabra de código componentes todos cero al extremo izquierdo
el cual nombramos c
1
. Esta constituye la primera fila.

2. Para la segunda fila o renglón se busca entre todas las secuencias binarias de
longitud n que no están presentes en la primera fila del arreglo. Escojamos una
de estas palabras de código que tenga el menor peso y nombrémosla e
1
.
Escribámoslo debajo de c
1
y escribamos e
i
© c
i
debajo de cada c
i
para 2s i s M.
Es importante que el patrón de errores elegidos como primer elemento en una
fila o renglón no haya aparecido previamente en el arreglo estándar.

3. La tercera fila del arreglo se completa de forma similar. De las tupletas-n que no
han sido usados en las primeras dos filas, los elementos de la tercera fila se
vuelven c
i
© e
2
. Este proceso se sigue hasta que no quede ninguna tupleta-n
para comenzar una nueva fila.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
12
Decodificación del síndrome
k -k n -k n -k n -k n -k n
k
k
k
2 2
i
2
3
2
2
2 2
M j i j 3 j 2 j j
2
3 i 3 3 3 2 3 3
2
2 i 2 3 2 2 2 2
2
i 3 2 1
c e c e c e c e e

c e c e c e c e e

c e c e c e c e e
c e c e c e c e e
c c c c 0 c
© © © ©
© © © ©
© © © ©
© © © ©
=
 
    
 
    
 
 
 
•Representación esquemática de un arreglo estándar.
•Cada fila o renglón del arreglo estándar se llama coconjunto y el primer
elemento de cada coconjunto (e
i
en general) se llama líder o guía del
coconjunto.
Coconjunto líder
C
o
c
o
n
j
u
n
t
o

2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
13
Decodificación del síndrome
• Visto lo anterior, es posible describir el procedimiento de
decodificación para un código de bloques lineal:

1. Para un vector o palabra de código recibido r, calculamos el síndrome
.
2. Dentro del coconjunto caracterizado por el síndrome s, indentificamos
el líder o guía del coconjunto (es decir, el patrón de errores con la
probabilidad de ocurrencia más alta o patrón de error estimado, );
llámelo.

3. Calculamos el vector o palabra de código estimado como:

eˆ r cˆ © =
Este procedimiento recibe el nombre de decodificación del síndrome.

•Note nuevamente que:
T
H e
ˆ
s =
c
ˆ
e
ˆ
T
rH s =
) e (e c e e) (c e r c
ˆ ˆ ˆ ˆ
+ + = + + = + =
e e =
ˆ
e e =
ˆ
Note que:
Si, , el error es corregido.
Si, , ocurre un error de decodificación NO DETECTABLE!!!.
PARA LA CONSTRUCCIÓN DE LA TABLA
DE SÍNDROMES DÉ ERRORES CORREGIBLES
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
14
Ejemplo Ilustrativo 3: Decodificación de canal

=
1 0 0 0 1 0 1
0 1 0 0 1 1 1
0 0 1 0 1 1 0
0 0 0 1 0 1 1
G
• Del ejemplo 2 y tomando la matriz generadora mostrada abajo se obtiene
el conjunto de vectores de códigos (7,4,3) que se resumen en la
diapositiva siguiente.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
15
Ejemplo Ilustrativo 3: Decodificación de canal
Palabra
mensaje
Palabra Código
Peso de
palabra
de código
Palabra
mensaje
Palabra Código
Peso de
palabra
de código
0000 0000000 0 1000 1101000 3
0001 1010001 3 1001 0111001 4
0010 1110010 4 1010 0011010 3
0011 0100011 3 1011 1001011 4
0100 0110100 3 1100 1011100 4
0101 1100101 4 1101 0001101 3
0110 1000110 3 1110 0101110 4
0111 0010111 4 1111 1111111 7
• Conjunto de vectores de códigos (7,4,3) para el ejemplo 3.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
16
Ejemplo Ilustrativo 3: Decodificación de canal
Sindrome Patrón de error
000 0000000
100 1000000
010 0100000
001 0010000
110 0001000
011 0000100
111 0000010
101 0000001
• Mapeo de los 2
n-k
=2
p
= 2
7-4
= 2
3
= 8 síndromes. Puede demostrarse que la
distancia mínima de Hamming es 3 y que el sistema es capaz de corregir
1 error.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
17
Ejemplo Ilustrativo 4
Consideramos el caso en el cual se transmitía el código 1110010 y que
debido a perturbaciones del canal el receptor recibía el vector código
1100010, cuyo síndrome era s=(001).

En este caso, de la tabla que mapea los síndromes y los posibles patrones
de errores encontramos que el receptor estima que el patrón de error
cometido corresponde a e=(0010000).

Por tanto, la corrección resulta de sumar dicho patrón de error al vector de
código recibido r:
) ( c
) ( ) ( c
e r c
0010 1 11 ˆ
0010000 1100010 ˆ
ˆ ˆ
=
© =
© =
Bit corregido
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
18
Ejemplo de arreglo de palabras de código (6,3)
010110 100101 010001
010100 100000
100100 010000
111100 001000
000110 110111 011010 101101 101010 011100 110011 000100
000101 110001 011111 101011 101100 011000 110111 000010
000110 110010 011100 101000 101111 011011 110101 000001
000111 110011 011101 101001 101110 011010 110100 000000
 

  
Coconjunto líderes
Conconjuntos
Palabras de códigos
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
19
Ejemplo de arreglo de palabras de código (6,3)
111 010001
100 100000
010 010000
001 001000
110 000100
011 000010
101 000001
000 000000
(101110) (100000) (001110)
ˆ ˆ
estima se vector del corregida versión La
(100000)
ˆ
es síndrome este a iente correspond error de Patrón
(100) (001110)
: calcula se de síndrome El
recibido. (001110)
ido. transmit (101110)
= + = + =
=
= = =
=
=
e r
e
H rH
r
r
c
s
c
T T
Partrón de error Síndrome
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
20
• Si el código es pequeño, por ejemplo (6,3) el decodificador se puede
implementar con circuitería básica. De otra manera se requiere de
programación e implementación en hardware.

• El decodificador dependerá de la ecuación booleana que resulta de
proceso de determinación del síndrome o detección, y luego el proceso de
corrección. Es decir, es fundamental la matriz de verificación de paridad H.

• Como ejemplo ilustrativo, tomemos como válida la siguiente matriz de
verificación de paridad, dada por:
Implementación del Decodificador

=
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
T
H
| |

= =
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
6 5 4 3 2 1
r r r r r r
T
rH s
5 5 3 3
5 4 2 2
6 4 1 1
r r r s
r r r s
r r r s
+ + =
+ + =
+ + =
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
21
Implementación del Decodificador (6,3)
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
22
Códigos Cíclicos
• Códigos cíclicos son una subclase de códigos lineales de
bloque.
• Es un sistema de codificación más fácil que la mayoría de los
demás.
• La codificación y el cálculo del síndrome son facilmente
realizables usando registros de desplazamiento retroalimentado.
– Códigos de bloque relativamente largos pueden ser implementados con una
complejidad razonable.
• Los códigos BCH y Reed-Solomon son códigos cíclicos.

• Características del código cíclico:
– Propiedad de linealidad
• La suma de cualquier par de palabras de códigos del código es siempre otra
palabra de código
– Propiedad cíclica
• Cualquier desplazamiento en una palabra de código origina otra palabra de
código
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
23
Códigos Cíclicos
• Un código lineal (n,k) se denomina cíclico si todos los
desplazamientos cíclicos de una palabra de código,
son también una palabra de código.







• Ejemplo:

{ } 0 1
) ,..., , , , ,..., , (
) ,..., , , (
1 2 1 0 1 1
) (
1 2 1 0
, donde c
c c c c c c c
c c c c
i
i n n i n i n
i
n
e
=
=
÷ ÷ ÷ + ÷ ÷
÷
c
c
“i” desplazamientos cíclicos de c
c c c c c
c
= = = = =
=
) 1101 ( ) 1011 ( ) 0111 ( ) 1110 (
) 1101 (
) 4 ( ) 3 ( ) 2 ( ) 1 (
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
24
Códigos Cíclicos
• La estructura algebraica de un código cíclico (n,k) , implica
que es necesario exprear las palabras de códigos en forma
polinomial coeficientes binarios de orden (n-1).



• La relación entre una palabra de código y sus desplazamientos
cíclicos:







) 1 ( grado ... ) (
1
1
2
2 1 0
n- x c x c x c c x
n
n
÷
÷
+ + + + = C
) 1 ( ) (
...
..., ) (
1
) 1 (
) 1 (
1 1
) (
1
2
2
1 0 1
1
1
2
2
1 0
1
) 1 (
+ + =
+ + + + + + =
+ + + =
÷
+
÷ ÷
÷
÷ ÷
÷
÷
÷
÷
n
n
x c
n
n
n
x
n
n n
n
n
n
n
x c x
c x c x c x c x c c
x c x c x c x c x x
n
n
C
C
C
               
) 1 ( modulo ) ( ) (
) (
+ =
n i i
x x x x C C
Por extensión
) 1 ( modulo ) ( ) (
) 1 (
+ =
n
x x x x C C
De allí que:
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
25
Códigos Cíclicos: Generación
• Dentro del conjunto de códigos polinomiales en C, hay un único
polinomio G(x) con mínimo grado llamado polinomio generador.
En general, G(x) puede expandirse del modo siguiente:
n r <
¯
÷ ÷
=
÷
+ + =
1
1
1
k n
i
k n i
i
x x g (x) G
• Cada código polinomial en C(x) puede expresarse unívocamente
como:
) ( ) ( x x (x) G M C =
• El polinomio generador G(x) es un polinomio de grado r=n-k el cual es un
factor de (x
n
+ 1), de tal modo que el polinomio G(X) es el polinomio de
menor grado en el código.
r
r
x g x g g x + + + = ... ) (
1 0
G
O bien, puede
expresarse como:
{ } 0 1, g
i
e
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
26
Códigos Cíclicos: Generación
{ } 0 1
1 2 1 0
1
1
2
2 1 0
, m donde ) ,m ,...,m ,m (m m si
x m x m ... x m m (x)
i k- k-
k
k
k
k
e =
+ + + + =
÷
÷
÷
÷
M
• El mensaje también se expresa como polinomio con coeficientes
binarios de orden (k-1).
• La palabra de código depende del mensaje M(x), y del residuo
Res(x) vinculado al polinomio generador G(x).
(x) (x) x (x)
k - n
Res M C + =
2 mod en división
(x)
(x)
(x)
(x)
(x) x
n-k
G
Res
Q
G
M
+ =
• Relación del residuo con el polinomio Generador G(x)
• Q(x) es el cociente algebraico.
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
27
Códigos Cíclicos: Generación
¯
÷ ÷
=
÷
+ + =
1
1
1
k n
i
k n i
i
x x g (x) G
Flip Flop
FF
E
Sumadores
Módulo 2
Codificador de un modo cíclico (n,k)
Bits del mensaje
g
1

g
2
g
n-k-1

E
FF FF FF
FF FF E E
E
Bits de Paridad
Palabra
de
Código
. . .
. . .
Compuerta
k n
k n
x g x g g x
÷
÷
+ + + = ... ) (
1 0
G
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
28
Códigos Cíclicos: Generación
• En un código cíclico sistemático (n,k) los bits de mensaje se
transmiten en forma inalterada.
• Los códigos de bloque sistematicos satisfacen la condición que
los primeros p (=n-k) bits de la izquierda (o los últimos de la
derecha) son idénticos a los correspondientes bits de paridad.
Los últimos k bits de la derecha (o de la izquierda) son idénticos a
los bits de mensaje, siendo como indica la siguiente estructura
para una palabra de código:
p
0
,p
1
,...,p
n-k-1
, m
0
,m
1
,...,m
k-1
n-k bits de paridad k bits de mensaje
CÓDIGOS CÍCLICOS SISTEMÁTICOS
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
29
Ejemplo generación de código (1/2)
Encuentre la palabra código para el mensaje (bits de
datos) M=1110. Se usa código cíclico (7,4) y un
polinomio generador G(x)=1+x+x
3

Solución:
: así quedaría matemática operación la
x 0x x 1 G(x) como y
x x x 0x 0x 0
x x x ) x x (1 x M(x) x
G(x)
Res(x)
Q(x)
G(x)
M(x) x
y Res(x) M(x) x (x) C como
3 p o 4 k y 7 n con 0x x x 1 M(x)
3 2
5 4 3 2
5 4 3 2 3 k - n
k - n
k - n
3 2
+ + + =
+ + + + + =
+ + = + + = ¬
+ = + =
= = = + + + =
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
30
Ejemplo generación de código (2/2)
Luego:
C(x) = x
3
(1+x+x
2
)+x =0+x+0x
2
+x
3
+x
4
+x
5
+0x
6
como n=7

el código es C = (0101110)
Mensaje original
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
31
BONIFICACIÓN 5:
INVESTIGUE Y HAGA UN RESUMEN SOBRE LOS
CÓDIGOS CONVOLUCIONALES
SE ENTREGA EN UNA SEMANA.
Bonificación
2S 2009 I. Zamora UniVII-Conf20: Det Códs Linls. Gen
Códs Cícl.
32

Sign up to vote on this title
UsefulNot useful