Está en la página 1de 25

DEPARTAMENTO DE CIENCIA Y TECNOLOGA

UNIVERSIDAD NACIONAL DE QUILMES


Roque Senz Pea 180 (B1876BXD) Bernal Buenos Aires Argentina



Codificacin de canal 1

COMUNICACIN DE DATOS

CODIFICACIN DE CANAL

La codificacin de canal es la transformacin intencional que se le hace a una seal de
comunicacin a fin de tener una mejor performance frente a efectos adversos que produce el
ruido presente en el canal de comunicacin. Normalmente la meta que se persigue al hacer
una codificacin de canal es mejorar la probabilidad de error de bit P
B
o bien reducir la relacin
E
b
/N
0
requerida para la transmisin de la informacin. Normalmente, esta mejora se hace a
expensas de un incremento del ancho de banda utilizado.
La codificacin de canal puede dividirse en dos reas. Una trata con el diseo de una
forma de onda adecuada y la otra con el diseo de una estructura de bits adecuada. La
codificacin o diseo de forma de onda consiste en generar la mejor forma de onda posible,
para el canal de comunicacin considerado, para que el proceso de deteccin que se lleva a
cabo en el receptor sea lo menos sensible posible a los errores. Es aqu donde surgen
esquemas de modulacin tales como PSK, FSK, QAM o codificaciones en banda base tales
como unipolar, bipolar, Manchester y otros. Este estudio se deja para Teora de las
Telecomunicaciones. En Comunicacin de Datos estudiaremos las secuencias estructuradas.
El diseo de secuencias estructuradas consiste en la transformacin de la secuencia
original de datos en una secuencia mejor mediante el agregado de bits redundantes. Estos
bits redundantes se usan para la deteccin y/o correccin de errores. Ya sea en la codificacin
de la forma de onda o en la codificacin estructurada, la probabilidad de error de bit buscada
como objetivo de diseo depender de cada aplicacin en particular. En algn caso una
probabilidad de error de bit P
B
= 10
-2
podr ser ms que suficiente, mientras que en otro caso
quizs se requiera una P
B
de 10
-9
. Obviamente, como en todo diseo de ingeniera, cuando uno
pretende una mejor performance debe pagarla con algn costo extra, por lo tanto se trata de
buscar la mejor relacin costo-beneficio.
En el tratamiento de la codificacin de canal siempre aparece el concepto de distancia
entre smbolos. La distancia entre smbolos (o seales) da una idea de qu tan diferentes son
dos seales, por ejemplo, una para representar al cero binario y otra para representar al uno
binario. Intuitivamente se puede entender que cuanto ms diferentes (o sea, ms distantes)
son dos seales, menos probabilidad tienen de confundirse una con otra cuando el ruido las
afecta. Como se ver ms adelante, en la codificacin estructurada el concepto de distancia
tambin est presente.
Antes de entrar de lleno al tema de codificacin, vamos a ver algunos conceptos
introductorios.
Canal simtrico binario
El concepto de canal simtrico binario (CSB) tiene gran importancia prctica. Se trata
de un canal que presenta dos smbolos de entrada, x
0
= 0, x
1
= 1, que ocurren con igual
probabilidad, y dos smbolos de salida, y
0
= 0, y
1
= 1. Los smbolos de salida y
i
representan a
los smbolos de entrada que han sido afectados por el ruido. El canal se dice que es simtrico
porque la probabilidad de recibir un 1 habindose transmitido un 0 es igual a la probabilidad de
recibir un 0 habindose transmitido un 1. Esta probabilidad condicional se denota con la letra p
2 Codificacin de canal
y se llama probabilidad de transicin del canal. La Figura 1 muestra un diagrama que
representa un modelo de canal simtrico binario. Ntese que si la probabilidad de recibir
errneamente un bit es p, entonces obviamente, la probabilidad de recibirlo correctamente es
1 p.

Figura 1. Canal simtrico binario.

En la Figura 1 se ve que habindose transmitido un 0 a la entrada del canal, como
consecuencia del ruido existe una probabilidad p de recibir un 1 a la salida del mismo.
Similarmente ocurre para un 1 binario a la entrada. Si p = 0 entonces los smbolos de entrada
siempre se recibirn correctamente a la salida.
Capacidad de canal
Sobre esta idea y varias consideraciones tericas que estn fuera de los alcances de la
materia, Shannon (Cuando no!) desarroll los temas referentes a capacidad de canal, por all
por el ao 1948. Esto es, cunta informacin es posible transmitir por un canal simtrico
binario cuando a la entrada del mismo se tiene una fuente con una cierta entropa H(S). La
base de los estudios de Shannon estaba en analizar la entropa de la fuente a partir de la
observacin de los elementos a la salida del CSB. La capacidad de canal da cuenta de la
cantidad de informacin que es posible transmitir a travs de un CSB. Para no entrar en
detalles tericos profundos simplemente diremos que la capacidad de un canal se representa
por la letra C y se expresa en bits
1
.
Considerando un canal simtrico binario, las caractersticas del mismo queda
determinada nicamente por la probabilidad de transicin p. Se puede demostrar que para
este tipo de canal la capacidad de canal C viene dada por:
) 1 ( log ) 1 ( log 1
2 2
p p p p C + + = (1)
La ecuacin (1) se muestra graficada en la Figura 2. De all se puede determinar que:
1. Cuando el canal no presenta ruido resulta ser p = 0 y la capacidad es mxima e
igual a 1. Obviamente que es 1, ya que a la entrada del canal se encuentra una fuente discreta
binaria equiprobable, en cuyo caso la entropa H(S) es 1. Por lo tanto, al no haber ruido, esa
es la mxima cantidad de informacin que puedo transmitir sobre el canal.
2. Cuando el canal comienza a hacerse ruidoso la capacidad del mismo para transmitir
informacin comienza a disminuir. El caso extremo ocurre cuando p = 0,5 y en tal caso la
capacidad del canal se hace 0. Esto suena lgico ya que siendo p = 0,5 la probabilidad de error
es tal que, a la salida del canal da lo mismo arrojar una moneda al aire y optar por 1 si sali

1
Shannon hizo un estudio ms generalizado y no se refiri solamente al canal simtrico binario sino que determin la
capacidad de canal para un canal de J entradas y K salidas al que denomin canal discreto sin memoria.
Codificacin de canal 3
cara u optar por 0 si sali ceca. Es decir, no importa la fuente de informacin que se tenga a
la entrada del canal ante una situacin as.

Figura 2. Variacin de la capacidad de un canal simtrico binario en
funcin de la probabilidad de transicin.

Teorema de la capacidad del canal
La presencia inevitable del ruido en un canal de comunicacin hace que se produzca
una discrepancia entre la secuencia de datos transmitida y la secuencia recibida. Al usar
codificacin de canal se est aumentando la resistencia al ruido del sistema digital de
comunicaciones. La codificacin basada en estructuras de bits consiste en un mapeo de la
secuencia de datos que sale de la fuente en otra secuencia que ingresa al canal de
comunicacin, realizndose la operacin inversa a la salida del canal, de manera que el efecto
total del ruido sobre el canal sea minimizado. Esta operacin de mapeo se realiza por
medio de un codificador en el lado del transmisor, mientras que la operacin inversa del lado
del receptor se realiza por medio de un decodificador. La Figura 3 describe este proceso en
forma de diagrama de bloques.





Figura 3. Diagrama en bloques simplificado de un sistema de comunicacin digital.
Fuente
discreta sin
memoria
Codificador
de canal
Canal
discreto sin
memoria
Decodificador
de canal
Destino
Ruido
4 Codificacin de canal
Los bits de informacin van saliendo de la fuente de informacin y el trabajo del
codificador es agregar redundancia de una manera preestablecida a los bits de informacin, y
explotar esta redundancia en el decodificador para reconstruir la seal de la manera ms fiel
posible. Parecera que la codificacin de canal hecha a perder el trabajo realizado durante la
codificacin de fuente en la que el objetivo era eliminar bits redundantes. Sin embargo, las dos
operaciones se complementan. Con la codificacin de fuente lo que se busca es aumentar la
eficiencia del sistema, mientras que con la codificacin de canal se busca aumentar la
confiabilidad del sistema.
Normalmente, y luego lo veremos en detalle, el trabajo del codificador es convertir una
secuencia de k bits de mensaje en una secuencia mayor de n bits, siendo desde luego n > k.
Por lo tanto, el nmero de bits redundantes agregados a la secuencia es n k. La relacin
entre k y n se llama tasa de cdigo y se la designa por r:

n
k
r = (2)
siendo r menor que 1.
La pregunta que surge es: se puede construir un esquema de codificacin tal que la
probabilidad de error de bit de un mensaje sea todo lo pequea que uno desee? La respuesta a
esta pregunta es s, siempre que se cumplan ciertas condiciones. De hecho la respuesta a esta
pregunta la dio Shannon. Segn el teorema de codificacin de canal de Shannon, la
informacin que emite una fuente discreta sin memoria, con smbolos binarios (unos y ceros)
igualmente probables, puede ser transmitida sobre un canal simtrico binario con una
probabilidad de error lo suficientemente pequea siempre que se cumpla la siguiente relacin:
C r (3)
Este es uno de los resultados ms importantes de la teora de la informacin. Ntese
que este teorema establece lmites, sin embargo no dice nada acerca de cmo debe ser el
esquema de codificacin que los haga cumplir. El esquema quizs sea extremadamente
complicado o muy difcil de implementar, pero ese es otro tema. El teorema slo garantiza la
existencia de ese cdigo. Si la tasa de cdigo r es menor o igual que la capacidad de canal C,
entonces es posible transmitir con una probabilidad de error arbitrariamente pequea, siempre
que se use algn esquema de codificacin adecuado con (n-k) bits de redundancia. Cul es
ese cdigo? El teorema no lo predice. Slo dice que el cdigo existe, aunque quizs sea
extremadamente difcil de implementar o quizs impracticable.
Si r > C entonces no es posible transmitir sobre el canal con una probabilidad de error
arbitrariamente pequea.
Ejemplo.
Consideremos un CSB con una probabilidad de transicin p = 10
-2
. Para este valor, la
capacidad del canal es C = 0,9192, usando la ecuacin (1). Por lo tanto, siempre que r sea
menor o igual que C, es posible hallar un n y un k apropiados que me permitan recibir los
mensajes codificados con una tasa de error tan pequea como se desee.
Atencin. Tiene que quedar en claro esto de n y k apropiados. Por ejemplo, si r = se
est cumpliendo con la (3) y por lo tanto se puede hacer que la probabilidad de error del
mensaje recibido sea tan pequea como uno desee, digamos 10
-50
,

si se nos antoja. Esto NO
necesariamente significa que usando k = 1 y n = 2 (o sea, r = ) se va a llegar a ese
objetivo. Quizs se deba utilizar k = 4 y n = 8. O quizs k = 1024 y n = 2048. O peor an,
quizs se est toda la vida buscando cunto deben valer k y n y nunca se logre hallar el
esquema de codificacin. O tambin puede ocurrir que s se descubra pero hay que
implementarlo con una mquina infernal. O puede ocurrir que r justamente no puede ser
Codificacin de canal 5
sino otra fraccin. El Teorema de Shannon de codificacin del canal asegura que tal cdigo
existe. De ah a que lo pueda implementar... es toda una cuestin de ingenio, mucho ingenio.
Volviendo al enunciado de este ejemplo, nos planteamos un cdigo llamado cdigo de
repeticin que consiste en enviar varias veces el mismo bit de mensaje. Cada bit (1 0) se
enva n veces, siendo n = 2m +1 un entero impar. Por ejemplo, si n vale 3 entonces cada
smbolo se transmite como 111 000. El decodificador opera por mayora de votos. Si la
mayora bits recibidos es 0 decide que el smbolo transmitido fue 0. Caso contrario decide por
el 1.
Con este esquema, un error, es decir, una deteccin incorrecta, puede ocurrir siempre
que se reciban m+1 ms bits incorrectos. Para n = 3 la deteccin ser incorrecta cuando se
reciban 2 3 bits incorrectos de un mismo bloque. La probabilidad P
e
de recibir
incorrectamente un smbolo codificado, es
( )
i n i
n
m i
e
p p
i
n
P

+ =

|
|
.
|

\
|
=

1
1
(4)
Los resultados de la (4) se agrupan en la tabla siguiente, para distintos valores de n.
Tasa de cdigo
r = 1/n
Probabilidad de error
P
e

1 10
-2

1/3 3 x 10
-4

1/5 10
-6

1/7 4 x 10
-7

1/9 10
-8

1/11 5 x 10
-10


Ntese que a medida que se achica r se hace ms pequea la probabilidad de error.
Plantendose por ejemplo, un objetivo de P
e
= 10
-8
, si bien con r = 1/3 se cumple la (3), la P
e

no queda satisfecha. Esto significa que debo buscar otros valores de k y n que me den 1/3. Sin
embargo, el objetivo s se cumple para r = 1/9 ms chico.
Tipos de control de error
Antes de entrar en detalle con los cdigos redundantes veamos las dos maneras bsicas
en la que tal redundancia es explotada para el control de errores. Una de estas maneras se
llama deteccin de error y retransmisin. Como su nombre lo indica, en este caso no hay
correccin de error sino solamente deteccin. El receptor detecta el error valindose de los
bits de redundancia pero no lo corrige, simplemente solicita al transmisor que vuelva a
transmitir el dato. Ntese que en este caso se requiere una comunicacin de dos vas para que
puedan dialogar el transmisor y el receptor.
El segundo tipo de control de error es el control de error hacia adelante (FEC, forward
error control), o control de error anticipativo. Requiere comunicacin de una sola va y en este
caso los bits de redundancia se usan para la deteccin y posterior correccin de errores. Sin
embargo, como veremos ms adelante, no es posible corregir todos los patrones de error o
situaciones de error posibles.
Respecto a la comunicacin de una o dos vas que se menciona antes, podemos decir
que la comunicacin entre dos terminales se puede clasificar de tres maneras. Supngase dos
terminales A y B. Se dice que la comunicacin entre ambas es simplex cuando slo puede
realizarse en un sentido (por ejemplo desde A hacia B pero no desde B hacia A). La
comunicacin se dice que es half-duplex (o semiduplex) cuando se puede realizar en ambos
6 Codificacin de canal
sentidos pero no simultneamente (por ejemplo un par de walkies talkies). Y finalmente la
comunicacin es full duplex cuando se puede realizar en ambos sentidos y simultneamente.
Solicitud de repeticin automtica (Automatic Repeat Request)
Cuando el control de errores consiste en la deteccin del error solamente, el sistema de
comunicaciones necesita disponer de un modo de alertar al transmisor de que un error se ha
detectado y que se necesita una retransmisin. Este procedimiento se lo conoce como solicitud
de repeticin automtica (ARQ, Automatic Repeat Request). En la Figura 4 se ven tres de los
mecanismos ms conocidos del procedimiento ARQ. En cada diagrama la escala de tiempos
crece de izquierda a derecha. En el primer procedimiento, llamado stop and wait (parar y
esperar), el transmisor espera un mensaje de acknowledgment (ACK) o mensaje de
confirmacin despus de cada transmisin para saber si sigue con la siguiente transmisin. Si
ocurre un error en el receptor, ste enva un acknowledgment negativo (NAK) al transmisor y
ste retransmite el bloque de datos afectado antes de seguir transmitiendo con el bloque que
corresponda en la secuencia. En este mecanismo es suficiente una comunicacin half duplex
ya que la comunicacin es en ambos sentidos pero no simultneamente.

Figura 4. Esquemas ARQ. (a) Stop and wait (parar y esperar). Es half duplex. (b) ARQ continuo con
pullback (full duplex). (c) ARQ continuo con repeticin selectiva (full duplex).

El segundo mecanismo de ARQ se llama ARQ continuo con pullback. En este caso se
requiere una comunicacin full duplex. Ambas terminales estn transmitiendo
simultneamente. El transmisor enva datos y el receptor enva mensajes de acknowledgment.
Vase en la Figura 4(b) que se le ha asignado una secuencia de nmeros a los bloques de
Codificacin de canal 7
datos. Los mensajes ACK y NAK necesitan usar a tales nmeros como referencia o en otro caso
se necesita conocer el retardo de propagacin para que el transmisor sepa a qu bloque de
datos corresponde el ACK o NAK que envi el receptor. En el ejemplo (b) de la Figura 4 se
muestra un retardo fijo de 4 bloques entre el mensaje transmitido y el acknowledgment
recibido simultneamente. Por ejemplo, cuando se est transmitiendo el bloque de mensaje 8,
simultneamente se est recibiendo un NAK que corresponde al mensaje 4. En este tipo de
mecanismo ARQ, cuando el transmisor recibe un NAK vuelve hacia atrs hasta el bloque de
datos errneo y comienza a transmitir la secuencia de nuevo desde all.
El ltimo tipo de mecanismo ARQ que se muestra en la Figura se llama ARQ continuo
con repeticin selectiva. Al igual que en el segundo caso se utiliza un canal full duplex pero
aqu, cuando el transmisor recibe un NAK retransmite solamente el bloque de datos que ha
sido errneo y luego contina con la secuencia normalmente (ntese cmo el bloque 4 fue
intercalado entre los bloques 8 y 9).
La eleccin de algunos de estos mecanismos ARQ depende de la eficiencia buscada y de
la posibilidad o no de usar un canal full duplex. El canal half duplex del ejemplo (a) es menos
costoso que el canal full duplex, sin embargo, la ineficiencia asociada a este mecanismo se
puede ver en los time slots en blanco que hay entre cada bloque. Como contraparte, en los
ejemplos (b) y (c) se ve una mejor eficiencia en la comunicacin (no se desperdician time
slots) pero un canal full duplex es ms costoso.
La diferencia fundamental entre ARQ y la correccin de error hacia delante (FEC) es que
el primero consiste simplemente en una deteccin de error y el hardware asociado es ms
sencillo y se requiere mucho menos redundancia que en el caso de FEC. Sin embargo, el FEC
es ms conveniente en los siguientes casos:
1. No se dispone una comunicacin desde el receptor hacia el transmisor o bien el
retardo que introducira un ARQ es muy grande.
2. El nmero de errores esperados es bastante grande y se requieren excesivas
retransmisiones.
3. El retardo en la comunicacin es excesivamente elevado (por ejemplo la
comunicacin con una sonda espacial).
Secuencias estructuradas
Como se dijo anteriormente una de las reas pertenecientes a la codificacin de canal
consiste en agregar bits de redundancia a los bits de datos de manera tal que puedan ayudar a
detectar y/o corregir errores cuando stos se producen como consecuencia del ruido que
afecta al canal de comunicacin. Comenzaremos primero estudiando los cdigos de verificacin
de paridad (parity check codes). Estos procedimientos son clasificados como secuencias
estructuradas ya que representan mtodos de insercin de redundancia en forma estructurada
en una fuente de datos de manera tal que se pueda detectar o corregir la presencia de errores.
Estas secuencias estructuradas se dividen en dos grupos: cdigos de bloque y cdigos
convolucionales. Primeramente trataremos con los cdigos de bloque.
Tasa de cdigo y redundancia
En el caso de los cdigos de bloque, la fuente de datos es segmentada en bloques de k
bits de datos, llamados tambin bits de informacin o bits de mensaje. Cada bloque puede
representar un mensaje de un total de 2
k
mensajes diferentes. El codificador transforma este
grupo de k bits en un grupo o bloque ms grande de n bits de longitud, llamados bits de
cdigo o smbolos de canal. A este bloque resultante tambin se lo llama codeword. Los (n k)
bits que el codificador le agrega al bloque inicial de k bits se llaman bits de redundancia, bits
de paridad o bits de verificacin. Estos bits de redundancia no llevan informacin. Este
8 Codificacin de canal
nuevo bloque que se ha formado mediante el codificador se lo identifica como cdigo (n, k). El
cociente entre la cantidad de bits redundantes y la cantidad de bits de datos, (n k)/k, se
llama redundancia del cdigo, y la relacin entre la cantidad de bits de datos y la cantidad total
de bits, k/n se llama tasa de cdigo, como ya se nombr oportunamente.
El agregado de redundancia a los bits de mensaje produce un aumento del ancho de
banda requerido para la transmisin. Por ejemplo, una tcnica de control de error que usa una
tasa de cdigo de (es decir, 100% de redundancia) va a necesitar el doble de ancho de
banda que para el caso en que no est codificado. Esto es intuitivamente claro, ya que se
deben transmitir el doble de bits en el mismo tiempo y por lo tanto el tiempo T
b
de cada bit se
reduce a la mitad, duplicndose el ancho de banda. Como otro ejemplo, si se usa un esquema
de codificacin cuya tasa de cdigo sea , es decir 33% de redundancia, el ancho de banda
aumenta en un factor de 4/3.
Cdigos de verificacin de paridad simple
Un cdigo con bit de paridad simple es una construccin que se hace agregando un solo
bit de redundancia (bit de paridad) a un grupo o bloque de bits de datos. Este bit de paridad
toma el valor 1 0, segn sea, para forzar a que la suma de todos los bits del cdigo
(incluyendo el bit de paridad) sea par o impar. La operacin de suma se hace en aritmtica de
mdulo 2 (es decir, es una operacin lgica OR exclusiva). Para verlo de otro modo, decimos
que se agrega un bit de paridad de tal manera que la cantidad de unos en el bloque siempre
sea par o siempre sea impar, segn la convencin que se haya establecido de antemano. Para
el primer caso el mtodo se llama codificacin con bit de paridad par y en el segundo caso
codificacin con bit de paridad impar. Ntese que si la codificacin es segn bit de paridad par
entonces la suma en mdulo 2 de todos los bits siempre da 0. Para el caso de bit de paridad
impar la suma siempre da 1. En la Figura 5 se muestra un ejemplo de cdigo de paridad par.

Figura 5. Ejemplo de cdigo de paridad par.

Una vez que el bloque llega al receptor se debe realizar la decodificacin y determinar si
se ha producido un error o no. Esta verificacin se hace sumando en mdulo 2 todos los bits
del bloque y comprobando el resultado. Si se us paridad par y la suma da 0 entonces no hay
errores. Por el contrario, si estando codificado con paridad par el resultado da 1 quiere decir
que un error ha ocurrido.
Indudablemente, este cdigo (como todos en realidad) no es perfecto y pueden darse
casos en los que ocurren errores y el sistema no los detecta. Por ejemplo, si ocurren 2 errores
en el bloque transmitido, y se est usando paridad par, el resultado de la suma de todos los
bits en el decodificador va a dar 0. En tal caso el decodificador no estara detectando el error.
Es ms an, lo mismo pasa si se producen 4, 6, 8, etc. errores. Por el contrario, el sistema
ser capaz de detectar 1, 3, 5, etc. errores.
Para este esquema de codificacin la tasa de cdigo es k/(k+1). La ventaja que tiene
este esquema es su sencilla implementacin. Un conjunto de compuertas XOR permiten
generar el bit de paridad, como lo muestra la Figura 6.
Codificacin de canal 9

Figura 6. Generacin de bit de paridad. El bit de polarizacin es 1 para
paridad impar 0 para paridad par.

Hay que tener en cuenta que este esquema de codificacin no puede corregir los
errores sino que slo puede detectarlos. Teniendo en cuenta que slo se puede detectar un
nmero impar de errores (o par, si el bit de paridad es impar) tratemos de cuantificar la
eficiencia de este cdigo. Asumiendo que todos los bits del bloque son igualmente probables y
que son independientes entre s, podemos escribir la probabilidad de que ocurran j errores en
un bloque de n bits de la siguiente manera:

j n j
p p
j
n
n j P

|
|
.
|

\
|
= ) 1 ( ) , ( (5)
donde p es la probabilidad de que un bit sea recibido con error o probabilidad de
transicin del canal. El nmero combinatorio

)! ( !
!
j n j
n
j
n

=
|
|
.
|

\
|

representa las diferentes maneras en que j bits pueden ser errneos dentro de un
bloque de n bits. Por lo tanto, en un cdigo de deteccin de error con paridad simple, la
probabilidad de que un error no sea detectado es:

|
|
.
|

\
|
=
impar) n (para 1)/2 - (n
par) n (para 2 /
1
2 2
) 1 (
2
n
j
j n j
nd
p p
j
n
P (6)
Ejemplo. Configurar un cdigo de deteccin de error con bit de paridad par, (4, 3), de
tal manera que el bit de paridad aparezca en el extremo izquierdo del cdigo. Cules son los
errores que puede detectar? Calcular la probabilidad de que NO se detecte un mensaje
errneo, asumiendo que todos los bits son independientes entre s y que la probabilidad de
error de bit del canal es p = 10
-3
.
Solucin.
Mensaje Paridad Cdigo de bits
000 0 0 000
100 1 1 100
010 1 1 010
110 0 0 110
001 1 1 001
101 0 0 101
011 0 0 011
111 1 1 111

10 Codificacin de canal
El cdigo es capaz de detectar 1 3 errores en cada smbolo. La probabilidad de que no
se detecte un error que ha ocurrido es igual a la probabilidad de que ocurran 2 4 errores en
cualquier lugar del cdigo.
6 4 3 3 3 2 3
4 3 2
4 2 2
4 2 2
10 6 ) 10 ( 7 ) 10 ( 12 ) 10 ( 6
7 12 6
) 1 ( 6
4
4
) 1 (
2
4

+ =
+ =
+ =
|
|
.
|

\
|
+
|
|
.
|

\
|
=
p p p
p p p
p p p P
nd

Ganancia de cdigo
La Figura 7 muestra curvas caractersticas de probabilidad de error de bit P
B
en funcin
de E
b
/N
0
. Se compara una curva caracterstica de modulacin bipolar en banda base, sin
codificar, con otras dos curvas del mismo esquema de modulacin pero codificadas. Una lleva
un cdigo (24, 12) y la otra un cdigo (127, 92). En el primer caso (n - k) = 12 y en el
segundo caso (n k) = 35. Obviamente, es de esperar que el agregado de un cdigo de
deteccin o correccin de error produzca una mejora en la performance de P
B
. Sin embargo,
ntese en la figura que las curvas se cruzan casi en un punto (aproximadamente en 5,5 dB)
que por debajo o por encima de l la variacin de performance de P
B
presenta caractersticas
diferentes. Concretamente, los cdigos de error comienzan a ser efectivos a partir de E
b
/N
0

mayor a esos 5,5 dB. Para valores menores a este umbral los cdigos empeoran la
performance en lugar de mejorarla. La explicacin de esta caracterstica es la siguiente: el
bloque con redundancia (cualquiera sea ella) se debe transmitir a la misma velocidad que el
bloque sin redundancia (sin codificar). Es decir, en cualquier caso la velocidad de transmisin
de smbolo debe ser la misma. Al agregar bits de redundancia con la obligacin de no modificar
la tasa de transmisin de smbolos, es necesario que cada bit que forma el cdigo tenga menor
duracin (menor tiempo de bit T). Esto produce una menor energa de bit en cada bit del
bloque codificado (ya que la energa de bit es directamente proporcional a T), con lo cual
aumenta la probabilidad de error de bit pues es dependiente de E
b
. Cuando la tasa de
transmisin es elevada, o sea T pequeo, la relacin E
b
/N
0
tiende a ser pequea. Si encima se
le agregan bits de redundancia entonces E
b
tiende a ser ms pequeo an, con lo cual los bits
de redundancia tienen ms influencia en la energa de bit que en la mejora de performance
que pueden producir por s mismos. Superado un cierto umbral de E
b
(digamos que la tasa de
transmisin tiende a ser ms lenta) entonces los bits de redundancia empiezan a tener ms
contribucin por su efecto de deteccin o correccin que por su efecto indeseado de
disminucin de la energa de bit E
b
.
Por lo tanto, los cdigos de deteccin o correccin de error comienzan a ser efectivos
por encima de un cierto umbral de la relacin E
b
/N
0
. La ganancia de cdigo es la reduccin,
expresada en decibeles, de la relacin E
b
/N
0
requerida para un cierto valor de probabilidad de
bit, que se obtiene usando un cdigo de control de error. Por ejemplo, en la figura se ve que
para una probabilidad de error de bit P
B
= 10
-5
, el cdigo (24, 12) tiene una ganancia de
cdigo de aproximadamente 2 dB respecto del mismo esquema sin codificar. El cdigo (127,
92) tiene una ganancia de aproximadamente 2,5 dB.
Ejemplo. Comparar la probabilidad de error de mensaje, en un enlace de
comunicaciones, con cdigo corrector de error y sin l. Asumir las siguientes caractersticas
para el sistema sin codificar: modulacin bipolar en banda base, ruido blanco Gaussiano,
S/N
0
= 43.776, tasa de datos R = 4.800 bits/s. Para el caso codificado asumir un cdigo
corrector de error (15,11) capaz de corregir un error simple dentro de un bloque de 15 bits.
Solucin.
Sea p la probabilidad de error de bit (probabilidad de transicin) del sistema sin
codificar:
Codificacin de canal 11

Figura 7. Comparacin de curvas de probabilidad de error de bit
entre un sistema sin codificar (1, 1) y dos esquemas codificados.

( )
0
/ 2 N E Q p
b
=
y p
c
la probabilidad de error de bit (probabilidad de transicin) del sistema codificado:
( )
0
/ 2 N E Q p
c c
=
E
b
/N
0
es la energa de bit por densidad espectral de ruido del sistema sin codificar y
E
c
/N
0
es la energa de bit por densidad espectral de ruido del sistema codificado. Q(x) es la
funcin de error.
Con el sistema sin codificar tenemos lo siguiente:
dB) 6 , 9 ( 12 , 9
0 0
= =
RN
S
N
E
b

( )
5
0
10 02 , 1 24 , 18
2

= =
|
|
.
|

\
|
= Q
N
E
Q p
b
(7)
La probabilidad de que el bloque sin codificar sea recibido con al menos un error es:
12 Codificacin de canal
( )
4
nte correctame recibidos
sean codificar
sin bits 11 los
que de ad probabilid
11
10 12 , 1 1 1
) 1 ( 1

= =
=
43 42 1
p
p P
k
M
(8)
Con codificacin:
En este caso, la tasa de smbolo es 15/11 veces la tasa de bit.
bps 6545
11
15
4800 =
c
R
dB) (8,25 688 , 6
0 0
= =
N R
S
N
E
c
c

Ntese que la relacin E
c
/N
0
para cada bit del cdigo es menor que para los bits sin
codificar ya que se ha aumentado la tasa de bit (pues los bits son ms pequeos debido a su
menor duracin) y la potencia se supone constante. Entonces, con el resultado anterior,
tenemos:
( )
4
0
10 36 , 1 38 , 13
2

= =
|
|
.
|

\
|
= Q
N
E
Q p
c
c
(9)
Como consecuencia de la mencionada disminucin de la energa de bit, la probabilidad
de error de bit ha empeorado y an no se ve la supuesta mejora que debera brindar el
sistema con cdigo de correccin de error. Ahora vamos a calcular la probabilidad de error de
mensaje. Es decir, calculamos la probabilidad de que se produzcan dos bits errneos o tres, o
cuatro, etc.:
( ) ( )
j
c
j
c
n
j
c
M
p p
j
P

=
=

|
|
.
|

\
|
=

15
15
2
1
15
(10)
La sumatoria comienza en j = 2 ya que el cdigo corrige todos los errores simples
dentro del bloque de n = 15 bits. Se obtiene una buena aproximacin usando slo el primer
trmino de la sumatoria:
( ) ( )
6 13 2
10 94 , 1 1
2
15

=
|
|
.
|

\
|
=
c c
c
M
p p P (11)
Ahora se ve, comparando los resultados, que la introduccin del cdigo corrector de
error produce una mejora de 58 veces.
Cdigos de bloque lineales
Los cdigos de bloque lineales son una clase de cdigos de verificacin de paridad ms
general que los cdigos con paridad simple y tambin pueden ser caracterizados por la
notacin (n, k) descripta anteriormente. Una vez ms, el codificador transforma un mensaje de
k bits (al que llamaremos vector de mensaje) en un bloque ms grande de n bits (al que
llamaremos vector de cdigo).
Los k bits del mensaje pueden formar 2
k
mensajes distintos a los que llamaremos
k-uplas (secuencias de k dgitos). Los n bits del bloque pueden formar, como mximo, 2
n

diferentes secuencias, llamadas n-uplas. El procedimiento de codificacin asigna a cada uno de
Codificacin de canal 13
los 2
k
mensajes de la k-upla uno de los 2
n
posibles mensajes de la n-upla. Un cdigo de bloque
representa una asignacin uno a uno, mediante la cual los 2
k
mensajes de la k-upla son
mapeados de manera unvoca en un nuevo conjunto de 2
k
mensajes pertenecientes a la
n-upla.
Espacios vectoriales
El conjunto formado por una n-upla, V
n
, es llamado espacio vectorial sobre el campo
binario de dos elementos, 0 y 1. El campo binario tiene dos operaciones aritmticas, suma y
multiplicacin. El resultado de estas operaciones pertenece tambin al campo binario. En el
campo binario estas reglas aritmticas se definen de la siguiente manera:
Suma Multiplicacin
0 0 = 0 0 0 = 0
0 1 = 1 0 1 = 0
1 0 = 1 1 0 = 0
1 1 = 0 1 1 = 1

La operacin designada por el smbolo corresponde a una suma en mdulo 2.
Un subconjunto S del espacio vectorial V
n
se llama subespacio si cumple con las dos
condiciones siguientes:
1. El vector nulo (todos ceros) pertenece a S.
2. La suma de dos vectores en S tambin pertenece a S.
Estas propiedades son fundamentales para la caracterizacin algebraica de los cdigos
de bloque lineales. Supngase que V
i
y V
j
son dos vectores de cdigo pertenecientes a un
cdigo de bloque binario. Se dice que el cdigo es lineal si, y slo si, (V
i
V
j
) es tambin un
vector de cdigo. Por lo tanto, un cdigo de bloque lineal es aquel cuyos vectores,
pertenecientes al subespacio, no pueden crear vectores fuera dicho subespacio.

Figura 8. Estructura de un espacio vectorial.
14 Codificacin de canal
Por ejemplo, el espacio vectorial V
4
queda completamente definido por las siguientes
2
4
= 16 4uplas:
0000 0001 0010 0011 0100 0101 0110 0111
1000 1001 1010 1011 1100 1101 1110 1111
Un ejemplo de un subconjunto de V
4
que forma un subespacio es
0000 0101 1010 1111
Es fcil comprobar que la suma de dos vectores cualesquiera de este subespacio da
como resultado otro vector perteneciente a ese subespacio. Un conjunto de 2
k
n-uplas se llama
cdigo lineal de bloque si, y slo si, es un subespacio del espacio vectorial V
n
de todas las n-
uplas (2
n
). La Figura 8 trata de ilustrar este concepto. Podemos imaginar al espacio vectorial
V
n
formado por 2
n
n-uplas (el total de puntos que se muestra en la figura). Dentro de este
espacio, existe un subconjunto de 2
k
n-uplas que forman un subespacio. Estos 2
k
vectores se
muestran como puntos ms grandes y representan a los vectores de cdigo que son vlidos.
Un mensaje, antes de ser transmitido, se codifica previamente en uno de los 2
k
vectores de
cdigo vlidos y luego finalmente se transmite. Como consecuencia del ruido que hay en el
canal de comunicacin, al receptor llega una versin perturbada del cdigo original. Ese vector
perturbado es uno de los 2
n
vectores de la n-upla que forma el espacio V
n
, y que puede ser un
punto grande o un punto chico de los que se muestran en la figura. Si el vector perturbado no
difiere mucho del vector original (vector vlido), es decir, no est muy lejos del vector original,
entonces el decodificador puede decodificar el mensaje correctamente. Cmo? Eligiendo el
punto grande ms cercano. Si el vector recibido se apart mucho de su posicin original en la
Figura 8, entonces el decodificador elige una vez ms el punto grande ms cercano, pero en
este caso la decodificacin va a ser errnea. La idea detrs de la eleccin de un cdigo se
puede establecer as:
1. Tratar de buscar un cdigo eficiente extrayendo del espacio V
n
la mayor cantidad
posible de vectores de cdigo. Esto es equivalente a decir que se busca agregar la menor
cantidad de redundancia posible. Es decir, la diferencia entre n y k debera ser lo ms pequea
posible para no agregar mucho ancho de banda extra.
2. Buscar que los vectores de cdigo estn lo ms apartados posible uno de otro (es
decir, que sean lo menos parecido posible). Esto es para que cuando el cdigo de vector sea
perturbado por el ruido se siga decodificando correctamente.
Ejemplo de cdigo de bloque lineal
Veamos la siguiente asignacin de cdigos, correspondiente a un esquema de
codificacin (6, 3). Hay 2
k
= 2
3
= 8 vectores de mensaje y por lo tanto hay 8 vectores de
cdigo. Hay 2
n
= 2
6
= 64 6-uplas en el espacio vectorial V
6
. Los vectores de mensaje y los
vectores de cdigo se muestran ordenados en la tabla siguiente.
Vector de mensaje Vector de cdigo
0 0 0 0 0 0 0 0 0
1 0 0 1 1 0 1 0 0
0 1 0 0 1 1 0 1 0
1 1 0 1 0 1 1 1 0
0 0 1 1 0 1 0 0 1
1 0 1 0 1 1 1 0 1
0 1 1 1 1 0 0 1 1
1 1 1 0 0 0 1 1 1

Codificacin de canal 15
Es fcil verificar que los ocho vectores de cdigo que se muestran arriba forman un
subespacio de V
6
. Esto es, el vector nulo est presente y la suma de dos vectores de cdigo
cualesquiera produce como resultado otro vector de cdigo que pertenece al subespacio. Por lo
tanto, estos vectores de cdigo representan un cdigo de bloque lineal, conforme a la
definicin.
Matriz generadora
Si el valor de k es grande, armar una tabla como la vista en el ejemplo anterior
resultara realmente muy engorroso. Por ejemplo, para un cdigo (127, 92) hay 2
92
vectores
de cdigo distintos, esto es ms o menos 5 x 10
27
. Si el procedimiento de codificacin consiste
en una tabla entonces se necesitara una cantidad de memoria extremadamente grande para
almacenar a todos los vectores de cdigo. Para evitar esto, se recurre a un tratamiento
matricial del tema.
Dado que el conjunto de vectores de cdigo es un subespacio de dimensin k del
espacio vectorial de dimensin n (k < n), siempre es posible encontrar un conjunto de n-uplas,
menor que 2
k
, que puedan generar todos los 2
k
vectores miembros del subespacio. El conjunto
ms pequeo de vectores linealmente independientes que generan al subespacio se llama base
del subespacio y el nmero de vectores de esta base es la dimensin del subespacio. Cualquier
base formada por k n-uplas linealmente independientes, V
1
, V
2
, ..., V
k
puede ser usada para
generar los vectores de cdigo de bloque requeridos. Esto se debe a que cada vector de cdigo
es una combinacin lineal de V
1
, V
2
, ..., V
k
. Esto es, cada vector de cdigo U (de un total de
2
k
) puede ser escrito como:

k 2 1
V V V U
k
m m m + + + = L
2 1
(12)
donde m
i
= (0 1) son los dgitos de mensaje, con i desde 1 hasta k.
En general, podemos definir una matriz generadora mediante el siguiente arreglo de
k x n:

(
(
(
(
(

=
(
(
(
(

=
kn k k
n
n
v v v
v v v
v v v
L
M
L
L
M
2 1
2 22 21
1 12 11
k
2
1
V
V
V
G (13)
Por convencin, los vectores de cdigo se designan por vectores fila. As, el mensaje m,
una secuencia de k bits de mensaje, es una matriz de 1 fila por k columnas:

k
m m m , , ,
2 1
K = m
La generacin del vector de cdigo se puede escribir en forma matricial de la siguiente
manera:
mG U = (14)
Para el ejemplo del cdigo (6, 3) visto anteriormente, una matriz generadora sera:

(
(
(

=
(
(
(

=
1 0 0
0 1 0
0 0 1

1 0 1
1 1 0
0 1 1
3
2
1
V
V
V
G (15)
donde V
1
, V
2
y V
3
son tres vectores linealmente independientes (un subconjunto de los
ocho vectores de cdigo) que pueden generar todos los vectores de cdigo. La independencia
16 Codificacin de canal
lineal se comprueba viendo que la suma de dos cualesquiera de ellos no da como resultado a
ninguno de los tres vectores generadores. Para generar el vector de cdigo correspondiente a,
por ejemplo, el vector de mensaje 1 1 0, se aplica entonces la siguiente ecuacin:
| |
3 2 1
3
2
1
V V V
V
V
V
U + + =
(
(
(

= 0 1 1 0 1 1

0) 1 1 mensaje de vector el para cdigo de (vector 101110
000000 011010 110100
=
+ + = U

Por lo tanto, el vector de cdigo correspondiente a un vector de mensaje es una
combinacin lineal de las filas de G. Ya que los cdigos quedan completamente definidos por G
el codificador slo necesita almacenar las k filas de G en lugar todos los 2
k
vectores de cdigo.
Ntese que, para el ejemplo visto es suficiente un arreglo de 3 x 6 en lugar de uno de 8 x 6.
Cdigos de bloque lineales sistemticos
Un cdigo de bloque lineal sistemtico (n, k) es un mapeo desde un vector de mensaje
k-dimensional a un vector de cdigo n-dimensional, de tal manera que parte de la secuencia
generada coincide con los k dgitos del mensaje. Es decir, un cdigo sistemtico es aquel en el
que la secuencia de k bits del mensaje aparece explcitamente en el cdigo. Los restantes
(n-k) dgitos son bits de paridad. Un cdigo sistemtico tiene una matriz generadora de la
siguiente forma:

| |
(
(
(
(
(

=
=

1 0 0
0 1 0
0 0 1

) ( 2 1
) ( 2 22 21
) ( 1 12 11
L
M
L
L
L
M
L
L
k n k k k
k n
k n
k
p p p
p p p
p p p
I P G
(16)
donde P se llama matriz de paridad (cada p
ij
vale 0 1) e I
k
es una matriz identidad de
dimensin k x k (tiene unos en su diagonal principal y ceros en el resto de las posiciones).
Con esta generacin sistemtica no es necesario almacenar en memoria la matriz identidad.
Combinando la (14) y la (16) cada vector de cdigo se puede expresar como sigue:
| |
(
(
(
(
(

1 0 0
0 1 0
0 0 1
, , , , , ,
) ( 2 1
) ( 2 22 21
) ( 1 12 11
2 1 2 1
L
M
L
L
L
M
L
L
K K
k n k k k
k n
k n
k n
p p p
p p p
p p p
m m m u u u
donde

1),...n k - (n i para
k) - (n 1,..., i para
2 2 1 1
+ = =
= + + + =
+ k n i
ki k i i i
m
p m p m p m u L

Dada la k-upla de mensaje

k
m m m , , ,
2 1
K = m
y la n-upla general del vector de cdigo

n
u u u , , ,
2 1
K = U
Codificacin de canal 17
entonces el vector de cdigo sistemtico puede expresarse como:

4 4 4 3 4 4 4 2 1
K
4 4 4 3 4 4 4 2 1
K
mensaje de bits
2 1
paridad de bits
2 1
, , , , , , ,
k k n
m m m p p p

= U (17)
donde

) ( ) ( 2 2 ) ( 1 1
2 22 2 12 1 2
1 21 2 11 1 1
k n k k k n k n k n
k k
k k
p m p m p m p
p m p m p m p
p m p m p m p

+ + + =
+ + + =
+ + + =
L
L
L
(18)
Normalmente los cdigos sistemticos se escriben poniendo del lado izquierdo los bits
de mensaje y del lado derecho los bits de paridad. Ntese la caracterstica de los cdigos
sistemticos. Los bits de paridad se forman como combinacin lineal de los bits de
mensaje. Por eso tienen particular inters. La matriz identidad se puede obviar del codificador
ya que los bits de paridad p
i
se generan solamente con la matriz de paridad P. Luego, el vector
U se forma con los bits de mensaje (en forma directa, sin ninguna operacin matemtica),
ms los bits de paridad generados con P que se adjuntan a los bits de mensaje.
De acuerdo a lo que acabamos de ver, para el cdigo (6, 3) del ejemplo visto antes, el
vector de cdigo puede escribirse as:
| |
43 42 1 43 42 1
3
I P
U
(
(
(

=
1 0 0
0 1 0
0 0 1

1 0 1
1 1 0
0 1 1
, ,
3 2 1
m m m (19)

{{{
6 5 4
3 2 1
3 2 1 3 2 2 1 3 1
, , , , ,
u u u
u u u
m m m m m m m m m
43 42 1 43 42 1 43 42 1
+ + + = U (20)
Se puede ver que los bits redundantes se forman de diferentes maneras. El primer bit
de paridad es la suma del primer y tercer bit de mensaje; el segundo bit de paridad es la suma
del primero y segundo bit de mensaje y el tercer bit de paridad es la suma del segundo y
tercer bit de mensaje. Una estructura de este tipo, comparada con los esquemas de un solo bit
de paridad, provee mayor capacidad para detectar y corregir errores.
Matriz de verificacin de paridad
Para poder realizar el proceso inverso en el receptor, es decir, para poder decodificar el
vector de cdigo recibido, definimos una matriz H a la que llamamos matriz de verificacin de
paridad. Por cada matriz generadora G de dimensin (k x n) existe una matriz H de dimensin
(n k) x n de tal manera que las filas de G son ortogonales a las filas de H. Esto significa que
GH
T
= 0, donde H
T
es la matriz transpuesta de H, y 0 es una matriz nula de dimensin
k x (n k). La matriz transpuesta de H es de dimensin n x (n k), cuyas filas son las
columnas de H y cuyas columnas son las filas de H. Para cumplir con los requerimientos de
ortogonalidad la matriz H se escribe como:
| |
T
k n
P I H

= (21)
Por lo tanto, la matriz transpuesta de H es:
18 Codificacin de canal

(
(
(
(
(
(
(
(
(
(
(

=
(

) ( 2 1
) ( 2 22 21
) ( 1 12 11
1 0 0
0 1 0
0 0 1
k n k k k
k n
k n
k n T
p p p
p p p
p p p
L
M
L
L
L
M
L
L
P
I
H
(22)
Se puede ver que GH
T
= 0:

| |
P P
P
I
I P GH
+ =
(

=
k n
k
T
(23)
Como P + P es la suma en mdulo 2 de dos matrices resulta P + P = 0.
Tambin se puede verificar que el producto UH
T
da cero:

0
0 m
GH m
H mG UH
=
=
=
=
) (
) (
T
T T

Teniendo la matriz H de verificacin de paridad se la puede usar para verificar si el
vector de cdigo recibido es un cdigo vlido del conjunto de vectores. U es un cdigo de
vector generado por la matriz G (o sea, un cdigo vlido) si, y slo si, UH
T
= 0.
Test de sndrome
Supongamos que el vector que estamos recibiendo no es igual al vector transmitido ya
que ha sido perturbado por el ruido. Digamos entonces que el vector recibido es r = r
1
,
r
2
,...,r
n
. Por lo tanto, hay 2
k
vectores U posibles, mientras que hay 2
n
vectores r posibles.
Podemos escribir:
e U r + = (24)
donde e = e
1
, e
2
,...,e
n
es el vector de error o patrn de error introducido por el canal.
Hay un total de 2
n
-1 potenciales patrones de error (el vector e = 0 no produce error) en el
espacio de 2
n
n-uplas. Se define sndrome de r:

T
rH S = (25)
El sndrome es el resultado de una verificacin o comprobacin de la paridad hecha
sobre el vector r para determinar si r es un miembro del conjunto de vectores de cdigo (o
sea, un vector vlido). Si r es miembro entonces el sndrome S tiene valor 0. Si r tiene errores
detectables entonces el sndrome tiene algn cierto valor distinto de cero. Si r tiene errores
corregibles entonces el sndrome tiene algn valor distinto de cero que puede ser asociado al
patrn de error que caus el error. El decodificador tomar acciones para detectar y corregir el
error (en el caso de un FEC) o bien solicitar una retransmisin (en el caso de un ARQ).
Combinando la (24) y la (25) se obtiene:
Codificacin de canal 19

T T
T
eH UH
H e U S
+ =
+ = ) (
(26)
Y como UH
T
= 0 entonces resulta

T
eH S = (27)
Ntese que el sndrome puede ser calculado tanto con el vector recibido r como con el
patrn de error e. Una propiedad importante de los cdigos lineales de bloque, fundamental
para el proceso de decodificacin, es que el proceso de mapeo entre los patrones de error
corregibles y el sndrome es uno a uno.
Ejemplo. Test de sndrome.
Supngase que se transmite el vector de cdigo U = 101110 del ejemplo de cdigo (6,
3) visto antes, y se recibe el vector r = 001110, es decir, se produce un error en el bit del
extremo izquierdo. Calcular el valor del sndrome S = rH
T
y verificar que es igual a eH
T
.
Solucin.
| |
| | | | ) perturbado cdigo de vector del (sindrome 0 0 1 1 1 , 1 1 , 1
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
0 1 1 1 0 0
= + + =
(
(
(
(
(
(
(
(

=
=
T
rH S

Calculando el sndrome por el otro camino resulta:
| | | | 0 0 1 0 0 0 0 0 1 = = =
T T
H eH S
Las propiedades del sndrome las podemos resumir como sigue:
1. El sndrome depende slo del patrn de error y no del codeword transmitido.
2. Dos patrones de error que difieren entre s por un codeword vlido tienen el mismo
sndrome.
3. El sndrome S es la suma de aquellas columnas de la matriz H correspondientes a
las ubicaciones del error.
4. Usando decodificacin con sndrome, un cdigo lineal de bloque (n, k) puede
corregir hasta t errores por codeword, siempre que n y k satisfagan el siguiente lmite de
Hamming:

|
|
.
|

\
|

t
i
k n
i
n
0
2 (28)
Si la (28) se cumple con el signo igual, se dice que el cdigo es perfecto.
20 Codificacin de canal
Correccin de error
En virtud de lo visto hasta ac, est claro que no slo es posible detectar un error sino
que tambin es posible corregirlo. Esto se debe a que se tiene la capacidad de conocer el
patrn de error a partir del clculo del sndrome. Escribamos las 2
n
n-uplas que representan
todos los posibles vectores recibidos en un arreglo tal que la primera fila contenga todos los
vectores de cdigo vlidos, comenzando por el vector nulo, y la primera columna contenga
todos los esquemas o patrones de error corregibles. Cada fila, llamada coset, consiste en un
patrn de error en la primera columna (llamado coset lder) seguido por los vectores de cdigo
vlidos perturbados por ese coset lder. Este arreglo (llamado arreglo estndar), para un
cdigo (n, k) se escribe de la siguiente manera:

k n k k n k n k n
k
k
k
k
i
j j i j j
i
i
i
+ + +
+ + +
+ + +
+ + +
2 2 2 2
2
2
2
2
3
2
3 3 2 3
2
2
2 2 2 2
2
2 1
e U e U e U e
e U e U e U e
e U e U e U e
e U e U e U e
U U U U
L L
M M M
L L
M M
L L
L L
L L
(29)
El arreglo contiene todas las 2
n
n-uplas del espacio V
n
(cada n-upla aparece slo una
vez). Cada coset consiste de 2
k
n-uplas. Por lo tanto hay (2
n
/2
k
) = 2
n-k
cosets. Supngase que
se transmite el vector U
i
sobre un canal con ruido. Si el patrn que causa el error es un coset
lder, el vector recibido ser decodificado correctamente. Si el patrn de error que causa la
perturbacin no es un coset lder entonces se producir una decodificacin errnea.
Si e
j
es el coset lder o patrn de error del j-simo coset, entonces U
i
+ e
j
es una n-upla
que pertenece a este coset o fila del arreglo estndar. El sndrome de esta n-upla es:

T
j
T
i
T
j i
H e H U H e U S + = + = ) (
Ya que U
i
es un vector de cdigo vlido resulta ser que U
i
H
T
= 0, y por lo tanto se
puede escribir:

T
j
T
j i
H e H e U S = + = ) ( (30)
De esta ltima ecuacin se puede ver que todos los miembros de un coset tienen el
mismo sndrome y por eso el sndrome es usado para estimar el patrn de error. El sndrome
para cada coset es diferente.
El proceso para la correccin de errores es el siguiente:
1. Calcular el sndrome de r usando S = rH
T
.
2. Localizar el patrn de error, e
j
, que tiene el mismo sndrome que el calculado en 1,
y cuyo valor es igual a rH
T
.
3. Este patrn de error se lo toma como el que causa la perturbacin en el canal.
4. El vector recibido corregido se calcula como U = r + e
j
. La suma es consecuencia de
las reglas de operacin en mdulo 2 (sumar o restar es lo mismo).
Codificacin de canal 21
Localizacin del patrn de error
Volviendo al ejemplo de cdigo (6, 3) visto al comienzo, ubicaremos ahora las 2
6
= 64
6-uplas de acuerdo al arreglo estndar que se muestra en la matriz (29):

010110 100010 001100 111000 111111 001011 100101 010001
100111 010011 111101 001001 001110 111010 010100 100000
010111 100011 001101 111001 111110 001010 100100 010000
001111 111011 010101 100001 100110 010010 111100 001000
000011 110111 011001 101101 101010 011110 110000 000100
000101 110001 011111 101011 101100 011000 110110 000010
000110 110010 011100 101000 101111 011011 110101 000001
000111 110011 011101 101001 101110 011010 110100 000000

Usando la (28) se puede verificar que este cdigo corrige todos los errores simples. Los
vectores de cdigo vlidos son los ocho vectores de la primera fila, y los patrones de error
corregibles son los ocho vectores lderes de la primera columna (incluyendo el patrn de error
nulo). Todos los patrones de error de 1 bit son corregibles. Ntese que luego de ubicar todos
los patrones de error de 1 bit queda todava algn patrn ms ya que no se ha completado la
64 6-upla. Es decir, queda un coset libre (con un coset lder asociado) que puede ser
completado y por lo tanto hay un patrn de error ms que puede ser corregido. Al respecto,
contamos con flexibilidad para elegir este patrn de manera tal de completar la n-upla en el
ltimo del coset, sin que se repitan las 6uplas. En la tabla anterior, este patrn lder se eligi
como 010001. La decodificacin ser correcta si, y slo si, el patrn de error causado por el
canal es uno de los patrones lderes.
Calculamos ahora el sndrome correspondiente a cada una de las secuencias errneas
corregibles por medio del producto e
j
H
T
, para cada patrn lder:

(
(
(
(
(
(
(
(

=
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
j
e S

Patrn de error sndrome
000000
000001
000010
000100
001000
010000
100000
010001
000
101
011
110
001
010
100
111

Los resultados se muestran en la tabla anterior. Ya que cada sndrome es nico, el
decodificador puede identificar el patrn de error e al cual corresponde.
Como se dijo ya anteriormente, se recibe un vector r y se calcula su sndrome usando
la ecuacin S = rH
T
. Luego se usa ese sndrome en la tabla anterior para encontrar el
22 Codificacin de canal
correspondiente patrn de error. Este patrn de error es una estimacin del error y se denota
como . Finalmente, el decodificador suma a r para obtener una estimacin del vector
transmitido, al que lo identificar por .
) ( ) (

e e U e e U e r U + + = + + = + = (31)
Si el patrn de error estimado es igual al patrn real, o sea, si = e entonces = U.
Por el contrario, si el error estimado es incorrecto entonces el decodificador estimar un vector
de cdigo que en realidad no fue transmitido y en tal caso se producir un error indetectable.
Ejemplo. Supongamos que se transmite U = 101110 y que el vector recibido es
r = 001110. Mostrar cmo el decodificador, usando la tabla de sndrome anterior, puede
corregir el error.
Solucin.
El sndrome r se calcula como:
| | | | 0 0 1 0 1 1 1 0 0 = =
T
H S
Usando la tabla de la pgina anterior, el patrn de error estimado corresponde a:
0 0 0 0 0 1 = e
El vector corregido, estimado, es

0 1 1 1 0 1
0 0 0 0 0 1 0 1 1 1 0 0

=
+ =
+ = e r U

Ya que el patrn de error estimado es igual al patrn de error verdadero el
procedimiento para este ejemplo conduce a = U.
Peso y distancia de vectores binarios
La capacidad de correccin de error de un sistema puede ser analizada investigando su
estructura. El peso de Hamming, w(U), de un vector U queda definido como el nmero de
elementos distintos de cero en U. Ya que U es un vector con elementos binarios, el peso de
Hamming de U es igual al nmero de unos que tiene el vector. Por ejemplo, si
U = 100101101, entonces w(U) = 5. La distancia de Hamming entre dos vectores U y V,
d(U, V), queda definida como el nmero de elementos diferentes entre ambos vectores. Por
ejemplo,
U = 100101101
V = 011110100
d(U, V) = 6
Debido a las propiedades de la suma en mdulo 2, si sumamos U y V obtenemos:
U + V = 111011001
Por lo tanto, se puede apreciar que la distancia de Hamming entre dos vectores es el
peso de Hamming de la suma (o resta) de ambos. Esta propiedad es til para hallar la
distancia mnima entre dos vectores de un conjunto de codewords. Como la suma de dos
Codificacin de canal 23
codewords da como resultado otro codeword perteneciente al subespacio, la distancia mnima
viene dada por aquel vector de cdigo del subespacio que tiene la menor cantidad de unos
(sin considerar el vector nulo). Esto nos libera de calcular la distancia entre cada uno de los
pares posibles de vectores de cdigo. La distancia entre vectores de cdigo nos da una pauta
de qu tan separados estn entre s. En particular, la distancia mnima d
min
nos da el peor caso
o peor separacin. Con esto podemos determinar la capacidad de correccin o deteccin de
errores que tiene el cdigo.
Una vez que se recibe el vector r, la tarea del decodificador es estimar cul fue el
vector U transmitido. La estrategia es entonces buscar aquel vector U que presente la menor
distancia respecto del vector r recibido.
En la Figura 9 se muestra la distancia de Hamming entre dos vectores, U y V. Los
puntos negros entre ambos representan casos posibles de vectores recibidos r. En la
Figura 9(a) se muestra un vector recibido r
1
que tiene distancia 1 respecto del vector U y
distancia 4 respecto del vector V. Si el detector est diseado para corregir errores entonces
optar por el vector U que es el ms cercano a r
1
. Si r
1
fue el resultado de haber recibido
realmente el vector de cdigo U con un bit errneo, entonces la decodificacin es correcta.
Pero, si r
1
fue el resultado de haber recibido el vector de cdigo V con cuatro bits errneos
entonces la decodificacin es incorrecta. Una interpretacin similar puede hacerse para el
ejemplo (b) de la Figura 9, en donde un doble error en la transmisin de U permite una
decodificacin correcta, pero si se trata de un triple error en la transmisin de V entonces la
decodificacin es incorrecta ya que el detector toma una decisin errnea. Finalmente, en el
ejemplo (c), si el vector transmitido fue U y se producen tres errores, entonces el detector se
equivocar en la deteccin, ya que optar por estimar V que es el vector ms cercano. Si r
3

fue la consecuencia de haber recibido el vector de cdigo V con dos errores entonces la
deteccin ser correcta.

Figura 9. Correccin y deteccin de errores en funcin de la distancia de
Hamming.
24 Codificacin de canal
Si la tarea del receptor es detectar errores y no corregirlos, se puede ver en la
Figura 9 que cualquier vector recibido afectado por el ruido, representado por un punto negro
y que implica 1, 2, 3 4 bits errneos, puede ser detectado. Sin embargo, si se producen 5
errores en la transmisin y el vector transmitido fue U, el detector recibir V, con lo cual no
podr detectar los errores (similarmente ocurre si se transmiti V y se producen 5 errores).
Del anlisis hecho anteriormente podemos ver que la capacidad que tiene un
determinado cdigo para detectar y/o corregir errores est relacionada con la distancia mnima
entre dos vectores de cdigo. La tarea del detector, para el caso de correccin de errores, es
determinar en que regin est el vector recibido para tomar una decisin, como se muestra en
la Figura 9(a). Si el vector recibido cae en la regin 1 el criterio es decidir por U. Si cae en
la regin 2 el criterio es optar por el vector V. Con tal criterio, y con una distancia d
min
= 5
como se muestra en el ejemplo, el detector puede corregir hasta 2 errores. En general el
mximo nmero garantizado de errores corregibles por codeword, t, viene dado por la
expresin:

(


=
2
1
min
d
t (32)
donde x representa el nmero entero ms cercano a x y que no exceda a x. Tiene que
quedar claro que la (32) nos dice que el cdigo puede corregir hasta t errores inclusive. Sin
embargo, muchas veces un cdigo que corrige todas las secuencias posibles de t y menos
errores puede tambin corregir ciertas secuencias de t + 1 errores. Cuando vimos el ejemplo
de cdigo (6, 3) comprobamos que quedaba una fila sin completar en el arreglo estndar,
luego de haber puesto todos los patrones de 1 error. En general, un cdigo lineal de bloque (n,
k) que con seguridad puede corregir hasta t errores, es capaz de corregir un total de 2
n-k

patrones de error. Cuando un cdigo es perfecto (segn la (28)) entonces slo corrige hasta
t errores exactamente y ninguno ms.
Si un cdigo de bloque que con seguridad corrige hasta t errores, tiene una probabilidad
de hacer una deteccin errnea P
e
, que viene dada por la siguiente desigualdad:
( )
j n j
n
t j
e
p p
j
n
P

+ =

|
|
.
|

\
|


1
1
(33)
donde p es la probabilidad de transicin del CSB. La igualdad en la (33) se produce
cuando el cdigo es perfecto, es decir cuando el cdigo corrige hasta t errores y ni uno ms.
Un cdigo tambin puede usarse para detectar errores solamente. En la Figura 9 vemos
que cualquier vector recibido caracterizado por un punto negro puede ser identificado como un
error. La capacidad de detectar e errores, viene dada por la distancia mnima de la siguiente
manera:
1
min
= d e (34)
Un cdigo de bloque con distancia mnima d
min
garantiza que todos los patrones con
(d
min
1) errores, o menos, pueden ser detectados, lo cual no significa que no puedan
detectarse algunos patrones de error ms. De hecho, puede demostrarse que un cdigo (n, k)
puede detectar un total de (2
n
2
k
) errores.
Designemos con A
j
al nmero de vectores de cdigo con peso j. Los nmeros A
0
, A
1
,
A
2
,...A
n
forman la distribucin de pesos del cdigo. Si el cdigo se usa slo para deteccin de
errores sobre un CSB, entonces la probabilidad de que el cdigo no detecte un error viene
dada por la expresin:
Codificacin de canal 25
( )

=
n
j
j n j
j nd
p p A P
1
1 (35)
donde, una vez ms, p es la probabilidad de transicin del canal. Ya que el cdigo tiene
una distancia mnima d
min
, resulta que los valores de A
1
hasta A
dmin 1
son todos cero. Por lo
tanto, la (35) se puede rescribir como:
( )

=
n
d j
j n j
j nd
p p A P
min
1 (36)

También podría gustarte