Sunteți pe pagina 1din 62

CAPTULO 6

CODIFICACIN DE CANAL
La codificacin de canales se refiere a la clase de transformacin de seales diseadas para la
mejora de la performance de las comunicaciones permitiendo a las seales transmitidas resistir bien
los efectos de varios deterioros del canal, como el ruido, interferencias y el fading. Estas tcnicas de
procesamiento de seales pueden pensarse como el camino por lograr los costo beneficio (tradeoffs) del sistema deseable (por ejemplo performance del error versus ancho de banda , potencia
versus ancho de banda). Por que supone Ud. que la codificacin de canal se ha puesto tan popular
de manera que provoque estos efectos beneficiosos?. El uso de tcnicas de circuitos integrados de
gran potencia (loarge-scale) (LSI) y procesamientos de seales digitales a gran velocidad (highspeed) (DSP) han hecho posible proporcionar tanto como 10 dB de mejora de la performance a
travs de estos mtodos. A mucho menos costo que a travs del uso de la mayora de los otros
mtodos como transmisores de muy alta potencia o grandes antenas.

6.1

CODIFICACIN DE LA FORMA DE ONDA

La codificacin de canales puede ser dividida en dos partes para su estudio. Codificanion de Forma
de onda (o diseo de seales) y secuencias estructuradas (o redundancia estructurada), como
mostramos en la figura 6.1.
La codificacin de la forma de onda trata en transformar la forme de onda en una forma de onda
mejor para hacer el proceso de deteccin menos sujeto a errores. La secuencia estructurada trata en
transformar la secuencia de datos en mejores secuencias habiendo estructurado la redundancia
(bits redundantes). Los bits redundantes pueden luego ser usados para deteccin y correccin de
errores. El procedimiento de la codificacin proporciona la seal codificada (siendo la forma de
onda o la secuencia estructurada) con las propiedades de distancia mejoradas (entre seales) como
aquellos de su contraparte sin codificacin. Primero consideremos algunas tcnicas de codificacin
de la forma de onda. Luego, continuamos con la seccin 6.3. tratando las secuencias estructuradas.

Figura 1
6.1.1

Seales Antipodales Y Ortogonales

Seales antipodales y ortogonales han sido discutidos antes: Debemos repetir las caractersticas
principales de este tipo de seales. El ejemplo mostrado en la figura 6.2 ilustra la representacin
analtica, s1 (t) = -s2 (t)=sin 0t, 0tT, de un set de seales senoidales antipodales, como as
tambin las formas de onda y la representacin vectorial. Cules son alguno de los sinnimos o
analogas que son usados para describir seales antipodales?. Podemos decir que tales seales son
imgenes espejo o que una seal es la negativa de la otra o que las seales estn 180 desfasadas.
El ejemplo mostrado en la figura 6.3 ilustra un set de seales ortogonales compuesto por pulsos
como forma de onda, descrito por:

s1(t ) = p(t )

0tT

T
s2 (t ) = pt
2

0tT

Donde p(t) es un pulso con duracin = T/2, y T es la duracin del smbolo. Otro set de formas de
ondas ortogonales frecuentemente utilizadas en sistemas de comunicacin es el sen(x) y el cos(x)
En general, un set de seales si(t) de igual energa, donde i=1,2,.....,M, constituyen un set
ortonormal (ortogonal, normalizado a la unidad) s y solo s:

zij =

T
1
1
si (t)s j (t)dt =

E0
0

Para i=j
(6.1)

Caso contrario

Donde zij es llamado coeficiente de correlacin cruzada, y donde E es la energa de la seal,


expresada como :
T

E = si2 (t )dt

(6.2)

La representacin de las formas de ondas en la figura 6.3 ilustra que s1(t) y s2(t) no pueden interferir
una con otra dado que son distintas en el tiempo. La representacin vectorial ilustra la relacin
perpendicular entre las seales ortogonales. Considere algunas descripciones alternativas de seales
o vectores ortogonales.
2

Podemos decir que el producto punto o producto interno de dos vectores diferentes en un set
ortogonal debe ser igual a cero. En un espacio de dos o tres dimensiones de las coordenadas
cartesianas, podemos describir la seal vectorial, geomtricamente, por ser entre s mutuamente
perpendiculares. Podemos decir que un vector tiene proyeccin cero sobre otro, o que una seal no
puede interferir con otra, desde que ellos no comparten el mismo espacio sealado.

6.1.2 Sealizacin M-aria


Con sealizacin M-ary, el proceso acepta k bits de datos en un tiempo. Le da la instruccin al
modulador para luego producir una de M = 2k formas de onda; la sealizacin binara es un caso
especial donde k = 1. Para k > 1, la sealizacin M-ary exclusivamente puede considerarse como un
procedimiento de codificacin de forma de onda. Para sealizacin ortogonal (Ej. MFSK), como k
aumenta aqu mejorando la performance de error o una reduccin en Eb/N0 requerida, al costo de un
ancho de banda, sealizacin no ortogonal (Ej. MPSK) manifiesta mejoras en la eficiencia del
ancho de banda, al costo del decremento de la performance de error o un aumento en Eb/N0
requerida. Con la apropiada eleccion de la forma de onda de la seal, uno puede tener un costo
beneficio (trade off) de la probabilidad del error, la Eb/N0, y la eficiencia del ancho de banda.
Trataremos tales costos beneficios (trade-offs) con mayor detalle en el captulo 9.

6.1.3

Codificacion De La Forma De Onda

La codificacin de formas de ondas procede a la transformacin de un set de formas de ondas


(representar un set de mensajes) dentro de un mejor set de formas de ondas. El mejor set de formas
de ondas puede ser usados para proporcionar PB mejorado comparado al set original. Los ms
populares de tales cdigos de formas de ondas son llamados como cdigos ortogonales y
biortogonales. La codificacin es el esfuerzo de los procedimientos de hacer cada una de las formas
de ondas en el set de seales codificadas tan diferentes como sea posible; la meta es dar los
coeficientes zij de la correlacin cruzada entre todos los pares de seales, descrito en trminos de
integral en la ecuacin 6.1, tan pequeo como sea posible. El valor posible ms pequeo de los
coeficientes de una correlacin cruzada ocurre cuando las seales son anticorrelacionadas (zij = -1) :
sin embargo, esto solo pude ser logrado cuando el nmero de smbolos en el set es dos (M=2) y los
smbolos son antipodales. En general, es posible hacer todos los coeficientes de la correlacin
cruzada iguales a cero [1]. Se dice entonces que el set es ortogonal. Los set de seales antipodales
son ptimos en el sentido que cada seale es ms distante de otra en el set. Esto se ve en la figura
6.2 donde la distancia d entre los vectores de seal esta dado por d = 2 E , donde E representa la
energa de la seal durante un smbolo de duracin T, como se expresa en la ecuacin 6.2.
Comparando con las seales antipodales, las propiedades de distancias entre set de seales
ortogonales pueden ser pensadas como bastante buenas (dadas por un nivel de energa de la forma
de onda). En la figura 6.3 la distancia entre los vectores de seales ortogonales esta dado por

d = 2E .
La correlacin cruzada entre dos seales es una medida de la distancia entre los vectores de seal.
La correlacin cruzada ms pequea, es la ms distante entre cada uno de los vectores. Esto puede
ser verificado en la figura 6.2, donde las seales antipodales (cuyo zij = -1) son representadas por
vectores que estn ms distantes uno de otro; y en la figura 6.3, donde las seales ortogonales (cuyo
zij = 0) son representadas por vectores que estn ms cerca entre s que los vectores antipodales.
Debe ser obvio que la distancia entre dos formas de onda idnticas es cero, cuyo zij = 1.
La condicin de ortogonalidad de la ecuacin 6.1 es presentada en trminos de formas de ondas si(t)
y sj(t), donde i,j = 1,..., M, y M es el tamao del set de formas de ondas. Cada forma de onda en el
set {si(t)} puede consistir de una secuencia de pulsos. Donde cada pulso es designado con un nivel
+1 o 1, que a su vez representa el digito binario 1 o 0, respectivamente.
3

Cuando el set es representado de esta manera, la ecuacin 6.1 puede ser simplificada por expresar
que {si(t)} constituye un set ortogonal s y solo s :

zij =

1
=
0

numero de digitos coincidentes numero de digitos no coincidentes


numero total de digitos en la sec uencia
Para i=j
Caso contrario

(6.3)

6.1.3.1 Cdigos ortogonales


Un set de datos de un bit puede ser transformado, usando codewords ortogonal de dos dgitos cada
una, descrito por las filas de la matriz H1 como sigue:

set de datos

set de codewords ortogonal

0 0
1 =

0 1

0
1

(6.4a)

Para este, y los siguientes ejemplos, usaremos la ecuacin 6.3 para verificar la ortogonalidad del set
de codewords. Para la codificacin de un set de dos bits de datos, extendemos el set anterior a
ambos horizontal y vertical, creando la matriz H2.
set de datos

0
0
1
1

0
1
0
1

set de codewords ortogonal

0
0
1 =
0
0

0
1
0
1

0
0
1
1

0
1 1 1
=
1 1 1
0

(6.4b)

El cuadrante debajo a la derecha es el complemento del anterior set de codeword. Continuemos con
la misma regla de construccin para obtener un set ortogonal para un set de datos de tres bit.

set de datos

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

set de codewords ortogonal

0
0

0
3 =
0

0
0

0
1
0
1
0
1
0
1

0
0
1
1
0
0
1
1

0
1
1
0
0
1
1
0

0
0
0
0
1
1
1
1

0
1
0
1
1
0
1
0

0
0
1
1
1
1
0
0

0
1
1

0 2
=
1 2

0
0

2
(6.4c)
2

En general, nosotros podemos construir un set de codeword de Hk, de dimensin 2k x 2k, llamada
matriz Hadamard, por un set de datos de k bit desde la matriz Hk-1, como sigue :

k 1

k = k 1

k 1 k 1

(6.4d)

Cada par de palabras en cada set de codeword H1, H2, H3, ........, Hk, tiene tantos dgitos
coincidentes como no coincidentes [2], de acuerdo con la ecuacin 6.3, zij = 0 (para i j), y cada
uno de los set es ortogonal.
As como sealizacin M-ary con un formato de modulacin ortogonal (tal como MFSK) mejora la
performance de PB, la codificacin de la forma de onda con un set de seales construidas
ortogonalmente, en combinacin con deteccin coherente, produce exactamente la misma mejora.
Para seales ortogonales de igual energa igualmente probable, la probabilidad del error de la
codeword (smbolo), PE, puede ser limitada superiormente como [2]:

Es

PE (M ) (M 1)Q

N
0

(6.5)

Donde el set de codeword M es igual a 2k, y k es l numero de bit de datos por codeword. La
funcin Q(x) es definida por la ecuacin (3.43), y Es=kEb es la energa por codeword. Para un M
fijo, mientras la Eb/N0 es incrementada, el limite se vuelve chico, por PE(M)10-3. La ecuacin (6.5)
es una buena aproximacin. Para expresar la probabilidad de error del bit, usaremos a continuacin
la relacin entre PB y PE, dada en la ecuacin (4.112) y repetida aqu :

2k 1
PB (k )
= k
PE (k ) 2 1

PB (M )
M /2
=
PE (M ) (M 1)

(6.6)

combinando la ecuacin (6.5) con la (6.6), la probabilidad del error del bit puede ser limitada como
sigue :

kEb

PB (k ) (2 k 1 )Q

N
0

p B (M )

M Es
Q
2 N 0

(6.7)

6.1.3.2 Cdigos biortogonales


Un set de seales biortogonales de un total de M seales o codewords pueden ser obtenidas desde
un set ortogonal de M/2 seales aumentndolo con el negativo de cada seal como sigue:


k = k 1
k 1
Por ejemplo un set de datos de tres-bit pueden ser transformados dentro de un set de codeword
biortogonal como sigue:
set de datos

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

set de codewords biortogonal

0
0

0
3 =
1

1
1

0
1
0
1
1
0
1
0

0
0
1
1
1
1
0
0

0
1
1

0
1

0
0

El set biortogonal es en realidad dos set de cdigos ortogonales tal que cada codeword en uno de los
set tiene su codeword antipodal en el otro set. El set biortogonal consiste de una combinacin de
seales ortogonales y antipodales. Con respecto a zij de la ecuacin (6.1) los cdigos biortogonales
pueden ser caracterizados como :

1
para i = j

M
zij = 1 para i = j , i j =
2

M
0 para i j , i j

(6.8)

Una ventaja de un cdigo biortogonal sobre uno ortogonal para un mismo set de datos es que el
cdigo biortogonal requiere la mitad de bits de cdigo por codeword (compare las filas de la matriz
B3 con aquellas de la matriz H3 presentada antes). Por eso los requerimientos del ancho de banda
para los cdigos biortogonales son la mitad de los requerimientos en comparacin a los ortogonales.
Como los vectores de seales antipodales tienen mejores propiedades de distancia que los
ortogonales, esto no debe ser ninguna sorpresa que los cdigos biortogonales son ligeramente mejor
que los ortogonales.

Para seales biortogonales de igual energa igualmente probables, la probabilidad del error de la
codeword (smbolo) puede ser limitada superiormente como sigue [2]:

2Es
Es
+ Q
PE (M ) (M 2 )Q

N
0

N0

(6.9)

el cual se vuelve incrementalmente pequeo para un M fijo a medida que EB/N0 aumenta. PB(M) es
una funcin complicada de PE(M); podemos aproximar esto con la siguiente relacin [2] :

PB (M )

PE (M )
2

La aproximacin es bastante buena para M>8. Por consiguiente, podemos escribir:

PB (M )

Es
2Es
1
+ Q
(M 2 )Q

N
2
0
N0

(6.10)

La propuesta de estos cdigos biortogonales mejoro la performance de PB, comparada con la


performance de los cdigos ortogonales, y requiere solo la mitad del ancho de banda de los cdigos
ortogonales.

6.1.3.3

Cdogos transorthogonal (simplex)

Un cdigo generado desde un set ortogonal por la eliminacin del primer digito de cada codeword
es llamado cdigo transorthogonal o simples. Este cdigo es caracterizado por :

zij =
1
M 1

para i = j
(6.11)

para i j

Un cdigo simplex representa la mnima energa equivalente (en el sentido de probabilidad de error)
del set ortogonal igualmente probable. Comparando la performance del error de los cdigos
ortogonal, biortogonales y simples, podemos decir que el cdigo simples requiere la mnima Es/N0
para una razn de error de smbolo especificada. Sin embargo, para un valor grande de M, los tres
esquemas son esencialmente idnticos en performance de error.
La codificacin biortogonal requiere la mitad del ancho de banda que los otros. Pero para cada uno
de estos cdigos, requiere que el ancho de banda crezca exponencialmente con el valor de M (y
sistemas complejos); por consiguiente, tales esquemas de cdigos son atractivos solo cuando estos
grandes anchos de banda estn disponibles.

6.1.4 Ejemplo De Un Sistema De Codificacin De La Forma De Onda


La figura 6.4 ilustra un ejemplo asignando un mensaje de k bit desde un set de mensajes de largo M
= 2k, con una secuencia de pulsos codificados desde un set de cdigo del mismo largo. Cada
mensaje de k bit escoge uno de los generadores produciendo una secuencia de pulsos codificados o
codeword. La secuencia en el set codificado que reemplaza los mensajes desde un set de formas de
onda con propiedades de distancia mejoradas (ejemplo, ortogonal, biortogonal). Para el cdigo
ortogonal descrito en la seccin 6.1.3.1 cada codeword consiste de M = 2k pulsos (cdigo
representado en bits). De 2k bits de cdigo replaza k bits de mensajes. La secuencia escogida
modula una onda portadora que usa PSK binario, entonces, tal que la fase (j = 0 o ) de la
portadora durante cada duracin del bit del cdigo, 0tTc, corresponde a la amplitud (j = -1 o 1)
del j-simo pulso bipolar en la codeword. En el receptor en la figura 6.5 la seal es demodulada en
banda base y alimentada por M correladores (o filtros acoplados). Para los cdigos ortogonales,
como aquellos caracterizados por la matriz Hadamard en la seccin 6.1.3.1, la correlacin es
realizada sobre la duracin de la codeword que puede ser expresada como T = 2kTc. Para un sistema
de comunicacin de tiempo real, los mensajes podran no retrasarse: dado esto, las duraciones de las
codeword deben ser iguales que las duraciones de los mensajes, y as, T solo pude ser expresada
como T = (log2M)Tb = kTb, donde Tb es la duracin del bit de mensaje. Note que el tiempo de
duracin del bit de mensaje es M/k tiempos ms largos que el de un bit de cdigo. En otras
palabras, los bits de cdigo o la codificacin de pulsos (que es modulacin PSK) deben moverse a
una razon M/k ms rpido que los bits de mensajes. Para tal codificacin ortogonal de formas de
onda y un canal AWGN, el valor esperado a la salida de cada correlador, a un tiempo T, es cero,
excepto para el correlador correspondiente a la codeword transmitida.

Cul es la ventaja de la codificacin ortogonal de la forma de onda comparada con enviar


simplemente un bit o un pulso a un tiempo? Uno puede comparar la performance del error de bit
con y sin tal codificacin por comparacin de la ecuacin (4.79) por deteccin coherente de la seal
antipodal con la ecuacin (6.7) por la deteccin coherente de las codewords ortogonal. Para un
largo dado del mensaje de k bit (ejemplo, k = 5) y una deseada probabilidad de error del bit
(ejemplo, 10-5), la deteccin de las codewords ortogonal (cada una tiene un mensaje de 5 bit) pudo
ser cumplido con aproximadamente 2.9 dB menos de Es/N0 que la deteccin bit por bit de las
seales antipodales. (La demostracin es dejada en un ejercicio para el lector en el problema 6.28)
Uno podra haber supuesto este resultado por comparacin de la curva de performance para la
sealizacin ortogonal en la figura 4.28 con la curva binaria (antipodal) en la figura 4.29. Qu
precio pagamos por esta mejora de la performance del error? El costo es ms ancho de banda para la
transmisin. En este ejemplo, la transmisin de un mensaje sin codificar consiste de enviar 5 bits.
Con codificacin, cuntos pulsos codificados ms son trasmitidos por cada secuencia de mensaje?
Con la codificacin de la forma de onda de este ejemplo, cada secuencia de mensaje de 5 bit es
representada por M = 2k = 25 = 32 bit de cdigos o pulsos codificados. Los 32 pulsos codificados en
una codeword deben enviarse en la misma duracin de tiempo como los 5 bit correspondientes que
proviene de ellos. As, el ancho de banda requerido para la transmisin es 32/5 veces que en el caso
sin codificar. En general, el ancho de banda necesario para tales seales codificadas ortogonalmente
es M/k veces mayor que aquel necesario para el caso sin codificar. Despus, se examinarn maneras
ms eficaces de comerciar fuera de los beneficios de codificar contra el ancho de banda [3,4].

