Está en la página 1de 10

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 (Eb/N0). 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

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

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
Sistema de comunicacin digital. 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.
Fig. 1. Procesos de la seal en el lado transmisor de un
sistema de comunicaciones. Para un cdigo lineal de bloque (n, k) se pueden
ordenar los bits de paridad a la derecha y los de
solicita una retransmisin, de lo contrario retorna una mensaje a la izquierda (o viceversa) como se muestra
conrmacin de recepcin correcta. La otra tcnica en la gura 2.
se conoce como correccin de error hacia adelante
(FEC, de Forward Error Correction), y es utilizada en m0, m1,m2, m3,...mk-1 b0, b1,...bn-k-1
los sistemas de comunicacin que operan en tiempo
real (es decir, el transmisor no almacena los datos Fig.2. Estructura de la palabra-cdigo.
que enva como en el caso de voz y vdeo digitales).
Por cuestiones de extensin, slo se abordarn los Los cdigos Hamming comunmente son
cdigos FEC. En general, el proceso de codicacin empleados en aplicaciones donde ocurre un slo
en los cdigos FEC es una operacin en la cual a un error por bloque, como por ejemplo en el proceso de
grupo de bits de datos correspondientes al mensaje escritura y lectura de una memoria RAM. Una familia
que se desea transmitir, se le agrega un grupo de bits de estos cdigos tiene los siguientes parmetros:2.
conocidos como de paridad para nes de deteccin Tamao del bloque n = 2m-1 bits
y correccin de errores.
Bits de paridad m ; (m3) bits
El anlisis y diseo de los cdigos se har por Tamao del mensaje k bits
medio del software DIGCOM-T,1 el cual es un
Distancia mnima dmin 2t+1 bits
conjunto de programas que corren sobre la plataforma
de MATLAB. Asimismo, la exposicin del desarrollo Errores a corregir t bits
de los experimentos se llevar a cabo describiendo Como se observa en los parmetros, el nmero
primeramente los conceptos fundamentales, los de errores t que se pueden corregir por bloque de
parmetros principales y la estructura matemtica de palabra-cdigo est relacionado con la distancia
cada uno de los cdigos. Enseguida se efectuar un Hamming d. Donde esta distancia es el nmero de
planteamiento del problema que se desea resolver y se bits distintos entre los vectores que representan las
elaborar el programa para la solucin del problema palabras-cdigo. Asimismo, debido a la propiedad
con Matlab y Digcom-T. Posteriormente se realizar de linealidad la distancia Hamming mnima se puede
el anlisis de los resultados del programa donde se obtener con el peso mnimo de los vectores no ceros.
enfatizan las caractersticas ms importantes del A su vez, el peso Hamming es obtenido con el nmero
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

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

x = [ mb ]
de bits que dieren los vectores de las palabras-
(5)
cdigo con respecto al vector de puros ceros.
Estructura algebraica Sustituyendo b = mP obtenemos que:
Los n bits de la palabra-cdigo xi se obtienen con x = [m mP ] = m [Ik  P ]
la relacin de la ecuacin 1.
mi i = 0,1,..., k 1 en la cual Ik es una matriz identidad de tamao k x k.
xi = (1)
bi k i = k , k + 1,...n 1 Ahora bien, deniendo la matriz generadora como
se indica en la ecuacin 6.
Los (n-k) bits de paridad son sumas lineales
de los k bits del mensaje, como se muestra en la G = [Ik  P ] (6)
ecuacin 2, en la cual se ha sustituido l por n-k por donde G debe estar en forma cannica
conveniencia en la representacin.
bl = pl 0m0 + pl1m1 + ... + pl , k 1mk 1
Entonces el vector de la palabra-cdigo se obtiene
(2) multiplicando el vector del mensaje por la matriz
l = 0,1,..., n k 1; j = 0,1, , k 1
generadora como se muestra en la ecuacin 7.
donde plj = 1 si b1 depende de mj y o de otro modo x = mG (7)
Los coecientes de plj se escogen de manera que
Con esto naliza la operacin de codicacin
las las de la matriz generadora sean linealmente
de canal en el lado transmisor de un sistema de
independientes y las ecuaciones de paridad sean
comunicaciones.
nicas para que el cdigo pueda ser decodicable
en forma nica en el receptor. Deteccin de error en el lado receptor
Por simplicidad, es conveniente hacer una Si los coecientes que relacionan los bits de
representacin compacta en forma de vectores paridad y de mensaje (P) se expresan en forma
y matrices de la estructura. De manera que los transpuesta y denimos la matriz H como en la
vectores de mensaje, paridad y palabra-cdigo ecuacin 8.
H = PT  In k (8)
quedan como se muestra en la ecuacin 3.
m = [m0, m1, , mk 1] Enseguida, postmultiplicamos H por la transpuesta
de G y obtenemos que:
b = [b0, b1, , bn k 1]
(3) Ik
x = [ x 0, x1, , xn 1]
HG = P  In k  = PT + PT
T T

