Вы находитесь на странице: 1из 29

TIC 1

TEORA DE INFORMACIN Y CDIGOS


1 INTRODUCCIN
Al analizar y disear un sistema de telecomunicaciones, surgen dos
preguntas bsicas:
de que manera se puede evaluar la razn ( o velocidad) a la cual una fuente emite
informacin?
Cmo estimamos la mxima razn (o velocidad) a la cual se puede efectuar una
transmisin confiable por un canal ruidoso?
A lo largo de estas notas veremos las respuestas a estas interrogantes.

Una fuente de
informacin puede
ser:

Anloga: seal contnua en amplitud


y en el t.
Discreta: secuencia de caracteres
o smbolos.

La materia que sigue se concentrar en el anlisis de mensajes de fuentes discretas.


La teora de informacin debe su existencia al trabajo de Claude Shanon (1948) quien se
bas en modelos probabilsticos para los canales y las fuentes.
2 CONCEPTOS BSICOS
Una fuente de informacin genera una cantidad q de posibles
mensajes: M 1 , M 2 , M 3 , M q . Cada mensaje tiene una cierta probabilidad de ocurrencia:
p1 , p2 , pq . De modo que: p1 p2 p3 pq 1

En una situacin prctica los mensajes pueden ser: smbolos


alfanumricos desde un computador, niveles de cuantizacin de un conversor A D etc.
Cada mensaje M k posee una cierta cantidad de informacin
I M k , la cual depende de su probabilidad pk

TIC 2

La dependencia de I M k c r a pk debe obedecer las siguientes


condiciones:

Si pk pj

I Mk I M j

Si p k 1

I Mk 0

Si 0 p k 1

I Mk 0

y adems I M k y M j I M k I M j

En base a las condiciones anteriores se deduce que la relacin


adecuada entre I M k y pk es:

I Mk logb 1 pk
Donde b es la base del logaritmo. Segn la eleccin de b, ser
entonces la unidad de medida de I. Por ejemplo, la I se expresa en:
Nat si b e
Decit si b 10
Biit si

b2

El caso b 2 es muy utilizado ya que, para un dgito binario

bit , existen dos mensajes;

M 1 "0" y M 2 "1" . Si ambos son equiprobables, entonces,

p1 p2 0.5 .

Luego:
I M 1 I M 2 log 2 1 0.5 log 2 2 1biit

Entonces, la informacin de un dgito binario 1bit es igual a un biit (por ello muchos
textos usan bit para medir informacin y para nombrar los dgitos binarios,
indistintamente).
Para una larga secuencia de N smbolos (o mensajes), cada uno
de los q posibles smbolos con probabilidad pk ocurrir Npk veces.

En estos apuntes se usar biit como medida de informacin; pero muchos textos usan bit solamente.

TIC 3

Entonces la informacin del k simo smbolo ser:


I k Npk log 2 1 pk biit

Luego la informacin total I t ser:


q

I t Npk log 2 1 pk biit


k 1

Definimos la entropa H o informacin promedio como:


q
It
H pk log 2 1 pk biit smbolo
N k 1

Si la fuente que genera la secuencia de smbolos, los entrega a una velocidad de


r smbolos seg . , entonces la razn de informacin promedio R ser:

R r H biit seg.
3 CDIGO DE FUENTE
Existen numerosos y muy conocidos cdigos de fuente, de naturaleza
binaria, como el ASCII, el EBCDIC, el Baudot, etc. que son de largo fijo; esto es, todos los
smbolos del alfabeto son codificados con la misma cantidad de bits.
Esta estructura es slo eficiente cuando los diferentes smbolos son
equiprobables. Un cdigo es adaptado a la fuente cuando la codificacin de los smbolos
tiene diferente longitud, en atencin a las distintas probabilidades de ellos.
Veamos un ejemplo sencillo de un alfabeto de cuatro smbolos.
Smbolo

Probabilidad

Cdigo N 1

0 0

0 1
1 0

1 0
1 1 0

1 1

1 1 1

1
1
1

2
4

Cdigo N 2

TIC 4

De los valores de p calculamos la entropa de la fuente:


1
1
1
1
H f log 2 2 log 2 4 log 2 8 log 2 8
2
4
8
8
H f 1.75 biit smbolo

Para el cdigo N 1 , de largo fijo, el nmero promedio de bits por smbolo es:
1
1
1
1
H1 2 2 2 2 2 bit smbolo (resultado obvio ya que es largo fijo!)
2
4
8
8

Para el cdigo N 2 , de largo variable, el nmero promedio de bits por smbolo es:
1
1
1
1
H 2 1 2 3 3 1.75 bit smbolo
2
4
8
8

El cdigo N 2 es ms eficiente; se trata de un cdigo adaptado a la fuente. Ello se


comprueba al calcular la eficiencia, dividiendo el Hf de la fuente por el H del cdigo :
Hf
H1

H
1.75
1.75
0.875 f
1 (lo ideal)
H 2 1.75
2

(fin del ejemplo)

La codificacin de Shannon-Fano es uno de los mtodos que busca obtener