6.2

TIPOS DE CONTROL DE ERROR

Antes de que nosotros discutimos los detalles de redundancia estructurada, ahora describiremos las
dos formas bsicas de cmo la redundancia es usada para controlar errores. Lo primero, deteccin
de errores y retransmisin, utiliza bits de paridad (bits redundantes adheridos a los datos) para
detectar que se est produciendo un error. Las terminales receptoras no tratan de corregir los
errores, estas simplemente piden que el dato sea retransmitido. Ntese que una conexin de dos
caminos es requerida para el dilogo entre el transmisor y el receptor. El segundo tipo de control de
error, correccin de error avanzado (FEC), requiere solamente una conexin en una direccin.

Adems en este caso, los bits de paridad son designados para la deteccin y correccin de errores.
Veremos que no todos los errores pueden ser corregidos : cdigos de correccin de errores son
clasificados acorde a su capacidad de corregir.

6.2.1

Conectividad Terminal

Con frecuencia terminales de comunicacin son clasificadas acorde a sus conectividades con otras
terminales. Las posibles conexiones, mostradas en la figura 6.6, son clasificadas en Simplex (no
confundir con el cdigo simple o cdigo transortogonal), Half Duplex y Full Duplex. La conexin
Simplex en la figura 6.6a es una conexin en una sola direccin. Las transmisiones son hechas
desde la terminal A hacia la terminal B solamente, nunca en una direccin inversa.
La conexin Half Duplex en la figura 6.6b es una conexin donde las transmisiones pueden ser
hechas en cada direccin pero no simultneamente. Finalmente, la conexin Full Duplex en la
figura 6.6c es una conexin de dos caminos, donde las transmisiones pueden ser procesadas en
ambas direcciones.

6.2.2 Requerimiento de Repeticin Automtica (Automatic Repeat

Request)

Cuando el control de error consiste solamente en deteccin del error, el sistema de comunicacin
generalmente necesita proveer un medio para alertar al transmisor que un error est siendo
detectado y que una retransmisin es necesaria. Los procedimientos de control de error son
conocidos como Automatic Repeat Request o mtodo de consulta de retransmisin automtica
(ARQ, Automatic request query). La figura 6.7 ilustra tres de los ms populares procedimientos de
ARQ. En cada uno de los diagramas, el tiempo est avanzando desde la izquierda hacia la derecha.
El primer procedimiento llamado ARQ Stop-and-waid, es mostrado en la figura 6.7a. Esta requiere
una conexin Half Duplex solamente, entonces el transmisor espera por un acknowledgment
(ACK) o confirmacin de cada transmisin antes de proceder con la prxima transmisin.
En la figura, el tercer bloque de transmisin recibi un error, de esta forma el receptor responde con
un ACK negativo, (NAK). El transmisor retransmite su tercer mensaje antes de transmitir su
prxima secuencia.
El segundo procedimiento ARQ, llamado ARQ continuo con Pullback, es mostrado en la figura
6.7b.

10

Aqu la conexin Full-Duplex es necesaria. Ambas terminales estn retransmitiendo


simultneamente, el transmisor esta enviando datos y el receptor est enviando ACK. Ntese que un
nmero de secuencia ha sido asignado en cada bloque de datos.
Tambin los ACK y NAK necesitan referirse a cada nmero, o sino estos necesitan saber el tiempo
de propagacin, para as el transmisor conozca que mensaje est asociado con cada ACK.
En el ejemplo de la figura 6.7b, hay una separacin fija de 4 bloques entre el mensaje que est
siendo transmitido y el ACK que est simultneamente recibido. Por ejemplo, cuando el mensaje 8
est siendo enviado, un NAK correspondiente al mensaje 4 est siendo recibido. En el
procedimiento de ARQ, el transmisor retorna al mensaje de error y retransmite todos los datos del
mensaje, comenzando con el mensaje errneo.
El mtodo final llamado ARQ con repeticin selectiva, es mostrado en la figura 6.7c. Aqu como en
el segundo procedimiento ARQ, una conexin full-duplex es necesaria. Sin embargo en este
procedimiento solamente los mensajes errneos son repetidos. Luego el transmisor contina la
secuencia de transmisin desde donde se haba enviado el ltimo mensaje antes de la retransmisin
del error.
La eleccin de cada procedimiento ARQ est relacionada entre los requerimientos para una
utilizacin eficiente de las fuentes de comunicacin y de las necesidades para proveer conexin fullduplex. La conectividad Half-duplex requerida en la figura 6.7a es menos costosa que full-duplex :
la ineficiencia asociada puede ser medida por los tiempos sin transmisin. La utilizacin ms
eficiente ilustrada en la figura 6.7b y c requiere la conexin full-duplex ms costosa.
La mayor desventaja del ARQ sobre FEC es que la deteccin de error requiere un equipamiento de
decodificacin ms simple y mucho menos redundante que haga la correccin de errores. Tambin
ARQ es adaptativo en el sentido que la informacin es retransmitida solamente cuando los errores
ocurren. Por otro lado, FEC puede ser deseable en lugar o en adicin de la deteccin de error por
algunas de las siguientes razones :
123-

Un canal reversible no es disponible o el retardo con ARQ podra ser excesivo.


La estrategia de retransmisin no es convenientemente implementada.
El nmero de errores esperado, sin correcciones, podra requerir
retransmisiones excesivas.

11

6.3 SECUENCIA ESTRUCTURADAS


En la seccin 4.8, nosotros consideramos seales digitales por medio de M=2k seales diferentes (
seales M_aria), donde cada forma de onda contiene k bits de informacin. Vimos que en el caso de
seales ortogonales M_aria, nosotros podemos decrecer PB incrementando M (expandiendo el
ancho de banda). Similarmente, en la seccin 6.1, demostramos que esto es posible, decrementar PB
codificando k dgitos binarios dentro de M cdigos ortogonales.
La mayor desventaja de las tcnicas de codificacin ortogonales es el uso ineficiente del ancho de
banda asociado. Para un cdigo seteado ortogonalmente de M = 2k formas de onda, el ancho de
banda requerido para la transmisin es M/K veces que necesit para el caso sin codificacin. En
esta y en las secciones subsecuentes nosotros abandonamos las propiedades ortogonales y nos
focalizamos en una clase de procedimiento de codificacin, conocidos como cdigo de chequeo de
paridad. Como los procedimientos de codificacin de canal son clasificados como secuencias
estructuradas porque ellas representan mtodos de redundancia estructurada insertadas dentro las
fuentes de datos, as la presencia de errores pueden ser detectados o corregidos.
Secuencias estructuradas son divididas dentro de 3 subcategoras, como se muestra en la figura 6.1:
Bloque, Convolucional y Turbo.
La codificacin de bloques es tratada en este captulo, y los otros son tratados en captulos 7 y 8
respectivamente.

6.3.1

Modelos de Canal

6.3.1.1 Canal discreto sin memoria


Un Discrete Memoryless Channel (DMC) es caracterizado por una entrada alfanumrica
discreta, una salida alfanumrica discreta y un set de probabilidades condicionales. P(j/i). (1iM),
1jQ), donde i representa un smbolos de entrada M-ary al modulador, j representa el smbolo de
salida Q-ary del demodulador y P(j/i) es la probabilidad de recibir j dado que se transmiti i. Cada
smbolo de salida del canal depende solamente de la entrada correspondiente, as para una secuencia
de entrada U = u1,u2,....um,...un, la probabilidad condicional de la secuencia correspondiente de
salida Z = z1,z2,...zm,...zn puede ser expresado como :
N

P ( z / u ) = P ( zm / um)

(6.12)

m =1

En el caso que el canal tenga memoria (por ejemplo ruido o desvanecimiento que ocurre en la
apertura), la probabilidad condicional de la secuencia Z se podra necesitar para ser expresada como
una probabilidad conjunta de todos los elementos de la secuencia. La ecuacin 6.12 expresa la
condicin de sin memoria del canal.
El ruido de canal en un canal sin memoria es definido para afectar cada smbolo
independientemente de todos los otros smbolos, la probabilidad condicional Z es vista como el
producto de las probabilidades independientes de los elementos.

6.3.1.2 Canal binario Simtrico


Un canal binario simtrico (BSC) es un caso especial de un (DMC); la entrada y salida alfabtica
seteada consiste de los elementos binarios (0 y 1). Las probabilidades condicionales son simtricas :

12

P(0/1) = P(1/0) = p

(6.13)

P(1/1) = P (0/0) = 1 - p
La ecuacin 6.13 expresa las probabilidades de transicin del canal. Esto es, dado que un smbolo
es transmitido en el canal, la probabilidad de que este sea recibido errneamente es p (relacionado
con la energa del smbolo), y la probabilidad que este sea recibido correctamente es (1 - p). Como
la salida del demodulador consiste en elementos discretos 0 y 1, el demodulador es programado
para tomar una decisin Hard sobre cada smbolo. Un sistema de cdigo comnmente usado
consiste en datos modulados en BPSK y demodulacin por decisin Hard. Luego la probabilidad
de smbolo errneo en el canal es encontrada usando el mtodo discutido en la seccin 4.7.1 y la
ecuacin (4.79) siendo :

p = Q 2 Ec / No

donde Ec/No es la energa del smbolo en el canal por densidad de ruido, y Q(x) es definida en la
ecuacin 3.43.
Cuando cada decisin Hard son usadas en un sistema de codificacin binario, el demodulador
alimenta los dos cdigos de smbolo vlidos o bits de canal hacia el decodificador. Luego desde el
decoder operan las decisiones hechas por el demodulador, decodificando con un canal BSC,
llamndose Hard-decision decoding.

6.3.1.3 Canal Gaussiano


Nosotros podemos generalizar nuestra definicin del DMC para canales alfanumricos que no son
discretos. Un ejemplo es el canal Gaussiano con una entrada alfabtica discreta y una salida
continua sobre el rango (-,). El canal adiciona ruido a los smbolos. Como el ruido es una
variable aleatoria Gaussiana con media cero y varianza 2, la funcin de densidad de probabilidad
resultante (pdf) sobre la variable aleatoria recibida z, condicionada sobre el smbolo uk (la
probabilidad uk), puede ser escrita como :

p( z / uk ) =

( z u k )2
1
exp

2
2
2

(6.14)

Para toda z, donde k = 1,2,...M. Para este caso, un canal sin memoria tiene la misma media como
est en la seccin 6.3.1.1. y la ecuacin 6.12 puede ser usada para obtener la probabilidad
condicional para la secuencia Z.
Cuando la salida del demodulador consiste de un alfabeto continuo o una aproximacin cuantizada
de este (con mas de dos niveles de cuantizacion), decimos que el demodulador hace una decisin
Soft . En caso de un sistema codificado, el demodulador alimenta cada cdigo cuantizado hacia el
decoder. Las decodificaciones hechas por el decodificador que opera con soft decisin usando un
canal Gaussiano son llamadas Soft decision decoding.
En el caso de un canal Hard-decision, nosotros somos capaces de caracterizar el proceso de
deteccin con una probabilidad de smbolo errneo en el canal. Por lo tanto, en el caso de un canal
soft-decision, el detector realiza la clase de decisin (soft decisin) que no puede ser marcada como
correcta o incorrecta. De este modo, como estas no son decisiones firmes, esta no puede ser una
probabilidad de ocurrencia de error; el detector puede solamente formular una familia de
probabilidades condicionales o probabilidades de los diferentes tipos de smbolos.

13

Esto hace posible disear decodificadores usando soft-decisions, pero los bloques decodificadores
de cdigo soft son sustancialmente ms complejos que decodificadores hard decisions: de esta
forma bloques de cdigo son usualmente implementados con decodificadores hard-desicions. Para
cdigos convolucionales, ambas implementaciones (soft y hard) son igualmente populares. En este
captulo nosotros consideraremos que el canal es simtrico binario (BSC) y por lo tanto el
decodificador emplea hard-decisions. En el captulo 7 nosotros discutiremos modelos de canal, as
como deteccin hard versus soft para cdigos convolucionales.

6.3.2 Redundancia y Velocidad de Cdigo


En el caso de Bloques de cdigo, las fuentes de datos son segmentadas dentro de bloques de K bits
de datos, tambin llamados bits de informacin o mensaje de bits : cada bloque puede representar
alguno de los 2k mensajes distintos. El encoder transforma cada K-bit de bloque de datos dentro de
un gran bloque de n bits, llamado code bit o smbolo de canal. Los (n-k) bits que el encoder suma a
cada bloque de datos, son llamados bits redundantes, bits de paridad o Check bit : ellos no llevan
informacin nueva.
El cdigo es referido en forma (n,k). La tasa de bits redundantes por bits de datos, denotada (n-k)/k
para cada bloque es llamada redundancia del codigo; la razon de bit de datos sobre bit totales, k/n
es llamada razon de codigo. La razon de codigo- puede ser considerado como la porcin del
cdigo que constituye la informacin. Por ejemplo, en una tasa de codigo , cada codigo de bit
lleva la mitad de bits de informacin.
En este captulo y en los captulos 7 y 8 consideraremos estas tcnicas de codificacin que proveen
redundancia incrementando as en ancho de banda requerido para la transmisin.
Por ejemplo, una tcnica de control de error que emplea una tasa cdigo (100% de redundancia)
requerir doblar el ancho de banda de un sistema no codificado. Por lo tanto, si una tasa de cdigo
es usada, la redundancia es 33% y la expansin del ancho de banda es solamente de 4/3. En el
captulo 9 consideraremos tcnicas de modulacin / codificacin para canales de banda limitada
donde complejidad a cambio de ancho de banda es empleada para una performance de error
apropiada.

6.3.2.1 Nomenclatura de los elementos de cdigo


Diferentes autores describen los elementos de salida de un encoder en una variedad de maneras: bits
de cdigo (code bit), bit de canal (channel bit), smbolos de cdigo (code simbol), bits de paridad
(parity bits), smbolos de paridad (parity symbol) los trminos son muy similares.
En este texto, para un cdigo binario, los trminos code bits y channel bit son mayormente
usados para describir cdigos binarios solamente.
Los nombres ms genricos como code symbol y channel symbol son a menudo preferidos
porque ellos pueden ser usados para describir cdigos binarios o no binarios igualmente bien.
Note que cada code symbol o channel symbol no estn siendo confundidos con el grupo de bits
que forman los smbolos de transmisin como fue hecha en el captulo anterior.
Los trminos bit de paridad y smbolo de paridad son usados para identificar solamente
aquellos elementos de cdigo que representan los componentes de redundancia adheridos a los
datos originales.

6.3.3 Cdigos de Chequeo de Paridad


6.3.3.1 Cdigo de chequeo de paridad simple
Este usa una suma lineal de los bits de informacin, llamados smbolos de paridad o bits de paridad,
para la deteccin de error o correccin.
14

Un cdigo de chequeo de paridad simple es construido sumando un simple bit de paridad al bloque
de bits de datos. El bit de paridad toma el valor uno o cero segn sea necesario para asegurar que la
suma de todos los bits de la code-word de cmo resultado un nmero par o impar. La operacin de
sumar es realizada usando aritmtica de mdulo 2 (lgica OR exclusiva) como se describe en la
seccin 2.9.3. Si la suma de paridad es diseada para un resultado par, el mtodo es llamado de
paridad par, si este es diseado para que el resultado sea impar, el mtodo es llamado de paridad
impar. La figura 6.8a ilustra una transmisin de datos en serie (el bit que esta ms a la derecha es el
primer bit). Un bit de simple paridad es sumado (el bit que est ms a la izquierda del bloque) para
dar paridad par.
En la terminal receptora, el procedimiento de decodificacin consiste en testear que la suma de
mdulo 2 de los bits de la codeword resultar cero (paridad par). Si el resultado encontrado es
diferente de cero, se sabe que la codeword tiene errores. La tasa del cdigo puede ser expresada
como k/(k+1).
Usted supone que el decoder automticamente corregir el dgito que es recibido con error? No,
esto no puede ser. Este puede solamente detectar la presencia de un nmero impar de bit errneos.
(Si un nmero par de bit es invertido, el test de paridad aparecer correcto, que representa el caso de
un error no detectable).

Asumiendo que todos los bits errneos son igualmente probables y ocurren independientemente,
nosotros podemos escribir la probabilidad de j errores ocurriendo en un bloque de n smbolos
como:

n
n 1
P ( j , n) = p j (1 p )
j

(6.15)

Donde p es la probabilidad que un channel symbol sea recibida con error, y donde :

n
= n! / j!(n j )!
j

(6.16)

15

Es el nmero de maneras en que j bits de salida de n pueden tener errores. As para un cdigo de
deteccin de error de paridad simple, la probabilidad de un error no detectable Pnd con un bloque de
n bits es computada de la siguiente manera :

Pnd =

Ejemplo 6.1

n / 2 paranpar
n 1 / 2 nimpar

j =1

n 2j
p (1 p )n2 j
2 j

(6.17)

Cdigo de paridad par

Configurar un cdigo (4,3 = n,k)de deteccin de error de paridad par con el smbolo de paridad que
aparece como el smbolo que est ms a la izquierda de la codeword.
Qu patrn de error puede detectar el cdigo? Computar la probabilidad de un mensaje errneo no
detectado, asumiendo que todos los smbolos errneos son eventos independientes y que la
probabilidad de un channel symbol errneo es p=10e-3

