Вы находитесь на странице: 1из 10

Ingenieras, Octubre-Diciembre 2004, Vol. VII, No.

25 51
Cdigos para deteccin y
correccin de errores en
comunicaciones digitales
Ral Alvarado Escamilla
FIME-UANL
ralvarad@gama.me.uanl.mx
RESUMEN
El objetivo del presente trabajo es generar programas basados en MATLAB
y DIGCOM-T que permitan analizar la operacin de distintos tipos de cdigos
para deteccin y correccin de errores. En particular se estudia la familia de
cdigos de bloque conocida como Hamming, as como tambin los cdigos
cclicos Bose-Chaudhuri-Hocquenqhem y Reed Solomon. De igual modo, es visto
el cdigo convolucional junto con el diagrama de Trellis usado para representar
su operacin.
PALABRAS CLAVE
Procesamiento de seales, cdigos, deteccin, error.
ABSTRACT
The purpose of this study is to make several programs based in MATLAB
and DIGCOM-T, which make possible to analyze error detection and correction
codes operation. In particular it is studied the family of block codes known as
Hamming, as well as the cyclic codes Bose-Chaudhuri-Hocquenqhem and Reed
Solomon. The convolution code and the Trellis diagram used to represent its
operation, are also seen in this study.
KEYWORDS
Signal processing, code, detection, error.
INTRODUCCIN
Las operaciones bsicas de procesamiento de seales en un sistema de
comunicacin digital son codicacin de la fuente, codicacin de canal y
modulacin digital en el lado transmisor, como se muestra en el diagrama a
bloques de la gura 1, as como los procesos inversos en el lado receptor. Los
cdigos para deteccin y correccin de errores corresponden a la codicacin
de canal.
Uno de los parmetros que miden el desempeo de un sistema de comunicacin
digital es la tasa de error binaria (BER) para un cierto valor de la relacin de
energa de bit a densidad espectral de ruido (E
b
/N
0
). Generalmente, debido al
ruido del canal de transmisin, la nica manera de proporcionar un valor de BER
aceptable es agregando cdigos para deteccin y correccin de los errores.
Actualmente se emplean dos formas de controlar los errores. Una de las
tcnicas es conocida como solicitud de conrmacin (ARQ de Acknowledgment
Request), ya que el receptor comprueba los datos recibidos y si hubo error
52 Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25
solicita una retransmisin, de lo contrario retorna una
conrmacin de recepcin correcta. La otra tcnica
se conoce como correccin de error hacia adelante
(FEC, de Forward Error Correction), y es utilizada en
los sistemas de comunicacin que operan en tiempo
real (es decir, el transmisor no almacena los datos
que enva como en el caso de voz y vdeo digitales).
Por cuestiones de extensin, slo se abordarn los
cdigos FEC. En general, el proceso de codicacin
en los cdigos FEC es una operacin en la cual a un
grupo de bits de datos correspondientes al mensaje
que se desea transmitir, se le agrega un grupo de bits
conocidos como de paridad para nes de deteccin
y correccin de errores.
El anlisis y diseo de los cdigos se har por
medio del software DIGCOM-T,
1
el cual es un
conjunto de programas que corren sobre la plataforma
de MATLAB. Asimismo, la exposicin del desarrollo
de los experimentos se llevar a cabo describiendo
primeramente los conceptos fundamentales, los
parmetros principales y la estructura matemtica de
cada uno de los cdigos. Enseguida se efectuar un
planteamiento del problema que se desea resolver y se
elaborar el programa para la solucin del problema
con Matlab y Digcom-T. Posteriormente se realizar
el anlisis de los resultados del programa donde se
enfatizan las caractersticas ms importantes del
cdigo. Finalmente se resumirn las conclusiones
generales acerca de los cdigos y se especicarn las
principales aportaciones del presente estudio.
CDIGO HAMMING
El cdigo Hamming es clasificado como un
cdigo de bloque porque tiene como entrada un
grupo (bloque) de m bits de datos, a los cuales se le
agrega un grupo de k bits de paridad de acuerdo a
reglas preestablecidas, dando como salida un grupo
de n bits comnmente llamado palabra-cdigo.
Asimismo, se dice que es lineal porque satisface la
condicin de que cualquier par de palabras-cdigo
al ser sumadas en mdulo 2 producen otra palabra-
cdigo existente dentro del conjunto empleado para
codicar los posibles mensajes. Adems, se dice que
es sistemtico porque los bits de paridad se agregan
sin alterar la posicin de los bits del mensaje.
Para un cdigo lineal de bloque (n, k) se pueden
ordenar los bits de paridad a la derecha y los de
mensaje a la izquierda (o viceversa) como se muestra
en la gura 2.
Tamao del bloque n = 2
m
-1 bits
Bits de paridad m ; (m3) bits
Tamao del mensaje k bits
Distancia mnima dmin 2t+1 bits
Errores a corregir t bits
Los cdigos Hamming comunmente son
empleados en aplicaciones donde ocurre un slo
error por bloque, como por ejemplo en el proceso de
escritura y lectura de una memoria RAM. Una familia
de estos cdigos tiene los siguientes parmetros:
2.
Fig. 1. Procesos de la seal en el lado transmisor de un
sistema de comunicaciones.