un cdigo adaptado a la fuente mediante la siguiente tcnica de asignacin:
1 Se ordenan los smbolos de la fuente en orden decreciente de probabilidad de
ocurrencia " p " .
2 La lista ordenada se divide en tramos que, en lo posible, sean tramos equiprobables.
3 Se asigna un cero como 1er digito binario (ms significativo) a los smbolos del tramo
superior y se asigna un uno como 1er dgito de los smbolos del otro tramo.
4 Cada tramo es, a su vez, dividido en dos sub-tramos que, en lo posible, sean
equiprobables. Se asigna un cero como 2 digito binario a los smbolos del sub-tramo
superior y un uno como 2 dgito de los smbolos del tramo inferior.
5 Se contina el proceso hasta que cada tramo se reduce a slo dos smbolos.
Usemos, como ejemplo un conjunto de smbolos, de S1 hasta S8 con las
siguientes probabilidades: S1 0.25 , S2 0.25 , S3 0.125 , S4 0.125 , S5 0.0625 ,
S6 0.0625 , S7 0.0625 , S8 0.0625 . Lo smbolos ya estn ordenados descendentemente.

TIC 5

Observando la 2 columna (tabla de ps) se aprecia que S1 y S2 forman un


tramo cuya

p's

es 0.5 y los otros S ' s forman otro tramo con

p's

de 0.5. Y as

sucesivamente.
S1

0 0

0.25
0's

S2

0.25

0 1

S3

0.125

1 0 0
0's

S4

0.125

1 0 1

S5

0.0625

1 1 0 0
1' s

S6

0's

1 1 0 1

0.0625
1' s

S7

1 1 1 0

0.0625
1' s

S8

0.0625

1 1 1 1

Aplicando las relaciones ya vistas demuestre que la entropa de esta fuente


es H F 2.75 biits s mientras que el nmero de bits por smbolo del cdigo es tambin
H C 2.75 bits s . Luego la eficiencia de este cdigo es 100%. Calcule la eficiencia del mejor

cdigo de largo fijo que podra usar y compare con el cdigo de largo variable calculado.
Algunas tcnicas de codificacin de fuente, entre muchas otras, adems de
la Shannon-Fano son: Gilbert Moore, Binaria Shanon, Codificacin de redundancia mnima
de Huffman, etc.
Un buen cdigo fuente reduce la cantidad de bits que se requiere utilizar
para enviar la misma informacin. La codificacin de fuente consigue que el canal reciba la
informacin con la menor redundancia binaria posible, obtenindose as mayor eficiencia en
trminos de ancho de banda v/s velocidad de transmisin.

TIC 6

Cdigo de Huffman: para la codificacin de los smbolos se utiliza un esquema de rbol,


que se construye mediante los siguientes pasos:
1.- Se anotan, una tabla, los smbolos y sus probabilidades en orden descendente de p . Cada
smbolo es el extremo de las ramas ms exteriores de un rbol que se va construir. Cada
rama exterior tiene un peso que es el valor de la p del smbolo respectivo.
2.- Junte, en una rama, las dos ramas ms inferiores de la tabla (las dos de menor p ). Esta
rama resultante tiene como peso la suma de los pesos de las dos ramas que se juntaron.
3.- Reordene la tabla subiendo (bubling) la posicin de la rama recientemente resultante
hasta que ocupe un lugar que est por encima de las ramas que tengan un peso menor o
igual que el peso de la rama resultante que est subiendo.
4.- Repite los pasos 2 y 3 en la tabla recin ordenada, generando una nueva rama resultante y
confeccione una nueva tabla ordenada.
5.- Vuelva a repetir el punto 4 (o sea, los pasos 2 y 3), en la nueva tabla reordenada, tantas
veces como sea necesario hasta que la ltima rama, que resulte de la unin de las ltimas
dos ramas que queden, tenga un peso igual a 1 (nodo unitario).
6.- Comenzando desde el nodo unitario y para cada nodo en donde se junten dos ramas,
asigne un 0 a la rama de arriba y un 1 a la rama que ingresa por abajo en el nodo.
7.- Recorra las ramas del rbol desde el nodo unitario hasta cada una de las ramas asociadas
a cada smbolo. Registre la secuencia de 1`s y 0`s en cada recorrido. Esta secuencia
es la palabra codificada para el respectivo smbolo, siendo el bit ms significativo (MSB)
aquel bit asociado al nodo unitario.
Veamos un ejemplo:
Smbolo
pa

0.5

1 p 1

0
0.3

pc

0.1

1 p 0.2

pd

0.03

pe

0.03

pf

0.02

pg

0.01

ph

0.01

pb

p 0.5

Cdigo
0

0
1

p 0.1

p 0.06

p 0.04

p 0.02

Complete el ejemplo calculando Hf, Hc y la eficiencia

1
00
011
01000
01001
01011
010100
010101

TIC 7

Codificacin extendida
Supongamos un simple alfabeto de tres smbolos, con sus probabilidades de 0.73, 0.25, y
0.02. La figura que sigue muestra el rbol y el consiguiente cdigo de Huffman.
Se puede verificar que H f es 0.9443biit simb. , que H c resulta igual a 1.31bit smbolo y
por lo tanto la eficiencia es slo 72% lo que no es muy bueno.

