Documentos de Académico
Documentos de Profesional
Documentos de Cultura
25 Codigos
25 Codigos
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
b0, b1,...bn-k-1
n = 2m-1
bits
Bits de paridad
m ; (m3)
bits
bits
Distancia mnima
dmin 2t+1
bits
Errores a corregir
bits
CDIGO HAMMING
El cdigo Hamming es clasificado como un
cdigo de bloque porque tiene como entrada un
52
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
de bits que dieren los vectores de las palabrascdigo con respecto al vector de puros ceros.
Estructura algebraica
Los n bits de la palabra-cdigo xi se obtienen con
la relacin de la ecuacin 1.
mi
xi =
bi k
i = 0,1,..., k 1
i = k , k + 1,...n 1
(1)
(2)
(3)
(4)
p 01 p 0 , n k 1
p 00
p10
p11 p1, n k 1
P=
pk 1, 0 pk 1, 1 pk 1, n k 1
Generacin de la palabra-cdigo en el lado
transmisor
La palabra-cdigo en forma compacta puede ser
expresada como lo indica la ecuacin 5.
(5)
x = [m mP ] = m [Ik P ]
en la cual Ik es una matriz identidad de tamao k x k.
Ahora bien, deniendo la matriz generadora como
se indica en la ecuacin 6.
G = [Ik P ]
(6)
(7)
(8)
m = [m0, m1, , mk 1]
b = [b0, b1, , bn k 1]
x = [ x 0, x1, , xn 1]
x = [ mb ]
Ik
HG = P In k = PT + PT
P T
T
(9)
53
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
Sndrome
54
Palabra-Cdigo
Posicin 1
10
11
12
13
14
15
16
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
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 palabracdigo 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 BoseChaudhuri-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
x0,x1, ...,xn-1 puede ser representada en forma de
polinomio como:
X(D) = x0 + x1D, ...,+ xn-1Dn-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
Dn-k
Dn-k m(D) = m0Dn-k+ m1Dn-k+1+ + mk-1Dn-1
Dividir Dn-k m(D) por el polinomio generador
g(D), obteniendo el residuo b(D)
D n k m( D )
b( D )
= a( D) +
g ( D)
g ( D)
Agregar b(D) a Dn-k m(D) para obtener el polinomio
de la palabra-cdigo x(D).
x(D) = b(D) + Dn-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 palabracdigo 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.
Cdigo de redundancia ciclica en su interior.
55
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
n = 2m-1
bits
Bits de paridad
n-k
bits
K n mt
bits
Distancia mnima
dmin 2t+1
bits
Errores a corregir
bits
56
0 0
1 0
n = 2b-1
smbolos
Tamao de paridad
n-k = 2t
smbolos
smbolos
Distancia mnima
dmin 2t+1
smbolos
Errores a corregir
smbolos
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
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]
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
Valor en binario
000
001
010
011
100
101
110
111
57
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
CDIGOS CONVOLUCIONALES
Un cdigo convolucional7 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.
58
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 DIGCOMTabla VI. Resultados del programa para el experimento
cuatro.
Respuesta al impulso o polinomio generador
1
0
1
1
La trayectoria del mensaje 10011 (se muestra en
Fig. 4).
Para el mensaje
1
0
0
1
La palabra-cdigo es:
3 2 3
3
1 1
1
1
la
1
3
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
1 2 3 4 5 6 7 8 9 1011121314
3233113
1110 11110 1 0 1 1 1
59
Cdigos para deteccin y correccin de errores en comunicaciones digitales/ Ral Alvarado Escamilla
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.
60