A su vez, las ecuaciones que denen los bits P T


de paridad quedan como lo muestra la ecuacin 4.
En aritmtica mdulo 2: PT + PT = 0. De aqu que
b = mP (4) HGT = 0 (o bien GHT = 0) donde 0 es una matriz
nula de tamao n-k por k.
donde P es una matriz de coeficientes de A continuacin, postmultiplicamos x = mG por
tamao k por n-k de la forma siguiente: HT y se obtiene xHT = 0, donde H es la matriz de
comprobacin de paridad y xHT = 0 es la ecuacin
p 00 p 01 p 0 , n k 1
de comprobacin de paridad empleada por el receptor
p10 p11 p1, n k 1
para la deteccin de errores.
P=
   Por otra parte, para simplicar el algoritmo que
realiza la deteccin de errores, se recomienda hacer
pk 1, 0 pk 1, 1 pk 1, n k 1 el clculo de un valor conocido como sndrome como
lo muestra la ecuacin 9.
Generacin de la palabra-cdigo en el lado s = yH T
transmisor (9)
La palabra-cdigo en forma compacta puede ser donde y es la palabra-cdigo recibida posiblemente
expresada como lo indica la ecuacin 5. con error.

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

Finalmente, con el sndrome y el patrn de errores Tabla II. Resultados del programa para el experimento
ms comunes se identica la posicin del error. Por uno.
ejemplo, el patrn de errores, matriz e y su sndrome, Matriz generadora
matriz s para un cdigo (7,4) son mostrados en la 1 0 0 0 1 1 1
tabla I. 0 1 0 0 1 1 0
0 0 1 0 1 0 1
Tabla I. Patrn de errores ms comunes y el sndrome 0 0 0 1 0 1 1
para un cdigo (7,4). Matriz de comprobacin de paridad
1 1 1 0 1 0 0
Patrn de errores (e) Sndrome
1 1 0 1 0 1 0
Posicin de los bits 1 0 1 1 0 0 1
s
Dato de la palabra-cdigo con error (entre 1 y 2k)
1 2 3 4 5 6 7 =3
0 0 0 0 0 0 0 0 0 0 Dato de la posicin del bit de error (entre 1 y n)
=4
1 0 0 0 0 0 0 1 1 1 Distancia Hamming mnima de x =3
0 1 0 0 0 0 0 1 1 0 Nmero de errores que se pueden corregir t =1
Palabra-cdigo recibida con un error
0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 1 0
0 0 0 1 0 0 0 0 1 1 Sndrome para deteccin de error s =
0 0 0 0 1 0 0 1 0 0 0 1 1
Palabra-cdigo con correccin del error corr =
0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0
0 0 0 0 0 0 1 0 0 1