Solucin
Mensaje
000
100
010
110
001
101
011
111

Paridad
0
1
1
0
1
0
0
1

Codeword
0
000
1
100
1
010
0
110
1
001
0
101
0
011
1
111

El cdigo es capaz de detectar todos los simples y triples patrones de errores. La probabilidad de un
error no detectado es igual a la probabilidad que 2 o 4 errores ocurran en algn lugar de la
codeword.

4
4
2
Pnd = p 2 (1 p ) + p 4
4
2
= 6 p 2 (1 p ) + p 4
2

= 6 p 2 12 p 3 + 7 p 4

= 6 10 3
6.3.3.2

12 10 3

+ 7 10 3

6 * 10 6

Cdigo rectangular

Un cdigo rectangular, tambin llamado cdigo producto, puede ser considerado como una
estructura de cdigos paralelos como muestra la figura 6.8b. Primeros nosotros formamos un
rectngulo de bits de mensajes comprendiendo M filas y N columnas: luego un chequeo horizontal
de paridad es adherido a cada fila y un chequeo vertical es adherido a cada columna, resultando un
arreglo de (M+1) *(N+1) de dimensin. La tasa de cdigo rectangular k/n puede ser escrita como :

k / n = MN / (M + 1) * ( N + 1)
16

Cunto ms potente es el cdigo rectangular que el cdigo de simple paridad, que solamente es
capaz de detectar errores?
Ntese que algn simple bit errneo causara que el chequeo de paridad detecte un error en una fila
y tambin en una columna. De esta forma, el cdigo rectangular puede corregir algn error simple
ya que cada error es nicamente localizado en la interseccin del error detectado en la fila y el error
detectado en la columna. Para el ejemplo mostrado en la figura 6.8b, las dimensiones del arreglo
son M = N = 5 : de esta forma la figura describe un (36.25) cdigo que puede corregir un error
simple localizado en algn lugar de los 36 bits de posicin. Para tal codigo bloque con correccion
de errores, nosotros computaremos la probabilidad que el bloque decodificado tiene un error no
corregido contando todas las formas en el que un mensaje errneo puede ser hecho.
Comenzando con la probabilidad de j errores en un bloque de n smbolos, expresado en la
ecuacin 6.15, podemos escribir la probabilidad de un mensaje errneo, tambin llamado un block
error o word error, para un cdigo que puede corregir todos los patrones de error t o menores
como :

PM =

n
j p (1 p )
n

n j

(6.18)

j =t +1

donde p es la probabilidad que un channel symbol es recibido con error. Para el ejemplo en la
figura 6.8b, el cdigo puede corregir todos los simples error-patterns (t=1) con el bloque
rectangular con N = 36 bits. Entonces, la suma en la ecuacin (6.18) comienza con j = 2 :
36 36

n j
PM = p j (1 p )
j =2 j

cuando p es razonablemente pequeo, el primer trmino en la suma es el dominante; de esta forma,


para este cdigo rectangular (36.25) de ejemplo, nosotros podemos escribir :

36
34
PM = p 2 (1 p )
2
La probabilidad de bit errneo PB depende del cdigo en particular y el decoder. Una aproximacin
para PB es dada en la seccin 6.5.3

6.3.4 Porqu Usar Codificacin con Correccin de Error?


Los cdigos de correccin de error pueden ser considerados como un vehculo para afectar varios
pro y contras. La figura 6.9 compara 2 curvas representando la performance de bits errneos versus
Eb/No. Una curva representa un esquema de modulacin tpica sin codificacin. La segunda curva
representa la misma modulacin con codificacin. Seguidamente se demostrarn los cuatro
beneficios o pro y contras que pueden ser conseguidos con el uso de codificacin de canal.

17

6.3.4.1 Trade-off 1: Performance de error versus ancho de banda


Imagina que un simple y barato sistema de comunicacin de voz ha sido recientemente desarrollado
y entregado a un cliente. El sistema no usa codificacin con correccin de error. Considere que el
punto operativo del sistema puede ser descrito por el punto A en la figura 6.9 (Eb/No = 8 db y Pb
=10e-2). Despus de unas pocas pruebas, hay quejas sobre la calidad de la voz: el cliente sugiere que
la probabilidad de bit errneo se baje a 10e-4. La manera ms usual de obtener una mayor
performance de error en cada sistema podra afectar un punto operativo moviendo del punto A al
punto B, en la figura 6.9.
Sin embargo, suponemos que la Eb/No de 8 db es la que mejor est disponible en este sistema. La
figura sugiere que un posible Pro y Contra por mover el punto operativo del punto A al punto C
sobre la curva codificada puede proveer al cliente una apropiada performance de error. Cul es el
costo?
Aparte de los nuevos componentes, (codificador y decodificador necesarios), el ancho de banda
para la transmisin es ms grande. Codificacin con correccin de error necesita redundancia. Si
nosotros asumimos que el sistema es de comunicacin en tiempo real ( que el mensaje no puede ser
retrasado), la adicin de bits redundantes obliga una mayor tasa de transmisin, con el uso de ms
ancho de banda.

6.3.4.2 Trade-off 2 : Potencia versus ancho de banda


Considere que un sistema sin codificacin operando en el punto D de la figura 6.9 Eb/No = 14 dB y
Pb = 10e-6, est siendo entregada al cliente. El cliente no ha tenido quejas de la calidad de los datos,
pero el equipo est teniendo algun problema como resultado de proveer una Eb/No de 14 dB. En
otras palabras, el equipamiento mantiene errores. Si el requerimiento sobre Eb/No o potencia
pudiesen ser reducidos, las dificultades podran tambin ser reducidas. La figura 6.9 sugiere un pro
y contra por mover el punto operativo del punto D al punto E. Esto es si el cdigo de correccin de
error es introducido, una reduccin en el requerido Eb/No puede ser lograda.
De ese modo, el pro y contra consiste en que una misma calidad de datos es conseguido, pero los
arreglos codificados para una reduccin de potencia o Eb/No. Cul es el costo?
Lo mismo que lo anterior, ms ancho de banda.
Ntese que para sistemas de comunicacin de tiempo no real, la codificacin con correccin de
error puede ser usado con algn diferente postulado.

18

Esto es posible para obtener una apropiada probabilidad de bit errneo o potencia reducida (similar
al pro y contra 1 o 2 de arriba) para pagar este precio de retardo en vez de ancho de banda.

6.3.4.3

Ganancia de Cdigo

El ejemplo trade-off descripto en las secciones previas ha permitido una reduccin en Eb/No de 14
dB a 9 dB, mientras mantenemos la misma performance de error. En el contexto de este ejemplo y
en la figura 6.9 definimos ahora la ganancia de codificacion. Para una dada probabilidad de error
de bit, la ganancia de codificacion se define como sobrante o reduccin en Eb/No que se puede
realizar con el uso de este cdigo. La ganancia de codificacion G es expresado en dB, tal como:

Eb
Eb
G (dB) =
(dB)
(dB)
No u
No c
Eb
Eb
representa la relacin sin cdigo y
con cdigo.
No u
No c
6.3.4.4 Trade-off 3 : Velocidad de dato vs. Ancho de Banda.

Donde:

Considerar que un sistema sin cdigo, operando en el punto D en la figura 6.9 (Eb/No = 14dB y PB=
10e-6) ha sido desarrollado. Asumiendo que no hay problema la calidad del dato y no es de
particular necesidad reducir la potencia. Sin embargo en este ejemplo, se supone que el cliente
quiere incrementar la velocidad de dato. Recordar la relacin en la ecuacin (5.20 b):

Eb Pr 1
=

No No R
Si nosotros no hacemos nada en el sistema, excepto incrementar la velocidad del dato R, la
expresin anterior muestra que la Eb/No recibida podra decrecer, y en la figura 6.9 el punto que
operamos podra moverse ascendiendo del punto D, digamos a algn punto F.
Ahora, movindonos por debajo de la lnea vertical del punto E sobre la curva que representa la
modulacin por cdigo. Incrementando la velocidad del dato se ha degradado la calidad del dato.
Pero el uso del cdigo de correccin de error se vuelve de igual calidad a igual niveles de potencia
(Pr/No). La Eb/No es reducida, pero el cdigo facilita consiguiendo igual probabilidad de error con
un Eb/No mas bajo. Cul es el precio que pagaremos para realizar esta elevacin en la velocidad
del dato, o agrandar la capacidad?. Al igual que antes incrementar el ancho de banda.

6.3.4.5

Trde-off 4 : Capacidad vs. Ancho de Banda

El trde-off 4 es similar al trade-off 3, ambos sistemas logran incrementar la capacidad. El spreadspectrum de acceso mltiple, llamado acceso mltiple por divisin de cdigo (CDMA) y descripto
en l capitulo 12, es uno de los mtodos usados en telefona celular.
En CDMA, donde los usuarios usan simultneamente la misma parte del espectro, cada uno de los
usuarios representa una interferencia para cada uno de los dems usuarios que se encuentran en la
misma celda o en celdas prximas. Por lo tanto la capacidad (mximo n de usuarios) por celda es
inversamente proporcional a Eb/No (Ver seccin 12.8). En esta aplicacin, una disminucin de
Eb/No, produce un pequeo aumento en la capacidad: la codificacin logra una reduccin en la
potencia de los usuarios, esto se permite para incrementar l numero de usuarios.

19

Otra vez el costo es un aumento del ancho de banda, pero en este caso, la expansin del ancho de
banda de la seal debido al uso del cdigo de correccin de error, es pequea comparada con la
mayor importancia de expansin del ancho de banda del spread-spectrum, y por eso, no hay
impacto sobre el ancho de banda de transmisin.
En cada uno de los ejemplos de trade-off de arriba, un cdigo tradicional comprende una
redundancia de bits y seal mas rapida (para un sistema de comunicacin en tiempo real) que ha
sido asumido; por lo tanto, en cada caso, el costo fue expandir el ancho de banda.
Sin embargo al existir una tcnica de correccin de error, llamada modulacin trellis-coded (cdigo
entrelazado) que no requiere saales rapidas o expansin del ancho de banda para un sistema en
tiempo real (esta tcnica es descripta en la seccin 9.10).

Ejemplo 6.2

Codificado vs. no codificado

Comparar la probabilidad del error del mensaje para un enlace de comunicacin con y sin el
uso del cdigo de correccin de error. Asumiendo que las caractersticas de transmisin sin
cdigo son modulaciones BPSK. El ruido Gaussiano Pr/No = 43.776, velocidad del dato
R=4800 bits/s. Para el caso del uso del cdigo, y adems asumiendo el uso de un (15.11) de
cdigo de correccin de error que es capaz de corregir cualquier patrn de error simple
dentro de un bloque de 15 bits. Considerar que el demodulador realiza una decisin hard y
por esto colocamos los bits de cdigos demodulados directamente al decodificador el cual
produce en las salidas una estimacin del mensaje original.
Solucin
siguiendo la ecuacin (4.79)

Pu = Q

2Eb
No

Pc = Q

2 Ec
Nc

sea la probabilidad de error de smbolo de canal sin cdigo y con cdigo, respectivamente,
donde Eb/No es la energa de bit para la densidad espectral de ruido y Ec/No es la energa del
bit-cdigo por la densidad espectral de ruido.
Sin cdigo :

Pr 1
Eb
=
= 9.12(dB )
N 0 No R
y

Pu = Q

F
GH

I
JK

2 Eb
. x105
= Q 18.24 = 102
N0

(6.20)

donde fue usada la aproximacin siguiente de Q(x) de la Ecuacin (3.44) fueron usadas:
La probabilidad que el bloque del mensaje sin el cdigo Mc fuera recibido en error es 1
menos el producto de la probabilidad que cada bit fuera detectado correctamente. Para esto:

20

PMc = 1 (1 Pu )

= 1 (1 Pu ) = 1.12 x10 4
11

(6.21)

donde (1-Pu)11 es la probabilidad de que los 11 bits sin codigo del bloque sean correcto y
donde 1.12e-4 es la probabilidad de que al menos 1 bit fuera de los 11 erroneo.
Con codigo :
Asumiendo un sistema de comunicacin en tiempo real tal que el retrazo es inaceptable, la
velocidad de smbolo del canal o bit de cdigo Rc es 15/11, veces la velocidad del bit de
dato :

Rc = 4800 x

15
= 6545 bps
11

Eu Pr 1
=
= 6.69(8.3dB)
No No Rc
La Eb/No para cada bits de cdigo es menor que para el bit de dato en el caso del no uso del
cdigo debido ha que se ha incrementado la velocidad de bit del canal, pero la potencia de
trasmisin no ha cambiado :

2 Ec
= Q 13.38 = 1.36 x10 4
Pc = Q

No

(6.22)

Esto se puede ver por simple compararacin de los resultados de la ecuacin 6.20 con
aquellos de la Ec. 6.22, esto debido a que fueron sumadas las redundancias, la probabilidad
de error de bit del canal ha empeorado. Mayor cantidad de bits son detectados durante
intervalos de igual tiempo y con igual potencia disponible: el mejoramiento en el
funcionamiento debido al uso del codigo no es aun visible.
Ahora computemos la velocidad de codificado del mensaje erroneo Mc usando la ecuacin
6.18 :

P =
c
M

15
j (Pc ) (1 Pc )

n =15
j =2

15 j

La sumatoria empieza de j = 2 , dado que el cdigo corrige todos errores simples escritos en
un bloque de n = 15 bits. Se obtiene una aproximacin por el uso de solo el primer termino
de la sumatoria. Para pc, usamos los valores calculados en la Ec. 6.22:

15
2
13
PMc = ( pc ) (1 pc ) = 1.94 x10 6
2

(6.23)

Por comparacin de los resultados de las ec. 6.21 con la 6.23 podemos ver que la
probabilidad de error del mensaje ha mejorado por un factor de 58, en el ejemplo, debido a
el uso del cdigo de correccin de error.

21

Este ejemplo ilustra el comportamiento tpico de todos aquellos sistemas de comunicacin


en tiempo real que usan el cdigo de correccin de error. Sumando la velocidad media de
seal de redundancia, menos la energa por smbolo del canal, y mas los errores fuera del
demodulador. Los beneficios surgen en el comportamiento del decodificador (a razonables
valores de Eb/No) que ser mas que compensado por la escasa performance del
demodulador.

6.3.4.6 Performance del cdigo a bajos valores de Eb/No


Se urge del lector solucionar el problema 6.5 el cual es similar al ejemplo 6.2. En la parte (a) del
problema 6.5 donde se da un Eb/No de 14 dB, el resultado es un mejoramiento en la performance del
error del mensaje a travs del uso del cdigo. Sin embargo, en la parte (b) donde el Eb/No se ha
reducido a 10 dB, el uso del codificado no produce mejora: en realidad hay una degradacin. Uno
podra preguntar, por que la parte (b) manifiesta una degradacin. Despus de todo el mismo
procedimiento se usa para aplicar el cdigo en ambos puntos del problema. La respuesta podra
encontrarse en el dibujo del cdigo vs. sin cdigo mostrado en la figura 6.9. Precisamente a travs
del problema 6.5 tratando con la probabilidad del error del mensaje, y en la figura 6.9 se obtiene la
probabilidad de error de bit. , esto se aplica en la siguiente explicacin. En todos estos grficos, hay
un cruce entre las curvas (usualmente en algunos valores bajos de Eb/No).
La razn por la que se cruzan es que siempre los sistemas con cdigo tendrn alguna capacidad de
correccion de error fija. Si hay muchos errores dentro de en bloque que el cdigo sea capaz de
corregir, el sistema realizara una lista.
Imagine que la Eb/No es reducida continuamente. Que sucede a la salida del demodulador?. Esto
producir mas y mas errores. Hasta ahora, un decrecimiento continuo en Eb/No permite
eventualmente causar algn umbral para ser alcanzado donde el decodificador se agobie con el
error. Cuando este umbral es atravesado, podemos interpretar que se produce un degradamiento
causado por una redundancia de bits. Consumiendo energa sin dar ningn beneficio a causa de
esto.
Esto hace chocar al lector con una paradoja, que operando en una regin (de bajos valores de Eb/No)
donde uno podra ver un mejoramiento en la performance del error, es donde el uso del cdigo hace
esto peor. Hay sin embargo una clase de cdigo poderoso llamado cdigo turbo que produce un
mejoramiento en la performance del error a bajos valores de Eb/No el punto de cruce es menor para
el cdigo turbo comparado con el cdigo convencional (estos son tratados en la seccin 8.4).

6.4 CDIGO DE BLOQUE LINEAL


El bloque de cdigo lineal (as como los descriptos en la seccin 6.2) son una clase de cdigos de
chequeos de paridad que pueden ser caracterizados por (n, k) notacin antes descripta. El
codificador transforma un bloque de k digitos de mensajes (vector de mensaje) dentro de un bloque
de un largo de n digitos de codeword (vector de cdigo) construido de un alfabeto dado de
elementos. Cuando el alfabeto consiste de dos elementos (0 y 1), el cdigo es binario que
comprende dgitos binarios (bits). Nuestra discusin de bloque de cdigo lineal es restringida a
dgitos binarios, en lugar de otra notacion.
Los mensajes de k-bit de 2 K secuencias de mensajes distintos referido como k-tuples (secuencia de
k dgitos). El bloque de n-bit puede formar como 2n secuencias distintas; referido a n-tuples.
El procedimiento de codificado asigna a cada uno de los 2 K mensajes de k-tuples uno de los 2 n de
los n-tuples. Un bloque de codificacin representa una asignacin uno a uno segn el cual los 2 K
mensajes k-tuples son mapeados nivocamente dentro de un nuevo conjunto de 2 K codeword ntuples: el mapeado puede ser realizado viendo una tabla. Para el codificado lineal, la transformacin
de mapeo es, por supuesto lineal.
22

6.4.1

Espacios Vectoriales