Smbolo
pa

0.73

pb

0.25

pc

0.02

Cdigo
0

1 p 1

10

1 p 0.27

11

Ahora, construyamos un cdigo formado por parejas de smbolos. O sea, tendremos 9


posibles parejas o duplas. Suponiendo que hay independencia estadstica, cada pareja
tendr una p que es el producto de la p ' s individuales de cada smbolo. Por ejemplo la
probabilidad de la dupla " ab " es 0.73 0.25 0.1825 .
Confeccionamos una tabla de las duplas con sus respectivas p ' s ordenadas en valores
descendentes y aplicamos el procedimiento de Huffman antes descrito. Eso lo muestra la
siguiente figura.

Smbolo
p aa

0.5329

p ab

0.1825

pba

0.1825

pbb

0.0625

p ac

0.0146

p ca

0.0146

pbc

0.0050

p cb

0.0050 0

p cc

0.0004

0
0

0
0

0
0
0

1 p 0.025

1 p 0.0104

1 p 1

1 p 0.4671

1 p 0.2842

1 p 0.1021
p 0.0396

Cdigo de duplas
0

11
100
1010
10111

101100
1011011
10110100

10110101

1 p 0.0054

Se puede ver que para el nuevo cdigo de duplas H CDup 1.9326 bits 2 simb. que equivale a
0.9663 bits simb. . Luego la eficiencia de este cdigo de duplas ser 0.9443 0.9663 , lo que d
97.7% que es mucho mejor que el 72% de eficiencia del cdigo no-extendido anterior.
En algunas aplicaciones de lenguaje escrito se pueden definir tripletas, segn las
particularidades del idioma (en Ingls: and, the, ing, you,.......etc.)

TIC - 6

4 CAPACIDAD DE CANAL
Dado un canal de capacidad C y una fuente de R biit seg de
razn de informacin promedio (o velocidad de entropa) entonces si R C , existe algn
modo de codificar tal que la transmisin se puede efectuar con una tasa de error
arbitrariamente pequeo (Teorema N 9 de Shannon.)
Si es la duracin de cada mensaje y si N es el nmero de mensajes
permitidos, luego la mxima velocidad de entropa ser:
1

log 2 N

Luego:
1
C lim log 2 N biits seg

o En el canal discreto sin ruido, siendo: n el nmero de estados discretos y r la velocidad


de estados por unidad de tiempo, entonces el nmero de diferentes mensajes ser:

N t nr

; Donde es la longitud de cada mensaje.

Entonces
1
r
C lim log 2 n r log 2 n

C r log 2 n biits seg

o En un canal continuo y ruidoso, existe un ancho de banda B que es una limitante y


existir, adems, una cierta relacin seal ruido S N (en veces) que es otra limitante.
Entonces, la capacidad de este tipo de canal, segn la ley de Shannon-Hartley est
dada por:

C B log2 1 S

biits seg

TIC - 7

Comentarios a la Ley de Shannon-Hartley


La Ley de S.H. entrega el lmite superior que puede alcanzar la transmisin de data
til sobre un canal con ruido Gaussiano.
Tambin pone en evidencia el intercambio de B.W . V S la S N . Vale decir, por
ejemplo, si se desea transmitir a una velocidad de 10 K bps sobre un canal de
B.W . 3K Hz , entonces: S

3C
10 dB ; en cambio si B.W . 10 K Hz , entonces,
B

10 K
3 dB solamente!.
10 K

La Ley de S.H. demuestra la posibilidad de comprimir el B.W . . Por ej. si el mximo


contenido espectral de una seal es f m , es posible transmitirla por un canal cuyo B.W .
es f m ? Para ello suponga que la seal se aplica a un CAD muestrendose a 3 f m y
las muestras se cuantizan en M niveles equiprobables, por lo cual la tasa de
informacin es 3 f m log 2 M . Suponiendo M 64 y B.W . f m 2 , se requerir una
S

109 dB . Luego se obtiene un factor de reduccin en BW de 2 pero con una S

elevada, muy fuera de lo normal( son varios miles de millones de veces)


La Ley de S.H. define, para un canal sin ruido, una capacidad C infinita al aumentar el
ancho de banda.
En cambio un canal ruidoso no alcanza capacidad infinita al aumentar el ancho de
banda ya que con ello aumenta la potencia de ruido.
Para potencia de seal fija la capacidad de canal C tiene un lmite superior finito con el
aumento del ancho de banda.
Sea un ruido blanco con N B watts

S
C B log 2 1

TIC - 8

S B

C
log
1
2

S
B
B

S
log 2 1

li m 1 x

ya que

x 0

lim C
B

S
log 2 e 1.44

5 CODIFICACIN DE CANAL
De acuerdo con el teorema N 9 de Shannon deberamos poder
transmitir informacin digital con una pe arbitrariamente pequea.
Veamos un ejemplo introductorio.
Supongamos un modulador-demodulador DPSK que puede operar a:
1200 bps con una pe 2 104 ; 2400 bps con pe 4 104 y 3600 bps con pe=8 104 ( B.W .

)
Si transmitimos a rb 1200 bps tendremos la mejor pe de 2 104 .
Pero si utilizamos un codificador que transmita 3bits por cada bit de

