Documentos de Académico
Documentos de Profesional
Documentos de Cultura
\
|
=
1
1
(4)
Los resultados de la (4) se agrupan en la tabla siguiente, para distintos valores de n.
Tasa de cdigo
r = 1/n
Probabilidad de error
P
e
1 10
-2
1/3 3 x 10
-4
1/5 10
-6
1/7 4 x 10
-7
1/9 10
-8
1/11 5 x 10
-10
Ntese que a medida que se achica r se hace ms pequea la probabilidad de error.
Plantendose por ejemplo, un objetivo de P
e
= 10
-8
, si bien con r = 1/3 se cumple la (3), la P
e
no queda satisfecha. Esto significa que debo buscar otros valores de k y n que me den 1/3. Sin
embargo, el objetivo s se cumple para r = 1/9 ms chico.
Tipos de control de error
Antes de entrar en detalle con los cdigos redundantes veamos las dos maneras bsicas
en la que tal redundancia es explotada para el control de errores. Una de estas maneras se
llama deteccin de error y retransmisin. Como su nombre lo indica, en este caso no hay
correccin de error sino solamente deteccin. El receptor detecta el error valindose de los
bits de redundancia pero no lo corrige, simplemente solicita al transmisor que vuelva a
transmitir el dato. Ntese que en este caso se requiere una comunicacin de dos vas para que
puedan dialogar el transmisor y el receptor.
El segundo tipo de control de error es el control de error hacia adelante (FEC, forward
error control), o control de error anticipativo. Requiere comunicacin de una sola va y en este
caso los bits de redundancia se usan para la deteccin y posterior correccin de errores. Sin
embargo, como veremos ms adelante, no es posible corregir todos los patrones de error o
situaciones de error posibles.
Respecto a la comunicacin de una o dos vas que se menciona antes, podemos decir
que la comunicacin entre dos terminales se puede clasificar de tres maneras. Supngase dos
terminales A y B. Se dice que la comunicacin entre ambas es simplex cuando slo puede
realizarse en un sentido (por ejemplo desde A hacia B pero no desde B hacia A). La
comunicacin se dice que es half-duplex (o semiduplex) cuando se puede realizar en ambos
6 Codificacin de canal
sentidos pero no simultneamente (por ejemplo un par de walkies talkies). Y finalmente la
comunicacin es full duplex cuando se puede realizar en ambos sentidos y simultneamente.
Solicitud de repeticin automtica (Automatic Repeat Request)
Cuando el control de errores consiste en la deteccin del error solamente, el sistema de
comunicaciones necesita disponer de un modo de alertar al transmisor de que un error se ha
detectado y que se necesita una retransmisin. Este procedimiento se lo conoce como solicitud
de repeticin automtica (ARQ, Automatic Repeat Request). En la Figura 4 se ven tres de los
mecanismos ms conocidos del procedimiento ARQ. En cada diagrama la escala de tiempos
crece de izquierda a derecha. En el primer procedimiento, llamado stop and wait (parar y
esperar), el transmisor espera un mensaje de acknowledgment (ACK) o mensaje de
confirmacin despus de cada transmisin para saber si sigue con la siguiente transmisin. Si
ocurre un error en el receptor, ste enva un acknowledgment negativo (NAK) al transmisor y
ste retransmite el bloque de datos afectado antes de seguir transmitiendo con el bloque que
corresponda en la secuencia. En este mecanismo es suficiente una comunicacin half duplex
ya que la comunicacin es en ambos sentidos pero no simultneamente.
Figura 4. Esquemas ARQ. (a) Stop and wait (parar y esperar). Es half duplex. (b) ARQ continuo con
pullback (full duplex). (c) ARQ continuo con repeticin selectiva (full duplex).
El segundo mecanismo de ARQ se llama ARQ continuo con pullback. En este caso se
requiere una comunicacin full duplex. Ambas terminales estn transmitiendo
simultneamente. El transmisor enva datos y el receptor enva mensajes de acknowledgment.
Vase en la Figura 4(b) que se le ha asignado una secuencia de nmeros a los bloques de
Codificacin de canal 7
datos. Los mensajes ACK y NAK necesitan usar a tales nmeros como referencia o en otro caso
se necesita conocer el retardo de propagacin para que el transmisor sepa a qu bloque de
datos corresponde el ACK o NAK que envi el receptor. En el ejemplo (b) de la Figura 4 se
muestra un retardo fijo de 4 bloques entre el mensaje transmitido y el acknowledgment
recibido simultneamente. Por ejemplo, cuando se est transmitiendo el bloque de mensaje 8,
simultneamente se est recibiendo un NAK que corresponde al mensaje 4. En este tipo de
mecanismo ARQ, cuando el transmisor recibe un NAK vuelve hacia atrs hasta el bloque de
datos errneo y comienza a transmitir la secuencia de nuevo desde all.
El ltimo tipo de mecanismo ARQ que se muestra en la Figura se llama ARQ continuo
con repeticin selectiva. Al igual que en el segundo caso se utiliza un canal full duplex pero
aqu, cuando el transmisor recibe un NAK retransmite solamente el bloque de datos que ha
sido errneo y luego contina con la secuencia normalmente (ntese cmo el bloque 4 fue
intercalado entre los bloques 8 y 9).
La eleccin de algunos de estos mecanismos ARQ depende de la eficiencia buscada y de
la posibilidad o no de usar un canal full duplex. El canal half duplex del ejemplo (a) es menos
costoso que el canal full duplex, sin embargo, la ineficiencia asociada a este mecanismo se
puede ver en los time slots en blanco que hay entre cada bloque. Como contraparte, en los
ejemplos (b) y (c) se ve una mejor eficiencia en la comunicacin (no se desperdician time
slots) pero un canal full duplex es ms costoso.
La diferencia fundamental entre ARQ y la correccin de error hacia delante (FEC) es que
el primero consiste simplemente en una deteccin de error y el hardware asociado es ms
sencillo y se requiere mucho menos redundancia que en el caso de FEC. Sin embargo, el FEC
es ms conveniente en los siguientes casos:
1. No se dispone una comunicacin desde el receptor hacia el transmisor o bien el
retardo que introducira un ARQ es muy grande.
2. El nmero de errores esperados es bastante grande y se requieren excesivas
retransmisiones.
3. El retardo en la comunicacin es excesivamente elevado (por ejemplo la
comunicacin con una sonda espacial).
Secuencias estructuradas
Como se dijo anteriormente una de las reas pertenecientes a la codificacin de canal
consiste en agregar bits de redundancia a los bits de datos de manera tal que puedan ayudar a
detectar y/o corregir errores cuando stos se producen como consecuencia del ruido que
afecta al canal de comunicacin. Comenzaremos primero estudiando los cdigos de verificacin
de paridad (parity check codes). Estos procedimientos son clasificados como secuencias
estructuradas ya que representan mtodos de insercin de redundancia en forma estructurada
en una fuente de datos de manera tal que se pueda detectar o corregir la presencia de errores.
Estas secuencias estructuradas se dividen en dos grupos: cdigos de bloque y cdigos
convolucionales. Primeramente trataremos con los cdigos de bloque.
Tasa de cdigo y redundancia
En el caso de los cdigos de bloque, la fuente de datos es segmentada en bloques de k
bits de datos, llamados tambin bits de informacin o bits de mensaje. Cada bloque puede
representar un mensaje de un total de 2
k
mensajes diferentes. El codificador transforma este
grupo de k bits en un grupo o bloque ms grande de n bits de longitud, llamados bits de
cdigo o smbolos de canal. A este bloque resultante tambin se lo llama codeword. Los (n k)
bits que el codificador le agrega al bloque inicial de k bits se llaman bits de redundancia, bits
de paridad o bits de verificacin. Estos bits de redundancia no llevan informacin. Este
8 Codificacin de canal
nuevo bloque que se ha formado mediante el codificador se lo identifica como cdigo (n, k). El
cociente entre la cantidad de bits redundantes y la cantidad de bits de datos, (n k)/k, se
llama redundancia del cdigo, y la relacin entre la cantidad de bits de datos y la cantidad total
de bits, k/n se llama tasa de cdigo, como ya se nombr oportunamente.
El agregado de redundancia a los bits de mensaje produce un aumento del ancho de
banda requerido para la transmisin. Por ejemplo, una tcnica de control de error que usa una
tasa de cdigo de (es decir, 100% de redundancia) va a necesitar el doble de ancho de
banda que para el caso en que no est codificado. Esto es intuitivamente claro, ya que se
deben transmitir el doble de bits en el mismo tiempo y por lo tanto el tiempo T
b
de cada bit se
reduce a la mitad, duplicndose el ancho de banda. Como otro ejemplo, si se usa un esquema
de codificacin cuya tasa de cdigo sea , es decir 33% de redundancia, el ancho de banda
aumenta en un factor de 4/3.
Cdigos de verificacin de paridad simple
Un cdigo con bit de paridad simple es una construccin que se hace agregando un solo
bit de redundancia (bit de paridad) a un grupo o bloque de bits de datos. Este bit de paridad
toma el valor 1 0, segn sea, para forzar a que la suma de todos los bits del cdigo
(incluyendo el bit de paridad) sea par o impar. La operacin de suma se hace en aritmtica de
mdulo 2 (es decir, es una operacin lgica OR exclusiva). Para verlo de otro modo, decimos
que se agrega un bit de paridad de tal manera que la cantidad de unos en el bloque siempre
sea par o siempre sea impar, segn la convencin que se haya establecido de antemano. Para
el primer caso el mtodo se llama codificacin con bit de paridad par y en el segundo caso
codificacin con bit de paridad impar. Ntese que si la codificacin es segn bit de paridad par
entonces la suma en mdulo 2 de todos los bits siempre da 0. Para el caso de bit de paridad
impar la suma siempre da 1. En la Figura 5 se muestra un ejemplo de cdigo de paridad par.
Figura 5. Ejemplo de cdigo de paridad par.
Una vez que el bloque llega al receptor se debe realizar la decodificacin y determinar si
se ha producido un error o no. Esta verificacin se hace sumando en mdulo 2 todos los bits
del bloque y comprobando el resultado. Si se us paridad par y la suma da 0 entonces no hay
errores. Por el contrario, si estando codificado con paridad par el resultado da 1 quiere decir
que un error ha ocurrido.
Indudablemente, este cdigo (como todos en realidad) no es perfecto y pueden darse
casos en los que ocurren errores y el sistema no los detecta. Por ejemplo, si ocurren 2 errores
en el bloque transmitido, y se est usando paridad par, el resultado de la suma de todos los
bits en el decodificador va a dar 0. En tal caso el decodificador no estara detectando el error.
Es ms an, lo mismo pasa si se producen 4, 6, 8, etc. errores. Por el contrario, el sistema
ser capaz de detectar 1, 3, 5, etc. errores.
Para este esquema de codificacin la tasa de cdigo es k/(k+1). La ventaja que tiene
este esquema es su sencilla implementacin. Un conjunto de compuertas XOR permiten
generar el bit de paridad, como lo muestra la Figura 6.
Codificacin de canal 9
Figura 6. Generacin de bit de paridad. El bit de polarizacin es 1 para
paridad impar 0 para paridad par.
Hay que tener en cuenta que este esquema de codificacin no puede corregir los
errores sino que slo puede detectarlos. Teniendo en cuenta que slo se puede detectar un
nmero impar de errores (o par, si el bit de paridad es impar) tratemos de cuantificar la
eficiencia de este cdigo. Asumiendo que todos los bits del bloque son igualmente probables y
que son independientes entre s, podemos escribir la probabilidad de que ocurran j errores en
un bloque de n bits de la siguiente manera:
j n j
p p
j
n
n j P
|
|
.
|
\
|
= ) 1 ( ) , ( (5)
donde p es la probabilidad de que un bit sea recibido con error o probabilidad de
transicin del canal. El nmero combinatorio
)! ( !
!
j n j
n
j
n
=
|
|
.
|
\
|
representa las diferentes maneras en que j bits pueden ser errneos dentro de un
bloque de n bits. Por lo tanto, en un cdigo de deteccin de error con paridad simple, la
probabilidad de que un error no sea detectado es:
|
|
.
|
\
|
=
impar) n (para 1)/2 - (n
par) n (para 2 /
1
2 2
) 1 (
2
n
j
j n j
nd
p p
j
n
P (6)
Ejemplo. Configurar un cdigo de deteccin de error con bit de paridad par, (4, 3), de
tal manera que el bit de paridad aparezca en el extremo izquierdo del cdigo. Cules son los
errores que puede detectar? Calcular la probabilidad de que NO se detecte un mensaje
errneo, asumiendo que todos los bits son independientes entre s y que la probabilidad de
error de bit del canal es p = 10
-3
.
Solucin.
Mensaje Paridad Cdigo de bits
000 0 0 000
100 1 1 100
010 1 1 010
110 0 0 110
001 1 1 001
101 0 0 101
011 0 0 011
111 1 1 111
10 Codificacin de canal
El cdigo es capaz de detectar 1 3 errores en cada smbolo. La probabilidad de que no
se detecte un error que ha ocurrido es igual a la probabilidad de que ocurran 2 4 errores en
cualquier lugar del cdigo.
6 4 3 3 3 2 3
4 3 2
4 2 2
4 2 2
10 6 ) 10 ( 7 ) 10 ( 12 ) 10 ( 6
7 12 6
) 1 ( 6
4
4
) 1 (
2
4
+ =
+ =
+ =
|
|
.
|
\
|
+
|
|
.
|
\
|
=
p p p
p p p
p p p P
nd
Ganancia de cdigo
La Figura 7 muestra curvas caractersticas de probabilidad de error de bit P
B
en funcin
de E
b
/N
0
. Se compara una curva caracterstica de modulacin bipolar en banda base, sin
codificar, con otras dos curvas del mismo esquema de modulacin pero codificadas. Una lleva
un cdigo (24, 12) y la otra un cdigo (127, 92). En el primer caso (n - k) = 12 y en el
segundo caso (n k) = 35. Obviamente, es de esperar que el agregado de un cdigo de
deteccin o correccin de error produzca una mejora en la performance de P
B
. Sin embargo,
ntese en la figura que las curvas se cruzan casi en un punto (aproximadamente en 5,5 dB)
que por debajo o por encima de l la variacin de performance de P
B
presenta caractersticas
diferentes. Concretamente, los cdigos de error comienzan a ser efectivos a partir de E
b
/N
0
mayor a esos 5,5 dB. Para valores menores a este umbral los cdigos empeoran la
performance en lugar de mejorarla. La explicacin de esta caracterstica es la siguiente: el
bloque con redundancia (cualquiera sea ella) se debe transmitir a la misma velocidad que el
bloque sin redundancia (sin codificar). Es decir, en cualquier caso la velocidad de transmisin
de smbolo debe ser la misma. Al agregar bits de redundancia con la obligacin de no modificar
la tasa de transmisin de smbolos, es necesario que cada bit que forma el cdigo tenga menor
duracin (menor tiempo de bit T). Esto produce una menor energa de bit en cada bit del
bloque codificado (ya que la energa de bit es directamente proporcional a T), con lo cual
aumenta la probabilidad de error de bit pues es dependiente de E
b
. Cuando la tasa de
transmisin es elevada, o sea T pequeo, la relacin E
b
/N
0
tiende a ser pequea. Si encima se
le agregan bits de redundancia entonces E
b
tiende a ser ms pequeo an, con lo cual los bits
de redundancia tienen ms influencia en la energa de bit que en la mejora de performance
que pueden producir por s mismos. Superado un cierto umbral de E
b
(digamos que la tasa de
transmisin tiende a ser ms lenta) entonces los bits de redundancia empiezan a tener ms
contribucin por su efecto de deteccin o correccin que por su efecto indeseado de
disminucin de la energa de bit E
b
.
Por lo tanto, los cdigos de deteccin o correccin de error comienzan a ser efectivos
por encima de un cierto umbral de la relacin E
b
/N
0
. La ganancia de cdigo es la reduccin,
expresada en decibeles, de la relacin E
b
/N
0
requerida para un cierto valor de probabilidad de
bit, que se obtiene usando un cdigo de control de error. Por ejemplo, en la figura se ve que
para una probabilidad de error de bit P
B
= 10
-5
, el cdigo (24, 12) tiene una ganancia de
cdigo de aproximadamente 2 dB respecto del mismo esquema sin codificar. El cdigo (127,
92) tiene una ganancia de aproximadamente 2,5 dB.
Ejemplo. Comparar la probabilidad de error de mensaje, en un enlace de
comunicaciones, con cdigo corrector de error y sin l. Asumir las siguientes caractersticas
para el sistema sin codificar: modulacin bipolar en banda base, ruido blanco Gaussiano,
S/N
0
= 43.776, tasa de datos R = 4.800 bits/s. Para el caso codificado asumir un cdigo
corrector de error (15,11) capaz de corregir un error simple dentro de un bloque de 15 bits.
Solucin.
Sea p la probabilidad de error de bit (probabilidad de transicin) del sistema sin
codificar:
Codificacin de canal 11
Figura 7. Comparacin de curvas de probabilidad de error de bit
entre un sistema sin codificar (1, 1) y dos esquemas codificados.
( )
0
/ 2 N E Q p
b
=
y p
c
la probabilidad de error de bit (probabilidad de transicin) del sistema codificado:
( )
0
/ 2 N E Q p
c c
=
E
b
/N
0
es la energa de bit por densidad espectral de ruido del sistema sin codificar y
E
c
/N
0
es la energa de bit por densidad espectral de ruido del sistema codificado. Q(x) es la
funcin de error.
Con el sistema sin codificar tenemos lo siguiente:
dB) 6 , 9 ( 12 , 9
0 0
= =
RN
S
N
E
b
( )
5
0
10 02 , 1 24 , 18
2
= =
|
|
.
|
\
|
= Q
N
E
Q p
b
(7)
La probabilidad de que el bloque sin codificar sea recibido con al menos un error es:
12 Codificacin de canal
( )
4
nte correctame recibidos
sean codificar
sin bits 11 los
que de ad probabilid
11
10 12 , 1 1 1
) 1 ( 1
= =
=
43 42 1
p
p P
k
M
(8)
Con codificacin:
En este caso, la tasa de smbolo es 15/11 veces la tasa de bit.
bps 6545
11
15
4800 =
c
R
dB) (8,25 688 , 6
0 0
= =
N R
S
N
E
c
c
Ntese que la relacin E
c
/N
0
para cada bit del cdigo es menor que para los bits sin
codificar ya que se ha aumentado la tasa de bit (pues los bits son ms pequeos debido a su
menor duracin) y la potencia se supone constante. Entonces, con el resultado anterior,
tenemos:
( )
4
0
10 36 , 1 38 , 13
2
= =
|
|
.
|
\
|
= Q
N
E
Q p
c
c
(9)
Como consecuencia de la mencionada disminucin de la energa de bit, la probabilidad
de error de bit ha empeorado y an no se ve la supuesta mejora que debera brindar el
sistema con cdigo de correccin de error. Ahora vamos a calcular la probabilidad de error de
mensaje. Es decir, calculamos la probabilidad de que se produzcan dos bits errneos o tres, o
cuatro, etc.:
( ) ( )
j
c
j
c
n
j
c
M
p p
j
P
=
=
|
|
.
|
\
|
=
15
15
2
1
15
(10)
La sumatoria comienza en j = 2 ya que el cdigo corrige todos los errores simples
dentro del bloque de n = 15 bits. Se obtiene una buena aproximacin usando slo el primer
trmino de la sumatoria:
( ) ( )
6 13 2
10 94 , 1 1
2
15
=
|
|
.
|
\
|
=
c c
c
M
p p P (11)
Ahora se ve, comparando los resultados, que la introduccin del cdigo corrector de
error produce una mejora de 58 veces.
Cdigos de bloque lineales
Los cdigos de bloque lineales son una clase de cdigos de verificacin de paridad ms
general que los cdigos con paridad simple y tambin pueden ser caracterizados por la
notacin (n, k) descripta anteriormente. Una vez ms, el codificador transforma un mensaje de
k bits (al que llamaremos vector de mensaje) en un bloque ms grande de n bits (al que
llamaremos vector de cdigo).
Los k bits del mensaje pueden formar 2
k
mensajes distintos a los que llamaremos
k-uplas (secuencias de k dgitos). Los n bits del bloque pueden formar, como mximo, 2
n
diferentes secuencias, llamadas n-uplas. El procedimiento de codificacin asigna a cada uno de
Codificacin de canal 13
los 2
k
mensajes de la k-upla uno de los 2
n
posibles mensajes de la n-upla. Un cdigo de bloque
representa una asignacin uno a uno, mediante la cual los 2
k
mensajes de la k-upla son
mapeados de manera unvoca en un nuevo conjunto de 2
k
mensajes pertenecientes a la
n-upla.
Espacios vectoriales
El conjunto formado por una n-upla, V
n
, es llamado espacio vectorial sobre el campo
binario de dos elementos, 0 y 1. El campo binario tiene dos operaciones aritmticas, suma y
multiplicacin. El resultado de estas operaciones pertenece tambin al campo binario. En el
campo binario estas reglas aritmticas se definen de la siguiente manera:
Suma Multiplicacin
0 0 = 0 0 0 = 0
0 1 = 1 0 1 = 0
1 0 = 1 1 0 = 0
1 1 = 0 1 1 = 1
La operacin designada por el smbolo corresponde a una suma en mdulo 2.
Un subconjunto S del espacio vectorial V
n
se llama subespacio si cumple con las dos
condiciones siguientes:
1. El vector nulo (todos ceros) pertenece a S.
2. La suma de dos vectores en S tambin pertenece a S.
Estas propiedades son fundamentales para la caracterizacin algebraica de los cdigos
de bloque lineales. Supngase que V
i
y V
j
son dos vectores de cdigo pertenecientes a un
cdigo de bloque binario. Se dice que el cdigo es lineal si, y slo si, (V
i
V
j
) es tambin un
vector de cdigo. Por lo tanto, un cdigo de bloque lineal es aquel cuyos vectores,
pertenecientes al subespacio, no pueden crear vectores fuera dicho subespacio.
Figura 8. Estructura de un espacio vectorial.
14 Codificacin de canal
Por ejemplo, el espacio vectorial V
4
queda completamente definido por las siguientes
2
4
= 16 4uplas:
0000 0001 0010 0011 0100 0101 0110 0111
1000 1001 1010 1011 1100 1101 1110 1111
Un ejemplo de un subconjunto de V
4
que forma un subespacio es
0000 0101 1010 1111
Es fcil comprobar que la suma de dos vectores cualesquiera de este subespacio da
como resultado otro vector perteneciente a ese subespacio. Un conjunto de 2
k
n-uplas se llama
cdigo lineal de bloque si, y slo si, es un subespacio del espacio vectorial V
n
de todas las n-
uplas (2
n
). La Figura 8 trata de ilustrar este concepto. Podemos imaginar al espacio vectorial
V
n
formado por 2
n
n-uplas (el total de puntos que se muestra en la figura). Dentro de este
espacio, existe un subconjunto de 2
k
n-uplas que forman un subespacio. Estos 2
k
vectores se
muestran como puntos ms grandes y representan a los vectores de cdigo que son vlidos.
Un mensaje, antes de ser transmitido, se codifica previamente en uno de los 2
k
vectores de
cdigo vlidos y luego finalmente se transmite. Como consecuencia del ruido que hay en el
canal de comunicacin, al receptor llega una versin perturbada del cdigo original. Ese vector
perturbado es uno de los 2
n
vectores de la n-upla que forma el espacio V
n
, y que puede ser un
punto grande o un punto chico de los que se muestran en la figura. Si el vector perturbado no
difiere mucho del vector original (vector vlido), es decir, no est muy lejos del vector original,
entonces el decodificador puede decodificar el mensaje correctamente. Cmo? Eligiendo el
punto grande ms cercano. Si el vector recibido se apart mucho de su posicin original en la
Figura 8, entonces el decodificador elige una vez ms el punto grande ms cercano, pero en
este caso la decodificacin va a ser errnea. La idea detrs de la eleccin de un cdigo se
puede establecer as:
1. Tratar de buscar un cdigo eficiente extrayendo del espacio V
n
la mayor cantidad
posible de vectores de cdigo. Esto es equivalente a decir que se busca agregar la menor
cantidad de redundancia posible. Es decir, la diferencia entre n y k debera ser lo ms pequea
posible para no agregar mucho ancho de banda extra.
2. Buscar que los vectores de cdigo estn lo ms apartados posible uno de otro (es
decir, que sean lo menos parecido posible). Esto es para que cuando el cdigo de vector sea
perturbado por el ruido se siga decodificando correctamente.
Ejemplo de cdigo de bloque lineal
Veamos la siguiente asignacin de cdigos, correspondiente a un esquema de
codificacin (6, 3). Hay 2
k
= 2
3
= 8 vectores de mensaje y por lo tanto hay 8 vectores de
cdigo. Hay 2
n
= 2
6
= 64 6-uplas en el espacio vectorial V
6
. Los vectores de mensaje y los
vectores de cdigo se muestran ordenados en la tabla siguiente.
Vector de mensaje Vector de cdigo
0 0 0 0 0 0 0 0 0
1 0 0 1 1 0 1 0 0
0 1 0 0 1 1 0 1 0
1 1 0 1 0 1 1 1 0
0 0 1 1 0 1 0 0 1
1 0 1 0 1 1 1 0 1
0 1 1 1 1 0 0 1 1
1 1 1 0 0 0 1 1 1
Codificacin de canal 15
Es fcil verificar que los ocho vectores de cdigo que se muestran arriba forman un
subespacio de V
6
. Esto es, el vector nulo est presente y la suma de dos vectores de cdigo
cualesquiera produce como resultado otro vector de cdigo que pertenece al subespacio. Por lo
tanto, estos vectores de cdigo representan un cdigo de bloque lineal, conforme a la
definicin.
Matriz generadora
Si el valor de k es grande, armar una tabla como la vista en el ejemplo anterior
resultara realmente muy engorroso. Por ejemplo, para un cdigo (127, 92) hay 2
92
vectores
de cdigo distintos, esto es ms o menos 5 x 10
27
. Si el procedimiento de codificacin consiste
en una tabla entonces se necesitara una cantidad de memoria extremadamente grande para
almacenar a todos los vectores de cdigo. Para evitar esto, se recurre a un tratamiento
matricial del tema.
Dado que el conjunto de vectores de cdigo es un subespacio de dimensin k del
espacio vectorial de dimensin n (k < n), siempre es posible encontrar un conjunto de n-uplas,
menor que 2
k
, que puedan generar todos los 2
k
vectores miembros del subespacio. El conjunto
ms pequeo de vectores linealmente independientes que generan al subespacio se llama base
del subespacio y el nmero de vectores de esta base es la dimensin del subespacio. Cualquier
base formada por k n-uplas linealmente independientes, V
1
, V
2
, ..., V
k
puede ser usada para
generar los vectores de cdigo de bloque requeridos. Esto se debe a que cada vector de cdigo
es una combinacin lineal de V
1
, V
2
, ..., V
k
. Esto es, cada vector de cdigo U (de un total de
2
k
) puede ser escrito como:
k 2 1
V V V U
k
m m m + + + = L
2 1
(12)
donde m
i
= (0 1) son los dgitos de mensaje, con i desde 1 hasta k.
En general, podemos definir una matriz generadora mediante el siguiente arreglo de
k x n:
(
(
(
(
(
=
(
(
(
(
=
kn k k
n
n
v v v
v v v
v v v
L
M
L
L
M
2 1
2 22 21
1 12 11
k
2
1
V
V
V
G (13)
Por convencin, los vectores de cdigo se designan por vectores fila. As, el mensaje m,
una secuencia de k bits de mensaje, es una matriz de 1 fila por k columnas:
k
m m m , , ,
2 1
K = m
La generacin del vector de cdigo se puede escribir en forma matricial de la siguiente
manera:
mG U = (14)
Para el ejemplo del cdigo (6, 3) visto anteriormente, una matriz generadora sera:
(
(
(
=
(
(
(
=
1 0 0
0 1 0
0 0 1
1 0 1
1 1 0
0 1 1
3
2
1
V
V
V
G (15)
donde V
1
, V
2
y V
3
son tres vectores linealmente independientes (un subconjunto de los
ocho vectores de cdigo) que pueden generar todos los vectores de cdigo. La independencia
16 Codificacin de canal
lineal se comprueba viendo que la suma de dos cualesquiera de ellos no da como resultado a
ninguno de los tres vectores generadores. Para generar el vector de cdigo correspondiente a,
por ejemplo, el vector de mensaje 1 1 0, se aplica entonces la siguiente ecuacin:
| |
3 2 1
3
2
1
V V V
V
V
V
U + + =
(
(
(
= 0 1 1 0 1 1
0) 1 1 mensaje de vector el para cdigo de (vector 101110
000000 011010 110100
=
+ + = U
Por lo tanto, el vector de cdigo correspondiente a un vector de mensaje es una
combinacin lineal de las filas de G. Ya que los cdigos quedan completamente definidos por G
el codificador slo necesita almacenar las k filas de G en lugar todos los 2
k
vectores de cdigo.
Ntese que, para el ejemplo visto es suficiente un arreglo de 3 x 6 en lugar de uno de 8 x 6.
Cdigos de bloque lineales sistemticos
Un cdigo de bloque lineal sistemtico (n, k) es un mapeo desde un vector de mensaje
k-dimensional a un vector de cdigo n-dimensional, de tal manera que parte de la secuencia
generada coincide con los k dgitos del mensaje. Es decir, un cdigo sistemtico es aquel en el
que la secuencia de k bits del mensaje aparece explcitamente en el cdigo. Los restantes
(n-k) dgitos son bits de paridad. Un cdigo sistemtico tiene una matriz generadora de la
siguiente forma:
| |
(
(
(
(
(
=
=
1 0 0
0 1 0
0 0 1
) ( 2 1
) ( 2 22 21
) ( 1 12 11
L
M
L
L
L
M
L
L
k n k k k
k n
k n
k
p p p
p p p
p p p
I P G
(16)
donde P se llama matriz de paridad (cada p
ij
vale 0 1) e I
k
es una matriz identidad de
dimensin k x k (tiene unos en su diagonal principal y ceros en el resto de las posiciones).
Con esta generacin sistemtica no es necesario almacenar en memoria la matriz identidad.
Combinando la (14) y la (16) cada vector de cdigo se puede expresar como sigue:
| |
(
(
(
(
(
1 0 0
0 1 0
0 0 1
, , , , , ,
) ( 2 1
) ( 2 22 21
) ( 1 12 11
2 1 2 1
L
M
L
L
L
M
L
L
K K
k n k k k
k n
k n
k n
p p p
p p p
p p p
m m m u u u
donde
1),...n k - (n i para
k) - (n 1,..., i para
2 2 1 1
+ = =
= + + + =
+ k n i
ki k i i i
m
p m p m p m u L
Dada la k-upla de mensaje
k
m m m , , ,
2 1
K = m
y la n-upla general del vector de cdigo
n
u u u , , ,
2 1
K = U
Codificacin de canal 17
entonces el vector de cdigo sistemtico puede expresarse como:
4 4 4 3 4 4 4 2 1
K
4 4 4 3 4 4 4 2 1
K
mensaje de bits
2 1
paridad de bits
2 1
, , , , , , ,
k k n
m m m p p p
= U (17)
donde
) ( ) ( 2 2 ) ( 1 1
2 22 2 12 1 2
1 21 2 11 1 1
k n k k k n k n k n
k k
k k
p m p m p m p
p m p m p m p
p m p m p m p
+ + + =
+ + + =
+ + + =
L
L
L
(18)
Normalmente los cdigos sistemticos se escriben poniendo del lado izquierdo los bits
de mensaje y del lado derecho los bits de paridad. Ntese la caracterstica de los cdigos
sistemticos. Los bits de paridad se forman como combinacin lineal de los bits de
mensaje. Por eso tienen particular inters. La matriz identidad se puede obviar del codificador
ya que los bits de paridad p
i
se generan solamente con la matriz de paridad P. Luego, el vector
U se forma con los bits de mensaje (en forma directa, sin ninguna operacin matemtica),
ms los bits de paridad generados con P que se adjuntan a los bits de mensaje.
De acuerdo a lo que acabamos de ver, para el cdigo (6, 3) del ejemplo visto antes, el
vector de cdigo puede escribirse as:
| |
43 42 1 43 42 1
3
I P
U
(
(
(
=
1 0 0
0 1 0
0 0 1
1 0 1
1 1 0
0 1 1
, ,
3 2 1
m m m (19)
{{{
6 5 4
3 2 1
3 2 1 3 2 2 1 3 1
, , , , ,
u u u
u u u
m m m m m m m m m
43 42 1 43 42 1 43 42 1
+ + + = U (20)
Se puede ver que los bits redundantes se forman de diferentes maneras. El primer bit
de paridad es la suma del primer y tercer bit de mensaje; el segundo bit de paridad es la suma
del primero y segundo bit de mensaje y el tercer bit de paridad es la suma del segundo y
tercer bit de mensaje. Una estructura de este tipo, comparada con los esquemas de un solo bit
de paridad, provee mayor capacidad para detectar y corregir errores.
Matriz de verificacin de paridad
Para poder realizar el proceso inverso en el receptor, es decir, para poder decodificar el
vector de cdigo recibido, definimos una matriz H a la que llamamos matriz de verificacin de
paridad. Por cada matriz generadora G de dimensin (k x n) existe una matriz H de dimensin
(n k) x n de tal manera que las filas de G son ortogonales a las filas de H. Esto significa que
GH
T
= 0, donde H
T
es la matriz transpuesta de H, y 0 es una matriz nula de dimensin
k x (n k). La matriz transpuesta de H es de dimensin n x (n k), cuyas filas son las
columnas de H y cuyas columnas son las filas de H. Para cumplir con los requerimientos de
ortogonalidad la matriz H se escribe como:
| |
T
k n
P I H
= (21)
Por lo tanto, la matriz transpuesta de H es:
18 Codificacin de canal
(
(
(
(
(
(
(
(
(
(
(
=
(
) ( 2 1
) ( 2 22 21
) ( 1 12 11
1 0 0
0 1 0
0 0 1
k n k k k
k n
k n
k n T
p p p
p p p
p p p
L
M
L
L
L
M
L
L
P
I
H
(22)
Se puede ver que GH
T
= 0:
| |
P P
P
I
I P GH
+ =
(
=
k n
k
T
(23)
Como P + P es la suma en mdulo 2 de dos matrices resulta P + P = 0.
Tambin se puede verificar que el producto UH
T
da cero:
0
0 m
GH m
H mG UH
=
=
=
=
) (
) (
T
T T
Teniendo la matriz H de verificacin de paridad se la puede usar para verificar si el
vector de cdigo recibido es un cdigo vlido del conjunto de vectores. U es un cdigo de
vector generado por la matriz G (o sea, un cdigo vlido) si, y slo si, UH
T
= 0.
Test de sndrome
Supongamos que el vector que estamos recibiendo no es igual al vector transmitido ya
que ha sido perturbado por el ruido. Digamos entonces que el vector recibido es r = r
1
,
r
2
,...,r
n
. Por lo tanto, hay 2
k
vectores U posibles, mientras que hay 2
n
vectores r posibles.
Podemos escribir:
e U r + = (24)
donde e = e
1
, e
2
,...,e
n
es el vector de error o patrn de error introducido por el canal.
Hay un total de 2
n
-1 potenciales patrones de error (el vector e = 0 no produce error) en el
espacio de 2
n
n-uplas. Se define sndrome de r:
T
rH S = (25)
El sndrome es el resultado de una verificacin o comprobacin de la paridad hecha
sobre el vector r para determinar si r es un miembro del conjunto de vectores de cdigo (o
sea, un vector vlido). Si r es miembro entonces el sndrome S tiene valor 0. Si r tiene errores
detectables entonces el sndrome tiene algn cierto valor distinto de cero. Si r tiene errores
corregibles entonces el sndrome tiene algn valor distinto de cero que puede ser asociado al
patrn de error que caus el error. El decodificador tomar acciones para detectar y corregir el
error (en el caso de un FEC) o bien solicitar una retransmisin (en el caso de un ARQ).
Combinando la (24) y la (25) se obtiene:
Codificacin de canal 19
T T
T
eH UH
H e U S
+ =
+ = ) (
(26)
Y como UH
T
= 0 entonces resulta
T
eH S = (27)
Ntese que el sndrome puede ser calculado tanto con el vector recibido r como con el
patrn de error e. Una propiedad importante de los cdigos lineales de bloque, fundamental
para el proceso de decodificacin, es que el proceso de mapeo entre los patrones de error
corregibles y el sndrome es uno a uno.
Ejemplo. Test de sndrome.
Supngase que se transmite el vector de cdigo U = 101110 del ejemplo de cdigo (6,
3) visto antes, y se recibe el vector r = 001110, es decir, se produce un error en el bit del
extremo izquierdo. Calcular el valor del sndrome S = rH
T
y verificar que es igual a eH
T
.
Solucin.
| |
| | | | ) perturbado cdigo de vector del (sindrome 0 0 1 1 1 , 1 1 , 1
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
0 1 1 1 0 0
= + + =
(
(
(
(
(
(
(
(
=
=
T
rH S
Calculando el sndrome por el otro camino resulta:
| | | | 0 0 1 0 0 0 0 0 1 = = =
T T
H eH S
Las propiedades del sndrome las podemos resumir como sigue:
1. El sndrome depende slo del patrn de error y no del codeword transmitido.
2. Dos patrones de error que difieren entre s por un codeword vlido tienen el mismo
sndrome.
3. El sndrome S es la suma de aquellas columnas de la matriz H correspondientes a
las ubicaciones del error.
4. Usando decodificacin con sndrome, un cdigo lineal de bloque (n, k) puede
corregir hasta t errores por codeword, siempre que n y k satisfagan el siguiente lmite de
Hamming:
|
|
.
|
\
|
t
i
k n
i
n
0
2 (28)
Si la (28) se cumple con el signo igual, se dice que el cdigo es perfecto.
20 Codificacin de canal
Correccin de error
En virtud de lo visto hasta ac, est claro que no slo es posible detectar un error sino
que tambin es posible corregirlo. Esto se debe a que se tiene la capacidad de conocer el
patrn de error a partir del clculo del sndrome. Escribamos las 2
n
n-uplas que representan
todos los posibles vectores recibidos en un arreglo tal que la primera fila contenga todos los
vectores de cdigo vlidos, comenzando por el vector nulo, y la primera columna contenga
todos los esquemas o patrones de error corregibles. Cada fila, llamada coset, consiste en un
patrn de error en la primera columna (llamado coset lder) seguido por los vectores de cdigo
vlidos perturbados por ese coset lder. Este arreglo (llamado arreglo estndar), para un
cdigo (n, k) se escribe de la siguiente manera:
k n k k n k n k n
k
k
k
k
i
j j i j j
i
i
i
+ + +
+ + +
+ + +
+ + +
2 2 2 2
2
2
2
2
3
2
3 3 2 3
2
2
2 2 2 2
2
2 1
e U e U e U e
e U e U e U e
e U e U e U e
e U e U e U e
U U U U
L L
M M M
L L
M M
L L
L L
L L
(29)
El arreglo contiene todas las 2
n
n-uplas del espacio V
n
(cada n-upla aparece slo una
vez). Cada coset consiste de 2
k
n-uplas. Por lo tanto hay (2
n
/2
k
) = 2
n-k
cosets. Supngase que
se transmite el vector U
i
sobre un canal con ruido. Si el patrn que causa el error es un coset
lder, el vector recibido ser decodificado correctamente. Si el patrn de error que causa la
perturbacin no es un coset lder entonces se producir una decodificacin errnea.
Si e
j
es el coset lder o patrn de error del j-simo coset, entonces U
i
+ e
j
es una n-upla
que pertenece a este coset o fila del arreglo estndar. El sndrome de esta n-upla es:
T
j
T
i
T
j i
H e H U H e U S + = + = ) (
Ya que U
i
es un vector de cdigo vlido resulta ser que U
i
H
T
= 0, y por lo tanto se
puede escribir:
T
j
T
j i
H e H e U S = + = ) ( (30)
De esta ltima ecuacin se puede ver que todos los miembros de un coset tienen el
mismo sndrome y por eso el sndrome es usado para estimar el patrn de error. El sndrome
para cada coset es diferente.
El proceso para la correccin de errores es el siguiente:
1. Calcular el sndrome de r usando S = rH
T
.
2. Localizar el patrn de error, e
j
, que tiene el mismo sndrome que el calculado en 1,
y cuyo valor es igual a rH
T
.
3. Este patrn de error se lo toma como el que causa la perturbacin en el canal.
4. El vector recibido corregido se calcula como U = r + e
j
. La suma es consecuencia de
las reglas de operacin en mdulo 2 (sumar o restar es lo mismo).
Codificacin de canal 21
Localizacin del patrn de error
Volviendo al ejemplo de cdigo (6, 3) visto al comienzo, ubicaremos ahora las 2
6
= 64
6-uplas de acuerdo al arreglo estndar que se muestra en la matriz (29):
010110 100010 001100 111000 111111 001011 100101 010001
100111 010011 111101 001001 001110 111010 010100 100000
010111 100011 001101 111001 111110 001010 100100 010000
001111 111011 010101 100001 100110 010010 111100 001000
000011 110111 011001 101101 101010 011110 110000 000100
000101 110001 011111 101011 101100 011000 110110 000010
000110 110010 011100 101000 101111 011011 110101 000001
000111 110011 011101 101001 101110 011010 110100 000000
Usando la (28) se puede verificar que este cdigo corrige todos los errores simples. Los
vectores de cdigo vlidos son los ocho vectores de la primera fila, y los patrones de error
corregibles son los ocho vectores lderes de la primera columna (incluyendo el patrn de error
nulo). Todos los patrones de error de 1 bit son corregibles. Ntese que luego de ubicar todos
los patrones de error de 1 bit queda todava algn patrn ms ya que no se ha completado la
64 6-upla. Es decir, queda un coset libre (con un coset lder asociado) que puede ser
completado y por lo tanto hay un patrn de error ms que puede ser corregido. Al respecto,
contamos con flexibilidad para elegir este patrn de manera tal de completar la n-upla en el
ltimo del coset, sin que se repitan las 6uplas. En la tabla anterior, este patrn lder se eligi
como 010001. La decodificacin ser correcta si, y slo si, el patrn de error causado por el
canal es uno de los patrones lderes.
Calculamos ahora el sndrome correspondiente a cada una de las secuencias errneas
corregibles por medio del producto e
j
H
T
, para cada patrn lder:
(
(
(
(
(
(
(
(
=
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
j
e S
Patrn de error sndrome
000000
000001
000010
000100
001000
010000
100000
010001
000
101
011
110
001
010
100
111
Los resultados se muestran en la tabla anterior. Ya que cada sndrome es nico, el
decodificador puede identificar el patrn de error e al cual corresponde.
Como se dijo ya anteriormente, se recibe un vector r y se calcula su sndrome usando
la ecuacin S = rH
T
. Luego se usa ese sndrome en la tabla anterior para encontrar el
22 Codificacin de canal
correspondiente patrn de error. Este patrn de error es una estimacin del error y se denota
como . Finalmente, el decodificador suma a r para obtener una estimacin del vector
transmitido, al que lo identificar por .
) ( ) (
e e U e e U e r U + + = + + = + = (31)
Si el patrn de error estimado es igual al patrn real, o sea, si = e entonces = U.
Por el contrario, si el error estimado es incorrecto entonces el decodificador estimar un vector
de cdigo que en realidad no fue transmitido y en tal caso se producir un error indetectable.
Ejemplo. Supongamos que se transmite U = 101110 y que el vector recibido es
r = 001110. Mostrar cmo el decodificador, usando la tabla de sndrome anterior, puede
corregir el error.
Solucin.
El sndrome r se calcula como:
| | | | 0 0 1 0 1 1 1 0 0 = =
T
H S
Usando la tabla de la pgina anterior, el patrn de error estimado corresponde a:
0 0 0 0 0 1 = e
El vector corregido, estimado, es
0 1 1 1 0 1
0 0 0 0 0 1 0 1 1 1 0 0
=
+ =
+ = e r U
Ya que el patrn de error estimado es igual al patrn de error verdadero el
procedimiento para este ejemplo conduce a = U.
Peso y distancia de vectores binarios
La capacidad de correccin de error de un sistema puede ser analizada investigando su
estructura. El peso de Hamming, w(U), de un vector U queda definido como el nmero de
elementos distintos de cero en U. Ya que U es un vector con elementos binarios, el peso de
Hamming de U es igual al nmero de unos que tiene el vector. Por ejemplo, si
U = 100101101, entonces w(U) = 5. La distancia de Hamming entre dos vectores U y V,
d(U, V), queda definida como el nmero de elementos diferentes entre ambos vectores. Por
ejemplo,
U = 100101101
V = 011110100
d(U, V) = 6
Debido a las propiedades de la suma en mdulo 2, si sumamos U y V obtenemos:
U + V = 111011001
Por lo tanto, se puede apreciar que la distancia de Hamming entre dos vectores es el
peso de Hamming de la suma (o resta) de ambos. Esta propiedad es til para hallar la
distancia mnima entre dos vectores de un conjunto de codewords. Como la suma de dos
Codificacin de canal 23
codewords da como resultado otro codeword perteneciente al subespacio, la distancia mnima
viene dada por aquel vector de cdigo del subespacio que tiene la menor cantidad de unos
(sin considerar el vector nulo). Esto nos libera de calcular la distancia entre cada uno de los
pares posibles de vectores de cdigo. La distancia entre vectores de cdigo nos da una pauta
de qu tan separados estn entre s. En particular, la distancia mnima d
min
nos da el peor caso
o peor separacin. Con esto podemos determinar la capacidad de correccin o deteccin de
errores que tiene el cdigo.
Una vez que se recibe el vector r, la tarea del decodificador es estimar cul fue el
vector U transmitido. La estrategia es entonces buscar aquel vector U que presente la menor
distancia respecto del vector r recibido.
En la Figura 9 se muestra la distancia de Hamming entre dos vectores, U y V. Los
puntos negros entre ambos representan casos posibles de vectores recibidos r. En la
Figura 9(a) se muestra un vector recibido r
1
que tiene distancia 1 respecto del vector U y
distancia 4 respecto del vector V. Si el detector est diseado para corregir errores entonces
optar por el vector U que es el ms cercano a r
1
. Si r
1
fue el resultado de haber recibido
realmente el vector de cdigo U con un bit errneo, entonces la decodificacin es correcta.
Pero, si r
1
fue el resultado de haber recibido el vector de cdigo V con cuatro bits errneos
entonces la decodificacin es incorrecta. Una interpretacin similar puede hacerse para el
ejemplo (b) de la Figura 9, en donde un doble error en la transmisin de U permite una
decodificacin correcta, pero si se trata de un triple error en la transmisin de V entonces la
decodificacin es incorrecta ya que el detector toma una decisin errnea. Finalmente, en el
ejemplo (c), si el vector transmitido fue U y se producen tres errores, entonces el detector se
equivocar en la deteccin, ya que optar por estimar V que es el vector ms cercano. Si r
3
fue la consecuencia de haber recibido el vector de cdigo V con dos errores entonces la
deteccin ser correcta.
Figura 9. Correccin y deteccin de errores en funcin de la distancia de
Hamming.
24 Codificacin de canal
Si la tarea del receptor es detectar errores y no corregirlos, se puede ver en la
Figura 9 que cualquier vector recibido afectado por el ruido, representado por un punto negro
y que implica 1, 2, 3 4 bits errneos, puede ser detectado. Sin embargo, si se producen 5
errores en la transmisin y el vector transmitido fue U, el detector recibir V, con lo cual no
podr detectar los errores (similarmente ocurre si se transmiti V y se producen 5 errores).
Del anlisis hecho anteriormente podemos ver que la capacidad que tiene un
determinado cdigo para detectar y/o corregir errores est relacionada con la distancia mnima
entre dos vectores de cdigo. La tarea del detector, para el caso de correccin de errores, es
determinar en que regin est el vector recibido para tomar una decisin, como se muestra en
la Figura 9(a). Si el vector recibido cae en la regin 1 el criterio es decidir por U. Si cae en
la regin 2 el criterio es optar por el vector V. Con tal criterio, y con una distancia d
min
= 5
como se muestra en el ejemplo, el detector puede corregir hasta 2 errores. En general el
mximo nmero garantizado de errores corregibles por codeword, t, viene dado por la
expresin:
(
=
2
1
min
d
t (32)
donde x representa el nmero entero ms cercano a x y que no exceda a x. Tiene que
quedar claro que la (32) nos dice que el cdigo puede corregir hasta t errores inclusive. Sin
embargo, muchas veces un cdigo que corrige todas las secuencias posibles de t y menos
errores puede tambin corregir ciertas secuencias de t + 1 errores. Cuando vimos el ejemplo
de cdigo (6, 3) comprobamos que quedaba una fila sin completar en el arreglo estndar,
luego de haber puesto todos los patrones de 1 error. En general, un cdigo lineal de bloque (n,
k) que con seguridad puede corregir hasta t errores, es capaz de corregir un total de 2
n-k
patrones de error. Cuando un cdigo es perfecto (segn la (28)) entonces slo corrige hasta
t errores exactamente y ninguno ms.
Si un cdigo de bloque que con seguridad corrige hasta t errores, tiene una probabilidad
de hacer una deteccin errnea P
e
, que viene dada por la siguiente desigualdad:
( )
j n j
n
t j
e
p p
j
n
P
+ =
|
|
.
|
\
|
1
1
(33)
donde p es la probabilidad de transicin del CSB. La igualdad en la (33) se produce
cuando el cdigo es perfecto, es decir cuando el cdigo corrige hasta t errores y ni uno ms.
Un cdigo tambin puede usarse para detectar errores solamente. En la Figura 9 vemos
que cualquier vector recibido caracterizado por un punto negro puede ser identificado como un
error. La capacidad de detectar e errores, viene dada por la distancia mnima de la siguiente
manera:
1
min
= d e (34)
Un cdigo de bloque con distancia mnima d
min
garantiza que todos los patrones con
(d
min
1) errores, o menos, pueden ser detectados, lo cual no significa que no puedan
detectarse algunos patrones de error ms. De hecho, puede demostrarse que un cdigo (n, k)
puede detectar un total de (2
n
2
k
) errores.
Designemos con A
j
al nmero de vectores de cdigo con peso j. Los nmeros A
0
, A
1
,
A
2
,...A
n
forman la distribucin de pesos del cdigo. Si el cdigo se usa slo para deteccin de
errores sobre un CSB, entonces la probabilidad de que el cdigo no detecte un error viene
dada por la expresin:
Codificacin de canal 25
( )
=
n
j
j n j
j nd
p p A P
1
1 (35)
donde, una vez ms, p es la probabilidad de transicin del canal. Ya que el cdigo tiene
una distancia mnima d
min
, resulta que los valores de A
1
hasta A
dmin 1
son todos cero. Por lo
tanto, la (35) se puede rescribir como:
( )
=
n
d j
j n j
j nd
p p A P
min
1 (36)