El conjunto de todos los n-tuples binarios, Vn, es llamado espacio vectorial sobre un campo binario
de dos elementos (0 y 1). En el campo binario habr dos operaciones, suma y multiplicacin, tal que
el resultado de todas las operaciones son un conjunto igual de dos elementos. Las operaciones
aritmticas de suma y multiplicacin son definidas para la conversin del campo alfabtico (4). Por
ejemplo, en el campo binario, la regla de suma y multiplicacin son las siguientes :
Suma

multiplicacin

00=0
01=1
10=1
11=0

0*0=0
0*1=0
1*0=0
1*1=1

Las operaciones con el smbolo , es igual a la operacin modulo descripta en la seccin 2.9.3. La
sumatoria de n-tuples binarios implica siempre sumatoria en modulo-2. Sin embargo para
simplificar la notacin siempre usaremos el smbolo + sin circulo.

6.4.2 Subespacios Vectoriales


Un subconjunto S del espacio vectorial Vn es llamado subespacio, si se siguen con las dos
condiciones que se mencionan a continuacin :
1- Los vectores de todos ceros esta en S.
2- La suma de dos vectores cualquiera en S esta tambin S. (conocida como la propiedad de cierre).
Estas propiedades son fundamentales para la caracterstica algebraica del bloque de codificacin
lineal. Suponiendo que Vi y Vj son dos codeword o vectores cdigos, en un bloque de codificacin
binaria de (n, k). La codificacin puede ser llamada lineal si y solo si (Vi Vj) es tambin un
vector cdigo. Un bloque de codificacin lineal, es un bloque en el cual los vectores fuera del
subespacio no pueden ser creados por la suma de codewords (miembros del subespacio).
Por ejemplo, el espacio vectorial V4 es totalmente conocido por las siguientes 2 4 =16 4-tuples :
0000
1000

0001
1001

0010
1010

0011
1011

0100
1100

0101
1101

0110
1110

0111
1111

Un ejemplo de un subconjunto de V4 que forman un subespacio es:


0000

0101

1010

1111

Esto es fcil de verificar cuando se suman dos vectores cualquiera en el subespacio puede solo
producir uno de los otros miembros del subespacio. Un conjunto de 2k n-tuples es llamado bloque
de codificacin lineal si y solo si este es un subespacio del espacio vectorial Vn de todos los ntuples.
La figura 6.10 ilustra, con una simple analoga geomtrica, la estructura detrs del bloque de
codificacin lineal.

Figura 6.10
23

Nosotros podemos imaginar el espacio vectorial Vn comprendido con 2 n n-tuples. Dentro de este
espacio vectorial existe un subconjunto de 2 k n-tuples creando un subespacio. Estos 2 k vectores
o puntos, se muestran en el
punteado entre estos numerosos puntos 2 n , representan las
verdaderas asignaciones de los codewords.
Un mensaje es codificado dentro de los 2k vectores cdigos permisibles, y luego es trasmitido. A
causa del ruido en el canal, se produce una versin distorsionada de los codeword (uno de los otros
2n vectores en el espacio n-tuple ) que puede ser recibido.
Si el vector es perturbado no es muy diferente (no muy distante de) del verdadero codeword, el
decodificador puede decodificar el mensaje correctamente. La verdadera meta en la eleccin de un
cdigo en particular, similar a la meta o la verdadera finalidad en la eleccin de un conjunto de
modulacin de formas de ondas, pueden ser expuestas en el contexto de la figura 6.10 como sigue :
1- Nosotros nos esforzamos para codificar eficientemente por paquetes el espacio Vn con tantos
codewords como sea posible. Esto es equivalente a decir que nosotros solo queremos consumir una
cantidad pequea de redundancias (exceso de ancho de banda).
2- Nosotros decimos que los codewords estn apartados unos de otro tanto como sea posible, a fin
de que si los vectores experimentan algn error durante la transmisin, ello puede ser detectado y
codificado correctamente, con una mayor probabilidad.

6.4.3 Un Ejemplo De Bloque De Codificacin Lineal (6,3)


Examinemos la siguiente asignacin de cdigo que describe un cdigo (6,3). Hay 2k = 23 = 8
vectores mensajes, y por lo tanto 8 codewords. Hay 2n = 26= 64 6-tuples en el espacio vectorial V6:
Es fcil comprobar que los 8 codewords mostrados en la tabla 6.1 forman parte del subespacio de
V6 (porque tiene el vector con todos ceros y la suma de dos cualquiera codewords producen otros
codewords miembros del subspacio) por lo tanto esos codewords representan un bloque de
codificacin lineal, como se define en la seccin 6.4.2. Una cuestin natural a preguntarse es como
fue el proceso de asignacin de una codeword a un mensaje para el caso particular (6,3)?. No existe
una asignacin nica para un cdigo en particular (n, k): sin embargo, tampoco hay una completa
libertad de opcin. En la seccin 6.6.3 analizamos los requerimientos y limitaciones que hace
funcionar un determinado cdigo.
TABLA 6.1

Asignacin de codewords a mensajes


Vector Mensaje
000
100
010
110
001
101
011
111

Codeword
000000
110100
011010
101110
101001
011101
110011
000111

6.4.4 Matriz Generadora


Si k es muy grande la implementacin de la codificacin resulta prohibitiva su realizacin por
observecion.
Para un cdigo (127,92) hay 292 o aproximadamente 5x1027 vectores de cdigos.

24

Si el procedimiento de codificado consiste de una simple tabla, imagine el largo de la memoria


necesaria para contener un gran numero de codewords. Afortunadamente, es posible reducuir la
complejidad generando las codewords a medida que se necesitan, en lugar de almacenarlos.
Entonces un conjunto de codewords que forman un bloque de codificacin lineal es un subespacio
k-dimencional de un espacio vectorial binarios de n-dimenciones (k<n), es siempre posible
encontrar un conjunto de n-tuples, menores que 2k, que puedan generar las 2k codewords del
subespacio. El conjunto generador de los vectores, es llamado, subespacio del espacio. El conjunto
ms pequeo linealmente independiente que ensancha (span) el subespacio es llamado subespacio
base, y el numero de vectores en este conjunto base es la dimensin del subespacio. Cualquier
conjunto base de k linealmente independientes n-tuples V1, V2, ..., Vk, pueden ser usados para
generar los vectores de codigo de bloque lineales requeridos, entonces cada vector cdigo es una
combinacin lineal de V1, V2, ..., Vk.
Esto es, cada conjunto de 2k codewords {U} pueden ser descriptos por :

U = m1.V1 + m2 .V2 + ..... + mk .Vk


donde mi = (0 o 1) son los digitos del mensajes e i = 1,...k.
En general nosotros podemos definir una matriz generadora por el siguiente arreglo k x n :

V1 V11 V12
V V
2 21 V22
G= . = .
.

.
. .
V3 VK 1 VK 2

.
.
.
.
.

. V1n
. V2 n
.
. .

.
.
. VKN

(6.24)

Los vectores cdigo, por conveniencia, son usualmente designados como una fila de vectores. De
esta manera el mensaje m, y una secuencia de k bits de mensajes, se muestran abajo como una fila
de vectores (matriz de 1 x k teniendo una fila y k columnas) :

m = m1 , m2 ,......., mk
La generacin de las codeword U es escrita en notacin de matriz como el producto de m y G,
como:
U = mG

(6.25)

donde, en general, la multiplicacin de matrices C=A.B es realizada de manera usual por el uso de
la regla :
n

Cij = aik .bkj

i = 1.......l

j = 1......m

donde A es una matriz de l x n y B de n x m y el resultado C es una matriz de l x m. Por el ejemplo


introducido en la seccin precedida, podemos confeccionar un generador de matriz como:

25

V1 1 1 0 1 0 0
G = V2 = 0 1 1 0 1 0
V3 1 0 1 0 0 1

(6.26)

Donde V1, V2 y V3 son tres vectores linealmente independientes (un subconjunto de los 8 vectores
cdigo) que pueden generar todos los vectores cdigos. Ntese que la suma de dos cualquiera de los
vectores generadores no produse cualquier otro vector generador dado que entre ellos son
independientes (la regla de cierre no se cumple). Generamos las codeword U4 con el cuarto vector
mensaje 110 en la tabla 6.1, usando la matriz generadora de la ecuacin (6.26) :

V1
U 4 = [1 1 0]V2 = 1.V1 + 1.V2 + 0.V3
V3
=110100+011010+000000
= 1 0 1 1 1 0 (codeword para el vector mensaje 1 1 0)
De esta manera los vectores cdigo correspondientes a un vector mensaje es una combinacin lineal
de las filas de G.
De esto, el cdigo es definido totalmente por G, y el codificador solo puede cargar k filas de G, en
lugar del total de 2k vectores cdigos. Para este ejemplo, notamos que el arreglo del generador de
dimensin 3x6 en la ecuacin (6.26) reemplaza el arreglo original de codeword de dimensin 8x6
en la tabla 6.1 representando una reduccin en la complejidad del sistema.

6.4.5 Codificador De Bloque Lineal Sistemtico


Un codificador de bloque lineal sistemtico (n,k) es un mapeo desde un vector mensaje de kdimensiones a un codeword de n-dimensiones de tal manera que parte de la secuencia generada
coincida con los k dgitos del mensaje. Los restantes (n-k) dgitos son dgitos de paridad. Un
codificador de bloque lineal tendr una matriz generadora de :

.
.
G = P I k
.

.
p11
p
21
= .

.
pk 1

p12
p22
.
.
pk 2

.
.
.
.
.

.
.
.
.
.

p1(n k ) 1 0 . . 0
p2(n k ) 0 1 . . 0
.
. . . . .

.
. . . . .
pk (n k ) 0 0 . . 1

(6.27)

26

donde P es la porcin del arreglo de paridad del generador de matriz pij = (0 o 1),y Ik es la matriz
identidad de k x k (unos en la diagonal principal y ceros en los lugares restantes). Note que con este
generador sistemtico, la complejidad del codificador se reduce mas, de esto no es necesario cargar
la porcin de la matriz identidad del arreglo. Por convinacion de las ecuaciones (6.26) y (6.27) cada
codeword es expresado como :

p11
p
21
u1 , u2 ,....u n = [m1 , m2 ,....mk ]x .

.
pk 1

p12
p22
.
.
pk 2

.
.
.
.
.

.
.
.
.
.

p1(n k ) 1 0 . . 0
p2(n k ) 0 1 . . 0
.
. . . . .

.
. . . . .
pk (n k ) 0 0 . . 1

donde

ui = m1 p1i + m2 p2i + ...... + mk pki

para......i = 1..........(n k )
para......i = (n k 1).........n

ui = mi n k

dado el mensaje k-tuples

m = m1 , m2 ,.....mk
y el vector cdigo general n-tuples

U = u1 , u 2 ,......, u n
el vector cdigo sistemtico puede ser expresado como

U = p1 , p2 ,..., pn k .m1 , m2 ,...., mk


bits de
paridad

(6.28)

bits de
mensaje

donde los p son los bits de paridad y los m son los bits de mensaje
y donde :

p1 = m1 p11 + m2 p21 + ....... + mk pk 1


p2 = m1 p12 + m2 p22 + ...... + mk pk 2

(6.29)

pn k = m1 p1( n k ) + m2 p2( n k ) + ...... + mk pk ( n k )


Los codeword sistemticos son algunas veces escritas a fin de que los bits mensajes ocupen la
porcin del lado izquierdo del codeword y los bits de paridad ocupen la porcin del lado derecho.

27

Este reordenamiento no tendr efecto sobre la deteccin de errores o la correccion de errores


propios de los cdigos, y no sern mas considerados.
Para el ejemplo de cdigo (6.3) en la seccin 6.4.3 los codewords son descriptos como siguen :

1 1 0 . 1 0 0
U = [m1 , m2 , m3 ].0 1 1 . 0 1 0
1 0 1 . 0 0 1

(6.30)

,m ,m
= m1 + m3 ,m1 + m2 , m2 + m3 , m




N1 N2 N3
u2

u1

u4

u3

u5

(6.31)

u6

La ecuacin (6.31) provee alguna idea dentro de la estructura del bloque de codificacin lineal.
Vemos que la redundancia de dgitos son producidas de varias 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 primer y
segundo bit de mensaje; y el tercer bit de paridad es la suma del segundo y tercer bit de mensaje.
Intuitivamente tal estructura nos dice que, comparado con el control de simple paridad o un simple
procedimiento de repeticin de dgitos, puede generar una capacidad grandiosa para detectar y
corregir errores.

6.4.6

Matriz De Control De Paridad

Definimos una matriz H, llamada matriz de control de paridad, que nos permitira la decodificacion
de los vectores recividos.
Para cada matriz generadora G de (k x n), existe una matriz H de (n-k) x n, tal que las filas de G
sean ortogonales a las filas de H: que es G.HT = 0, donde HT es la matriz transpuesta de H, y 0 es
la matriz con todos ceros de k x (n-k). H transpuesta es una matriz de n x (n-k) cuyas filas son las
columnas de H. Para cumplir los requerimientos de ortogonalidad para un codigo sistemtico,
escribimos los componentes de H como:
H=[In-k PT]

(6.32)

Por lo tanto, la matriz HT es escrita como :


H

I nk
= ..........
P

1
0

.
0
=
p11
p
21
.
.

p k 1

(6.33a)

0
1
.
.
0
p12
p 22
.
.
pk 2

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

p1 ( n k )
p2(n k )

.
.

p k ( n k )
0
0
.
.
1

(6.33b)

28

Esto es fcil de verificar que el producto de U.HT de cada codeword U, generados por las matrices
G y HT , entonces:

UH T = p1 + p1 , p2 + p2 ,........... pn k + pn k = 0
Donde los bits de paridad p1, p2, ..., pn-k son definidos en la ecuacin (6.29). Por lo tanto una vez que
la matriz de control de paridad H es construida y cumple con los requerimientos de ortogonalidad,
podemos usar la prueba donde una recepcin de un vector es una parte valida del conjunto de
codeword. U es una codeword generada por la matriz G si y solo si UHT=0.

6.4.7 Testeo del Sndrome (Syndrome Testing)


Hacemos r = r1, r2,.....,rn como el vector recibido (uno de 2n n-tuples) resultado de la transmisin de
U = u1, u2,.....,un (uno de 2k n-tuples). Podemos escribir a r como :
r=U+e

(6.34)

donde e = e1, e2,.....,en es un patrn de error (error pattern) introducido por el canal. Hay un total de
2n 1 patrones de error potenciales distinto de cero en el espacio de 2n n-tuples.
El sndrome de r se define como:
S = (U+e)H T

(6.35)

El sndrome es el resultado de un chequeo de paridad sobre r para determinar si r es un miembro


vlido del set de codeword. Si, en efecto r es un miembro vlido, el sndrome S tiene valor cero. Si r
contiene errores detectables, el sndrome es distinto de cero. Si r tiene errores corregibles, el
sndrome tiene valores distintos de cero que se pueden enmarcar en un patrn de error particular. El
decoder, dependiendo de como estn implementados los FEC y ARQ, tomar acciones para
localizar los errores y corregirlos (FEC) o, de otra forma, se pedir la retransmisin (ARQ).
Combinando las ecuaciones (6.34) y (6.35) tenemos :
S = (U+e)H T
= UH T + eH T
(6.36)
Sin embargo UH T = 0 para todos los miembros del set de codeword. Por lo tanto :
S = eH T

(6.37)

El desarrollo anterior, comenzando con la ecuacin (6.34) y terminando con la ecuacin (6.37), es
evidente que el test del sndrome, si se hace sobre cualquier vector de cdigo corrupto o sobre el
patrn de error que lo causa, produce el mismo sndrome. Una propiedad importante de los cdigos
de bloque lineal, fundamentalmente en el proceso de decodificacin, es que el mapeo entre el patrn
de error corregible y el sndrome es uno a uno.
Esto es importante para entender las siguientes dos propiedades de la matriz de chequeo de paridad:
1. Las columnas de H no deben ser de todos ceros, o de lo contrario un error en la posicin de
codeword correspondiente no afectara el sndrome y no se detectara el error.
2. Todas las columnas de H deben ser nicas. Si dos columnas fueran iguales, los errores en esas
dos correspondientes condiciones de codeword seran indistinguibles.

29

Ejemplo 6.3

Testeo del sindrome (Syndrome test)

Suponemos que el codeword U = 101110 del ejemplo de la seccin 6.4.3 se transmite pero
se recibe el vector r = 001110 (tiene error en el 1 bit de la izquierda). Encuentre el valor del
vector sndrome S = rH T y verifique que es igual a eH T.

Solucin

S = rH T
= [0 0 1 1 1 0]

100
010
001
110
011
100

= [1,1+1,1+1] = [1 0 0] (sndrome de un vector de cdigo corrupto)


Ahora verificamos que el sndrome de arriba es igual al sndrome del patrn de error que a causado
el error:
S = eH T = [1 0 0 0 0 0] H T = [1 0 0]
(sndrome del error pattern)

6.4.8 Correccin de Error


Tenemos detectado un error simple y vemos que el test de sndrome hecho sobre el codeword
corrupto o sobre el patrn de error producen sndromes iguales. Esto podra ser un indicio de que no
solo se puede detectar el error, sino que hay una correspondencia uno a uno entre el patrn de error
corregible y los sndromes, podemos corregir tal patron de error. Podemos arreglar el 2n n-tuples tal
que represente los posibles vectores recibidos, en un conjunto, llamado arreglo estandar (standard
array), tal que la primera fila contenga todos los codewords, comenzando con la codeword de todos
ceros, y la primera columna contiene todos los patrones de error corregibles.
Vemos desde las propiedades bsicas de los cdigos lineales (ver seccin 6.4.2) que un vector con
todos ceros debe ser un miembro de grupo de codewords. Cada fila, llamada coset, consiste de un
patrn de error en la primer columna, llamada coset lider (coset leader), seguida de los codeword
perturbados por ese patron de error

(6.38)
Vemos que el codeword U1, de todos ceros, juega dos roles, una que es un codeword y tambin
puede ser pensado como un patrn de error e1 -patrn que representa que no hay error como r = U.

30