m
0
, m
1
,m
2
, m
3
,...m
k-1
b
0
, b
1
,...b
n-k-1
Fig.2. Estructura de la palabra-cdigo.
Como se observa en los parmetros, el nmero
de errores t que se pueden corregir por bloque de
palabra-cdigo est relacionado con la distancia
Hamming d. Donde esta distancia es el nmero de
bits distintos entre los vectores que representan las
palabras-cdigo. Asimismo, debido a la propiedad
de linealidad la distancia Hamming mnima se puede
obtener con el peso mnimo de los vectores no ceros.
A su vez, el peso Hamming es obtenido con el nmero
Sistema de comunicacin digital.
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25 53
de bits que dieren los vectores de las palabras-
cdigo con respecto al vector de puros ceros.
Estructura algebraica
Los n bits de la palabra-cdigo x
i
se obtienen con
la relacin de la ecuacin 1.

0,1,..., 1
, 1,... 1
mi i k
xi
bi k i k k n


(1)


Los (n-k) bits de paridad son sumas lineales
de los k bits del mensaje, como se muestra en la
ecuacin 2, en la cual se ha sustituido l por n-k por
conveniencia en la representacin.


0 0 1 1 ... , 1 1
0,1,..., 1; 0,1, , 1
bl pl m pl m pl k mk
l n k j k
+ + +


(2)
donde plj = 1 si b1 depende de mj y o de otro modo
Los coecientes de p
lj
se escogen de manera que
las las de la matriz generadora sean linealmente
independientes y las ecuaciones de paridad sean
nicas para que el cdigo pueda ser decodicable
en forma nica en el receptor.
Por simplicidad, es conveniente hacer una
representacin compacta en forma de vectores
y matrices de la estructura. De manera que los
vectores de mensaje, paridad y palabra-cdigo
quedan como se muestra en la ecuacin 3.

0 1 1
0 1 1
0 1 1
[ , , , ]
[ , , , ]
[ , , , ]
k
n k
n
m m m m
b b b b
x x x x


(3)
A su vez, las ecuaciones que denen los bits
de paridad quedan como lo muestra la ecuacin 4.

b mP

(4)
donde P es una matriz de coeficientes de
t amao k por n-k de l a forma si gui ent e:


00 01 0 1
10 11 1 1
1, 0 1, 1 1 1
, n k
, n k
k k k , n k
p p p
p p p
P
p p p



, ]
, ]
, ]

, ]
, ]
]

Generacin de la palabra-cdigo en el lado


transmisor
La palabra-cdigo en forma compacta puede ser
expresada como lo indica la ecuacin 5.
[ ] x m b

(5)
Sustituyendo b = mP obtenemos que:

[ ] [ ] k x m mP m I P
en la cual I
k
es una matriz identidad de tamao k x k.
Ahora bien, deniendo la matriz generadora como
se indica en la ecuacin 6.

[ ]
donde debe estar en forma cannica
k G I P
G


(6)
Entonces el vector de la palabra-cdigo se obtiene
multiplicando el vector del mensaje por la matriz
generadora como se muestra en la ecuacin 7.

x mG

(7)
Con esto naliza la operacin de codicacin
de canal en el lado transmisor de un sistema de
comunicaciones.
Deteccin de error en el lado receptor
Si los coecientes que relacionan los bits de
paridad y de mensaje (P) se expresan en forma
transpuesta y denimos la matriz H como en la
ecuacin 8.

T
n k H P I , ]
]


(8)
Enseguida, postmultiplicamos H por la transpuesta
de G y obtenemos que:

k
T T T T
n k
T
I
HG P I P P
P