entrada, segn la tabla siguiente:

bx
0
1

000
111

Ahora la velocidad de transmisin ser 3 1200 3600 bps , debido a que


se han agregado bits (redundancia). Por este motivo al recibir la tripleta, es posible recuperar
la informacin correcta an cuando exista un bit errneo en la tripleta.

Rx
b
x

000

001

010

100

011

101

110

111

Podemos ver que, como consecuencia, la pe de salida en recepcin es distinta.

TIC - 9

Pe P bx bx : Probabilidad de que 2 o ms bits en la tripleta sean errneos.


P3 P3
2

3
3
qc 2 1 qc qc3
4
q

10
,
donde
2
3
c


3qc 2 2qc3
Pe 1.92 106 , lo cual es mucho mejor que la Pe de 2 104 original sin la codificacin.

Conclusin:
Es posible detectar e, incluso, es posible corregir errores binarios producidos en
la transmisin usando bits adicionales (redundancia).
No es posible detectar y corregir todos los errores que ocurran en transmisin.
La adicin de bits reduce la velocidad efectiva de datos por el canal.
La codificacin de canal tienen como propsito detectar errores al recibir
los datos y, en ciertos casos, corregir los errores a partir de los datos errneos recibidos.
Todo ello mediante la adicin de bits al transmitir los datos.
Las causas de los errores son, por lo general, ruido, interferencias y
distorsin.
En cuanto al ruido, podemos distinguir:
trmico
errores aleatorios; independencia intersmbolo.
shot

Ruido gaussiano

transientes
errores en rfagas; dependencia intersmbolo.
conmutacin

Ruido impulsivo

TIC - 10

La codificacin de canal, para el control de errores, puede separarse en


dos tipos:

Bloques
Cdigos

Cdigos Convolucionales
En el codificador bloque (lado transmisor) el bloque de n bits de salida
est formado por el bloque de k bits de entrada ms un grupo de r bits de chequeo. stos
son derivados del bloque de bits de entrada (bits de informacin) mediante alguna operacin
matemtica. En el decodificador (lado receptor) los bits de chequeo son usados para verificar
si los bits de informacin que llegan en el bloque, tienen o no errores. En el codificador
(transmisor) cada nuevo bloque de entrada genera un nuevo bloque de salida, que slo est
relacionado con el bloque de entrada actual y con ninguno de los bloques de entrada
precedentes.
En los cdigos convolucionales el procedimiento es semejante, salvo que
cada bloque de salida est relacionado (es dependiente) con el bloque de entrada actual y con
una cierta cantidad de bloques de entrada precedentes.

6 CDIGOS BLOQUE LINEALES


Aqu veremos cdigos en los cuales, un bloque de k bits de mensaje
(entrada) es codificado en un bloque de n ( n k ) bits de salida, al agregarle n k bits de
chequeo que se derivan de los k bits de mensaje. El bloque de salida de n bits codificados
constituye una palabra codificada.
El cdigo es sistemtico si, en las palabras codificadas, los k bits de
mensaje aparecen primero, en el tiempo, y los n-k bits agregados, o redundantes, van
despus.
El cdigo bloque es lineal si c u de las 2k palabras codificadas puede
expresarse como una combinacin lineal de k vectores de cdigo linealmente
independientes.
Dos pasos en la codificacin:
El mensaje a transmitir es segmentado en bloques de k bits.

TIC - 11

El codificador transforma cada bloque de k bits en un bloque ms grande, de n bits, de


acuerdo con alguna regla predeterminada. Los n k bits adicionales se generan
mediante combinaciones lineales de los bits de mensaje, pudiendo describirse la
operacin de codificacin mediante matrices.
o Cada bloque de mensaje es designado como un vector fila de dimensin k
D d1 , d 2 ,........, d k cada d es 1 o 0. Entonces tenemos 2k ' s bloques.

o El codificador entrega palabras C de n bits de largo, C c1 , c2 ,............cn existiendo 2k


palabras codificadas unvocamente relacionadas con los 2k bloques de mensajes.
Las 2k palabras codificadas, o vectores de cdigo, forman un cdigo de bloque (n, k),
siendo la razn de eficiencia del cdigo k n .
En un cdigo bloque lineal sistemtico, los primeros k bits de la palabra codificada C son
los mismos bits de mensaje o de entrada; esto es:
Ci di i 1, 2,3,.........., k .

En cambio los ltimos n k bits de C son generados desde los k bits de mensaje segn
alguna regla predeterminada, esto es:

C k 1 p11 d 1 p 21 d 2 ........................... p k 1 d k
C k 2 p12 d 1 p 22 d 2 ........................... p k 2 d k

Cn p1,n k d1 p2,n k d 2 ........................... pk , n k d k

TIC - 12

Los coeficientes pij pueden ser 0 o 1, mientras que las sumas son en mdulo 2. De
este modo, los Ck ' s resultantes son 0 o 1.
Combinando estas ecuaciones y escribindola en forma matricial.
1
0