El conjunto contiene 2n n-tuples en el espacio Vn. cada n-tuples aparece solo en un lugar -no se
pierden ni estn repetidos. Cada coset consiste de 2k n-tuples. De aqu en adelante hay (2n / 2k) =2n-k
coset.
El algoritmo decodificador reemplaza un vector errneo (algun n-tuples se excluye de sto en la
primer fila) por un codeword vlido desde el tope de la columna que contiene el vector corrupto.
Suponemos un codeword Ui (i = 1...... 2k) que se transmite por un canal con ruido y se recibe un
vector (errneo o contaminado) Ui + ei. Si el patrn de error ej causado por el canal es un coset
lider, donde el indice j = 1...... 2n-k , el vector recibido ser decodificado correctamente dentro del
codeword transmitido Ui.
Si el patrn de error no es un coset lider, entonces resultar una codificacin errnea.

6.4.8.1 El sndrome de un coset


Si ej es un coset lider o patrn de error del coset jth, entonces Ui + ej es un n-tuples en este coset. El
sndrome de este n-tuples se escribe como :
S = (Ui+ej)H T = UiH T + ejH T
Puesto que Ui es un vector cdigo, Ui H T = 0, lo podemos escribir como la ecuacin (6.37) :
S = (Ui+ej)H T = ejH T

(6.39)

El nombre coset es el nombre corto de "grupo de nmeros con caractersticas comunes" Qu


miembros de alguna fila dada (coset) tienen en comn? Con la ecuacin (6.39) aclaramos que cada
miembro de un coset tienen sndromes iguales. El sndrome de cada coset es diferente al de
cualquier otro coset en el cdigo; es el sndrome que se usa para estimar el patrn de error.

6.4.8.2 Decodificacin y correccin de error (Error Correction Decoding)


El proceso para la decodificacin y correccin de error es el siguiente :
1) Calcular el sndrome de r usando S=rH T
2) Localizar el coset lider (patron de error) ej, cuyo sndrome es rH T
3) Este patrn de error se asume como el error causado por el canal.
4) El vector recibido corregido, o codeword, se identifica como U = r + ej. Podemos decir que
recuperamos el codeword vlido sustrayendo el error identificado, en la aritmtica del mdulo 2, la
operacin de sustraccin es idntica a la de adicin.

6.4.8.3 Localizacin del patrn de error


Volviendo al ejemplo de la seccin 6.4.3 arreglamos 26 n-tuples en un conjunto estndar como se
muestra en la figura 6.11. Los codeword vlidos son los 8 vectores de la primera fila, y los patrones
de error corregibles son los 7 coset lider distintos de cero de la primera columna. Note que todos los
patrones con 1 bit de error son corregibles. Note tambin que despus de haber agotado todos los
patrones con 1 bit de error, all permanece alguna capacidad de corregir errores puesto que no
tenemos todava contados todos los 64 6-tuples. Hay un coset lider que no est asignado, de ahora
en adelante, aqu permanece la capacidad de corregir un patrn de error adicional. Tenemos la
flexibilidad de elegir el patrn de error para ser alguno de los n-tuples en el coset remanente.
En la figura 6.11 se elige para el final, el patrn de error de 2 bit 010001. La decodificacin
ser correcta si, y solo si, el patrn de error causado por el canal es uno de los coset lider.

31

Figura 6.11
Ahora determinamos el sndrome correspondiente a cada una de las secuencias de error corregible a
travs del clculo de ej HT para cada coset lider, como sigue :

S = ej

100
010
001
110
011
101

Los resultados son listados en la tabla 6.2. Ya que cada sndrome de la tabla es nico, el decoder
puede identificar el patrn de error que le corresponde a cada sndrome.
TABLA 6.2

Tabla de Sndrome Look-Up


Error Pattern
000000
000001
000010
000100
001000
010000
100000
010001

6.4.8.4

Sndrome
000
101
011
110
001
010
100
111

Ejemplo de correccin de error

Como dijimos en la seccin 6.4.8.2 recibimos el vector r y calculamos sus sndromes usando S =
rHT. Despues usamos el sndrome para encontrar el correspondiente patrn de error. Este patrn de
error es una estimacin del error, y se denota como . El decoder luego suma con r para obtener
una estimacin del codeword transmitido :
= r + = (U + e) + = U + (e + )

(6.40)

Si el patrn de error estimado es igual a algn patrn de error actual, esto es, se = e entonces la
estimacin es igual al codewor transmitido U.
Por otro lado si la estimacin es incorrecta, el decoder estimar un codeword que no fue
transmitido y entonces tenemos un error de codificacin indetectable.

Ejemplo 6.4

Correccin de Error

Asumimos que transmite el codeword U = 101110 del ejemplo de la seccin 6.4.3 y se


recibe el vector r = 001110. Muestre cmo un decoder, usando la tabla 6.2, puede corregir
el error.

32

Solucin
El sndrome de r se calcula cmo :
S = [0 0 1 1 1 0] HT = [1 0 0]
Usando la tabla 6.2 el patrn de error correspondiente para el sndrome de arriba se estima
para ser:
=100000
El vector correcto se estima haciendo:
=r+
=001110+100000
=101110
Puesto que el patrn de error estimado es el patrn de error actual en este ejemplo, el
procedimiento de correccin de error produce = U.
Note que el proceso de decodificar un codeword errneo y despus corregir el error se
puede comparar con una analoga medica comun.

6.4.9

Implementacin del Decoder

Cuando el cdigo es corto como en el caso del cdigo (6.3) descripto en la seccin previa, el
codeword se puede implementar con un circuito simple. Considere los pasos que el decoder debe
hacer: 1) calcular el sndrome, 2) localizar el patrn de error y 3) realizar la suma del mdulo 2 del
patrn de error y el vector recibido (la cual elimina el error). En el ejemplo (6.4) comenzamos con
un vector errneo y vimos como estos pasos construyen el vector correcto (codeword). Ahora
consideramos el circuito de la figura 6.12, hecho de compuertas AND y X-OR que pueden lograr un
igual resultado para algn patrn de error simple en el cdigo (6.39). De la tabla 6.2 y la ecuacin
6.39, podemos escribir una expresin para cada uno de los dgitos del sndromes en trminos de los
dgitos del codeword recibido como :
S = rH T
100
010
S = [r1 r2 r3 r4 r5 r6] 0 0 1
110
011
101
y
s1 = r1 + r4 + r6
s2 = r2 + r4 + r5
s3 = r3 + r5 + r6
Usamos ests expresiones de sndrome para cablear el circuito de la figura (6.12). La compuerta XOR es la misma operacin que la aritmtica del mdulo 2 y de ah que usamos este smbolo . Un
pequeo crculo en la terminacin de algunas lneas que entran en las compuertas AND indican la
lgica "complemento de la seal".

33

La seal corrompida entra al decoder a dos lugares simultneamente. En la parte de arriba del
circuito se calcula el sndrome, y en la parte de abajo el sndrome se transforma a su
correspondiente patrn de error. El error se elimina sumando sto (anterior) al vector recibido
construyendo as el codeword correcto. Note que por razones didcticas, la figura (6.12) ha sido
dibujada para enfatizar los pasos de decodificacin algebraica -clculo de sndrome, patrn de error
y salida corregida-. En el mundo real un cdigo (n,k) usualmente se configura en forma sistemtica.
El decoder no necesitar entregar el codeword entero, su salida consistir de bits de datos
solamente. De aqu que el circuito de la figura (6.12) est simplificado por la eliminacin de
compuertas que se muestran con un sombreado. Para cdigos largos, como la implementacin es
muy compleja, y las tcnicas de decodificacin preferidas conservan la circuitera usamos una
aproximacin secuencial en lugar de estos mtodos en paralelo [4]. Es importante aclarar que la
figura (6.12) ha sido configurada solo para detectar y corregir patrones de error simples para el
cdigo (6.3). El control de error para un patrn de error doble requerira una cirtuitera adicional.

6.4.9.1 Notacin de vector


Los codewords, patrones de error, vectores recibidos y los sndromes han sido denotados por los
vectores U, e, r y S respectivamente. Para una simple notacin, el subndice para denotar un vector
en particular se descarta. Sin embargo, para ser precisos, cada uno de los vectores U, e, r y S son
uno de un juego (set) con la forma general :
Xj = {x1, x2,.......xi,...}
Considere el rango de los ndices j e i en el contexto del cdigo (6.3) en la tabla (6.1). Para el
codeword Uj, el ndice j = 1,....,2k indica que hay 23 = 8 codewords distintos y en ndice i = 1,....,n
indica que cada codeword es de 6 bits. Para un patrn de error corregible ej, el ndice j = 1,....,2n-k
indica que hay 23 = 8 coset lider (7 patrones de error distintos de cero), y en ndice 1 = 1,....,n indica
que cada patrn de error es de n = 6 bit.

34

Para el vector recibido rj, el indice j = 1,.....,2n indica que hay 26 = 64 posibles n-tuples que pueden
ser recibidos y el ndice i = 1,....,n indica que cada n-tuple recibido es de n = 6 bits. Finalmente, para
el sndrome Sj, el indice j = 1,.....,n-k indica que cada sndrome es de n-k = 3 bits. En este captulo
el ndice a menudo se deja de lado y los vectores Uj, ej, rj y Sj se denotan como U, e, r y S
respectivamente. El lector debe saber que estos vectores estn referidos a un ndice, incluso estos no
estn por haberse escrito en notacin simple.

6.5 DETECCIN DE ERROR Y CAPACIDAD DE CORRECCIN


6.5.1

Peso Y Distancia De Vectores Binarios

Debe quedar claro que no todos los patrones de error puedern ser decodificados correctamente.
El peso de Hamming w(u) (Hamming weight) de un codeword U es el nmero de elementos
distintos de cero en U. Para un vector binario equivale a nmero de unos en el vector. Por ejemplo,
si U = 100101101, entonces W(u)=5, la distancia de Hamminig entre dos codeword U y V, d(U,V)
se define como el nmero de elementos en el cual difieren, por ejemplo :
U=100101101
V=011110100
d(U,V) = 6
Por las propiedades de adicin del mdulo 2, notamos que la suma de dos vectores binarios es otro
vector cuyos unos binarios estn localizados en las posiciones en la cual los dos vectores difieren,
por ejemplo :
U+V=111011001
De esta manera observamos que la distancia de Hamming entre dos codewords es igual al peso de
Hamming de la suma, esto es, d(U,V) = w(U,V). Tambin vemos que el peso Hamming de un
codeword es igual a su distancia de Hamming con el vector de todos ceros.

6.5.2

Mnima Distancia De Un Cdigo Lineal

Considere un jugo (set) de distancias entre todos los pares de codewords en el espacio Vn. El
miembro mas pequeo del set es la mnima distancia del cdigo y se denota como dmin. Por qu
supones que tenemos inters en la mnima distancia; por qu no la mxima distancia? La mnima
distancia, como el eslabn ms dbil en una cadena, nos da una medida de la capacidad mnimo del
cdigo y por consiguiente caracteriza la fuerza del cdigo.
Como discutimos antes, la suma de dos codeworsd produce otro codeword miembro del subespacio.
Esta propiedad de cdigos lineales se define simplemente como : Si U y V son codewords, entonce
W = U + V debe ser un codeword. Por eso la distancia entre dos codeword es igual al peso de un
tercer codeword : esto es, d(U,V) = w(U+V) = w(W). De esta manera la mnima distancia de un
cdigo lineal puede ser averiguada sin examinar la distancia entre todas las combinaciones de los
pares de codewords. Solo necesitamos examinar el peso de cada codeword (excluyendo el
codeword de todos ceros) en el subespacio; el mnimo peso corresponde a la mnima distancia, dmin.
Igualmente dmin corresponde a la mnima distancia del set entre el codeword de todos ceros y todos
los otros codewords.

35

6.5.3 Deteccin y Correccin de Error