, ]
, ]
, ] +
] , ]
, ]
]

En aritmtica mdulo 2: P
T
+ P
T
= 0. De aqu que
HG
T
= 0 (o bien GH
T
= 0) donde 0 es una matriz
nula de tamao n-k por k.
A continuacin, postmultiplicamos x = mG por
H
T
y se obtiene xH
T
= 0, donde H es la matriz de
comprobacin de paridad y xH
T
= 0 es la ecuacin
de comprobacin de paridad empleada por el receptor
para la deteccin de errores.
Por otra parte, para simplicar el algoritmo que
realiza la deteccin de errores, se recomienda hacer
el clculo de un valor conocido como sndrome como
lo muestra la ecuacin 9.
T
s y
H


(9)
donde y es la palabra-cdigo recibida posiblemente
con error.
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
54 Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25
Matriz generadora
1 0 0 0 1 1 1
0 1 0 0 1 1 0
0 0 1 0 1 0 1
0 0 0 1 0 1 1
Matriz de comprobacin de paridad
1 1 1 0 1 0 0
1 1 0 1 0 1 0
1 0 1 1 0 0 1
Dato de la palabra-cdigo con error (entre 1 y 2
k
)
= 3
Dato de la posicin del bit de error (entre 1 y n)
= 4
Distancia Hamming mnima de x = 3
Nmero de errores que se pueden corregir t =1
Palabra-cdigo recibida con un error
0 1 0 1 1 1 0
Sndrome para deteccin de error s =
0 1 1
Palabra-cdigo con correccin del error corr =
0 1 0 0 1 1 0
Nmero de la
palabra
Palabra-Cdigo
Posicin 1 2 3 4 5 6 7
1 0 0 0 0 0 0 0
2 1 0 0 0 1 1 1
3 0 1 0 0 1 1 0
4 1 1 0 0 0 0 1
5 0 0 1 0 1 0 1
6 1 0 1 0 0 1 0
7 0 1 1 0 0 1 1
8 1 1 1 0 1 0 0
9 0 0 0 1 0 1 1
10 1 0 0 1 1 0 0
11 0 1 0 1 1 0 1
12 1 1 0 1 0 1 0
13 0 0 1 1 1 1 0
14 1 0 1 1 0 0 1
15 0 1 1 1 0 0 0
16 1 1 1 1 1 1 1
Hamming que podemos observar en las tablas II y
III de este experimento son las siguientes:
El cdigo obtenido es sistemtico puesto que
los bits del mensaje m
0
,m
1
,m
2
y m
3
estn en las
posiciones 1 a 4 de las palabras cdigo obtenidas,
Finalmente, con el sndrome y el patrn de errores
ms comunes se identica la posicin del error. Por
ejemplo, el patrn de errores, matriz e y su sndrome,
matriz s para un cdigo (7,4) son mostrados en la
tabla I.
Patrn de errores (e) Sndrome
s
Posicin de los bits
1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1
0 1 0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 1 0 1
0 0 0 1 0 0 0 0 1 1
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 0 0 0 0 1 0 0 1
Al sndrome s = 000, le corresponde el valor de
e = 0000000, lo cual signica para el lado receptor
que no hubo error en la transmisin, mientras que
111, indica que hay un error en la posicin uno de
la palabra-cdigo y as sucesivamente el resto de las
combinaciones del sndrome indican un error en la
posicin donde e vale uno.
Experimento 1: Considere que en el lado
transmisor se emplea un cdigo Hamming (7,4),
y que existe un error de un bit en el canal de
transmisin. Obtener la siguiente informacin:
1. La Matriz generadora.
2. La Matriz de comprobacin de paridad.
3. Las palabras-cdigo.
4. El nmero de errores que puede corregir.
5. Correccin de un error en la recepcin.
El programa elaborado para resolver el problema
fue nombrado EjCodigoHamming.
3
En l se emplea
la funcin [G,H] = HammingCode(n)del software
DIGCOM-T. Los resultados arrojados por el
programa son mostrados en las tablas II y III.
Anlisis de resultados del experimento uno
La organizacin de las palabras-cdigo se muestra
en la tabla III.
Las caractersticas principales del cdigo
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Tabla I. Patrn de errores ms comunes y el sndrome
para un cdigo (7,4).
Tabla III. Palabras-cdigo del cdigo Hamming (7,4).
Tabla II. Resultados del programa para el experimento
uno.
Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25 55
sin ser alteradas por los bits de paridad.
El cdigo obtenido es lineal, lo cual se puede
comprobar tomando como ejemplo la palabra-
cdigo 3 (0100110) y la 6 (1010010), las cuales
al sumarlas se obtiene la 8 (1110100).
Como la distancia Hamming mnima es 3,
entonces un cdigo Hamming solo puede corregir
1 error en la transmisin (t=1).
La deteccin del error se obtiene con el sndrome
011, cuyo patrn de error es 0001000 (ver tabla
I), indicando que el error est en la posicin 4.
La correccin del error se obtuvo sumando
en mdulo 2 el valor del patrn de error
(0001000) con la palabra-cdigo recibida con
error (0101110), es decir la palabra corregida es
0100110.
CDIGOS CCLICOS
Son una subclase de los cdigos de bloque
lineales,
4
los cuales tienen esquemas de decodicacin
ecientes, es decir con algoritmos relativamente
simples. Se dice que un cdigo es cclico cuando
cualquier desplazamiento en lazo cerrado de una
palabra-cdigo da como resultado otra palabra-
cdigo existente dentro del conjunto empleado para
codicar los posibles mensajes.
Existen una gran variedad de cdigos cclicos.
Por ejemplo, el Cdigo de Redundancia Cclica
empleado en comunicaciones de datos y el cdigo
Golay que es un cdigo binario como el Hamming.
Adems, estn los cdigos Q-arios como el Bose-
Chaudhuri-Hocquenqhem y el Reed Solomon. Dada
la versatilidad de parmetros de estos dos ltimos
son los que se selecionaron para ser analizados en
las secciones siguientes.
Polinomios de palabra-cdigo
La representacin matemtica de la operacin
de los cdigos cclicos est basada en el uso de
polinomios.
Los elementos de una palabra-cdigo de tamao n
pueden ser los coecientes de un polinomio de grado
n-1. Por ejemplo, la palabra-cdigo con elementos
x
0
,x
1
, ...,x
n-1
puede ser representada en forma de
polinomio como:
X(D) = x
0
+ x
1
D, ...,+ x
n-1
D
n-1
donde D es una variable Real arbitraria
Polinomio generador
Un cdigo cclico (n, k) es especificado por
un conjunto de polinomios de palabra-cdigo de
grado n-1 o menos, el cual contiene un polinomio
de grado mnimo n-k como un factor. Este factor
especial, denotado por g(D) es seleccionado como
el Polinomio Generador del cdigo.
Procedimiento para codicacin de un cdigo
cclico
Multiplicar el polinomio del mensaje m(D) por
D
n-k
D
n-k
m(D) = m
0
D
n-k
+ m
1
D
n-k+1
+ + m
k-1
D
n-1
Dividir D
n-k
m(D) por el polinomio generador
g(D), obteniendo el residuo b(D)