.
c1 , c2 , .............. , cn d1 , d 2 , .............. , d k .

.
.

O sea:

0 0 ........ 0

p11

p12

1 0 ........ 0

p21

p22

0 1 ........ 0

p31

p32

0 0 ........ 1

pk 1

........

pk 2

p1, n k
p2,n k
.

.
.

.
.

pk ,n k

C D G

La matriz G de dimensin k n es denominada matriz generadora de cdigo y es de


la forma:

G Ik Pkn
I k en la matriz identidad de orden k y P es una matriz, de 1s y 0s, arbitraria
k n k . Una vez especificada P, el cdigo queda completamente especificado.

La seleccin de P puede hacerse buscando que G tenga ciertas propiedades deseables,


como: facilidad de implementar, capacidad de corregir errores aleatorios o en rfagas, etc.
Ejemplo:
dado

1 0 0 0 1 1
G 0 1 0 1 0 1
0 0 1 1 1 0

, encuentre

todas las posibles palabras codificadas.


Ya que k 3 , hay ocho posibles
combinaciones de entrada. Si tomamos, por ej.,
la entrada 0 1 0 , entonces la palabra de
cdigo C que se genera ser:

D
Mensajes
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

C
Mensajes codificados

0
0
0
0
1
1

0
0
1
1
0
0

0
1
0
1
0
1

0
1
1
0
0
1

0
1
0
1
1
0

0
0
1
1
1
1

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

TIC - 13
1 0 0 0 1 1
C 0 1 0 0 1 0 1 0 1 C 0 1 0 1 0 1
0 0 1 1 1 0

Lo mismo se repite para las otras combinaciones de entrada, obtenindose:


El ejemplo ilustra cmo funcionara un codificador (encoder), el cual tendr almacenado
la matriz G y mediante la aritmtica adecuada generar los bits adicionales, o de paridad o
redundantes.
Para decodificar un cdigo bloque n, k , generado por la correspondiente
matriz generadora G, existe una matriz de chequeo de paridad H que se define como:
p11
p
12
H

p1,n k

p21

pk1

p22

pk 2

p2,nk

pk ,nk

H PT

1 0 0 0

0 1 0 0

0 0 0 1

I nk

n k n

Esta matriz H es usada en el decodificador (receptor), y permite verificar si una


palabra recibida pertenece, o no, al cdigo generado por G.
En efecto, si la palabra C pertenece al cdigo n, k generado por G I k P
se debe cumplir que:

C HT 0

Sea, por ej. un vector C (palabra de cdigo) transmitido, que al ser recibido
aparece con error, como el vector recibido R:

RCE

donde E es el error.

El receptor no conoce C ni E, solamente R.


En el decodificador hacemos la operacin:

S RH T C E H T CH T EH T
S EH T
El resultado S es un vector sndrome de (n-k), que slo es cero, si R no tiene
error: o sea si R es una de las palabras C vlidas; sin embargo R podra ser del C
original. Significa que hay errores binarios, pero stos no fueron detectados

TIC - 14

Ejemplo:
Sea un cdigo bloque 7, 4 generado por
1
0
G
0

0
1
0
0

0
0
1
0

0
0
0
1

1
1
1
0

I4

1
1
0
1

1
1 1 1 0 1 0 0
0
, con H 1 1 0 1 0 1 0
1
1 0 1 1 0 0 1

I3

PT

Entonces para un bloque de datos D 1 0 1 1 el vector de cdigo C ser:

C D G 1 0 1 1 0 0 1
Para este vector de cdigo, el sndrome S (comprobar!), ser

S C H

Pero, si por ejemplo, el tercer bit del vector C sufriese un error durante la
transmisin, entonces:

R 1 0 0 1 0 0 1

1 0 1 1 0 0 1 0 0 1 0 0 0 0 C E
En consecuencia, el sndrome de R ya no ser slo de 0s; concretamente S es:

S R H T 1 0 1 E H T
Obsrvese que, para este cdigo (no para todos), el error en el tercer dgito de C
produjo un sndrome S que coincide con la tercera columna de H. (comprobar con errores
binarios en otras posiciones del C transmitido si acaso se cumple lo mismo!).

Es posible demostrar, para el ejemplo anterior, que un error simple en R puede ser
corregido, pero un error mltiple no puede corregirse.
Veamos algunas definiciones:

TIC - 15

El peso Hamming de un vector de cdigo C es definido como el nmero de