La tarea del decoder, teniendo el vector r (recibido), es estimar el codeword transmitido Ui. La
estrategia ptima del decoder se puede expresar en trminos de el algoritmo de "mxima
probabilidad" (ver apndice B) como sigue: Decidir en favor de Ui si :
(P(rUi) = max P(rUj)
sobre todo Uj

(6.41)

Ya que para el canal simtrico binario (BSC), la probabilidad de Ui con respecto a r es inversamente
proporcional a la distancia entre r y Ui, podemos escribir : Decidir en favor de Ui si
d(r,Ui) = min d(r,Uj)
sobre todo Uj

(6.42)

En otras palabras el decoder determina la distancia entre r y cada uno de los posibles codeword
transmitidos Uj, y selecciona cmo ms probable a Ui por lo cual
d(r,Ui) d(r,Uj) para i, j + 1,.....,M y i j
(6.43)
donde M = 2k es el tamao del grupo de codeword. Si el mnimo no es nico, la eleccin entre
mnimas distancia de codewords es arbitraria. Las distancias mtricas son tratadas ms adelante en
el captulo 7. En la figura 6.13 la distancia entre dos codewords U y V se muestran usando regla
calibrada en distancia de Hamming. Cada punto negro representa un codeword corrupto. La figura
6.13a ilustra la recepcin del vector r1, el cual est distanciado 1 de U a 4 de V. Un decoder de
correccin de error, siguiendo la estrategia de mxima probabilidad, seleccionara U al recibir r1. Si
r1 fue el resultado de un error de 1 bit para un vector de cdigo transmitido U, el decoder ha
corregido bien el error. Pero si r1 ha sido el resultado de una corrupcin de 4 bits para el vector de
cdigo transmitido V, el resultado es un error decodificado. Similarmente, un doble error en la
transmisin de U nos da un vector recibido r2, el cual est distanciado 2 de U y 3 de V, como se
muestra en la figura 6.13b. Aqu tambin el decoder seleccionar U al recibir r2. Un triple error en la
transmisin de U nos dar un vector recibido r3 que se distancia 3 de U y dos de V, como muestra
la figura 6.13c. Aqu el decoder seleccionara V al recibir r3, y se producir un error en la
decodificacin. En la figura 6.13 est claro que si la tarea es la deteccin del error y no la
correccin , un vector corrupto -caracterizado por un punto blanco y representando un error de 1 bit,
2, 3, o 4 bit- puede ser detectado. Sin embargo, cinco errores en la transmisin puede resultar un
codeword V siendo recibido cuando U era actualmente transmitido, tal que error sera indetectable.

36

De la figura 6.13 podemos ver que las capacidades de deteccin y correccin de error de un cdigo
estn relacionadas con la mnima distancia entre codewords. La lnea de decisin en la figura tiene
el mismo propsito en el proceso de decodificacin como en el de modulacin, para definir las
regiones de decisin. En la figura 6.13, por ejemplo, el criterio de decisin de elegir U si r cae en la
regin 1, y elegir V si r cae en la regin 2, ilustra cmo un cdigo (con dmin = 5) puede corregir dos
errores. En general, la capacidad de correccin de error t de un cdigo se define como el mximo
numero de errores corregibles garantizados por codeword, y se escribe [4].

d 1
t = min

(6.44)

donde [x] significa el entero ms grande para no exceder x. A menudo, un cdigo que corrige
posibles secuencia de t o menos errores, puede tambin corregir secuencias de t+1 errores. Esto se
puede ver en la figura 6.11. En este ejemplo dmin= 3, y as, de la ecuacin (6.44), podemos ver que
todos los patrones de error de t = 1 bit son corregibles.
Tambin, un simple patrn de error de t-1 o dos bits es corregible. En general, un cdigo lineal de
correccin de t-errores(n, k) es capaz de corregir un total de 2n-k patrones de error. Si un bloque de
cdigos de correccin de t-errores se usa para la correccin de error sobre un canal simtrico binario
(BSC) con probabilidad de transicin p, la probabilidad de mensaje errneo , PM, que el decoder
cometa una decodificacin errnea, y que el block de n-bit es error, puede ser calculado usando la
ecuacin (6.18) como un lmite superior :

PB

j =t +1

j p

(1 p ) n j

(6.45)

El lmite se vuelve una igualdad cuando el decoder corrige todas las combinaciones de errores e
incluso los errores, pero no las combinaciones de errores mayores que t. Algunos decoders se
llaman decoders de distancia lmite. La probabilidad de bit de error decodificado PB, depende de un
cdigo y un decoder particular. Esto se puede expresar con la siguiente aproximacin.

PB =

1
n

n
j p j (1 p ) n j
j =t +1 j
n

(6.46)

Un cdigo de bloque (blok code) necesita detectar los errores antes de corregirlos. O, puede usarse
para deteccin de error solamente. Debe quedar claro de la Figura 6.13 que ningn vector recibido
caracterizado por un punto negro (un codeword corrupto) debe ser identificado como un error. Por
lo tanto, la capacidad de deteccin de error se define en trminos de dmin como :
e = dmin 1

(6.47)

Un cdigo de blok (blok code) con distancia mnima dmin garantiza que todos los patrones de error
de dmin - 1 o menos errores pueden ser detectados. Semejante cdigo tambin es capaz de detectar
una larga fraccin de patrones de error con dmin o ms errores. De hecho, un cdigo (n, k) es capaz
de detectar 2n - 2k patrones de errores de largo n. El razonamiento es como sigue. Hay un total de 2n
- 1 posibles patrones de error distintos de cero en el espacio de 2n n-tuples. Incluso el patrn de bit
de un codeword vlido representa un patrn de bit potencial.

37

De esta manera hay 2k - 1 patrones de error que son idnticos a los 2k - 1 codewords distintos de
cero. Si ninguno de esos 2n - 1 patrones de error ocurre, esto altera el codeword transmitido Ui
dentro de otro codeword Uj. As Uj ser recibido y su sndrome es cero. El decoder acepta a Uj
como el codeword transmitido y por eso entrega una decodificacin incorrecta. Por lo tanto hay 2k 1 patrones de error indetectables. Si el patrn de error no es idntico a uno de los 2k codewords, el
testeo del sndrome en el vector recibido en el vector recibido r produce un sndrome distinto de
cero, y el error es detectado. De esta manera hay exactamente 2n - 2k patrones de error detectables.
Para un largo n, donde 2k << 2n solamente una pequea fraccin de patrones de errores son
indetectables.

6.5.3.1

Distribucin de pesos de una codeword

Aj es el nmero de codewords de peso j con un cdigo lineal (n,k). Los nmeros A0, A1,...,An son
llamados distribucin de pasos del cdigo. Si el cdigo es usado solamente para deteccin de error,
sobre un BSC, la probabilidad de que el decoder no detecte un error puede ser calculado de la
distribucin de pesos del cdigo como :
n
n
Pnd = A j p j (1 p ) n j
j =1
j

(6.48)

donde p es la probabilidad de transicin del BSC. Si la mnima distancia del cdigo es dmin, los
valores de A1 a Admin 1 son cero.

Ejemplo 6.5 Probabilidad de un error no detectable en un cdigo de deteccin de


error
Considerar que el cdigo (6,3), dado en la seccin 6.4.3, es usado solamente para
deteccin de error.
Calcular la probabilidad de un error no detectado si el canal es BSC y la probabilidad de
transicin es 10-2.

Solucin
La distribucin de pesos de este cdigo es A0 = 1, A1 = A2 = 0, A3=4, A4 = 3, A5 = 0, A6 =
0.
Entonces, podemos escribir, usando la ecuacin (6.84),
Pnd=4p3(1-p)3 + 3p4(1-p)2
Para p = 10-2, la probabilidad de un error no detectado es 3,9 e-6.

6.5.3.2

Deteccin y correccin de error simultaneo

Es posible negociar la capacidad de correccin desde el mximo garantizado (t), donde t est
definido en la ecuacin (6.44), para la habilidad de detectar simultneamente una clase de errores.
Un cdigo puede ser usado para la correccin simultanea de errores y deteccin de errores,
donde , con tal que su mnima distancia sea:
dmin + + 1

(6.49)
38

Cuando t o menos errores ocurren, el cdigo es capaz de detectar y corregirlos. Cuando ocurren mas
de t pero menos que e + 1 errores, donde e est definido en la ecuacin (6.47), el cdigo es capaz
de detectar su presencia pero corrige solo una parte (subset) de ellos. Por ejemplo, un cdigo con
dmin = 7 puede ser usado para detectar y corregir simultneamente en cualquiera de las siguientes
formas :

Notar que la correccin implica primero la deteccin. Para el ejemplo de arriba, cuando hay tres
errores, todos pueden ser detectados y corregidos. Cuando hay 5 errores, todos pueden ser
detectados pero solamente un subconjunto (subset) de ellos (uno) pueden ser corregidos.

6.5.4

Visualizacin De Un Espacio 6-Tuple

La figura 6.14 es una visualizacin de ocho codewords del ejemplo de la seccin 6.4.3. Las
codewords son generadas por combinaciones lineales de las tres independientes 6-tuples en la
ecuacin (6.26); las codewords de un subespacio tridimensional. La figura muestra dicho
subespacio completamente ocupado por la ocho codewords (crculos negros grandes); las
coordenadas del subespacio han sido dibujadas a propsito para enfatizar su ortogonalidad. La
figura (6.14) es un intento de ilustrar el espacio entero, conteniendo sesenta y cuatro 6-tuples,
aunque no hay una forma precisa para dibujar o construir dicho modelo. Capas o cscaras esfricas
son mostradas alrededor de cada codeword. Cada una de las capas interiores no intersecadas es una
distancia de Hamming de 1 desde su codeword asociada; cada capa exterior es una distancia de
Hamming de 2 desde su codeword. Las distancias mayores no son usadas en este ejemplo. Para
cada codeword, las dos capas son ocupadas por codewords contaminadas (perturbed).. Hay seis
puntos en cada capa esfrica interior (un total de 48 puntos), en representacin de los seis vectores
contaminados con error de 1-bit asociado con cada codeword. Estas codewords contaminadas con
error de 1-bit son distintas en el sentido de que ellas pueden ser mejor asociadas con una nica
codeword, y en consecuencia pueden ser corregidas. Como se vio en el arreglo estndar de la figura

6.11, hay tambin un pattern de error de 2-bits que puede ser corregido. Hay un total de = 15
2
diferentes patterns de error de dos bits que pueden ser impuestas sobre cada codeword, pero solo
uno de ellos, en nuestro ejemplo el 010001 de pattern de error, puede ser corregido.
Los otros 14 pattern de error de 2-bits producen vectores que no pueden ser unvocamente
identificados con una sola codeword ; estos patrones de errores no corregibles producen vectores
que son equivalentes a los vectores errores de dos o mas codeword.

En la figura todos los errores de 1 y 2 bits corregibles son mostrados como pequeos
crculos negros. Las codewords contaminadas que no pueden ser corregidas son mostradas
como pequeos crculos en blanco.
La figura 6.14 es util para visualizar las propiedades de una clase de cdigo conocidos como
cdigos perfectos.
39

Un cdigo de correccin de error es llamado codigo perfecto si su arreglo estndar tiene todos los
patrones de error de t y menos errores y no otros como los coset leaders. En trminos de la figura
6.14, un codigo perfecto con capacidad de ecorrecion de errores t e aquel que puede con un codigo
de mxima probabilidad, corregir todas las codeword perturbadas (con una distancia de Hamming t
o menor) y no puede corregir las que tienen una distancia mayor a t.

6.5.5

Correccin De Codeword Difusas

Un receptor podra ser diseado para declarar un smbolo difuso cuando es recibido
ambiguamente o cuando reconoce la presencia de interferencia o una malfuncin transitoria. Tal
canal tiene un alfabeto de entrada de largo Q y un alfabeto de salida de Q + 1; el smbolo de salida
extra es llamado flag de erasure, o simplemente erasure. Cuando un demodulador produce un
smbolo errneo, dos parmetros son necesarios para corregir este error, su localizacin y su valor
de smbolo correcto. En el caso de smbolos binarios se reducen los requerimientos a solo su
localizacin. Sin embargo, si el demodulador declara un smbolo difuso, auque el valor correcto de
smbolo no es conocido, la localizacin del smbolo si lo es, y por esta razn, la decodificacin de
codewords difusas puede ser ms sencilla que la correccin de error. Un cdigo de control de error
puede ser usado para corregir smbolos difusos o para corregir errores y smbolos difusos
simultneamente. Si el cdigo tiene una distancia mnima de dmin, cualquier modelo con o menos
smbolos difusos pueden ser corregidos si:
dmin + 1

(6.50)

40

Asumimos por el momento que no ocurren errores fuera de las posiciones de smbolos difusos. La
ventaja de la correccin por medio de los smbolos difusos es expresada cuantitativamente como
sigue: si un cdigo tiene una distancia mnima de dmin, luego de la ecuacin (6.50), dmin 1 smbolos
difusos pueden ser reconstruidos. Ya que el nmero de errores que pueden ser corregidos sin
informacin de smbolo difuso es (dmin 1)/2 a lo sumo, de la ecuacin (6.44), la ventaja de la
correccin por medio de los smbolos difusos debe ser clara. Adems, cualquier pattern de
errores y smbolos difusos pueden ser corregidos simultneamente si :
dmin 2 + + 1

(6.51)

La correccin del error y la correccin del smbolo difuso simultnea puede ser lograda en la
siguiente forma. Primero, las posiciones de los smbolos difusos son reemplazadas con ceros y la
codeword resultante es decodificada normalmente. Luego, las posiciones de los de los smbolos
difusos son reemplazados con unos, y la operacin de decodificacin es repetida sobre esta versin
de la codeword. De las dos codeword obtenidas (una con los smbolos difusos reemplazados por
ceros, y la otra con los smbolos difusos reemplazados por unos) le corresponde al menor nmero
de errores corregidos fuera de las posiciones de los smbolos difusos es seleccionada. Esta tcnica
siempre resultar en una correcta decodificacin si la ecuacin (6.51) es satisfecha.

Ejemplo 6.6

Correccin de smbolo difuso

Considerar el set de codewords presentado en la seccin 6.4.3:


000000 110100 0110101 101110 101001 011101 110011 000111
suponer que la codeword 110011 fue transmitida y que los dos dgitos izquierdos fueron
declarados por el receptor como difusos. Verificar que la secuencia defectuosa recibida
xx0011 puede ser corregida.

Solucin
Ya que dmin = + 1 = 3, el cdigo puede corregir tantos como
= 2 smbolos difusos.
Esto es fcilmente verificado arriba con la figura 6.11 por comparacin de los cuatro
dgitos mas a la derecha de xx0011 con cada una de las codewords permitidas
(especificadas). La codeword que fue verdaderamente transmitida es la ms cercana en la
distancia de Hamming a la secuencia errnea.

6.6

UTILIDAD DEL ARREGLO (ARRAY) ESTNDAR


6.6.1 Capacidad Del Cdigo De Estimacin

El arreglo estndar puede ser pensado como una herramienta organizacional, un gabinete que
contiene todas las 2n posibles entradas en el espacio de n-tuples ninguna olvidada y ninguna
repetida. En un primer vistazo, las ventajas de esta herramienta paren limitadas a un pequeo
bloque de cdigos, porque para un cdigo de mas de n = 20, hay millones de n-tuples en el espacio.
Sin embargo, incluso para cdigos grandes, el arreglo estndar permite la visualizacin de
beneficios de performance importantes, como el posible trade-off entre la correccin de error y la
deteccin, tanto como lmites de capacidad de correccin de error. Uno de dichos lmites, llamado
lmite de Hamming, es descrito como:

41

donde definido en la seccin (6.16), representa el nmero de formas en que j bits de n


j

pueden ser un error. Notar qu ela suma de los trminos entre corchetes de la ecuacin (6.52)
produce el mnimo nmero de filas necesarias en el arreglo estndar para corregir todas las
combinaciones de errores completas de t-bits. La igualdad da un lmite inferior de n k, el nmero
de bits de paridad (o el nmero de 2n-k cosets) como una funcin de la capacidad de correccin de
error de t-bit del cdigo. Similarmente, la desiguldad puede ser descrita como un lmite superior en
la capacidad de correccin de error de t-bit como una funcin del nmero de bits de paridad (o 2k
cosets). Para culquier CODE BLOCK lineal (n,k), para proveer una capacidad de correccin de
error de t-bit, es una condicin necesaria que el lmite de Hamming sea satisfecho.
Para la demostracin de como el arreglo estndar provee una visualizacin de este lmite, elegimos
el cdigo BHC (127,106) como ejemplo. El arreglo contiene todos los 2n = 2127 8,11 e38 n-tuples
en el espacio. La fila superior contiene todos los 2k = 2106 8,11 e31 codewords, por tanto, este es el
nmero de columnas en el arreglo. La columna ms a la izquierda contiene los 2k-n = 221 =
2.097.152 cosets leaders.; por tanto, este es el nmero de filas en el arreglo. Aunque el nmero de
n-tuples y de codewords es 2k = 2106. Hay 2.097.152 cosets, y por ello hay a lo sumo 2.097.151
patterns de error que puden ser corregidos por este cdigo. Luego, est mostrado como este nmero
de cosets determina un lmite superior en la capacidad de correccin de error de t-bit.
Puesto que cada codeword contiene 127 bits, hay 127 formas de producir un error simple. Luego

127

= 8.001. ahora nos


computamos cuantas formas hay de hacer errores dobles, es decir
2
movemos sobre los errores triples porque solo una porcion de 2.097.151 se usa para corregirlos.
127
= 333.375 de que se produzca un triple error. En la tabla 6.3 estn listados estos
3

Hay

clculos, indicando que el pattern de error de todos ceros requiere la presencia del primer coset,
seguido por el simple, doble y triple error. Tambin estn mostrados el nmero de cosets necesarios
para cada tipo de error y el nmero acumulativo de cosets necesarios a medida que aumenta el
nmero de errores. De esta tabla puede ser visto que un cdigo (127,106) puede corregir todos los
pattern de error simple, doble y triple, los cuales solo suman 314.504 del total de 2.097.152 cosets.
Las 1.755.648 filas no usadas son indicativas del hecho que es posible mayor correccin de error.
Verdaderamente, esto podra tentarnos a tratar de probar todos los posibles patterns de error de 4bits en el arreglo. Sin embargo, de la tabla 6.3 puede verse que esto no es posible, porque el nmero
de cosets realmente es mucho ms pequeo que el nmero acumulativo de cosets para la correccin
de errores de 4-bit, como est indicado en la ltima lnea de la tabla. Debido a esto, para el ejemplo
con (127,106), el cdigo tiene un lmite de Hamming que garantiza la correccin de hasta errores de
3-bit inclusive.

42

Tabla 6.3

6.6.2 Un Ejemplo (n,k)


El arreglo estndar provee dentro del trade-off que son posibles entre la correccin y la deteccin de
errores.
Considerar un nuevo ejemplo (n,k), y los factores que dictan que valores de (n,k) podran ser
elegidos.
1. Con el objeto de realizar un trade-off entre el error de deteccin y
el de correccin, es deseable que el cdigo tenga una capacidad de correccin de error de al menos
2-bit. Usamos la ecuacin 6.44) para encontrar la mnima distancia como sigue: dmin = 2t + 1 = 5.
2. Para un sistema de cdigo no trivial, es deseable que el nmero de datos sea al menos k = 2.
Entonces tendremos 2k = 4 codewords. El cdigo puede ser diseado como (n,2).
3. Buscamos el mnimo valor de n que nos permitir corregir todos los posibles errores simples y
dobles. En este ejemplo, cada uno de los 2n n-tuples en el arreglo estar tabulado. Es deseado el
mnimo valor de n porque siempre que n es incrementado por un entero, el nmero de n-tuples en el
arreglo estndar se duplica. Es por supuesto deseable que la lista sea de un tamao manejable. Para
cdigos reales, buscamos el mnimo valor de n por diferentes razones, eficiencia del ancho de banda
y simplicidad. Si el lmite de Hamming es usado en la eleccin de n, luego un n = 7 prodra ser
elegido. Sin embargo, las dimensiones de un cdigo (7,2) no satisfar nuestros requerimientos
establecidos de una capacidad de correccin de error de t = 2-bit y una dmin = 5. Para ver esto otro
lmite superior en la capacidad de correccin de error de t-bit
(o dmin). Este lmite, llamado
lmite de Plotking es descrito por :

En general, un cdigo lineal (n,k) deber satisfacer todos los lmites superiores que involucran la
capacidad de correccin (o mnima distancia). Para cdigos de alta velocidad (high-rate), si el lmite
de Hamming es satisfecho, luego el lmite de Plotking tambin ser satisfecho; este fue el caso para
el anterior ejemplo de cdigo(127,106). Para cdigos de baja velocidad (low-rate), este es el otro
camino. Puesto que el ejemplo trata con un cdigo low-rate, testear la capacidad de correccin de
error via el lmite de Plotking. Dado que dmin = 5, debera ser claro de la ecuacin (6.53) que n
deber ser 8, y por esto, las mnimas dimensiones del cdigo son (8,2), a fin de satisfacer los
requerimientos para este ejemplo. Podra alguien usar un cdigo de correccin de error de low-rate
como este cdigo (8.2)? No, podra ser demasiado extenso en ancho de banda comparados con
cdigos mas eficientes que son posibles. Se usa aqu con propsitos didcticos, porque su arreglo
estndar es de un tamao manejable.

43

6.6.3 Diseo De Un Cdigo (8,2)


Una pregunta natural para hacer es, Cmo seleccionar codewords mas all de espacio de 28 8tuples? No hay una nica solucin, pero hay contrariedad en como las elecciones son hechas. Los
siguientes so los elementos que ayudan a la solucin :
1. El nmero de codewords es 2k = 22 = 4.
2. El vector de todos ceros debe ser una de las codewords.
3. La propiedad de (closure cierre) debe ser aplicada. Esta propiedad dicta que la suma de
cualesquiera dos codewords debe producir una codeword vlida en el espacio.
4. Cada codeword tiene un tamao de ocho bits.
5. Dado que dmin = 5, el peso de cada codeword (excepto para la codeword de todos ceros) debe ser
tambin de al menos 5 (en virtud de la propiedad de cierre). El peso de un vector es definido como
el nmero de sus componentes diferentes de cero.
6. Asumir que el cdigo es sistemtico, y por esto los dos bits ms a la derecha de cada codeword
son los correspondientes bits de mensaje.
El siguiente es un candidato para una asignacin de codewords para mensajes que satisfacen todas
las condiciones anteriores :
Mensajes
00
01
10
11

Codewords
00000000
11110001
00111110
11001111

El diseo del set de codewords puede comenzar de una manera my arbitraria; es solamente
necesario respetar las propiedades de pesos y sistematicidad del cdigo. La seleccin de las
primeras pocas codewords en general es simple. Sin embargo, como el proceso contina, la rutina
de seleccin se vuelve ms dura, y las elecciones ms cotrariadad debido a la necesidad de respetar
la propiedad de cierre.

6.6.4 Trade-Off Deteccin de Error vs. Correccin de Error


Para el sistema cdigo seleccionado (8,2) en la seccin previa, la matriz de generacin (n,k) = (8,2)
puede ser escrita como :
G=

00111110
11110001

La decodificacin comienza con el clculo de un sndrome, el cual puede ser pensado de como
aprende el symptom de un error.

44

Para un cdigo (n,k), un sndrome de (n-k)-bit S es el producto de un vector recibido r de n-bit, y el


transpuesto de una matriz de chequeo de paridad H de (n-k) x n, donde H es construida de modo
que las filas de G sean ortogonales a las filas de H, esto es GHT = 0. Para este ejemplo de(8,2), S
es un vector de 6-bit, y H es una matriz de 6 x 8, donde :
100000
010000
001000
000100
000010
000001
001111
111100

HT =

El sndrome para cada pattern de error puede ser calculado usando la ecuacin (6.37), o sea :
Si = ei HT

i = 1,....,2n-k