Al sndrome s = 000, le corresponde el valor de Tabla III. Palabras-cdigo del cdigo Hamming (7,4).
e = 0000000, lo cual signica para el lado receptor Nmero de la Palabra-Cdigo
que no hubo error en la transmisin, mientras que palabra
Posicin 1 2 3 4 5 6 7
111, indica que hay un error en la posicin uno de
1 0 0 0 0 0 0 0
la palabra-cdigo y as sucesivamente el resto de las
2 1 0 0 0 1 1 1
combinaciones del sndrome indican un error en la
3 0 1 0 0 1 1 0
posicin donde e vale uno.
4 1 1 0 0 0 0 1
Experimento 1: Considere que en el lado
5 0 0 1 0 1 0 1
transmisor se emplea un cdigo Hamming (7,4),
6 1 0 1 0 0 1 0
y que existe un error de un bit en el canal de
transmisin. Obtener la siguiente informacin: 7 0 1 1 0 0 1 1
8 1 1 1 0 1 0 0
1. La Matriz generadora.
9 0 0 0 1 0 1 1
2. La Matriz de comprobacin de paridad.
10 1 0 0 1 1 0 0
3. Las palabras-cdigo.
11 0 1 0 1 1 0 1
4. El nmero de errores que puede corregir. 12 1 1 0 1 0 1 0
5. Correccin de un error en la recepcin. 13 0 0 1 1 1 1 0
El programa elaborado para resolver el problema 14 1 0 1 1 0 0 1
fue nombrado EjCodigoHamming.3 En l se emplea 15 0 1 1 1 0 0 0
la funcin [G,H] = HammingCode(n)del software 16 1 1 1 1 1 1 1
DIGCOM-T. Los resultados arrojados por el
programa son mostrados en las tablas II y III. Hamming que podemos observar en las tablas II y
Anlisis de resultados del experimento uno III de este experimento son las siguientes:
La organizacin de las palabras-cdigo se muestra El cdigo obtenido es sistemtico puesto que
en la tabla III. los bits del mensaje m0,m1,m2 y m3 estn en las
Las caractersticas principales del cdigo posiciones 1 a 4 de las palabras cdigo obtenidas,

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

sin ser alteradas por los bits de paridad. Polinomios de palabra-cdigo


El cdigo obtenido es lineal, lo cual se puede La representacin matemtica de la operacin
comprobar tomando como ejemplo la palabra- de los cdigos cclicos est basada en el uso de
cdigo 3 (0100110) y la 6 (1010010), las cuales polinomios.
al sumarlas se obtiene la 8 (1110100). Los elementos de una palabra-cdigo de tamao n
Como la distancia Hamming mnima es 3, pueden ser los coecientes de un polinomio de grado
entonces un cdigo Hamming solo puede corregir n-1. Por ejemplo, la palabra-cdigo con elementos
1 error en la transmisin (t=1). x0,x1, ...,xn-1 puede ser representada en forma de
La deteccin del error se obtiene con el sndrome polinomio como:
011, cuyo patrn de error es 0001000 (ver tabla X(D) = x0 + x1D, ...,+ xn-1Dn-1
I), indicando que el error est en la posicin 4. donde D es una variable Real arbitraria
La correccin del error se obtuvo sumando Polinomio generador
en mdulo 2 el valor del patrn de error
Un cdigo cclico (n, k) es especificado por
(0001000) con la palabra-cdigo recibida con
un conjunto de polinomios de palabra-cdigo de
error (0101110), es decir la palabra corregida es
grado n-1 o menos, el cual contiene un polinomio
0100110.
de grado mnimo n-k como un factor. Este factor
especial, denotado por g(D) es seleccionado como
CDIGOS CCLICOS el Polinomio Generador del cdigo.
Son una subclase de los cdigos de bloque Procedimiento para codicacin de un cdigo
lineales,4 los cuales tienen esquemas de decodicacin cclico
ecientes, es decir con algoritmos relativamente Multiplicar el polinomio del mensaje m(D) por
simples. Se dice que un cdigo es cclico cuando Dn-k
cualquier desplazamiento en lazo cerrado de una
Dn-k m(D) = m0Dn-k+ m1Dn-k+1+ + mk-1Dn-1
palabra-cdigo da como resultado otra palabra-
cdigo existente dentro del conjunto empleado para Dividir Dn-k m(D) por el polinomio generador
codicar los posibles mensajes. g(D), obteniendo el residuo b(D)
Existen una gran variedad de cdigos cclicos.
Por ejemplo, el Cdigo de Redundancia Cclica D n k m( D ) b( D )
= a( D) +
empleado en comunicaciones de datos y el cdigo g ( D) g ( D)
Golay que es un cdigo binario como el Hamming.
Agregar b(D) a Dn-k m(D) para obtener el polinomio
Adems, estn los cdigos Q-arios como el Bose-
de la palabra-cdigo x(D).
Chaudhuri-Hocquenqhem y el Reed Solomon. Dada
la versatilidad de parmetros de estos dos ltimos x(D) = b(D) + Dn-k m(D)
son los que se selecionaron para ser analizados en Clculo del sndrome para deteccin de
las secciones siguientes. 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
Telefona para comunicacin de voz IP. De manera similar al cdigo Hamming, con el
Cdigo de redundancia ciclica en su interior. sndrome y el patrn de errores se hace la deteccin

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