componentes no-cero de C.
La distancia Hamming entre dos vectores de cdigo C1 y C2 , es definida como el
nmero de componentes en que ellos difieren.
La distancia mnima de un cdigo bloque es la menor distancia Hamming entre dos
vectores cualquiera del cdigo.
Se puede demostrar la validez de las siguientes afirmaciones
(teoremas).
1: La distancia mnima de un cdigo bloque lineal es igual al peso mnimo de cualquier
palabra no-cero del cdigo.
2: Un cdigo bloque lineal, con una distancia mnima d min , puede:
corregir hasta d m in 1 2 errores
y detectar hasta d m in 1 errores, en cada palabra de cdigo, donde d m in 1 2
indica el entero ms grande no mayor que d min 1 2 .
Un cdigo Hamming con capacidad para corregir un error, debe tener
un d min 3 .
La eleccin de la matriz H T de dimensin n n k debe seguir las
siguientes reglas:
Las n filas de H T deben ser distintas.
No se debe usar una fila con todos ceros.
Las ltimas n k filas deben escogerse de modo que se obtenga la matriz
identidad en H.
Cada fila de H T tiene n k elementos c u de los cuales puede ser 1 o 0.
Luego podemos tener 2n k filas distintas de n k componentes, de las cuales podemos
escoger 2n k 1 filas distintas para H T (se excluye la fila de todos cero).

TIC - 16

Sin embargo, ya que H T tiene n filas distintas, entonces:

2nk 1 n

n k log 2 n 1

o bien

Entonces, dado un mensaje original con largo de bloques de entrada de k


bits, podemos determinar el nuevo largo del bloque de salida de n bits, de modo que:

n k log 2 n 1

n : entero .

Ejemplo: Disee un cdigo cloque con d min 3 y para mensajes con largo de bloque (k) de 8
bits.
1
0

1
1
P
0
H T
1
I n k
0
1

0
0

o Luego
n 8 log 2 n 1

o El menor n que satisface la inecuacin es n 12


o Luego el cdigo debe ser 12,8 .
o La matriz H T es de 12 4 .
Las ltimas 4 filas de H T forman una matriz I de 4 4 .
Las primeras 8 filas de H T se escogen arbitrariamente salvo
las restricciones ya mencionadas.

Entonces la matriz generadora


para este cdigo es:
G Ik

1
0

0
P
0

0
0

0
1
0
0
0
0
0
0

0
0
1
0
0
0
0
0

0
0
0
1
0
0
0
0

0
0
0
0
1
0
0
0

0
0
0
0
0
1
0
0

0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
1

1
0
0
1
1
0
1
0

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

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

0
0
1

1
0

1
0

1
0

0
1

1
1
0
0
0
1
1
1

0
1
1
0
1
0
1
1

0
0
1

1
0

1
0

TIC - 17

7 CDIGOS CCLICOS
Constituyen una subclase de los cdigos bloques lineales.
Tienen dos ventajas:
La codificacin y la determinacin del sndrome pueden implementarse
usando registros de desplazamiento y realimentaciones.
Obedecen a una estructura matemtica que permite disear cdigos con
propiedades detectoras y, tambin, correctoras de error.
Un cdigo bloque lineal n, k es un cdigo cclico si:
el vector V V0 , V1 , V2 , Vn 1
es un vector del cdigo C
entonces
el vector V 1 Vn 1 , V0 , V1 , V2 , Vn 2
tambin es vector del cdigo C
y en general
V Vn i , Vn i 1 , V0 , V1 , Vn i 1
i

tambin es vector del cdigo C.


Esta propiedad permite considerar los elementos de cada vector, como coeficientes
de un polinomio de grado n 1 . Por ejemplo:

V V x V0 V1 x V2 x2 Vn1 xn1
V V x Vni Vni 1 x V0 xi V1 xi 1 Vni 1 xn1
i

Se puede demostrar que V i x es el residuo que resulta al dividir xiV x por x n 1 .


Dicho de otro modo:

x iV

q x

(i)

TIC - 18

Se puede demostrar que si g x es un polinomio de grado n k y es, adems, un


factor del binomio x n 1 , entonces g x genera un cdigo cclico n, k en el cual el vector
de cdigo V x para un vector de data D d 0 , d1 , d 2 , d k 1 es expresado como:

V x X nk D x r x
Siendo r(x) el polinomio residuo que contiene los bits de chequeo o de paridad, y que resulta
de la divisin:

nk

x
x

q x

r x
g

[]

El polinomio residuo, de grado (n-k-1), llamado polinomio de chequeo de paridad, es:

r x r0 r1x r2 x2 rnk 1xnk 1


El polinomio g x , de grado (n-k), llamado polinomio generador del cdigo cclico es:

g x g0 g1x g2 x2 gnk xnk


El vector de cdigo V(x) en la forma sistemtica tiene la siguiente forma ordenada:

V r0, r1, r2, rnk1, d0, d1, dk1


n k bits de chequeo, en las
posiciones menos significativas de V

k bits de mensaje de entrada en las


Posiciones ms significativas de V

Dado que el polinomio (vector de salida) de cdigo V(x) est dado por:

V x r x xnk D x

[]
luego, segn la ecc. [] la generacin de V(x) tiene los siguientes pasos: -a) se generan los
bits del residuo r(x) segn la divisin sealada en la ecc. [] y -b) se le suman los bits de
D(x) previamente desplazados (elevados) en potencia al multiplicar D(x) por x(n-k) .
La divisin polinomial requerida para generar r x puede efectuarse mediante un simple
registro de desplazamiento como se muestra en seguida:

TIC - 19
compuerta

g2

g1

r0

r1

realimentacin
antes del
desplazamiento