donde Si es uno de los 2n-k = 64 sndromes, y ei es uno de los 64 cosets leaders (patterns de error) en
el arreglo estndar. La figura 6.15 muestra una tabulacin del arreglo estndar como tambi+en los
64 sndromes para el cdigo (8,2). El set de sndromes fue calculando empleando la ecuacin
(6.37); las entradas de cualquier fila dada (coset) del arreglo estndar tiene el mismo sndrome. La
correccin de una codeword corrompida procede computando su sndrome y localizando el pattern
de error que corresponde al sndrome. Finalmente, el pattern de error es sumado en mdulo dos a la
codeword corrompida permitiendo la correccin de la salida. La ecuacin (6.49), repetida abajo,
indica que las capacidades de correccin de error y de deteccin de error pueden ser tratadas, por
medio de la relacin de distancias
dmin + +1
prevalece. Aqu, representa el nmero de bits errneos para ser corregidos, representa el nmero
de bits errneos a ser detectados, y > . Las elecciones de trade-off posibles para el cdigo
ejemplo (8,2) son las siguientes:
Detectados ()
2
3
4

Corregidos ()
2
1
0

Esta tabla muestra que el cdigo (8,2) puede ser implementado solamente para realizar correccin
de error, esto significa que primero detecta tantos como = 2 y luego los corrige. Si alguna
correccin de error es sacrificada ya que el cdigo solamente corregir errores simples, la capacidad
de deteccin se incrementa ya que todos lo errores de = 3 pueden ser detectados. Finalmente, si la
correccin de error es completamente sacrificada, el decoder puede ser implementado para que
detecte todos los errores de
= 4. En el caso de solo deteccin de error, el cicuito es muy
simple. El sndrome es calculado y el error es detectado siempre y cuando un sndrome distinto de
cero se presente.
Para la correccin de errores simples, el decoder puede ser implementado con compuertas en forma
similar a la figura 6.12, donde el vector cdigo recibido r, est presente en dos entradas.

45

En la parte superior de la figura, los dgitos recibidos son conectados a una compuerta OR
exclusiva, la cual produce el sndrome. Para cualquier vector recibido dado, el sndrome es obtenido
de la ecuacin (6.35) como
Si = ri HT

i = 1,....,2n-k

Usando el valor de HT para el cdigo (8,2), el cableado entre los dgitos recibidos y la compuerta
OR exclusiva en un circuito similar al de la figura 6.12, debe ser conectado para producir

Si = [r1 r2 r3 r4 r5 r6 r7 r8]

100000
010000
001000
000100
000010
000001
001111
111100

Cada uno de los sj dgitos (j = 1,......,6) produce un sndrome Si (i = 1,...64) que est relacionado
con el vector cdigo recibido en la entrada en la siguiente forma :

Para implementar un decoder con un circuito similar al de la figura 6.12 para el cdigo (8,2) se
necesita que ocho dgitos recibidos sean conectados a seis mdulos sumadores en mdulo dos para
producir los dgitos del sndrome como se describe arriba. Modificaciones adicionales para la
figura necesitan ser hechas de acuerdo a esto.(???)
Si el decoder es implementado para corregir errores simples solamente, esto es = 1 y = 3,
entonces es equivalente al trazar una linea coset 9 en la figura 6.15, y la correccin de error toma
lugar solamente cuando uno de los ocho sndromes asociados con un error simple aparece. El
circuito decodificador ( similar al de la figura 6.12) luego transforma el sndrome a su
correspondiente pattern de error. El pattern de error es luego sumado en mdulo dos al vector
recibido potencialmente corrompido, permitiendom la correccin de la salida. Compuertas
adicionales son necesarias para testear el caso en el que el sndrome es diferente de cero y no hay
correccin de error que tome lugar. Para una correccin de error simple, tal evento sucede para
cualquiera de los 10 numerados a trves de los 64. Esta salida es luego usada para indicar un error de
deteccin.
Si el decoder est implementado para corregir errores simples y dobles, esto significa que = 2 son
detectados y luego corregidos, esto es equivalente a dibujar una linea sobre 37 coset en el arreglo
estandar de la figura 6.15. incluso ests codigo (8,2) es capaz de corregir algunas combinaciones de
triple error correspondiente a los coset lider del 38 al 64.

6.7 CODIGO CICLICO


El cdigo cclico binarios es una importante subclase del bloque de cdigos lineales. El cdigo es
simplemente implementado con la retroalimentacin de un registro cambiante. La estructura
algebraica fundamental del cdigo cclico es que presta a s mismo un mtodo de decodificacin
eficiente.
46

Un cdigo lineal (n.k) se llama cclico si este puede describirse por las siguiente propiedades: si la
n-tuple U=(u0,u1, u2,u3 ,...,un-1) es una codeword en el subespacio S, luego U(1)=(un-1,u0,u1, u2,u3
,...,un-2), obtenida por el cambio por un cambio al rotar en el final del vector, es tambin una
codeword en S.
O en general U(i)=(un-i,un-i-1,un-i-2,..., u1, u2, ..., un-i+1) obtenida por el i-simo cambio final o cambio
cclico es tambin una codeword en S.
Las componentes de una codeword U = ( u0,u1, u2,u3 ,...,un-1) puden ser tratados como los
coeficientes de un polinomio U(X) de la siguiente forma :
U(X)=u0 + u1 X + u2 X2 + ... + un-1 Xn-1

(6.54)

La funcin polinmica U(X) puede utilizarse como el lugar donde se encuentran los dgitos de una
codeword U, esto es : un vector, el vector U de n componentes es descripto por un polinomio U(X)
de grado n-1 o menor. La presencia o ausencia de cada trmino en el polinomio indica la presencia
de 1 o 0 en la localizacin correspondiente del vector n-tuple. Si la componente un-1del vector U es
distinta de cero entonces el polinomio es de grado n-1. La utilidad de la descripcin polinmica de
una codeword ayuda a entender la estructura algebraica de los cdigos cclicos.

6.7.1

Estructura Algebraica De Los Cdigos Cclicos

Expresando la codeword en forma polinmica, el ciclo natural del cdigo se manifiesta por s
mismo de la siguiente manera. Si U(X) es el polinomio de grado n-1 de una codeword, entonces
U(i) (X), el resto de dividir Xi U(X) por Xn+1, es tambin una codeword, esto es:
Xi U(X) = q(X ) +U(i) (X)
Xn +1
Xn +1

(6.55 a)

multiplicando ambos miembros por Xn+1


Xi U(X) = q(X) (Xn +1) + U(i) (X)
Resto

(6.55 b)

la cual se puede tambin escribir en trminos de mdulo aritmtico como :


U(i) (X) = Xi U(X) modulo (Xn +1)

(6.56)

Donde x mdulo y est definido como el resto obtenido de dividir x por y. Demostraremos la
validez de la ecuacin (6.56) para el caso de i = 1
U(X)= u0 + u1 X + u2 X2 + ... + un-2 Xn-2 + un-1 Xn-1
XU(X)= u0 X + u1 X2 + u2 X3 + ... + un-2 Xn-1 + un-1 Xn
Ahora sumando y restando un-1; solo usando aritmtica de mdulo.2, sumamos un-1 dos veces,
como sigue
XU(X)= un-1 + u0 X + u1 X2 + u2 X3 + ... + un-2 Xn-1 + un-1 Xn +un-1
= U(u) (X) + un-1 (Xn-1 +1).

47

Luego U(1) es de grado n-1, esto no se puede dividir por Xn+1 (ya que este ltimo es un polinomio
de grado mayor). Luego desde la ecuacin (6.55) podemos escribir :
U(i) (X)= XU(X) mdulo (Xn+1)
Por extensin arribamos a l ecuacin (6.56) :
U(i) (X)=Xi U(X) mdulo (Xn+1)

Ejemplo 6.7 Cambio ciclico de un vector codigo


Dado U=1 1 0 1, para n=4. Expresar la codeword en forma polinmica, usando la ec.
(6.56); resolver para el tercer cambio cclico de la codeword.

Solucin
U(X)=1+X+X (el polinomio se escribe de bajo a alto orden)
Xi U(X)= X+X4+X6 donde i=3
Dividiendo XU(x) por X4 +1, y usando la divisin de polinomios para resolver el resto:
X2 + 1
.
(X +1) X6 + X4 +X3
X6
+ X2
4
3
X + X + X2
X4
+1
X3 + X2 + 1
4

resto U (3) (X)

Escribiendo el resto de menor a mayor orden : 1+X+X , la codeword U (3) = 1 0 1 1 est


cambiada 3 ciclos de U=1 1 0 1. Recuerda que para cdigos binarios, la operacin adicin
se ejecuta en mdulo-2, luego +1= -1, y consecuentemente no mostramos ningn signo
menos en la computacin.

6.7.2 Propiedades Del Cdigo Cclico Binario


Podemos generar un cdigo cclico usando un polinomio generador de la misma manera que
generamos un codigo bloque usando una matriz generadora. El polinomio generador g(X) para un
cdigo cclico (n,k) es nico y es de la forma:
g(X)= g0 +g1 X+g2 X2+...+gp Xp

(6.57)

donde go y gp deben ser igualar a 1. Toda codeword polinomial en el subespacio es de la forma


U(X) = m(X)g(X), donde U(X) es un polinomio de grado n-1 o menos. Por lo tanto, el mensaje
polinomial m(X) se escribe como :
m(X)= m0 +m1 X + m2 X +...+ mn-p-1 Xn-p-1

(6.58)

48

hay 2n-p polinomios codeword, y hay 2k vectores codificados en un cdigo cclico (n,k), luego
debera haber una codeword polinomial por cada vector codificado, entonces :
n-p=k
p=n-k
por lo tanto g(X), como muestra la ec (6.57), debe ser de grado n-k y toda codeword polinomial en
el cdigo cclico (n,k) se puede expresar como:
U(X)=(m0 + m1 X +m2 X + ... + mk-1 Xk-1 ) g(X)

(6.59)

U es vlida como codeword del subespacio S, si y solo si, g(X) dividida por U(X) no tiene resto.
Un generador polinomial g(X) de un cdigo cclico (n,k) es un factor de Xn+1; esto es
Xn + 1 = g(X)h(X). Por ejemplo :
X7 +1=(1 + X + X) (1 + X + X + X4 )
Usando g(X) = 1 + X + X3 como generador polinomial de grado nk = 3, podemos generar un
cdigo cclico (n,k) = (7,4). Pero usando g(X)= 1 + X + X2 + X4 donde nk = 4, podemos generar un
cdigo cclico (n,k) = (7,3). En resumen si g(X) es un polinomio de grado n-k y es un factor de Xn +
1, entonces g(X) nicamente genera un cdigo cclico (n,k).

6.7.2 Codificacin En Forma Sistemtica


En la seccin 6.4.5 introducimos una forma sistemtica y discutimos la reduccin en la complejidad
que hace atractiva esta forma de codificacin. Usaremos algunas de las propiedades algebraicas del
cdigo cclico para establecer el procedimiento de codificacin sistemtica. Podemos expresar el
vector mensaje en forma polinmica como sigue:
m(X)= m0 + m1 X + m2 X + ... + mk-1 Xk-1

(6.60)

En forma sistemtica, el mensaje digital se utiliza como parte de la codeword. Podemos pensar de
cambiar los digitos del mensaje en los k estados mas a la derecha de un registro codeword, y luego
anexando los dgitos de paridad en el lugar de los n-k estados mas a la izquierda. Por lo tanto,
manipulamos el mensaje polinomial algebraicamente, de manera que esto es desplazar hacia la
derecha n-k posiciones. Si multiplicamos m(X) por Xn-k, obtenemos el mensaje polinomial
desplazado hacia la drecha.
Xn-k m(X) = m0 Xn-k + m1 Xn-k+1 + ... + mk-1 Xn-1

(6.61)

Si dividimos la ecuacin (6.61) por g(X), el resultado se puede expresar como:


Xn-k m(X) = q(X) g(X) + p(X)

(6.62)

Donde el resto p(X) se puede expresar como


p(X) = p0 + p1 X + p2 X2 + ... + pn-k-1 Xn-k-1
Podemos decir igualmente que :
p(X) = Xn-k m(X) mdulo g(X)

(6.63)
49

Sumando p(X) a ambos lados de la ecuacin (6.62) y usando aritmtica de mdulo-2, obtenemos
p(X) + Xn-k m(X) = q(X) g(X) = U(X)

(6.64)

El lado izquierdo de la ecuacin 6.64 se reconoce como una codeword polinmica vlida, ya que
esto es un polinomio de grado n-1 o menor, y cuando dividimos por g(X) hay resto cero. Esta code
word puede ser expandida en trminos polinmicos como sigue :
p(X) + Xn-k m(X) = p0 + p1 X + .. + pn-k-1 Xn-k-1 + m0 Xn-k + m1 Xn-k-1 + .. +mk-1 Xn-1
La codeword polonomial corresponde a un vector codificado
,mk-1)
U = (p0 ,p1 , .......... ,pn-k-1 ,m0 ,m1 , ...
n-k bits de paridad k bits del mensaje

(6.65)

Ejemplo 6.8 Cdigo cclico en forma sistemtica


Usando el generador polinomial g(X) = 1 + X + X3 , generar una codeword sistemtica
desde el conjunto codeword (7,4) para el vector mensaje m=1 0 1 1.

Solucin

m(X) = 1+ X2 + X3 , n=7 , k=4


X m(X) = X3 (1 + X2 + X3) = X3 + X5 + X6
n-k

n-k=3

Dividiendo Xn-k m(X) por g(X) usando la divisin polinmica podemos escribir :
X3 + X5 + X6 = (1 + X + X2 + X3) (1 + X + X3)
+ 1
Cociente q(X)
generador g(X) resto p(X)
Usando la ecuacin (6.64) producimos:
U(X) = p(X) + X3 m(X) = 1 + X3 + X5 + X6
U=100
1011
bits de
bits de
paridad mensaje

6.7.4 Circuito Para La Divisin Polinmica


Vemos que los cambios cclicos de una codeword polinomial y la decodificacin de un mensaje
polinomial implican la divisin de un polinomio por otro. Tal operacin es realmente realizada por
un circuito divisor (registro cambiante retroalimentado). Dados dos polinomios V(X) y g(X), donde
V(X) = v0 + v1 X + v2 X2 + .... + vm Xm
G(X) = g0 + g1 X + g2 X2 + ... + gp Xp

50

tal que m >= p; el circuito divisor de la figura 6.16 hace los pasos de la divisin polinmica de
dividir V(X) por g(X), as determinando el resto
V(X) = q(X) + p(X)
g(X)
g(X)
La estados del registro s inicializa con todos ceros. El primer p cambia al entrar el coeficiente mas
significativo de V(X). Luego del pth cambio, el cociente de salida es gp-1 Vm; este es el trmino de
mayor orden en el cociente. Para cada coeficiente qi del cociente el polinomio qi g(X) debe ser
sustrado dede la divisin. La conexin de retroalimentacin en la figura 6.16 hace esta sustraccin.
La diferencia entre los trminos p mas a la izquierda remanente en la divisin y el trmino
retroalimentado qi g(X) se forman sobre cada cambio en el circuito y aparecen como contenido del
registro. Con cada cambio de registro, la diferencia es un estado cambiado; el trmino de mayor
orden (cuya construccin es cero) es sacado afuera, mientras el siguiente coeficiente significativo de
V(X) entra al registro de estados. Pasadas m+1 cambios totales en el registro, el cociente ser
seriamente presentado como la salida, y el resto permanecer en el registro.

Ejemplo 6.9

Circuito divisor

Usando un circuito divisor de la forma mostrada en la figura 6.16 para dividir V(X) =X3 +
X5 + X6(V=0 0 0 1 0 1 1) por g(X) = (1 + X + X3). Encontrar el cociente resto. Compare la
implementacin del circuito con los pasos de la divisin polinmica hechos a mano.
Solucin
El circuito divisor necesita hacer las siguientes operaciones.
X3 + X5 + X6 = q(X) + . p (X) .
1 + X + X3
1 + X + X3
Figura 6.17

51

La necesidad del registro cambiante con retroalimentacin, siguiendo la forma general de la figura
6.16, se muestra en la figura 6.17. Asumimos que el registro contenido es inicialmente cero. Los
pasos operacionales del circuito son los siguientes :

Entrada

N de cambios

0001011
000101
00010
0001
000
00
0
-

Contenido del registro

0
1
2
3
4
5
6
7

Salida y retroalimentacin

000
100
110
011
011
111
101
100

0
0
0
1
1
1
1

Luego de cuatro cambios, los coeficientes (qi) presentados serialmente a la salida son vistos como
1 1 1 1, o el cociente polinomial es q(x)=1+X+X2+X3.
Los coeficientes del resto (pi) son 1 0 0, o el polinomio del resto p(X)=1. En resumen, el circuito
para computar V(X)/g(X) har :
X3 + X5 + X6 = 1 + X + X2 + X3 + .
1
.
1 + X + X3
1 + X + X3
los pasos de la divisin polinmica son los siguientes :
salida de n cambios
4
5
6 7
X3 + X2 + X + 1
X3 + X + 1) X6 + X5
+ X3
6
4
X
+ X + X3
retroalimentacin despus del 4 cambio
5
X + X4
registro despus del 4 cambio
X5
X3 + X2
retroalimentacin despus del 5 cambio
X4 + X3 + X2
registro despus del 5 cambio
4
2
X
+X +X
retroalimentacin despus del 6 cambio
X3
+X
registro despus del 6 cambio
X3
+X+1
retroalimentaacin despus del 7 cambio
1
registro despus del 7 cambio
(resto)

6.7.5 Codificacin Sistemtica con un Registro de Cambio de Estado-(n k)


La codificacin de un cdigo cclico en forma sistemtica se encuentra mostrada, en la Seccin
6.7.3, para implicar el clculo de los bits de paridad como el resultado de la formacin de Xn-km(X)
mdulo g(X), en otras palabras, la divisin de un cambio alto (cambio derecho) de un mensaje
polinomial por un generador polinomial g(X). La necesidad por un cambio alto es para hacer lugar
para el bit de paridad, el cual se agrega a los bits de mensaje, produciendo el vector de cdigos en
forma sistemtica. El cambio alto de los bits de mensaje por nk posiciones es una operacin trivial
y en realidad no es ejecutable como parte del circuito divisor.
52