del error o los errores y su posicin dentro de la Tabla IV. Resultados del programa para el experimento
palabra-cdigo. dos.

El polinomio generador es=


CDIGO BOSE CHAUDHURI -HOCQUENQHEM 1 0 0 0 1 0 1 1 1
(BCH) Datos del mensaje = [1 1 0 0 1 1 0]
La palabra-cdigo es =
Es un cdigo cclico con una gran variedad de 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0
parmetros. Para m 3 y t < (2m-1)/2 existen cdigos Dato de la posicin de los t bits de error (entre 1 y
BCH con los siguientes parmetros: n) = [3 8]
Mensaje con error
Para tamaos de unos pocos cientos de bits o 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0
menos, los cdigos BCH son de los mejores para un Estimacin del mensaje enviado
mismo tamao de bloque e ndice de cdigo (relacin 1 1 0 0 1 1 0
entre el bloque de entrada y el bloque de salida). Estimacin de palabra-cdigo
0 0 1 1 0 1 1 1 1 1 0 0 1 1 0
Algunos cdigos comunes5 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, Las caractersticas principales del cdigo
11, 5) y (31,6, 7). BCH que podemos observar en la tabla IV de este
Experimento 2 experimento son las siguientes:
Considere que en el lado transmisor se emplea un El polinomio generador obtenido con 100010111
Tamao del bloque n = 2m-1 bits es 1 + D4 + D6 + D7 + D8.
Bits de paridad n-k bits El cdigo obtenido es sistemtico puesto que
Tamao del mensaje K n mt bits los bits del mensaje m0,m1,m2,m3,m4,m5 y m6
Distancia mnima dmin 2t+1 bits estn en las posiciones 9 a 15 de la palabra
Errores a corregir t bits cdigo obtenida, sin ser alterada por los bits de
paridad.
cdigo BCH (15, 7, 2). Obtener lo siguiente: Con el BCH es posible detectar y corregir ms de
1. El polinomio generador. un error (dos en este ejemplo), en lugar de uno
slo como en los cdigos Hamming.
2. La palabra-cdigo generada para el mensaje
1100110.
3. La palabra-cdigo recibida con dos errores. CDIGO REED-SOLOMON
4. Estimacin del mensaje enviado. Un cdigo Reed Solomon (RS) es una subclase de los
cdigos BCH no binarios. Se distingue de los cdigos
5. Estimacin de la palabra-cdigo enviada. binarios porque ste opera con smbolos de b bits cada
El programa elaborado para resolver el uno en lugar de bits individuales. Es til cuando los
problema fue nombrado EjCodigoBCH.3 En el se errores ocurren en rfagas, como en los sistemas de
emplean las funciones BinaryBCHgen(n, d_star) y grabacin de discos compactos digitales.
SystematicEncode(q, g, m) del software DIGCOM-T. Un cdigo RS que corrige t errores tiene los
Los resultados arrojados por el programa se muestran siguientes parmetros:
en la tabla IV:
Un polinomio generador no binario se define
Anlisis de resultados del experimento dos
La organizacin de la palabra cdigo es mostrada
Tamao del bloque n = 2b-1 smbolos
en la siguiente tabla:
Tamao de paridad n-k = 2t smbolos
Palabra-cdigo Tamao del mensaje k smbolos
Posicin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Distancia mnima dmin 2t+1 smbolos
0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 Errores a corregir t smbolos

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