g3

rn k 1

r2

polinomio
2 de
mensaje de
entrada D x

salida
V x

La operacin para codificar consulta dos pasos:


1. Con la compuerta ON y el switch en la posicin 1, los dgitos d1 , d 2 , d k 1
de datos se desplazan hacia el registro (con d k 1 en primer lugar) y, simultneamente,
salen hacia el canal de transmisin. Debido a que la compuerta esta ON el registro de
desplazamiento va realizando bit-a-bit (al ritmo del reloj) la divisin de los
sucesivos bits de D(x) con el polinomio g(x) que ha sido previamente programado con
los valores g1, g2 , etc. segn el g(x) escogido. Una vez que los k dgitos de
informacin han terminado de ingresar, el contenido del registro son los dgitos de
residuo r0 , r1 , rn k 1
2. Ahora se abre la compuerta (OFF) y el switch de salida pasa a la posicin 2. Entonces
al ritmo del reloj empiezan a salir al canal los bits de residuo con rn k 1 primero y r0 al
final.
En la programacin de los valores de g1, g 2, un paso abierto es un 0 y un paso
cerrado es un 1, segn la expresin del polinomio escogido.
Ejemplo Disee un codificador para el cdigo cclico 7, 4 generado por g x 1 x x3 .
Verifique la operacin usando el mensaje 0101 .
Usando la figura anterior, se tiene que:

TIC - 20

n 7,
compuerta

i input;

r0 o

g 1 1,

o output

r2i

r1i
r0

g 0 1,

La codificacin para el mensaje 0101 , con


r0i d r2 o ; r1i r0 o r0i ; r2i r1o

g1

r0i

k 4,

r2

r1
o
1

r
mensaje de
entrada D x

r2 o

r0 o

salida
V x codificada

r2 o

r0i

r1i

1
0
0
1

1
1
0
1

paridad
1

r1o

ltimo

Finalmente V x 1

0
1
1
0

primero

1 0 0 1 0
r

r2i

o - o - o - o - o
Con relacin al clculo del sndrome, para la deteccin de error y correccin de
error tenemos lo siguiente.
Si un vector de cdigo V es transmitido por un canal ruidoso, el vector recibido R
puede ser distinto. Entonces el receptor debe, primero, calcular el sndrome de la palabra
recibida para detectar si ella pertenece o no al cdigo.
El sndrome S x del vector recibido R x es el residuo resultante de dividir R x
por g x . Vale decir:

R x
g x

P x

g x

Donde P x es el cuociente que no nos interesa y el residuo S x , que es lo que


interesa, es un polinomio de grado n k 1 o menor.
Si llamamos E x al error causado en V x por el canal, luego:
R

y entonces:

R
g

x
x
x

V
g

x
x

E
g

x
x

x g x
g x

E
g

x
x

TIC - 21

De modo que:

Despejando queda:

x
E

S
g

x
x

R
g

x
x

E
g

x
x

x g x

x .

La relacin anterior muestra que hay una dependencia entre el sndrome obtenido S x y el
error E x . O sea, que S x contiene informacin acerca del error, lo cual puede resultar til
para el propsito de efectuar la correccin del error.
Desde el punto de vista electrnico, la generacin de S x , en el receptor, puede
lograrse con circuitos simples basados en registros de desplazamiento como el siguiente:
compuerta

1
g1

R x

vector
recibido

g2

g n k 1

2
S0

S1

S n k 1

compuerta

S x

salida de
sndrome

Los estados (abierto o cerrado) de g1, g 2, etc... se programan de acuerdo a los valores
de los coeficientes del polinomio g x escogido (lo mismo que en el codificador).
El registro es previamente inicializado en estado de reset.
En seguida con la compuerta 2 abierta (off) y la 1 cerrada (on), comienzan a ingresar
los bits del vector recibido R x y se va realizando la divisin de R x por g x . Debido a
que la compuerta 2 est abierta (off) no hay bits de salida an. Despus que todos los bits
del vector R han ingresado, el contenido que queda en los registros son los bits del residuo
S x resultante de la divisin mencionada.
Entonces, ahora con la compuerta 2 cerrada (on) y la 1 abierta, no hay ms divisin
y los bits el polinomio S x son desplazados hacia afuera.
Si S x es 0's entonces existe al menos un error (al menos un 1). Un simple flip-flop
R-S conectado a la salida cambiar de estado cuando salga un bit de S x de 0 .
Cuando se desea, adems, corregir el error, la operacin es ms compleja. Un posible
esquema de correccin se muestra a continuacin.

TIC - 22
conexiones de realimentacin

REGISTRO DE SNDROME
1

DETECTOR DE PATRN DE ERROR


1

2
1

vector
de
entrada
R x

REGISTRO BUFFER

vector
corregido

El sndrome es analizado en el detector de patrn de error el cual tiene una lgica


combinacional que entrega un 1 si el sndrome tiene un error corregible en la posicin ms
alta x n 1 . Mediante sucesivos desplazamientos a la derecha del registro de sndrome y del
registro buffer se van probando los siguientes bits significativos.
Despus de efectuado todos los desplazamientos el registro de desplazamiento
debera quedar con todos 0 ' s . Si ello no es as, se deduce que el error en R x no era
corregible.