En cambio, solamente los bits de paridad son calculados; ellos son entonces colocados en la
ubicacin apropiada al lado de los bits de mensaje. La paridad del polinomio es el resto, despus de
dividir por el generador polinomial; esto esta disponible en el registro despus de n cambios a travs
del Registro de Realimentacin de Estado-(nk) mostrado en la Figura 6.17. Advierta que los
primeros nk cambios a travs del registro son simplemente rellenos del registro. Nosotros no
podemos tener realimentacin hasta que el estado ms alto est lleno; de esta forma podemos
reducir el ciclo de cambio cargando el dato de entrada a la salida del ltimo estado, como muestra la
Figura 6.18. Adems, el trmino de la realimentacin en el estado ms a la izquierda es la suma de
la entrada y el estado ms a la derecha. Nosotros garantizamos que sta suma es generada por
seguridad de que g0 = gn-k = 1 para cualquier generador polinomial g(X). Las conexiones del
circuito de realimentacin corresponden a los coeficientes del generador polinomial, el cul se
escribe como
g(X) = 1 + g1X + g2X2 + ... + gn-k-1Xn-k-1 + Xn-k

(6.66)

Los siguientes pasos describen el procedimiento de codificacin usado con el codificador de la


Figura 6.18 :

1. Interruptor 1 est cerrado durante los primeros k cambios, para permitir la transmisin de los
bits de mensaje dentro de los nk estados del registro de cambio de codificacin.
2. Interruptor 2 esta en la posicin baja para permitir la transmisin de los bits de mensaje
directamente a un registro de salida durante los primeros k cambios.
3. Luego de la transmisin de los k bits de mensaje, el interruptor 1 es abierto y el interruptor 2 es
movido a la posicin de arriba.
4. Los restantes nk cambios limpian el registro de codificacin por movimiento de los bits de
paridad al registro de salida.
5. El nmero total de cambios es igual a n, y el contenido del registro de salida es el codeword
polinomial p(X) + Xn-km(X).

53

Ejemplo 6.10

Codificacin Sistemtica de un Cdigo Cclico

Use un registro de cambio realimentado de la forma mostrada en la Figura 6.18 para


codificar el vector mensaje m = 1 0 1 1 dentro de un codeword (7, 4) usando el generador
polinomial g(X) = 1 + X + X3 .

Solucin
m=1011
m(X) = 1 + X + X3
Xn-km(X) = X3m(X) = X3 + X5 + X6
Xn-km(X) = q(X) g(X) + p(X)
p(X) = (X3 + X5 + X6) mdulo (1 + X + X3)
Para los (n k) = 3-registro de cambio de estado de codificacin mostrado en la Figura
6.19, los pasos operacionales son como siguen :
Figura 6.19
Cola de entrada
1011
101
10
1
-

Contenido del
registro
000
110
101
100
100

Nmero de
cambios
0
1
2
3
4

Salida
1
1
0
1

Despus de cuatro cambios, el interruptor 1 es abierto, el interruptor 2 es movido a la


posicin de arriba, y los bits de paridad contenidos en el registro son cambiados a la salida.
El cdigo de palabra (codeword) de salida es U = 1 0 0 1 0 1 1, en forma polinomial,
U(X) = 1 + X3 + X5 + X6.

6.7.6 Deteccin de Error con un Registro de Cambio de Estado-(n k)


Un codeword transmitido puede estar perturbado por ruido, y por lo tanto el vector recibido puede
ser una versin alterada del codeword transmitido. Dejamos asumir que un codeword con
representacin polinomial U(X) es transmitido y que un vector con representacin polinomial Z(X)
es recibido. Dado que U(X) es un cdigo polinomial, l debe ser mltiplo del generador polinomial
g(X); esto es,
U(X) = m(X)g(X)
(6.67)
y Z(X), la versin alterada de U(X), puede ser escrita como
Z(X) = U(X) + e(X)

(6.68)

54

donde e(X) es el error patterns polinomial. El decodificador chequea si Z(X) es un codeword


polinomial, esto es, si es divisible por g(X), con un resto cero. Esto se determina calculando el
sndrome del polinomio recibido. El sndrome S(X) es igual al resto de la divisin de Z(X) por g(X);
esto es,
Z(X) = q(X)g(X) + S(X)

(6.69)

donde S(X) es un polinomio de grado nk1 o menor. As, el sndrome es un (nk)-tuple. Por
combinacin de las Ecuaciones (6.67) a (6.69), obtenemos
e(X) = [m(X) + q(X)]g(X) + S(X)

(6.70)

Comparando las Ecuaciones (6.69) y (6.70), vemos que el sndrome S(X), obtenido como el resto de
Z(X) mdulo g(X), es exactamente el mismo polinomio obtenido como el resto de e(X) mdulo
g(X). De esta manera el sndrome del polinomio recibido Z(X) contiene la informacin necesaria
para corregir el error pattern. El clculo del sndrome es determinado por un circuito divisor, casi
idntico al circuito de codificacin usado en el transmisor. Un ejemplo de clculo del sndrome con
un registro de nk cambios es mostrado en la Figura 6.20, usando el vector de cdigo generado en el
Ejemplo 6.10. El interruptor 1 esta inicialmente cerrado, y el interruptor 2 esta abierto. El vector
recibido es cambiado dentro del registro de entrada, con todos los estados inicialmente fijados a
cero. Despus el vector recibido completo tiene que ingresarse dentro del registro de cambio, el
contenido del registro es el sndrome. El interruptor 1 es entonces abierto y el interruptor 2 es
cerrado, de manera que el vector sndrome pueda ser sacado fuera del registro. Los pasos
operacionales del decodificador son como siguen :
Cola de entrada
1001011
100101
10010
1001
100
10
1

Nmero de cambio
0
1
2
3
4
5
6

Contenido del registro


000
100
110
011
011
111
101
000

Sndrome

Si el sndrome es un vector de todos ceros, el vector recibido es asumido como un codeword vlido.
Si el sndrome no es un vector de ceros, el vector recibido es un codeword perturbado y los errores
deben ser detectados; tales errores pueden ser detectados agregando el vector error (indicado por el
sndrome) al vector recibido, similar al procedimiento descripto en la Seccin 6.4.8. este mtodo de
decodificacin es utilizado para cdigos simples. Cdigos ms complejos requieren el uso de
tcnicas algebraicas para obtener decodificadores prcticos [6, 8].

6.8 BLOQUES DE CDIGOS BIEN CONOCIDOS


6.8.1 Cdigos de Hamming
Los cdigos de Hamming son una clase simple de bloques de cdigos caracterizados por la
estructura
(n , k) = (2m 1 , 2m 1 m)

(6.71)

55

donde m = 2, 3, .... estos cdigos tienen una distancia mnima de 3 y as, desde las Ecuaciones
(6.44) y (6.47), ellos son capaces de corregir todos los errores simples o detectar todas las
combinaciones de dos o menos errores dentro de un bloque. El sndrome decodificado es
especialmente satisfecho por los cdigos de Hamming. En realidad, el sndrome puede estar
formado en funcin de un indicador binario para identificar la ubicacin del error [5]. Aunque los
cdigos de Hamming no son muy potentes, ellos pertenecen a una clase muy limitada de bloques de
cdigos conocidos como cdigos perfectos, descriptos en la Seccin 6.5.4.
Asumiendo una decodificacin de decisin hard, el bit de probabilidad de error PB puede escribirse,
desde la Ecuacin (6.46), como

1 n
PB
n j=2

n
j p j (1 p ) n j
j

(6.72)

donde p es el smbolo de la probabilidad de error del canal (probabilidad de transicin en el canal


simtrico binario). En lugar de la Ecuacin (6.72) podemos usar la siguiente ecuacin equivalente.
Esta identidad con la Ecuacin (6.72) es comprobada en el Apndice D, Ecuacin (D.16) :
PB p p(1 p)n 1

(6.73)

La Figura 6.21 es un esquema de la decodificacin de PB contra el smbolo de la probabilidad de


error del canal (p), ilustrando la representacin comparativa para diferentes tipos de bloques de
cdigos. Para los cdigos de Hamming, los esquemas son mostrados para m = 3, 4, y 5, o (n, k) =
(7, 4), (15, 11),y (31, 26).

56

Para mejor rendimiento, un canal Gaussiano utiliza una coherente demodulacin BPSK, nosotros
podemos expresar el smbolo de probabilidad de error del canal p en trminos de Ec/N0, similar a la
Ecuacin (4.79), como

2 Ec
p = Q
N
0

(6.74)

donde Ec/N0 es el smbolo de la energa del cdigo por densidad espectral de ruido, y donde Q(x) es
como la definicin de la Ecuacin (3.43). para relacionar Ec/N0 con la energa del bit de informacin
por densidad espectral de ruido (Eb/N0), nosotros usamos

Ec k Eb
=
N0 n N0

(6.75)

para cdigos de Hamming, la Ecuacin (6.75) se convierte en

Ec
2m 1 m Eb
=
N0
2m 1 N0

(6.76)

Combinando las ecuaciones (6.73), (6.74), y (6.76), PB puede ser expresado como una funcin de
Eb/N0 para una coherente demodulacin BPSK sobre un canal Gaussiano. Los resultados estn
graficados en la Figura 6.22 para distintos tipos de bloques de cdigos. Para los cdigos Hamming,
los grficos son mostrados para (n, k) = (7, 4), (15, 11), y (31, 26).

57

Ejemplo 6.11

Probabilidad de error para Seales Moduladas y Codificadas.

Una codificacin ortogonal de una seal con modulacin BFSK es transmitida sobre un
canal Gaussiano. La seal no est detectada coherentemente y est decodificada por
decisin dura. Hallar el bit de probabilidad de error decodificado si la codificacin es un
bloque de cdigos Hamming (7, 4) y la recuperacin Eb/N0 es igual a 20.
Solucin
Primero necesitamos encontrar Ec/N0 usando la ecuacin (6.75) :

Ec 4
= (20) = 11,43
No 7
entonces, para la codificacin no coherente BFSK, podemos relacionar el smbolo de
probabilidad de error del canal con Ec/N0, similar a la Ecuacin (4.96), como sigue

p=

E
1
exp c
2
2N 0

1
11,43
3
= exp
= 1,6 x10
2

usando estos resultados en la Ecuacin (6.73), nosotros solucionamos, para la probabilidad


de un bit de error decodificado, como sigue :
PB p p(1 p)6 1,6 x 10-5

6.8.2 Cdigo de Golay Extendido


Uno de los bloques de cdigos ms usados es el binario (24, 12) cdigo de Golay extendido, el cul
esta formado por agregado de un bit de paridad completo al cdigo perfecto (23, 12), conocido
como cdigo de Golay. Este bit de paridad agregado incremente la distancia mnima dmin desde 7 a 8
y produce un cdigo de razn , lo cual es ms fcil de implementar (con estimacin de un sistema
de relojes) que la razn original del cdigo de Golay 12/23. Los cdigos de Golay Extendidos son
considerablemente ms potentes que los cdigos de Hamming descriptos en la seccin anterior. El
precio pagado por mejorar el rendimiento es un decodificador ms complejo, una inferior razn de
cdigo, y por lo tanto una gran expansin del ancho de banda.
Dado que dmin = 8 para el cdigo de Golay extendido, nosotros vemos en la Ecuacin (6.44) que el
cdigo est garantizado para corregir todos los errores triples. El decodificador puede
adicionalmente ser designado para corregir algunos pero no todos los errores patterns cuartos. Dado
que solo el 16,7% de los errores patterns cuartos pueden ser corregidos, el decodificador, para una
buena simplicidad, es usualmente diseado para corregir solamente tres errores patterns [5].
Asumiendo una decodificacin de decisin dura, el bit de probabilidad de error para el cdigo de
Golay extendido puede ser escrito como una funcin del smbolo de probabilidad de error del canal
p, desde la Ecuacin (6.46), como sigue :

1 24
PB

24 j = 4

24
j p j (1 p) 24 j
j

(6.77)

58

La grfica de la Ecuacin (6.77) se muestra en la Figura 6.21; el error del rendimiento del cdigo de
Golay extendido esta pensado para ser significadamente mejor que aquel de los cdigos de
Hamming. Combinando las Ecuaciones (6.77), (6.74), y (6.75), podemos relacionar PB contra Eb/N0
para una coherente demodulacin BPSK con una codificacin de Golay extendida sobre un canal
Gaussiano. El resultado esta graficado en la Figura 6.22.

6.8.2 Cdigos BCH


Los cdigos de BoseChadhuriHocquenghem (BCH) son una generalizacin de los cdigos de
Hamming que permiten la correccin de errores mltiples. Ellos son una clase potente de cdigos
cclicos que provee una gran seleccin de bloques largos, razones de cdigo, tamaos alfabticos, y
correcciones de errores compatibles. La Tabla 6.4 lista algunos generadores de cdigos g(x)
comnmente usados para la construccin de cdigos BCH [8], para varios valores de n, k, y t, sobre
un bloque de longitud 255. Los coeficientes de g(x) son presentados como nmeros octales
organizados de manera tal que cuando ellos son convertidos a dgitos binarios el dgito del extremo
derecho corresponde al coeficiente de grado cero de g(x). Desde la Tabla 6.4, uno puede verificar
fcilmente una propiedad del cdigo cclico el polinomio generador es de grado n k. Los
cdigos BCH son importantes dado a la longitudes de bloques de unos pocos centenares, los
cdigos BCH mejoran a los otros bloques de cdigos con la misma longitud de bloque y razn de
cdigo. Los cdigos BCH ms comnmente usados ocupan un alfabeto binario y un bloque de
codeword de longitud de n = 2m 1, donde m = 3, 4, ....
El ttulo de la Tabla 6.4 indica que los generadores mostrados son para aquellos cdigos BCH
conocidos como cdigos primitivos. El trmino primitivo es un concepto numrico terico que
requiere un desarrollo algebraico [7, 1011], el cul es presentado en la Seccin 8.1.4. En las
Figuras 6.21 y 6.22 estn graficadas las curvas de rendimiento de error de dos cdigos BCH (127,
64) y (127, 36), para ilustrar la comparacin de los rendimientos. Asumiendo una decodificacin de
decisin dura, el PB contra la probabilidad de error del canal p es mostrado en la Figura 6.21. El PB
contra Eb/N0 para una coherente demodulacin BPSK sobre un canal Gaussiano se muestra en la
Figura 6.22. Las curvas en la Figura 6.22 aparecen a partir de nuestras expectativas. Cada una de
ellas tiene el mismo tamao de bloque, sin embargo el cdigo ms redundante (127, 36) no exhibe
mucha ganancia de codificacin como el cdigo menos redundante (127, 64). l tiene que mostrar
que un ancho mximo relativo de ganancia de codificacin contra la razn de cdigo para
aproximadamente n ocurrencias fijas entre razones de codificacin de 1/3 y para cdigos BCH
[12]. El rendimiento sobre un canal Gaussiano decae sustancialmente a muy altas o muy bajas
velocidades [11].
La Figura 6.23 representa el clculo del rendimiento de los cdigos BCH [13] usando una coherente
demodulacin BPSK con ambas decodificaciones de decisinflexible y dura. La decodificacin de
decisin flexible no es usualmente utilizada con bloques de cdigos a causa de su complejidad. Sin
embargo, cuando quiera que esto sea implementado, ella ofrece una ganancia de codificacin de
aproximadamente 2 dB sobre una decodificacin de decisin dura. Para una determinada razn de
cdigo, la probabilidad de error decodificada es conocida para mejorar por medio del incremento de
la longitud del bloque n [4]. As, para una determinada razn de cdigo, sta est creciendo para
considerar la longitud del bloque que ser requerida por el funcionamiento de la decodificacin de
decisin dura para ser comparada con el funcionamiento de la decodificacin de decisin flexible.
En la Figura 6.23. los cdigos BCH muestran que todos tienen razones de cdigo de
aproximadamente . De la figura [13] surge que para una razn de cdigo fija, la decodificacin de
decisin dura del cdigo BCH de 8 veses n de longitud o mayor tiene un mejor rendimiento (para
un PB de aproximadamente 10-6 o menor) que aquel de una decodificacin de decisin flexible del
cdigo BCH de longitud n.

59

Una subclase especial de los cdigos BCH (el descubrimiento de los que preceden los cdigos
BCH) es el particularmente til conjunto no binario llamado cdigos de ReedSolomon. Ellos son
descriptos en la Seccin 8.1.

Tabla 6.4

6.9 CONCLUSIN
En ste captulo nosotros hemos explorado los objetivos generales de la codificacin de canal,
conduciendo a perfeccionar el rendimiento (probabilidad de error PB, Eb/N0, o capacidad) a un
costo en ancho de banda. Nosotros particionamos la codificacin de canal dentro de dos grupos
de estudio : codificacin de forma de onda y secuencias estructuradas. La codificacin de
forma de onda representa una transformacin de formas de ondas dentro del perfeccionado de
formas de ondas, tal que la distancia de las propiedades son perfeccionadas sobre aquellas
formas de ondas originales. Las secuencias estructurales involucran el agregado de dgitos
redundantes al dato, tal que los dgitos redundantes puedan entonces ser ocupados por deteccin
y/o correcciones especficas del error patterns .

Nosotros adems examinamos con cuidado los bloques de cdigos lineales. La similitud
geomtrica entre las disciplinas de codificacin y modulacin pueden ser dibujadas.

60

Ellas ambas buscan al paquete de seal espacial eficientemente y maximizan la


distancia entre las seales y el grupo de sealizacin. Dentro del bloque de cdigos,
nosotros vimos los cdigos cclicos, los cuales son relativamente fcil de implementar
usando tcnicas modernas de circuitos integrados. Consideramos la representacin
polinmica de cdigos y la correspondencia entre la estructura polinomial, las
operaciones algebraicas necesarias, y la implementacin en hardware. Finalmente,
vimos el funcionamiento detallado de algunos de los bloques de cdigos bien
conocidos. Otros temas de codificacin sern tratados en captulos posteriores. En el
Captulo 7 estudiaremos una amplia clase de cdigos convolucionables; en el Captulo 8
discutiremos los cdigos de ReedSolomon, cdigos concatenados, y turbo cdigos; y
en el Captulo 9 examinaremos la modulacin de entramado codificado.

61

62

S-ar putea să vă placă și