Tabla V. Resultados del programa para el experimento


tres.

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
2b)[p1,p2..v1,v2] = [4 6]
Grabadora de CDs y DVDs Mensaje con error 6 4 1 6 3 4 5
Codigo Reed Solomon en su interior. Estimacin del Mensaje enviado
1 2 3 4 5
Estimacin de la palabra-cdigo enviada
en funcin de los campos de Galois 6 y son 6 4 1 2 3 4 5
denotados por GF(q). Cuando q es primo se
construye un campo finito GF(q) cuyos elementos Anlisis de resultados del experimento tres
son {0,1,...,q-1}. Las operaciones de suma y La organizacin de los smbolos y bits por
multiplicacin de los elementos de GF(q) estn smbolo es mostrada en la siguiente tabla:
basadas en mdulo q. En general, el campo finito
GF(q) slo puede ser construido si q es primo Valor del Smbolo Valor en binario
o una potencia de un primo. Si q=pb, donde p 0 000
es primo y b es un entero positivo, es posible 1 001
extender el campo GF(p) al campo GF(pb). ste 2 010
es conocido como campo extendido de GF(p) y
3 011
sus operaciones de suma y multiplicacin estn
basadas en mdulo p. 4 100
5 101
En particular, en un cdigo RS q=2b, donde q
es el nmero de smbolos y b es el nmero de bits 6 110
por smbolo. Por ejemplo, si q=23, el polinomio 7 111
para un mensaje compuesto por los smbolos
{2,5,0,7}ser m(D)= 2 + 5D + 7D3. Las caractersticas principales del cdigo RS
Experimento 3 que podemos observar con este experimento son
las siguientes:
Considere que en el lado transmisor se emplea
un cdigo Reed Solomon (7, 5), es decir n=7 y k=5. El polinomio generador obtenido con 3 6 1 es:
Obtener lo siguiente: 3 + 6D + D2
La organizacin de la palabra-cdigo es mostrada
1. El Polinomio generador.
en la siguiente tabla:
2. La palabra-cdigo generada para un mensaje con
los smbolos del 1 al 5. Palabra-cdigo

3. La palabra-cdigo recibida con un slo error. Posicin 1 2 3 4 5 6 7

4. Estimacin del mensaje enviado. 6 4 1 2 3 4 5

5. Estimacin de la palabra-cdigo enviada. El cdigo obtenido es sistemtico puesto que los


El programa elaborado para resolver el problema smbolos del mensaje sm0, sm1, sm2, sm3, y sm4
fue nombrado EjCodigoReedSolomon3 En l se estn de la posicin 3 a la 7 de la palabra-cdigo
emplean las funciones g = RSgenerator(q, r,1) y obtenida, sin ser alterada por los smbolos de
[m_hat, c_hat, n_err] = RSdecode(q, g, y, 1, n) del paridad.
software DIGCOM-T. Los resultados arrojados por En este ejemplo es posible detectar y corregir slo
el programa son mostrados en la tabla V: un smbolo de error [t=(n k)/2 = (7-5)/2= 1].

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

CDIGOS CONVOLUCIONALES puede ser obtenida en el dominio del tiempo o en el


