Professional Documents
Culture Documents
Definiciones de Cdigo
Cdigo: Conjunto de todas las posibles palabras
cdigo. Palabra Cdigo: Cada vector legal de un cdigo. Cdigo Lineal: Un cdigo es lineal si y solo si para cualquier par de palabras cdigo del mismo, la combinacin lineal de las mismas produce otra palabra cdigo. Cdigo Bloque: Un cdigo bloque (n,k) toma k bits de la fuente y produce un bloque de tamao n. Cada bloque se codifica de forma independiente, sin memoria. Un cdigo bloque lineal se puede representar siempre en la siguiente forma matricial: c=b*G Donde c es la palabra cdigo generada, b es el bloque de datos inicial y G es la matriz generadora del cdigo.
Cdigo bloque en el que los primeros k bits son idnticos a los de la fuente. Para un cdigo bloque lineal, su matriz generadora G se puede dividir en dos componentes G=(I|P): una matriz identidad I y una matriz adicional P, que representa el cdigo en s. Cualquier cdigo lineal se puede transformar en un cdigo sistemtico equivalente. Distancia Hamming La distancia Hamming entre dos palabras cdigo se define como el nmero de bits que cambia entre una palabra cdigo a otra. Cdigo Perfecto Aquel para el que toda posible palabra recibida est a distancia t o menos de una y solo una palabra cdigo. t=truncar ((Distancia Hamming mnima-1)/2). Matriz de comprobacin de paridad Sea un cdigo bloque lineal. Sabemos que c=b*G, con G=(Ik|P). La matriz de comprobacin de paridad H es (pt |In-k ) Matriz generadora: Un cdigo lineal (n,k) esta completamente definido por las k filas de la matriz generadora G.
de dgitos binarios "0" o "1". En la codificacin de bloque, esta secuencia de informacin binaria es segmentada en bloques de mensaje de una longitud fija; cada bloque de mensaje, llamado u, consiste en k dgitos de informacin. Hay un total de 2k mensajes distintos. El codificador, de acuerdo con ciertas reglas, transforma cada mensaje entrante u, en una palabra binaria de n bits, v, con n > k. V es lo que llamamos palabra cdigo ( o vector cdigo) del mensaje u. Por lo tanto, para los 2k posibles mensajes, hay 2k palabras cdigo. A este conjunto de 2k palabras cdigo, se le llama Cdigo bloque. Para que un cdigo bloque sea til, las 2k palabras cdigo deben ser distintas. En consecuencia, tiene que haber una correspondencia uno a uno entre un mensaje u y su palabra cdigo v. Una estructura que se desea que tenga un cdigo bloque, es la linealidad . Con esta estructura, la complejidad de la codificacin se reduce enormemente, como veremos ms
Forma sistemtica.
Una propiedad deseable en un cdigo lineal es una
estructura sistemtica de las palabras cdigo como la mostrada en la siguiente figura, donde una palabra cdigo se divide en dos partes: la parte del mensaje y la parte de redundancia. La parte del mensaje consiste de k bits de informacin inalterada ( o mensaje) y la parte de redundancia consiste de n - k bits de comprobacin de paridad, los cuales son una suma lineal de los bits de informacin. A un cdigo lineal de bloque con esta estructura se le llama cdigo lineal sistemtico de bloque. El cdigo (7,4) es un cdigo sistemtico, los cuatro bits que estn ms a la derecha de cada palabra cdigo son idnticos a los bits correspondientes de
Un cdigo lineal (n,k) sistemtico queda completamente definido por una matriz G k x n de la siguiente forma:
ERRORES
Consideramos un cdigo lineal (n,k) con su
matriz generadora G y su matriz de comprobacin de paridad H. Sea v una palabra cdigo que se transmite en un canal ruidoso, y r es el vector recibido a la salida del canal. Debido a que el canal es ruidoso, r puede ser distinto de v.
Vector de error:
El vector suma de r y v es e. Los unos que
aparecen en e son errores de transmisin producidos porque el canal es ruidoso. El receptor recibe r que es la suma de la palabra cdigo transmitida y el vector de error. Cuando recibe r, el decodificador debe determinar si contiene errores de transmisin. Si se detectan errores, el decodificador intentar corregirlos (FEC) o pedir una retransmisin (ARQ)
Sndrome:
Cuando se recibe r, el decodificador calcula lo
siguiente: s = r HT = ( s0, s1,..., sn-k-1 ) es el sndrome de r. s = 0 si y slo si r es una palabra cdigo, y s es distinto de 0 si y slo si r no es una palabra cdigo ( el receptor detecta la presencia de un error ). Pero, es posible que los errores no sean detectables. Esto sucede cuando el vector de error es idntico a una palabra cdigo no nula. Estos errores son errores indetectables. Como hay 2k - 1 palabras cdigo no nulas, hay 2k - 1 errores indetectables. Una vez que se encuentra el error, se considera que el vector r + e es la
Codificacin BCH
Modulacin
QPSK (para recepcin)
OQPSK (para transmisin)
Codificacin errores
cdigos del tipo FEC (Forward Error Correction)
FEC
Distancia de Hamming: entre dos cdigos
La mnima distancia (dmin > 2.t + 1)
Cdigo Cclico
: polinomio generado
BCH
telefona celular analgica bajo la versin
BCH(48,36)
Y BCH(40,28)
Cdigos ciclicos
Ejemplo
Reed-Solomon
El cdigo fue inventado por Irving S. Reed y
Gustave Solomon (de ah su nombre) en el ao 1960. Este cdigo encuentra actualmente aplicacin en reas como los CDs, telefona mvil y sondas espaciales (la sonda Galileo a Jpiter en 1989, la sonda Magallanes a Venus ese mismo ao o la sonda Ulises al Sol en 1990, por citar algunos ejemplos). Tambin es de destacar el empleo del cdigo ReedSolomon en las comunicaciones por satlite Digital Video Broadcasting (DVB), as como en los sistemas xDSL de comunicacin por
Reed-Solomon
Es un cdigo cclico no binario y constituye una
subclase de los cdigos BCH, capaz de corregir errores que se presentan en rfagas.
n2
m 1
El n de smbolos de paridad que deben ser usados para corregir E errores es: n-k = 2E dmin= 2E+1 Los cdigos cclicos son una subclase de los cdigos de bloque estndar de deteccin y correccin de errores que protege la informacin contra errores en los datos transmitidos sobre un canal de comunicaciones. Este tipo de cdigo pertenece a la categora FEC (Forward Error Correction), es decir, corrige los datos alterados en el receptor y para ello utiliza unos bits adicionales que permiten esta recuperacin a posteriori.
de informacin digital y aade bits redundantes. Los errores pueden ocurrir durante la transmisin o almacenamiento de informacin por varios motivos (p. Ej. Ruido o interferencia, ralladuras en los discos compactos etc.). El decodificador ReedSolomon procesa cada bloque e intenta corregir los errores y recuperar la informacin original. El nmero y tipo de errores que pueden ser corregidos depende de las caractersticas del cdigo Reed-Solomon.
El total de Bytes de paridad es igual al Mensaje Total menos Mensaje Inicial n-k
Ejemplo
Un cdigo popular Reed-Solomon es RS(255,223) con smbolos de 8 bits. Cada palabra de cdigo contiene 255 bytes de palabra de cdigo, de los cuales 223 bytes son datos y 32 bytes son paridad. Para este cdigo se tiene: * n=255, k=223, s=8 * 2t=32, t=16
Algoritmo de Viterbi
El algoritmo de Viterbi permite encontrar las
secuencia de estados ms probable en un Modelo oculto de Markov, S=(q1,q2, ..., qT), a partir de una observacin O=(o1,o2,..., oT), es decir, obtiene la secuencia ptima que mejor explica la secuencia de observaciones. Inicio. T=0. Se calcula para cada estado Sj con j=1,2, .. N, la probabilidad maxima. Inicialmente , se considera que no existen supervivientes. Paso de recursion. Se calcula la probabilidad maxima en el siguiente instante de tiempo , t+1, en funcin de la probabilidad maxima en el instante anterior
Algoritmo de Viterbi
Se guardan los supervivientes para cada estado.
emitidos, se incrementa t=t+1 y se vuelve al paso de recursion . En caso contrario, el algoritmo finaliza Finalizacin. Se calcula la probabilidad maxima y su estado ptimo correspondiente Finalmente, la secuencia de estados que proporciona la mayor probabilidad (o camino ptimo), dada una secuencia de smbolos.
la
(categoras gramaticales) para las palabras. El conjunto V de observables en cada uno de los estados corresponde con el conjunto de palabras distintas. El conjunto A de probabilidades de transiciones entre estados sera la probabilidad de que una determinada categora categorial siga a otra. Por ejemplo, la probabilidad de que la categora nombre vaya detrs de la categora determinante. El conjunto B de probabilidades de las observaciones correspondera con la probabilidad de pertenencia de una palabra (un observable) a una determinada categora. Por ejemplo, la probabilidad de que la palabra casa sea verbo, que ser menor que la probabilidad de que esta misma palabra tenga la categora gramatical nombre.
Reconocimiento de gestos
Se capturan observaciones de cada tipo (boca y
Reconocimiento de gestos
A partir de la informacin anterior se pueden
1 1 2 3
F Bij = 1 2 3
A ij =
0.2 0.5 0.3 0.0 0.1 0.0 0.9 0.0 0.0 0.0 0.4 0.6
a b c
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
(P1.B1,c)
(1x0.7)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
(P1.B1,c) (A1,2.B2,b)
(1x0.7) (0.5 x 0.6)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
+ (P1.B1,c)
(1x0.7)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
+ (P1.B1,c)
(1x0.7)
(A1,2.B2,b)
(0.2 x 0.3)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
+ (P1.B1,c)
(1x0.7)
(A1,2.B2,b)
(0.2 x 0.3)
(A2,3.B3,a)
(0.3 x 1)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
+ (P1.B1,c)
(1x0.7)
(A1,2.B2,b)
(0.2 x 0.3)
(A2,3.B3,a)
(0.3 x 1)
A3,F
(0.6 x 1)
iNIC
0.5 0.3
P(y1, qt) =
P(cab, qt) =
+ (P1.B1,c)
(1x0.7)
(A1,2.B2,b)
(0.2 x 0.3)
(A2,3.B3,a)
(0.3 x 1)
A3,F
(0.6 x 1)
ALGORITMO DE VITERBI
Muy usado para reconocimiento de voz, biologa molecular, fonemas, palabras, codificadores entre otros). Para secuencia de estados le corresponde una secuencia de labels de clasificacin (e.d, palabras, caracteres, fonemas, sufijos). Dado una secuencia observada Y1 = y1, inferir la ms probable secuencia de estados Q1 = q1
T T T T
V(i,t) =
P(y1|Q1=i) P(Q1=i)
Si t=1
Si t>1
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.1
1
0.5 2 0.9 3 0.6 F
2 3 F
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
1*0.3
1
0.1
2 3 F
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 (0.3)*(0.2*0.7)
1
0.1
2 3 F
0.0
0.0
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3
1
0.1
2 3 F
0.0
(0.3)*(0.5*0.1)
0.0
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3
1
0.1
2 3 F
0.0
0.0
(0.3)*(0.3*0.0)
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 (0.042)*(0.2*0.3 )
1
0.1
2 3 F
0.0
0.015
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042
1
0.1
2 3 F
0.0
0.015
(0.042)*(0.5*0.6 )
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042
1
0.1
2 3 F
0.0
0.015
(0.042)*(0.3*0.0 )
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 (0.042)*(0.2*0.3)
1
0.1
1
0.5 2 0.9 3 0.6 F
2 3 F
0.015
0
(0.042)*(0.5*0.6)
(0.042)*(03*0.0 )
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025 0.0126*(0.1*0.0)
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0
0.0126*(0.0*0.3)
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0 0.0126*(0.9*1.0)
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025 0.00
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0
0.0004 0.011 3
0.0
0.000
EJEMPLO DE VITERBI
t
iN IC 1
V(bcbaa,t)
b c b a a
Ini
0.2
1
0.3 0.042 0.0025 0.00 0.00
1
0.1
2 3 F
0.0
0.015
0.012 6
0.00 0
0.0004 0.011 3
0.0
0.000
Conclusiones
El cdigo Viterbi baja la tasa de BER y tiene una decodifcacin ptima Cuando las palabras transmitidas miden 256 bits o se usan cdigos convolucionales (en los que la palabra cdigo es bsicamente infinitamente larga), calcular las distancias una a una es tarea imposible... y es aqu donde entra el algoritmo de Viterbi, que resuelve el problema de una forma elegante, eficiente y sencilla, siempre que se den ciertas condiciones en la seal y en el ruido que la acompaa. El decodificador puede corregir cualquier error de 16 smbolos en la palabra de cdigo, es decir, errores de hasta 16 bytes en cualquier lugar de la palabra pueden ser automticamente corregidos para Reed Solomon. Con el BCH se posible detectar y corregir mas de un error, en lugar de una slo como en los cdigos Hamming.