8 CDIGOS CONVOLUCIONALES
En los cdigos bloques, el bloque de n bits generado por el codificador, en un instante
dado, depende slo del bloque de k bits del mensaje de entrada en ese instante.
En los cdigos convolucionales el bloque de n bits generado por el codificador depende,
no slo de los k dgitos del bloque de entrada en un instante dado, sino que adems de
" N 1" bloques de entrada precedentes N 1 .

En los cdigos convolucionales, usualmente k y n son pequeos.

TIC - 23
CODIFICADOR

"k "
bits

CONVOLUCIONAL

CODIFICADOR
n, k

"n"
bits

Bsicamente, el codificador convolucional genera los n bits de salida recurriendo a:


operaciones o-exclusivo, realimentaciones y retardos.
Los retardos se logran mediante registros de desplazamiento. (N: largo del registro de
desplazamiento)
Ejemplos:
a)

X0

k 1
n3
cdigo

3,1

y2 D0 D1
y1 D0
y0 D0 D1 D2
b)
X0

y2 X 0

X1

y1 X 1

y0

1
0

x0 X 1
1

k 2
n3
cdigo

3, 2

c)
y1

X
Z

y0 y0 x

k 1
n2
cdigo

2,1

Este codificador (muy simple) ser usado como


ejemplo en lo que sigue.

TIC - 24

Supongamos un estado inicial de reset; vale decir, con x permanentemente en


0. Entonces veamos que ocurre con [ y1 y0 ] ante todas la posibles secuencias de 1`s y
0`s de la entrada x.
x

y0

0
0
1
1

0
1
0
1

z
0 00

0
1
1
0

0 00

0 ' s 00 ' s

0
1

1 10

0 01

Nomenclatura
1 10

X Y1Y0

1 11

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

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

Existen, hipotticamente 8 posibles estados x y1 y0 , considerando todas las posibles


combinaciones de 1s y 0s. Estos posibles estados son:
0

00

, 0

01

, 0

10

, 0

11

00

01

1 ,
10

1
11

Desde c u de estos estados se pasa (transicin) a otro segn si x es 1 o es 0.


Veamos las transiciones de estados para el ejemplo anterior en el siguiente rbol:

TIC - 25
0

00 0

con 0

1
0

con 1

01 0
1
10

En realidad hay
slo 4 estados
vlidos que
son:

11

0
1

00

00
01

1
10
1
11

01

1 0
10
1
1 0
11

Reduciendo el rbol (podndolo) a los cuatro estados vlidos, tenemos:


0

00

01 0
1

0
1

1
10 0
1

0
1

1 0
11

Estas son las rejillas (trellis), o mallas, o celosas, de la codificacin convolucional.

TIC - 26

La decodificacin es bastante compleja, existiendo algunas alternativas:


Mtodo de bsqueda exhaustiva: partiendo desde un nudo del rbol, una secuencia de
entrada de 1s y 0s genera una cierta cantidad de palabras binarias de salida.
o Se toman palabras de N n (N registros, n bits de salida) ya que slo en esa
extensin un bit de entrada tiene influencia
o Se compara una palabra recibida y se compara con todas las posibles palabras
desde el nodo de partida y se asimila a la menor distancia.
Decodificacin secuencial: Evita explorar todas las secuencias en el rbol lo cual
aumenta con 2 N . El decodificador va siguiendo las ramas. Si hay un bit errneo,
eventualmente el decodificador llegara a estados ilcitos, por lo cual vuelve y recorre
otro camino. Si vuelve a encontrar estados ilcitos, regresa an mas atrs, etc.
Decodificacin por lgica mayoritaria.
Algoritmo de Viterbi (1971)

Usando el ejemplo (muy simple) anterior, de los cuatro estados, tenemos


que para una entrada:

0 0 0 1 1 1 1 0

la salida codificada ser: 00 00 00 10 11 10 11 00

Supongamos que se recibe la secuencia con un error:


d
f
a
b
c
e

00 00 00 10 11 1 1 11 00

TIC - 27

Siguiendo la trayectoria en la rejilla tenemos:


0

d ''

00 00

01

1
10
1
11

00

00

0
b

d '

10

10
1

11

11

1
0
1

11

Observando las transiciones de estados se deduce que la data original


(antes de codificar) tendra que haber sido:
Deduccin
Original
para llegar hasta (a):
0
0
para llegar de (a) hasta (b):
1
1
para llegar de (b) hasta (c):
1
1
para llegar de (b) hasta (c):
no existe camino
podra ser:
de (c) hasta (d):
1
o desde (c) hasta (d):
1
El prximo estado es (e)
slo desde (d) se puede llegar hasta (e)
Entonces
para llegar de (c) hasta (d):
1
1
para llegar de (d) hasta (e):
1
1
para llegar de (e) hasta (f):
1
1

Apuntes:
Profesor Raimundo Villarroel V.
Ayudante Rodrigo Bustos F.
Ao 2009.

Вам также может понравиться