( ) ( )
( )
( ) ( )
n k
D m D b D
a D
g D g D

+
Agregar b(D) a D
n-k
m(D) para obtener el polinomio
de la palabra-cdigo x(D).
x(D) = b(D) + D
n-k
m(D)
Clculo del sndrome para deteccin de
error
Considerando que la palabra-cdigo recibida
con error sea Y(D) = y
0
+ y
1
D, ...,+ y
n-1
D
n-1
,
el polinomio del sndrome se obtiene con el
residuo de la divisin del polinomio de la palabra-
cdigo entre el polinomio generador g(D).

( ) ( )
( )
( ) ( )
Y D s D
q D
g D g D
donde q es el cociente y s es el sndrome
+
De manera similar al cdigo Hamming, con el
sndrome y el patrn de errores se hace la deteccin
Telefona para comunicacin de voz IP.
Cdigo de redundancia ciclica en su interior.
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
56 Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25
del error o los errores y su posicin dentro de la
palabra-cdigo.
CDIGO BOSE CHAUDHURI -HOCQUENQHEM
(BCH)
Es un cdigo cclico con una gran variedad de
parmetros. Para m 3 y t < (2m-1)/2 existen cdigos
BCH con los siguientes parmetros:
Para tamaos de unos pocos cientos de bits o
menos, los cdigos BCH son de los mejores para un
mismo tamao de bloque e ndice de cdigo (relacin
entre el bloque de entrada y el bloque de salida).
Algunos cdigos comunes
5
expresados en la forma
(n, k, t) de BCH son: (7, 4, 1), (15, 11, 1), (15, 7, 2),
(15, 5, 3), (31, 26, 1), (31, 21, 2), (31, 16, 3), (31,
11, 5) y (31,6, 7).
Experimento 2
Considere que en el lado transmisor se emplea un
Tamao del bloque n = 2
b
-1 smbolos
Tamao de paridad n-k = 2t smbolos
Tamao del mensaje k smbolos
Distancia mnima d
min
2t+1 smbolos
Errores a corregir t smbolos
cdigo BCH (15, 7, 2). Obtener lo siguiente:
1. El polinomio generador.
2. La palabra-cdigo generada para el mensaje
1100110.
3. La palabra-cdigo recibida con dos errores.
4. Estimacin del mensaje enviado.
5. Estimacin de la palabra-cdigo enviada.
El programa elaborado para resolver el
problema fue nombrado EjCodigoBCH.
3
En el se
emplean las funciones BinaryBCHgen(n, d_star) y
SystematicEncode(q, g, m) del software DIGCOM-T.
Los resultados arrojados por el programa se muestran
en la tabla IV:
Anlisis de resultados del experimento dos
La organizacin de la palabra cdigo es mostrada
en la siguiente tabla:
El polinomio generador es=
1 0 0 0 1 0 1 1 1
Datos del mensaje = [1 1 0 0 1 1 0]
La palabra-cdigo es =
0 0 1 1 0 1 1 1 1 1 0 0 1 1 0
Dato de la posicin de los t bits de error (entre 1 y
n) = [3 8]
Mensaje con error
0 0 0 1 0 1 1 0 1 1 0 0 1 1 0
Estimacin del mensaje enviado
1 1 0 0 1 1 0
Estimacin de palabra-cdigo
0 0 1 1 0 1 1 1 1 1 0 0 1 1 0
Tabla IV. Resultados del programa para el experimento
dos.
Tamao del bloque n = 2
m
-1 bits
Bits de paridad n-k bits
Tamao del mensaje K n mt bits
Distancia mnima d
min
2t+1 bits
Errores a corregir t bits
Palabra-cdigo
Posicin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 1 1 0 1 1 1 1 1 0 0 1 1 0
Las caractersticas principales del cdigo
BCH que podemos observar en la tabla IV de este
experimento son las siguientes:
El polinomio generador obtenido con 100010111
es 1 + D
4
+ D
6
+ D
7
+ D
8
.
El cdigo obtenido es sistemtico puesto que
los bits del mensaje m
0
,m
1
,m
2
,m
3
,m
4
,m
5
y m
6
estn en las posiciones 9 a 15 de la palabra
cdigo obtenida, sin ser alterada por los bits de
paridad.
Con el BCH es posible detectar y corregir ms de
un error (dos en este ejemplo), en lugar de uno
slo como en los cdigos Hamming.
CDIGO REED-SOLOMON
Un cdigo Reed Solomon (RS) es una subclase de los
cdigos BCH no binarios. Se distingue de los cdigos
binarios porque ste opera con smbolos de b bits cada
uno en lugar de bits individuales. Es til cuando los
errores ocurren en rfagas, como en los sistemas de
grabacin de discos compactos digitales.
Un cdigo RS que corrige t errores tiene los
siguientes parmetros:
Un polinomio generador no binario se define
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25 57
Palabra-cdigo
Posicin 1 2 3 4 5 6 7
6 4 1 2 3 4 5
en funcin de los campos de Galois
6
y son
denotados por GF(q). Cuando q es primo se
construye un campo finito GF(q) cuyos elementos
son {0,1,...,q-1}. Las operaciones de suma y
multiplicacin de los elementos de GF(q) estn
basadas en mdulo q. En general, el campo finito
GF(q) slo puede ser construido si q es primo
o una potencia de un primo. Si q=p
b
, donde p
es primo y b es un entero positivo, es posible
extender el campo GF(p) al campo GF(p
b
). ste
es conocido como campo extendido de GF(p) y
sus operaciones de suma y multiplicacin estn
basadas en mdulo p.
En particular, en un cdigo RS q=2
b
, donde q
es el nmero de smbolos y b es el nmero de bits
por smbolo. Por ejemplo, si q=2
3
, el polinomio
para un mensaje compuesto por los smbolos
{2,5,0,7}ser m(D)= 2 + 5D + 7D
3
.
Experimento 3
Considere que en el lado transmisor se emplea
un cdigo Reed Solomon (7, 5), es decir n=7 y k=5.
Obtener lo siguiente:
1. El Polinomio generador.
2. La palabra-cdigo generada para un mensaje con
los smbolos del 1 al 5.
3. La palabra-cdigo recibida con un slo error.
4. Estimacin del mensaje enviado.
5. Estimacin de la palabra-cdigo enviada.
El programa elaborado para resolver el problema
fue nombrado EjCodigoReedSolomon
3
En l se
emplean las funciones g = RSgenerator(q, r,1) y
[m_hat, c_hat, n_err] = RSdecode(q, g, y, 1, n) del
software DIGCOM-T. Los resultados arrojados por
el programa son mostrados en la tabla V:
Valor del Smbolo Valor en binario
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Grabadora de CDs y DVDs
Codigo Reed Solomon en su interior.
El Polinomio generador es = 3 6 1
Datos del mensaje (i.e. los smbolos del 1 al 5)
=[1 2 3 4 5]
Palabra-cdigo = 6 4 1 2 3 4 5
Posicin y valor de los t errores (entre 1 y n y de 0 a
2
b
)[p
1
,p
2
..v
1
,v
2
] = [4 6]
Mensaje con error 6 4 1 6 3 4 5
Estimacin del Mensaje enviado
1 2 3 4 5
Estimacin de la palabra-cdigo enviada
6 4 1 2 3 4 5
Anlisis de resultados del experimento tres
La organizacin de los smbolos y bits por
smbolo es mostrada en la siguiente tabla:
Las caractersticas principales del cdigo RS
que podemos observar con este experimento son
las siguientes:
El polinomio generador obtenido con 3 6 1 es:
3 + 6D + D
2
La organizacin de la palabra-cdigo es mostrada
en la siguiente tabla:
El cdigo obtenido es sistemtico puesto que los
smbolos del mensaje sm
0
, sm
1
, sm
2
, sm
3
, y sm
4