Un cdigo convolucional7 es visto como una dominio de la frecuencia de acuerdo a la teora de
mquina de estados finitos que consta de un sistemas discretos lineales e invariantes en el tiempo.8
registro de corrimiento de M etapas con conexiones En el tiempo, la salida se obtiene con la convolucin
preestablecidas a n sumadores mdulo 2 y con un de la entrada con la respuesta al impulso, mientras
multiplexor que serializa la salida de los sumadores. que en la frecuencia se obtiene con el producto de
En la gura 3 se muestra un codicador con un las transformadas de Fourier de la entrada y de la
registro de M=2 y n=2. 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. 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
Fig. 4. Trayectoria para el mensaje 10011.
la relacin entre la entrada y la salida, conocida como
ndice de cdigo se obtiene con r=L / n(L+M). Experimento 4
Los cdigos convolucionales son ampliamente Para el codicador convolucional de la gura 3
usados en enlaces de radio de lnea de vista y obtener lo siguiente:
en comunicaciones mviles, tal como telefona
1. La respuesta al impulso y el polinomio
celular.
generador.
2. La grca de la trayectoria seguida en el diagrama
de Trellis para el mensaje 10011.
Telfono celular, cdigo convolucional
en su interior. 3. Clculo de la palabra-cdigo para el mensaje
10011.
El programa elaborado para resolver el problema
fue nombrado EjCodigoConvolucional.3 En el se
Respuesta al impulso y polinomio emplean las funciones G = BestBCC(1, 2, 2) y
generador TrellisPath_plot(m, Edges) del software DIGCOM-
Cada trayectoria que conecta la salida a la
entrada puede ser caracterizada en trminos de su Tabla VI. Resultados del programa para el experimento
cuatro.
respuesta al impulso, denida como la respuesta de
la trayectoria a un smbolo 1 aplicado a su entrada, Respuesta al impulso o polinomio generador
con cada ip op del codicador inicializado en 1 0 1
1 1 1
el estado cero. Cada trayectoria tambin se puede La trayectoria del mensaje 10011 (se muestra en la
caracterizar en trminos de un polinomio generador Fig. 4).
cuyos coecientes son los elementos de la respuesta Para el mensaje 1 0 0 1 1
al impulso. La respuesta de un cdigo convolucional La palabra-cdigo es: 3 2 3 3 1 1 3

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

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
Fig. 5. Cdigo generado por cada rama de mensaje.
instrucciones se acompaan (en forma de comentarios)
con una amplia explicacin de cmo proporcionar los
T. Los resultados son mostrados en la tabla VI y las datos del cdigo, as como de la funcin que realiza
guras 4 y 5. cada una de ellas.
Con este tipo de programas se facilita el anlisis
Anlisis de resultados del experimento y diseo de los cdigos para deteccin y correccin
cuatro de errores, ya que es fcil reprogramar con otros
La organizacin de la palabra-cdigo es mostrada parmetros para efectos de comparacin y evaluacin
en la siguiente tabla: de su desempeo.
Palabra-cdigo en base Palabra-cdigo (en binario) Es conveniente recordar que el software DIGCOM-
4 (No de estados) T es de un propietario independiente de MATLAB.
Posicin 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 1011121314 Por lo mismo, se debe disponer de ste para que el
3233113 1110 11110 1 0 1 1 1 programa pueda correr correctamente.
%CLCULO DE LA PALABRA-CDIGO DE UN
Las caractersticas principales del cdigo CODIGO CONVOLUCIONAL Y SU REPRESENTACIN
POR MEDIO DEL DIAGRAMA DE TRELLIS
convolucional que podemos observar con este
% Obtener el Polinomio Generador (o la respuesta al
experimento son las siguientes: impulso) para un cdigo convolucional binario.
La respuesta al impulso de la trayectoria superior % ptimo con G = BestBCC(k, n, nu).
entre la entrada y la salida es h1(n) = {1 1 1}; % k=1 (un solo registro de corrimiento entre entrada
- salida).
mientras que la de la trayectoria inferior es h2(n)
% n= 2 (dos sumadores en mdulo 2).
= {1 0 1}. A su vez, los respectivos polinomios % nu = 2 (log base 2 del nmero de estados (4 estados
generadores son 1 + D + D2 y 1 + D2 . Observse en este caso)).
que el orden de aparicin en la tabla de resultados G = BestBCC(1, 2, 2);
est invertido con respecto a la ubicacin de las Gb=OctaltoVector(G);
trayectorias de la gura 3. disp(Respuesta al Impulso o Polinomio
Generador);disp(Gb)
El cdigo obtenido es no sistemtico puesto que los
bits del mensaje m0, m1, m2, m3, y m4 (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

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


Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla

% Calcular las transiciones (edges) de la mquina de De manera similar, con el tercer programa llamado
estados nita con Edges=makeBCC EjCodigoReedSolomon, se analiz la deteccin y
Edges = makeBCC(G); correccin de errores en una comunicacin con smbolos
disp (tabla de transiciones de la forma [estado actual
entrada salida estado siguiente]); disp (Edges);
correspondientes a varios bits cada uno. A su vez, con el
programa EjCodigoConvolucional se obtuv la palabra-
% El diagrama de estados se puede obtener a partir
de una parte del diagrama de Trellis con disp (Seccin cdigo realizando la convolucin entre el mensaje y las
del diagrama de Trellis para obtener el diagrama de respuestas al impulso de un codicador de dos etapas
estados (Figura)); de memoria y se analiz la operacin del codicador
Trellis_plot(Edges, [3 4], 3) por medio del diagrama de Trellis.
% Con el diagrama de estados, empezando por el Cero Por lo tanto, se ha comprobado que el anlisis
y siguiendo los estados de acuerdo al mensaje
con MATLAB y DIGCOM-T es un excelente
% Se obtiene el cdigo de salida
complemento didctico para la enseanza de la teora
% Para visualizar la trayectoria dentro del diagrama de
de las comunicaciones digitales, ya que al utilizar este
Trellis se usa TrellisPath_plot(message, Edges)
% donde al mensaje de este ejemplo se le agregan tipo de programas en la solucin de problemas se logra
dos bits (a la derecha) de cola para que que el ltimo consolidar la comprensin de los conceptos bsicos y
bit del mensaje termine su recorrido en el Registro de las caractersticas principales de los cdigos.
Corrimiento
Asimismo, se da a conocer el uso de una
m=[1 0 0 1 1 0 0];
herramienta computacional poderosa para analizar
disp(Mensaje);disp(m);
y disear cdigos que detectan y corrigen errores,
gure
misma que podra ser usada para desarrollar nuevas
disp(Trayectoria del mensaje 10011 en el diagrama de
tcnicas de codicacin de canal que mejoraran
Trellis (Figura));
la conabilidad de los sistemas de comunicacin
TrellisPath_plot(m, Edges)
digitales existentes o futuros.
%Codicacin empleando programas ya hechos por
DigComT
%las funciones requeridas son [Table_out, Table_ns] = BIBLIOGRAFA
EdgesToEncoderTable(Edges) y 1. Chris Heegard, DigComT: The Digital
%c = EncodeFromTable(m, Table_out, Table_ns) Communication Toolbox Manual, included in
[Table_out, Table_ns] = EdgesToEncoderTable(Edg DigComT software, Native Intelligence, 2000.
es); c = EncodeFromTable(m, Table_out, Table_ns);
2. Simon Haykin, Digital Communications, pag.
disp(Palabra-cdigo);disp(c)
378, John Wiley & Sons, 1988.
3. Ral Alvarado, Software para comunicaciones
CONCLUSIONES Y APORTACIONES
digitales, disponible a solicitud expresa en
En el presente trabajo se elaboraron cuatro ralvarad@gama.me.uanl.mx
programas basados en MATLAB y DIGCOM-T
4. Leon W. Couch, Sistemas de comunicacin
para analizar la codicacin de canal de un sistema
digitales, pag. 653, 4th edition, Prentice Hall,
de comunicaciones digitales.
2001.
Con el primero, llamado EjCodigoHamming, se
5. Symon Haykin, Communication Systems, pag.
generaron las palabras-cdigo en el lado transmisor
653, 4th edition, John Wiley & Sons, 2001.
empleando una matriz generadora, asimismo se
simul un error en el canal de transmisin y luego en 6. Marvin K. Simon, Sami M. Hinedi and William
el lado receptor se utilizaron el sndrome y el patrn C. Lindsey, Digital Communication Techniques;
de errores para detectar y corregir un slo error por Signal Design and Detection, pag 747, Prentice
bloque. Con el segundo, denominado EjCodigoBCH Hall, 1995.
se gener una palabra-cdigo empleando un polinomio 7. John G. Proakis, Digital Communication, pag.
generador, se simularon dos errores en el canal de 470, 3th edition, Mc Graw Hill, 1995.
transmisin y luego se utilizaron el sndrome y el 8. John G. Proakis, Tratamiento Digital de Seales,
patrn de errores para detectar y corregir los dos errores. 3th edicin, Prentice-hall, 1998.

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

También podría gustarte