estn de la posicin 3 a la 7 de la palabra-cdigo
obtenida, sin ser alterada por los smbolos de
paridad.
En este ejemplo es posible detectar y corregir slo
un smbolo de error [t=(n k)/2 = (7-5)/2= 1].
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Tabla V. Resultados del programa para el experimento
tres.
58 Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25
CDIGOS CONVOLUCIONALES
Un cdigo convolucional
7
es visto como una
mquina de estados finitos que consta de un
registro de corrimiento de M etapas con conexiones
preestablecidas a n sumadores mdulo 2 y con un
multiplexor que serializa la salida de los sumadores.
En la gura 3 se muestra un codicador con un
registro de M=2 y n=2.
puede ser obtenida en el dominio del tiempo o en el
dominio de la frecuencia de acuerdo a la teora de
sistemas discretos lineales e invariantes en el tiempo.
8

En el tiempo, la salida se obtiene con la convolucin
de la entrada con la respuesta al impulso, mientras
que en la frecuencia se obtiene con el producto de
las transformadas de Fourier de la entrada y de la
respuesta al impulso (las cuales corresponden a la
representacin en polinomios).
La operacin de un codicador convolucional se
puede observar grcamente mediante un diagrama
de rbol, un diagrama de estados, o bien en un
diagrama de Trellis como el de la gura 4.
Fig. 4. Trayectoria para el mensaje 10011.
Telfono celular, cdigo convolucional
en su interior.
Fig. 3. Codicador convencional de 2 etapas.
Una secuencia de entrada, correspondiente a un
mensaje de L bits produce una secuencia de salida
codicada de tamao n(L + M) bits. De manera que
la relacin entre la entrada y la salida, conocida como
ndice de cdigo se obtiene con r=L / n(L+M).
Los cdigos convolucionales son ampliamente
usados en enlaces de radio de lnea de vista y
en comunicaciones mviles, tal como telefona
celular.
Respuest a al i mpul so y pol i nomi o
generador
Cada trayectoria que conecta la salida a la
entrada puede ser caracterizada en trminos de su
respuesta al impulso, denida como la respuesta de
la trayectoria a un smbolo 1 aplicado a su entrada,
con cada ip op del codicador inicializado en
el estado cero. Cada trayectoria tambin se puede
caracterizar en trminos de un polinomio generador
cuyos coecientes son los elementos de la respuesta
al impulso. La respuesta de un cdigo convolucional
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Experimento 4
Para el codicador convolucional de la gura 3
obtener lo siguiente:
1. La respuesta al impulso y el polinomio
generador.
2. La grca de la trayectoria seguida en el diagrama
de Trellis para el mensaje 10011.
3. Clculo de la palabra-cdigo para el mensaje
10011.
El programa elaborado para resolver el problema
fue nombrado EjCodigoConvolucional.
3
En el se
emplean las funciones G = BestBCC(1, 2, 2) y
TrellisPath_plot(m, Edges) del software DIGCOM-
Respuesta al impulso o polinomio generador
1 0 1
1 1 1
La trayectoria del mensaje 10011 (se muestra en la
Fig. 4).
Para el mensaje 1 0 0 1 1
La palabra-cdigo es: 3 2 3 3 1 1 3
Tabla VI. Resultados del programa para el experimento
cuatro.
Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25 59
consultando el cdigo de la misma en la gura 5,
la cual es una seccin (de 3 a 4 en este ejemplo)
del diagrama de Trellis.
PROGRAMA CON MATLAB Y DIGCOM-T
El programa que se muestra a continuacin es
el que se ha empleado para resolver el experimento
4 planteado anteriormente. Obsrvese que las
instrucciones se acompaan (en forma de comentarios)
con una amplia explicacin de cmo proporcionar los
datos del cdigo, as como de la funcin que realiza
cada una de ellas.
Con este tipo de programas se facilita el anlisis
y diseo de los cdigos para deteccin y correccin
de errores, ya que es fcil reprogramar con otros
parmetros para efectos de comparacin y evaluacin
de su desempeo.
Es conveniente recordar que el software DIGCOM-
T es de un propietario independiente de MATLAB.
Por lo mismo, se debe disponer de ste para que el
programa pueda correr correctamente.
%CLCULO DE LA PALABRA-CDIGO DE UN
CODIGO CONVOLUCIONAL Y SU REPRESENTACIN
POR MEDIO DEL DIAGRAMA DE TRELLIS
% Obtener el Polinomio Generador (o la respuesta al
impulso) para un cdigo convolucional binario.
% ptimo con G = BestBCC(k, n, nu).
% k=1 (un solo registro de corrimiento entre entrada
- salida).
% n= 2 (dos sumadores en mdulo 2).
% nu = 2 (log base 2 del nmero de estados (4 estados
en este caso)).
G = BestBCC(1, 2, 2);
Gb=OctaltoVector(G);
disp(Respuesta al Impulso o Polinomio
Generador);disp(Gb)
Palabra-cdigo en base
4 (N
o
de estados)
Palabra-cdigo (en binario)
Posicin 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 1011121314
3 2 3 3 1 1 3 1 1 1 0 1 1 1 1 0 1 0 1 1 1
Las caractersticas principales del cdigo
convolucional que podemos observar con este
experimento son las siguientes:
La respuesta al impulso de la trayectoria superior
entre la entrada y la salida es h
1
(n) = {1 1 1};
mientras que la de la trayectoria inferior es h
2
(n)
= {1 0 1}. A su vez, los respectivos polinomios
generadores son 1 + D + D
2
y 1 + D
2
. Observse
que el orden de aparicin en la tabla de resultados
est invertido con respecto a la ubicacin de las
trayectorias de la gura 3.
El cdigo obtenido es no sistemtico puesto que los
bits del mensaje m
0
, m
1
, m
2
, m
3
, y m
4
(1 0 0 1 1) estn
mezclados con los bits de paridad en los 14 bits del
cdigo binario mostrado en la tabla anterior.
El diagrama de Trellis de la gura 4 muestra la
trayectoria seguida por el mensaje 1 0 0 1 1 (ms
dos ceros agregados como cola para que el ltimo
bit de entrada llegue hasta la salida). Se inicia en
el estado cero y en cada bifurcacin se sigue una
rama de acuerdo al bit de entrada. Si es uno se
sigue la rama superior y si es cero, la inferior.
El cdigo generado por el mensaje se puede
obtener siguiendo cada rama de la gura 4 y
T. Los resultados son mostrados en la tabla VI y las
guras 4 y 5.
Anlisis de resultados del experimento
cuatro
La organizacin de la palabra-cdigo es mostrada
en la siguiente tabla:
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Fig. 5. Cdigo generado por cada rama de mensaje.
60 Ingenieras, Octubre-Diciembre 2004, Vol. VII, No. 25
% Calcular las transiciones (edges) de la mquina de
estados nita con Edges=makeBCC
Edges = makeBCC(G);
disp (tabla de transiciones de la forma [estado actual
entrada salida estado siguiente]); disp (Edges);
% El diagrama de estados se puede obtener a partir
de una parte del diagrama de Trellis con disp (Seccin
del diagrama de Trellis para obtener el diagrama de
estados (Figura));
Trellis_plot(Edges, [3 4], 3)
% Con el diagrama de estados, empezando por el Cero
y siguiendo los estados de acuerdo al mensaje
% Se obtiene el cdigo de salida
% Para visualizar la trayectoria dentro del diagrama de
Trellis se usa TrellisPath_plot(message, Edges)
% donde al mensaje de este ejemplo se le agregan
dos bits (a la derecha) de cola para que que el ltimo
bit del mensaje termine su recorrido en el Registro de
Corrimiento
m=[1 0 0 1 1 0 0];
disp(Mensaje);disp(m);
gure
disp(Trayectoria del mensaje 10011 en el diagrama de
Trellis (Figura));
TrellisPath_plot(m, Edges)
%Codicacin empleando programas ya hechos por
DigComT
%las funciones requeridas son [Table_out, Table_ns] =
EdgesToEncoderTable(Edges) y
%c = EncodeFromTable(m, Table_out, Table_ns)
[Table_out, Table_ns] = EdgesToEncoderTable(Edg
es); c = EncodeFromTable(m, Table_out, Table_ns);
disp(Palabra-cdigo);disp(c)
CONCLUSIONES Y APORTACIONES
En el presente trabajo se elaboraron cuatro
programas basados en MATLAB y DIGCOM-T
para analizar la codicacin de canal de un sistema
de comunicaciones digitales.
Con el primero, llamado EjCodigoHamming, se
generaron las palabras-cdigo en el lado transmisor
empleando una matriz generadora, asimismo se
simul un error en el canal de transmisin y luego en
el lado receptor se utilizaron el sndrome y el patrn
de errores para detectar y corregir un slo error por
bloque. Con el segundo, denominado EjCodigoBCH
se gener una palabra-cdigo empleando un polinomio
generador, se simularon dos errores en el canal de
transmisin y luego se utilizaron el sndrome y el
patrn de errores para detectar y corregir los dos errores.
De manera similar, con el tercer programa llamado
EjCodigoReedSolomon, se analiz la deteccin y
correccin de errores en una comunicacin con smbolos
correspondientes a varios bits cada uno. A su vez, con el
programa EjCodigoConvolucional se obtuv la palabra-
cdigo realizando la convolucin entre el mensaje y las
respuestas al impulso de un codicador de dos etapas
de memoria y se analiz la operacin del codicador
por medio del diagrama de Trellis.
Por lo tanto, se ha comprobado que el anlisis
con MATLAB y DIGCOM-T es un excelente
complemento didctico para la enseanza de la teora
de las comunicaciones digitales, ya que al utilizar este
tipo de programas en la solucin de problemas se logra
consolidar la comprensin de los conceptos bsicos y
las caractersticas principales de los cdigos.
Asimismo, se da a conocer el uso de una
herramienta computacional poderosa para analizar
y disear cdigos que detectan y corrigen errores,
misma que podra ser usada para desarrollar nuevas
tcnicas de codicacin de canal que mejoraran
la conabilidad de los sistemas de comunicacin
digitales existentes o futuros.
BIBLIOGRAFA
1. Chris Heegard, DigComT: The Digital
Communication Toolbox Manual, included in
DigComT software, Native Intelligence, 2000.
2. Simon Haykin, Digital Communications, pag.
378, John Wiley & Sons, 1988.
3. Ral Alvarado, Software para comunicaciones
digitales, disponible a solicitud expresa en
ralvarad@gama.me.uanl.mx
4. Leon W. Couch, Sistemas de comunicacin
digitales, pag. 653, 4
th
edition, Prentice Hall,
2001.
5. Symon Haykin, Communication Systems, pag.
653, 4
th
edition, John Wiley & Sons, 2001.
6. Marvin K. Simon, Sami M. Hinedi and William
C. Lindsey, Digital Communication Techniques;
Signal Design and Detection, pag 747, Prentice
Hall, 1995.
7. John G. Proakis, Digital Communication, pag.
470, 3
th
edition, Mc Graw Hill, 1995.
8. John G. Proakis, Tratamiento Digital de Seales,
3
th
edicin, Prentice-hall, 1998.
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla