CORRECCIÓN Y DETECCIÓN DE ERRORES EN CÓDIGOS
CONVOLUCIONALES MEDIANTE EL ALGORITMO DE VITERBI
USANDO UNA MICROCOMPUTADORA
TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INfiENIERO EN LA
ESPECIALIZACIOK DE ELECTRÓNICA Y TELECOMUNICACIONES DE LA
ESCUELA POLITÉCNICA NACIONAL
ALFONSO FERNANDO PADILLA NARVAEZ
QUITO
DICIEMBRE 1985
tíL
CERTIFICO QUE ESTE TRABAJO HA SIDO
REALIZADO EN SU TOTALIDAD POR EL
SEÑOR ALFONSO FERNANDO PADILLA
NARVAEZ
ING, HERBERT JACOBSON
DIRECTOR DE TESIS
QUITO/ DICIEMBRE DE 1985
E C I H I E U T
AL ING, HERBERT JACOBSON, POR LA AMISTAD Y EL
TIEMPO BRINDADO PARA LA REALIZACIÓN DE LA PR¿
SENTÉ TESIS Y A LAS DIVISIONES DE TRANSMISIÓN
Y FRECUENCIAS DEL IETEL POR LA COLABORACIÓN
PRESTADA.
Í N D I C E
C A P I T U L O I
TEORÍA DE LA INFORMACIÓN Y CODIFICACIÓN
1.1 Introducción 1
1.1.1 Fuente 2
1..1.2 Destino 3
1.1.3 ' Canal 3
-1.2 Fuente, entropía y teorema de codificación sin ruido 4
1.2.1 Fuente de información de memoria nula 6
1.2.2 Primer teorema de Shannon • 9
1.3 Información mutua, y canales 11
1.3.1 Canal binarlo simétrico (BSC) 12
1.3.2 Canal con ruido blanco Gaussiano 13
1.4 Codificación 14
1.4..1 Introducción a códigos bloques 16
1.4.2 Códigos de repetición 18
1.4.3 Códigos de bloque lineales 18
1.4.4 Códigos cíclicos 20
1.4.5 Códigos BCH 20
1.4.6 Código de Golay 21
1.4.7 Otros códigos bloque importantes 21
1.5 Cuanti'zación 23
1.6 Ganancia de codificación 25
C A P I T U L O I I
CÓDIGOS CONVOLUCIONALES
2.1 Introducción y estructura básica 28
2.1.1 Descripción del código 29
2.2 Propiedades de la distancia en códigos • 34
convolucionales
2.3 Decodificador de distancia mínima para un BSC 38
2.4 Generalización de un decodificador óptimo para 40
un canal arbitrario sin memoria
2.5 Funcionamiento de códigos convolucionales en 44
canales sin memoria
2.5.1 Canal binario simétrico 44
2.5.2 Canal con ruido blanco Gaussiano con modulación 51
bifase
2.5.3 Generalización de los canales sin memoria 55
2.6 Códigos convolucionales sistemáticos y no sis- 60
temáticos
C A P I T U L O III
EL ALGORITMO DE VITERBI
3.1 Introducción 62i
3.2 El algoritmo 66
3.3 Análisis de funcionamiento 76
3.4 Truncación de las trayectorias 78
3.5 Comparación con otros algoritmos 81
3.5.1 Probabilidad de error 81
3.5.2 Retardo en la decodificación 82
3.5.3 Longitud de cola requerida para terminar las 82
secuencias
3.5.4 Otras velocidades y cuantización suave 83
3.6 Aplicaciones 84
3.6.1 Códigos convolucionales 84
3.6.2 Interferencias entre símbolos 85
3.6.3 PSK con fase continua (CPPSK) 87
3.6.4 Reconocimiento de textos 88
3.6.5 Otros 89
C A P I T U L O IV
PROGRAMAS DIGITALES
4.1 - El sistema de comunicación 90
4.2 Entrada de datos (Generador Pseudo-Aleatorio) 95
4.3 Codificador 96
4.4. El Canal 101
4.4.1 Distribución Gaussiana o normal 102
4.4.2 Método del límite central 102
4.4.3 Cuantización 104
4.4.4 Tasa de bits errados (BER) 109
4.4.5 Relación señal a ruido 112
4.5 Decodificación y salida de datos 114
4.5.1 El algoritmo básico 114
4.5.2 Memoria de las trayectorias 115
4.5.3 Estado y calculo de las ramas 116
4.5.4 Consideraciones especiales 117
4.6 Manual de uso 122
4.6.1 Características de la microcomputadora 122
4.6.2 Menú 122
4.6.3 Distribución general de los programas en la memoria 124
4.6.4 Modo de inicialización del programa 127
CAPITULO V
RESULTADOS, CONCLUSIONES Y RECOMENDACIONES
5.1 Resultados de la simulación 129
5.2 Conclusiones 140
5.3 Recomendaciones 143
APÉNDICE I
Función de transferencia, diagramas de estado y enr_e
jado de los codificadores convolucionales.
APÉNDICE II
Otras técnicas de decodificación de códigos convolu-
cionales.
APÉNDICE III
Listado de programas
BIBLIOGRAFÍA
CAPITULO I
TEORÍA DE LA INFORMACIÓN Y CODIFICACIÓN
1.1 INTRODUCCIÓN
La teoría de la información es una rama de la teoría-de las
probabilidades con aplicaciones extensivas a los sistemas de
comunicación. Como la mayoría de las disciplinas matemáti-
cas tuvo su origen en fenómenos físicos, pues fue iniciada
por ingenieros en comunicaciones, quienes estudiaban la es_
tructura estadística de las comunicaciones eléctricas.
La codificación, consiste en alterar la forma del mensaje
de modo que facilite su transmisión. El código Morse (1832)
constituye el primer trabajo significativo en esta rama.
El desarrollo de la teoría de comunicaciones se realiza a
lo largo de dos líneas principales: los trabajos de Wiener
y los trabajos de Shannon que son en esencia de naturaleza
estadística.
Wiener y Shannon analizaron el problema de la reproducción
precisa de señales después de su transmisión sobre enlaces
no confiables. La diferencia importante en esos trabajos,
es que, mientras Wiener asumió que la señal podía ser pro-
cesada solo después que haya sido perturbada por el ruido,
Shannon asumió que la señal podía ser procesada antes y des
pues de la perturbación.
A Wiener se le asocia con el problema de extraer la señal
de un medio con cierto tipo de ruido. A Shannon le asocia_
mos con el problema de codificar señales de tal manera que
sea posible su reproducción después de la transmisión en -
un canal ruidoso. La rama de la teoría de las comunicacip_
nes asociada al nombre de Claude E. 'Shannon se llama teo-
ría de la información, y analiza las propiedades estadista^
cas de los símbolos seleccionados en un alfabeto adecuada-
— 2 —
mente definido. Es una "teoría de medición" en el sentido
de que provee de métodos para determinar los límites alcan_
zables cuando se transmite información sobre un canal rui-
doso a cierta velocidad finita, determinada por el enlace,
con una probabilidad de error que puede ser hecha tan pe-
queña como se desee. Este.es el mayor resultado de su teo_
ría.
En base a estos trabajos han aparecido un gran número de tra
bajos, sobre posibles aplicaciones a una amplia gama de áreas.
Los laboratorios de la Bell Telephone-; en los Estados Unidos
parecen ser el lugar de nacimiento de la teoría de la infor-
mación. Entre los científicos que trabajaron allí, cabe des
tacar: Gilbert, Hamming, Shannon, Slepian, Fano, Kelly, Me
Millan, Rice. Colaboradores del Instituto Tecnológico de -
Massachusetts: Huffman, Wiener, Wozencraft. Los matemáticos
Rusos también han aportado valiosos documentos a la teoría,
entre ellos figuran Kolmogorov, Markov, Siforov, Gabrilov. O_
tros nombres familiares a los .ingenieros de comunicaciones
Bríllouin, Kraft,Peterson, etc.
Existen tres partes esenciales comunes a todos los procesos
de comunicaciones:
1. Fuente o transmisor
2. Destino o receptor
3. Canal o medio de comunicación entre la fuente y el des-
tino.
1.1.1 FUENTE
La fuente es un mecanismo generador de información, la cual
puede entregar señales de forma análoga o digital según el
tipo de sistema. Una señal análoga se transmite por modula
ción, ya sea de frecuencia, de amplitud o de fase por ejem
- 3 -
pío la telefonía, radio, televisión, etc.
Cuando una fuente de información entrega una señal digital
para que sea más fácilmente transmitida empleamos la codi-
ficación.
Si el codificador realiza la operación F-sobre el elemento
I, el mensaje codificado tendrá la forma F(I); el decodifi_
cador efectuará la operación inversa F(I) sobre el mensaje
codificado para recuperar la forma original I del mismo.El
caso de mayor eficiencia se logra cuando la operación F se
realiza por combinación de elementos binarios.
En nuestro -estudio consideraremos una fuente de información
discreta, la cual escoge y transmite secuencias de símbolos
de un alfabeto' dado. Cada selección se hace al azar basari
dose en alguna ley estadística.
1.1.2 DESTINO
Es el receptor de la información transmitida,, la cual es pro
cesada para poder recuperarla con el menor número de errores,
los cuales se introducen en el canal y que gracias a la co-
dificación pueden ser eliminados.
El receptor consiste de un demodulador y un decodificador,
los cuales a su salida entregan una señal binaria en el ca
so de señales digitales y ésta puede ser utilizada e inter_
pretada.
1.1.3 CANAL
El comportamiento del canal de comunicaciones también se ba_
sa en leyes estadísticas, generalmente existen pérdidas de
información, ya sea que el elemento transmitido no alcance
su destino o lo haga en forma distorsionada?
Existen diversas fuentes no deseadas las cuales se introdjj
cen al canal, como el ruido, el cual es producido por dive.r
sos agentes y son estas fuentes no deseadas las que contaría
nan la información.
Un objetivo muy importante de quien diseña un sistema es mi_
nimizar la contaminación para garantizar la recuperación óp_
tima de la información afectada por el ruido.
FuenteTX
Codificador •Cecodificador
Fig. 1.1
Sistema de comunicaciones
1.2 FUENTES, ENTROPÍA Y TEOREMA DE CODIFICACIÓN SIN RUIDO
En nuestro estudio tratamos con modelos de comunicaciones
matemáticamente ideales y definidos en términos estadísti-
cos; por esto la característica más importante de nuestro
modelo es que se comporta en forma aleatoria. La fuente
por ejemplo transmite al azar cualquier mensaje de un con_
junto predeterminado de ellos; no sabemos cual se transmi_
tira a continuación, pero si podemos calcular la probabili_
dad con la cual se puede transmitir un determinado mensaje.
Este modelo de fuente de información se llama"fuente de me
moria nula" porque el escogimiento de un determinado mensa_
je obedece a procesos meramente estadísticos, independien-
tes entre sí y de cualquier secuencia. Como no se puede de
finir el comportamiento detallado de nuestro modelo, necesi
tamos describir un comportamiento "promedio" a la luz de
los principios estadísticos.
- 5 -
La búsqueda de la medida de la cantidad de información nos
lleva a encontrar un parámetro estadístico asociado con un
plan de probabilidad. Este parámetro nos revelará una me-
dida relativa de incertidumbre, aplicable a la ocurrencia
de algún mensaje en particular.
Ciertamente si estamos definiendo formalmente una medida
cuantitativa de la información contenida en dichos eventos,
esta medida debe tener algunas propiedades intuitivas.
1. La información contenida en los eventos, debe ser def in_i
da en términos de alguna medida de incertitumbre de los
mismos.
2. Eventos menos evidentes deben contener más información
que otros más evidentes.
3. La información de eventos sin relación, tomados como un
solo evento, debe ser igual a la suma de información de
los mismos.
Una medida natural de la incertidumbre de un evento es la
probabilidad de -oC- «denotada P (cC). El'término formal de
"sin relación" es independencia: dos eventos oí y (b se dice
son independientes sí:
P ( oL (\> } = P (c¿) • P (£>} 1.1
En base a las propiedades anteriores definimos la cantidad
de información en términos de la probabilidad de oL de la
siguiente manera:
I (°0 = - log P (¿) 1.2
De lo cual deducimos que s i ° ¿y f i son independientes,
I ( o í f \ & ) = - log P (oC) - log P (6)
I ( c¿ rt<2» ) - I IX) + I í/3) 1.3
La base del logaritmo solo especifica la escala y de aquí
la unidad de información que estamos dispuestos a usar.
Si usamos el logaritmo de base 2, la unidad correspondiente
se denomina "bit" que es la contracción de "binary .unit".
Si empleamos logaritmos naturales, la unidad de información
recibe el nombre de "nat" por "natural unit".
En el caso de logaritmos de base 10, la unidad es el Hartley.
R.V. Hartley fue quien primero sugirió la medida logarítmica
de la información ( Hartley,1928).
Hoy en día en el mundo, con el uso extensivo de computadoras
basadas en lógica binaria y sistemas de transmisión digitales,
la unidad de información más usada es el "bit", en el presen_
te trabajo al especificar logaritmo consideramos el de base 2.
1.2.1 FUENTE DE INFORMACIÓN DE MEMORIA NULA
Una fuente de información de memoria nula se caracteriza por
su salida, la variable aleatoria u, la cual toma valores de
símbolos pertenecientes a un alfabeto finito.
U = Cai'a2' 'aAJ 1"4
Con probabilidades P (a ) k = 1,2, ,AK
En una unidad de tiempo, es decir cada Ts segundos, la fueii
te emite una variable aleatoria, la cual es independiente
de €odas las emitidas con anterioridad y de las que se emi-
tirán.
De acuerdo a la definición de información, si en cualquier
tiempo, la salida de la fuente de memoria nula es u = a aK
esta situación le nombramos como el evento d., , entoncesK
la información contenida en la salida es:
I ( t/k} = - logp{ak) (bits)
La información media suministrada por una fuente de informa,
ción de memoria nula es simplemente:
H (U) = |tP (ak) - I ( )
= £ P taj - I ( oL, } 1.5-«- K K
H (U) es llamada la "entropía" de la fuente de memoria nula.
I •'- -(c¿ ) se puede interpretar como la cantidad de informa-re
ción necesaria para que la presencia de a sea cierta.K
— 7 —
De igual manera H (U) puede ser, bien el valor medio de la
información por símbolo suministrada por la fuente o el va_
lor medio de la incertidumbre de un observador antes de co
nocer la salida de la fuente.
Con el objeto de deducir algunas propiedades de la entropía
consideramos una propiedad particular del logaritmo. La fi_
gura 1.2 representa la curva de variación del logaritmo na-
tural de x, así como la recta definida por la ecuación •
y = x-1 .
1.6
Y = x -1
Y =_ ln --x
-2
Fig. 1.2Gráfico de ln x y de x-1
Si hacemos la función f (x) = ln x - (x-1), se observa en
el gráfico 1.2 un máximo en x=l con un valor de f(x) = O,
Para dos distribuciones de probabilidad P(.) y Q(.) sobre
el alfabeto U y aplicando la inecuación en la siguiente ex
presión:
(u,
QC
2} 1 ) y Q(U} -
^ O
Con lo que se puede establecer la desigualdad
EP(u) log ^ £P(uy
Que sera una igualdad para cualquier valor de u r si y solo
si Q (u) = P (u) , las inecuaciones 1.6 y 1.7 son la usadas
más comunmente en teoría de la información. Si escogemos
Q(u) = I/A para todo u elemento de (a , a ,...., a,) en 1.7,J- ¿. .rt
por ejemplo presentarnos las fuentes con símbolos de salida
equiprobables las cuales tienen la mayor entropía, esto es
O H{u) log A 1.8
El valor máximo de la entropía es precisamente log A, alcan_
zandose solamente si todos los símbolos de la fuente son e-
quiprobables .
Un ejemplo particularmente importante de este tipo de fuen_
tes, corresponde a una fuente binaria de memoria nula con
alfabeto U = (0,1) con probabilidad P(0) = p y P (1) = 1-p
Calculamos la entropía:
H(p) = H(U) = p log— + (1-p) log~ — ( _ ^ gL ^ 3 p ^ 3l-p símbolo
Donde H (p) es llamada la " función de entropía ".H(p)=^l—:——e simb.
siendo igual si y solo si p = 1/2. Con p = 1/2 llamamos-a
la fuente"binaria simétrica" y cada salida de la fuente con.
tiene un bit de información.
1.2.2 . PRIMER TEOREMA DE SHANNON
En muchas aplicaciones, las salidas de una fuente de inforrna
ción son transmitidas hacia algún lugar o son almacenadas en
la memoria de un computador. En cualquier caso es convenieri
te presentar las salidas de la fuente en símbolos binarios.
Entonces es imperativo que esto sea hecho, de tal manera que
dichas salidas sean cambiadas a símbolos binarios. Natural-
mente es deseable usar pocos símbolos binarios por salida co
mo sea posible..
El primer teorema de Shannon, llamado "Teorema de Codifica-
ción sin ruido en fuentes", presenta que el número promedio
de bits por salida de fuente puede hacerse próximo a la en-
tropía y no menos. Este resultado más bien sorprendente,
da la noción cié entropía y su significado operacional.
Si ü = {u., ,u^, ,u J , es la salida de una fuente deJ. ¿. N
memoria nula de secuencia aleatoria y X = (X ,X , ,X )" LN_
sera la secuencia binaria correspondiente de longitud L^ (u)
y que representa la secuencia de la fuente Ü..
NPara fijar N; el conjunto de todas las A secuencias bina-
rias {palabras código) corresponden a todas las secuencias
de la fuente de longitud N llamadas códigos.
Las longitudes de las palabras código pueden ser diferentes,
ahora para poder recobrar la secuencia original de la fuente
a partir de los símbolos binarios, requerimos que dos secuen_
cías distintas de códigos no formen la misma secuencia bina-
ria o palabra código, en este caso estos códigos se llaman
"unívocamente decodificables", esta definición asegura que
dos secuencias de palabras código de la misma longitud dan
lugar a secuencias de códigos distintas. Una condición su_
fieiente para que un código sea unívocamente decodificable
es que ninguna palabra código de longitud L sea idéntica a
10 -
los primeros L símbolos binarios de otra palabra código de
longitud mayor o igual a L. Esto es que ninguna palabra có
digo sea un"prefijo" de otra palabra código. Códigos univo^
camente decodificables con esta propiedad de los prefijos -
tiene la ventaja práctica de ser instantáneamente decodifi-
cables, esto es, cada palabra código puede ser decodificada
apenas el último símbolo de ésta, se 'ha recibido.
Ejemplos: Suponemos U = (a,b,c) y consideramos'los siguien_
tes códigos, para secuencias de longitud N = 1
U Código 1 Código 2 Código 3
a
b
c
0
1
01
00
01
10
110
100
El código 1 no es unívocamente decodificable, ya que por e-
jemplo una secuencia 0101 puede dar las secuencias de fuen-
te abab, abe, cab, ce.
El código 2 es unívocamente decodificable ya que ninguna pa_
labra código es prefijo de otra, de igual manera el código 3
A continuación se procederá a establecer el teorema de codi
ficación sin ruido en su forma más simple.
Teorema.- Dada una fuente de memoria nula con un alfabeto U
y entropía H(U),para secuenciasde fuente de longi_
tud N donde N = 1,2, existe un código bi-
nario unívocamente decodificable consistente en
secuencias binarias " palabras código" de longi-
tud K (ü"} par-a "ü é % tal que la longitud prome_
dio de las palabras código esté limitada por:
<%•> s=r PN(u) . 1 (u)
< > - N-H(U) 1.13
- 11 .-
La demostración de este teorema se puede realizar por dife_
rentes métodos, Shannon lo demostró en 1948, Huffman dio o_
tra demostración en 1952, y existen otras.
1.3 INFORMACIÓN MUTUA Y CANALES
Consideramos un canal con N entradas y M salidas. El canal
es definido por el conjunto de probabilidades de transición
P (y-i/x ) para l^i^N y 1 -¿ j M, donde x.¡_ y y ¡ deno-
tan la entrada al canal y la salida respectivamente. El ca_
nal es convenientemente representado por el diagrama de -
transición (ver fig. 1.3}r o por su matriz de transición.
1.14
P ( Y/X ) =
P (yl/xl) P (y2/xl) P (yM/xl)
P (yl/x2) P (y2/x2) P (yM/x2)
P (yl/xN) P (y2/xN) P (yM/xN)
Por definición, la información mutua entre la entrada al ca
nal y su salida es
P(XÍ, y-j)I (X;Y) = £ £ PÍXi,yi) log•**' iml
1.15(X¿) P(yj)
que puede ser escrita en la forma
Se sabe que = P
1.16
1.17
y P(xifyi) = P (Xi / yi) - P (yi) 1.18
entonces la ecuación 1.16 puede ser escrita
- 12
1.19
logtxi)
H(X) - H(X/Y) 1.20
Un desarrollo similar se usa para cuando la información mu_
tua de un canal es dada por
(X;Y) = H(Y) - H(Y/X)
Donde
'H(Y/X) = log
1.21
1.22P(yyxi)
Esta formulación de la información mutua con frecuencia es
más sencilla para trabajar con la ecuación 1.20 . Donde
p{y-i/xi) son las probabilidades de transición y son dadas
directamente por la matriz del' canal o el diagrama.
Entradas Salidas
N
Fig. 3Diagrama de transición del canal
-La ecuación 1.20 tiene una forma muy simple y una interpre-
tación clara. La entropía incondicional H(X) es el valor
medio de incertidumbre de la fuente. La cantidad H(X/Y) es
el valor medio de incertidumbre de la fuente dada la salida
- 13 -
del canal Y. La diferencia entre estas dos cantidades es la
información mutua y ésta es una medida de la información que
ha pasado a través del canal.
La capacidad del canal es el valor máximo de la información
mutua, donde la maximización debe ser con respecto a todas
las probabilidades de entrada.
1.3.1 CANAL BINARIO SIMÉTRICO (BSC)
Es un canal discreto de memoria nula con X - Y = (0,1) y
probabilidades condicionales de la forma
P(l/0) = P(0/l) = p
P(0/0) = Píl/1) = 1-p
^ O
I-P
Fig. 1.4Canal binario simétrico
1.3.2 CANAL CON RUIDO BLANCO GAUSSIANO
Es un canal de memoria nula, con un alfabeto de entrada
X = (a^,a2, .......... , HQ) y un alfabeto de salida Y=(-oo,oo;
y una densidad de probabilidad condicional
P(y/aK) = - - - — e -.* para todo y £ Y/TírlF1"
donde K = 1,2, ............ Q
Esto es representado por la figura del diagrama 1.5 donde n
es la variable aleatoria gaussiana con valor medio cero y
- 14 -
varanza
Fig. 1.5Canal con adición de ruido gaussiano
1.4 CODIFICACIÓN
El concepto de capacidad juega un papel fundamental en el
funcionamiento de los sistemas de comunicaciones. Shannon
presentó, que si una fuente produce información a una velp_
cidad fija R, y el canal utilizado tiene una capacidad C,
entonces el esquema de modulación y codificación es tal que
la probabilidad de error al decodificar puede hacerse peque_
ña para R<rC . Para R>C, la codificación usualmente solo
degrada aun más el funcionamiento del sistema.
La capacidad tiene dimensiones de bits por simbolo, lo cual
es fácilmente convertido a capacidad en bits por segundojmul^
tiplícando por la velocidad de información en símbolos por
segundo.
Para un canal con ruido gaussiano, la capacidad está dada
por
C = B log { 1 + P ) (bits / s) 1.24
Donde B = ancho de banda de la señal
P = potencia de la señal recibida
N0= potencia del ruido
La ecuación 1.24 es conocida como la ley Shannon - Hartley.
- 15 -
Para un mejor entendimiento del significado de la ley de
Shannon - Hartley, es útil escribir la ecuación en una for_
ma ligeramente diferente. La duración de un bit es una -
función de la capacidad Tb = 1/C segundos. Así la energía
por bit, Eb, es
Eb = P.Tb = p/C 1.25
y la relación
Eb PN0 " N0 C
La ecuación 1.24 se puede reescribir
En la figura 1.6.a se gráfica la relación entre Eb/N0 y C/B
para C<B. Una observación importante es que, • Eb/N0 se
aproxima a un límite finito cuando B —> oo .
Este límite es logaritmo natural de 2 (In 2), el cual es a-
proximadamente -1,6 dB, este valor es conocido como el lí-
mite de Shannon. La región C < B es conocida como la de pp_
tencia limitada.
Para C>B la relación entre Eb / No y C/B se ilustra en la
figura 1.6.b. Esta región se conoce como la región del an-
cho de banda limitada.
Si la relación señal a ruido es mayor que la dada por esta
curva, se puede hacer una recepción y decodificación con e_
rrores pegúenos.
Los sistemas prácticos trabajan en el rango 1/2 < C/B -el bit
- 16 -
log C/B
-5 -4 -2 -1
10 log
0,20,4
0,60,8
11.21.41.6
(a)
Fig. 1.6Relación entre Eb/N0 y C/B para capacidad
1.4.1 INTRODUCCIÓN A CÓDIGOS BLOQUES
Elproceso para formar un código bloque es ilustrado en la
figura 1.7. La fuente binaria se asume gue genera una
secuencia de símbolos a una velocidad R (símbolo/segundo).
Estos símbolos son agrupados en bloques de longitud K. A
cada uno de estos bloques de K símbolos, n-K símbolos re-
dundantes son sumados para producir una palabra código de
n símbolos. Los n-K símbolos son conocidos como los símbo
los de paridad. El resultado se denota como un código -
bloque (n,K). Donde cada palabra código contiene n símbo
los y conduce K bits de información, la velocidad de in-
formación de la salida del encodificador es K/n bits por
símbolo. Así K/n se conoce como la velocidad de código.
La decodificación es ejecutada por la determinación de la
palabra código transmitida más probable, dada una secuen-
cia recibida..
- 17 -
secuencia de información
fuente
binaria— )
R.
, encodi
f icadoi
R. - (simb/s)K
R (simb/s
decodif i_
cador
VPalabra código Secuencia -recibida
Fig. 1.7
Codificación y decodificación
Si todas las palabras códigos transmitidas son igualmente
probables , y el canal es de memoria nula , la secuencia más
probable transmitida se escoge a la palabra código que po-
see la menor distancia de Hamming con la palabra código re_
cibida.
La distancia de Hamming entre dos secuencias Y y 2 es de-
finida como el peso (número de unos binarios)- en la suma
en módulo~2 de Y y Z. Y y Z son escritos como vectores
y la suma en módulo-2 es tomada componente por componente.
Una medida de la efectividad de la codificación se obtiene
al comparar la probabilidad de error de la palabra con cod
f icación, Pe, y la probabilidad de error de la palabra sin
codificación, Psc.
La probabilidad de error de los símbolos con codificación y
sin codificación son denotados ge y gsc.
- 18 -
La probabilidad de error de la palabra sin codificación es
uno menos la probabilidad de que todos los K símbolos sean
recibidos correctamente, esto es
Psc = 1 - (l-gsc)K 1.27
.La 'probabilidad de error • de la palabra codificada es al-
go más complicada. Asumimos que el código tiene una "dis_
tancia mínima" dmin, con lo cual e errores pueden ser co-
rregidos, donde
e = ~ { dmin -1 ) 1.28
Si más de e errores son recibidos en una palabra código
siempre se obtiene una palabra errada, la probabilidad de
error de la palabra es
PC = £ ( " } qc1 ( l-qc)""1 1.29i= C-t-l
Los códigos con los cuales la ecuación 1.29 coincide exac
tarnente son conocidos como códigos perfectos, entre los
cuales tenemos los códigos de Hanuning y los códigos de Go
lay.
1.4.2 CÓDIGOS DE REPETICIÓN
Es un código muy simple conocido como de repetición, de
forma (n,l) . En éste cada uno de los n-1 símbolos de pa_
ridad son iguales a los símbolos de información.
La distancia mínima del código es n y es así que para va_
lores grandes de n el código posee una gran capacidad de
corrección de errores, pero su velocidad es baja. El nú
mero de errores que puede ser corregido es e - 1/2 (n-1)
1.4.3 CÓDIGOS DE BLOQUE LINEALES
Un código lineal es definido como aquel en el cual los sím
- 19 -
bolos de paridad pueden ser .escritos como una combinación
lineal de los bits de información. Esto es expresado en
forma de matriz así:
Y = X- G 1.30
En donde la matriz G se la conoce como la matriz generado
ra del -código y X" es la -secuencia de información. La ma_
triz generadora será de la siguiente forma.
G =
gil gi2 glK... .glm
g2m
1.31
gkk gkm
Entonces el 1-ésimo componente de la palabra código Y es
dado por
= (£) Xi9il 1 1.32
en donde el símbolo Qj denota un sumador módulo -2 (OR
esclusivo) . El proceso de diseñar un código es la dete_r_
minación de los elementos g-¡_-r de la matriz generadora.
Códigos sistemáticos.- Son aquellos en los cuales los bits
de datos están presentes en la palabra código sin altera-
ción (excepto transposición).
Relacionada con la matriz generadora tenemos la matriz de
chequeo de paridad, la cual sirve para realizar la decodi-
ficación H, la secuencia decodificada S es el .resultado de
la secuencia recibida Z por la matriz de paridad.
S - Z H 1.33
La matriz de paridad es la matriz inversa de la matriz de
generación.
- 20 -
Un clásico ejemplo de código lineal son los códigos de Ha-
mming .
1.4.4 CÓDIGOS CÍCLICOS
De todos los códigos lineales los más utilizados y popula_.
res son los códigos cíclicos, los cuales son usados para
corrección pero más en detección de errores.
Tiene las siguientes características: X palabra válida de
el código; x.- , x2, - - f^n £ u
X = { x1.,x-), /xn)' s^ se rota cíclicamente este vec_
tor, se tiene
X' = ( xn, x.., x2, ,xn_j_) es también una palabra
válida del código.
La razón principal para que los códigos cíclicos tengan
gran importancia es que la codificación y decodificación
puede ser implementada en forma sencilla usando registros
de desplazamiento y compuertas lógicas.
Para construir la matriz generadora de códigos cíclicos u_
samos un polinomio generador G (x) , el cual es único para
cada código.
Todo polinomio (palabra código) es un múltiplo del polinomio
generador.
1.4.5 CÓDIGOS BCH
El código BCH (Bose - Chaudhuri - Hocquenghem) es quizá el
código más importante dentro de la clase de los códigos c_í_
clicos.
Estos códigos pueden ser diseñados con un amplio rango de
velocidades y capacidad de corrección de errores.
- 21 -
Específicamente si e es el número de errores corregibles
por palabra código y m un entero cualquiera, el numero de
símbolos por palabra código es
n = 2™ - 1 m±>2 1.34
y el número de símbolos de paridad por palabra código es
definido por el límite
n - k £¿ m- e 1.35
en donde e errores por palabra código pueden ser corregi-
das, si es que la- distancia mínima está dada por:
d >2 e + 1 1.36
El código de Hamming es un código BCH que corrige un solo
error.
1.4.6 CÓDIGO DE GOLAY
Este código es importante desde el punto de vista de corree:
ción múltiple de errores (e l) , es además un código perfec
to. El código de Golay es un código cíclico (23,12) que co
rrige 3 ó menos errores, relacionado con el código (23,12)
está el código de Golay (24,12) el cual se lo obtiene del
código (23,12) con la adición de un bit de paridad- El có
digo (23,12) posee una distancia mínima de siete y el có-
digo (24,12) una distancia mínima de 8, este código también
corrige 3 errores por bloque,pero por detectar todos los ca-
sos de cuatro errores por bloque, da una advertencia al u-
suario cuando el porcentaje de errores es tan alto que no -
es posible una decodificación confiable, este código es muy
popular en muchas aplicaciones. El código (23,12), en cam_
bio no da esta advertencia, sino que produce correcciones e
rroneas.
1.4.7 OTROS CÓDIGOS BLOQUE IMPORTANTES
a. Código de Reed - Solomon (RS)
Cada símbolo puede ser representado por m bits. Estos có
digos tienen los siguientes parámetros:
- 22
Símbolos: m bits por símbolo
Longitud' del bloque: n = 2 -1 símbolos = m(2 -1)bits
Número de símbolos de paridad: (n~K)=2e símbolos
~ m.2e bits
Distancia mínima: d « 2e + 1 símbolos
Códigos Reed Solomón son muy adecuados para corrección de
ráfagas de errores y para el uso como código exterior en
los poderosos sistemas de codificación conocidos como sis_
temas de codificación concatenados.
entrada codificad
externo
codificad
internocanal
decoder
interno
decoder
externo
salida
Pig. 1.8
Sistema de codificación concatenado
La idea básica de concatenación es la forma de codificar
y decodificar la señal hacia el canal. Se puede escoger
como codificador interno un código bloque o convolucional
y se toma un código Reed Solomón como externo, baja com-
plejidad de decodificación y grandes ganancias de codifi_
cación es posible obtener.
b. Código de Hamming
Este es un código cíclico que tiene los siguientes pará-
metros:
Longitud de bloque: n = 2 -1
Número de bi'ts de paridad; n - K = m
Distancia mínima: d = 3
c. Códigos de máxima longitud
Estos códigos cíclicos poseen los siguientes parámetros:
23 -
Longitud de bloque: n = 2 -1
Número de bits de información: K = m
Distancia mínima: d = 2 -1
Se llama también código simplex.
d. Códigos de residuo cuadrático
Las distancias mínimas de los códigos de esta familia son
comparables a los códigos BCH de semejante longitud. Los
códigos de residuo cuadraticos son códigos cíclicos con
los siguientes parámetros:
Longitud de bloque: n = p un número primo de la for-
ma 8.m + 1
Número de bits de información: K = {p + 1) . 2
Distancia mínima : d^ /rT
Existen muchos códigos que no han sido mencionados como
los códigos Goppa, los códigos cuasi-cíclicos para nom-
brar unos pocos.
1.5 CUANTIZACION
En sistemas de comunicación prácticos, en la recepción debido
al ruido del canal la señal transmitida digital, tiene una
forma análoga,. la cual' de b.e -ser cuan tizada
para su utilización. Si se usa una cuantización binaria,
se dice que es decodificación de "decisión dura" y se tie-
ne un canal binario simétrico (BSC) con probabilidad de e-
rror p, el cual lo representamos en la figura 1.4.
El demodulador de"decodifi'cacion suave" debe decidir prime-
ro si el nivel recibido está sobre o bajo el nivel de deci-
sión , y calcula un número el cual especifica que lejos se
está del nivel de ' umbral. Este número en teoría debe ser
un valor análogo, pero en muchas aplicaciones prácticas
cuantización de tres bits (8 niveles) es usada.
- 24 -
A
_JX¿P-°- Nivel de umbral
11-L110"01.
píz/1)
000
Fig. 1.9Cuantización suave, 8 niveles
La entrada al receptor es binaria sin embargo la salida es
8-ária. La información disponible en el decodificador se
incrementa considerablemente y traslada una ganancia adicio
nal de 2 dB en la mayoría de los casos'.
El canal resultante de la cuantización a tres bits de un ca_
nal gaussiano es llamado el canal de memoria nula de entra-
da binaria y salida 8-ária (DMC) y se lo presenta en la fi-
gura 1.10.
Fig. 1.10
Cuantización suave,8 niveles
- 25 -
1.6 GANANCIA DE CODIFICACIÓN
Consideremos un canal gaussiano sin memoria con una <3en_sidad_
de espectro de ruido No y sin limitación de ancho de banda.
Eb dejiot_a_la_ energía recibida por bit. Entonces podemos pre_
sentar que para Eb / No mayor que - 1,6 dB, existen algu-
nos esquemas de codificación los cuales nos pueden dar cero
errores en comunicación. Sin embargo en sistemas de comúni_
caciones reales no es posible por lo general tener relacio-
nes señal a ruido bajas.
Por otro lado, podemos saber que una señal PSK sin codifica-
ción sobre el mismo canal requiere de cerca de 9,6 dB para
tener un promedio de bits errados de 10 . Esto se lo re-
presenta en la figura 1.11, una ganancia potencial de codi-
ficación de 11,2 dB es teóricamente posible. /La ganancia
de codificación es definida como la diferencia en valores
de Eb / No requeridos para obtener un promedio de errores
en particular sin codificación y con codificación.
Debemos indicar que esta ganancia de codificación es obteni_
da a expensas de un incremento del ancho de banda de trans-
misión. La expansión del ancho de banda es el recíproco de
la velocidad de codificación. Así para una velocidad de có
digo 1/2, la energía por símbolo transmitida Es es 3 dB me_
nos que Eb. Se debe indicar que la ganancia de codificación
es un concepto poderoso solo cuando se puede obtener mejoría
en el funcionamiento por el incremento de potencia.
- 26 -
-2 10
Eb / No (dB)
Fíg. 1.11
Funcionamiento de una señal PSK sin codificar sobre
un canal con ruido blanco gaussiano.
La asíntota de la ganancia de codificación, es una figura
de mérito de un código en particular, depende solo de la ve_
locidad del código y de la distancia mínima.
Para definir esto, consideramos un código corrector de e e_
rrores con velocidad de código R y una distancia mínima
d =; 2e + 1. Si se usa el código con un demodulador PSK de
decisión dura la probabilidad de error Pe es:
Pe,d i-
Donde
Q ( /2Eb-R • (e + 1} / No ) 1.37
_ —e 2 dw
- 27 -
Con el demodulador PSK y cuantizacio'n suave tenemos
Pe,s Q ( y2Eb-R-d / NO )
Recordando que para PSK sin codificación
Pe = Q ( |2Eb / No )
De esta manera la asíntota de la ganancia de código para
los dos casos es:
Ga R(e +1) =10 log R(e + 1) dB
Ga R d = 10 log R d (desición suave)
Esto indica que desición suave es más eficiente cerca de
3.dB que desición dura, esto a una relación Eb / No muy
alta. Una figura de 2 dB es un valor más probable en la
realidad.
CAPITULO II
CÓDIGOS CONVOLUCIONALES
2.1 INTRODUCCIÓN Y ESTRUCTURA BÁSICA
Aunque los códigos convolucionales, primero fueron introdu-
cidos por Elias, en las dos pasadas décadas han sido apli-
cados para incrementar la eficiencia de numerosos sistemas
de comunicación en donde reemplazaron a códigos bloques del
mismo orden de complejidad, actualmente estos códigos son u_
sados en sistemas que necesitan gran seguridad en decodifi-
cación de datos.
Existe gran cantidad de literatura en este campo, compuesto
en su mayor parte por documentos que enfatizan detalles de
los algoritmos de decodificación, en vez de que se unifi-
quen los más fundamentales conceptos.
El código convolucional dicotómico debe sus orígenes al de_
sarrollo de la decodificación secuencial (probabilística)
de Wozencraft y la decodificación por umbral (realimenta-
ción, algebraico) de Massey. Hasta hace poco las dos dis_
ciplinas florecieron casi independientemente, cada una con
su propia literatura, aplicaciones y entusiastas. El algc)
ritmo de decodificación secuencial de Fano estuvo presto-
para ayudar a muchas versiones primitivas de decodificadp_
res secuenciales tanto en la teoría como en la práctica.
Mientras tanto la decodificación por realimentación deferí
día y se fortalecía por las capacidades de corrección de
errores de ráfaga.
Para aumentar la confusión, una tercera técnica de decodi-
ficación aparece con el algoritmo de Viterbi, el cual dio
origen al aparecimiento de las decisiones por máxima pro-
babilidad. Aunque esta aproximación es probabilística y
surge originalmente de la decodificación secuencial, condu_
ce a un acceso_.más ele_mental de-.la representación_y análi-
sis de funcionamiento de los códigos convolucionales.
- 29 -
Además, por el desarrollo de las propiedades de decodifica_
ción-invaríante de los códigos -convolucionales, se arriba
directamente al algoritmo de decodificación de máxima pro-
babilidad , de aquí un desarrollo alterno nos conduce a la
decodificación secuencial por un lado y por otro a la decc3
dificación por realimentación.
En el algoritmo de Viterbi se basan numerosas aplicaciones
en sistemas de comunicaciones, es particularmente útil en
transmisiones de datos de alta velocidad, donde existen mu
chos errores.
En el sentido más estrecho, los códigos convolucionales pue_
den ser vistos como una clase especial de los códigos de
bloque lineales, pero tomando un punto de vista más ilustra_
tivo, se puede descubrir que la estructura convolucional a-
dicional, dota a un código lineal con propiedades superiores,
las cuales facilitan la decodificación y mejoran el funcio-
namiento.
Estos códigos se utilizan cuando se transmiten datos que no
.son procesados inmediatamente ya que el tiempo de corree^-
pión y detección de errores es alto.
Los bits de control no solo se calcula con los bits de la
secuencia sino que se lo hace con los bits de las secuen-
cias anteriores.
En recepción se necesita de un algoritmo para detectar los
errores y corregirlos a la vez.
Los bits de mensaje y de control no pueden ser separados.
2.1.1 DESCRIPCIÓN DEL CÓDIGO
Un codificador convolucional es una máquina lineal de esta_
- 30 -
do finito consistente en un registro de desplazamiento de
K-estados y n generadores de funciones algebraicas linea-
les. El dato de entrada, el cual es usualmente, aunque
no necesariamente binario, es desplazado a lo largo del
registro b bits a un misino tiempo. Un ejemplo instructi_
vo es el que se lo implementa con K = 3, n - 2, b - 1 y
se lo presenta en la figura 2.1
0 1 0 1 1 0
secuencia de datos
O 0.
10 00 01 01 11 00
secuencia codificada
OOOJltLOFig. 2.1
Codificador convolucional
Los bits de entrada son -indicados en la figura anterior.
Los tres primeros bits de entrada O, 1 y 1 generan los có
digos de salida 00, 11 y 01 respectivamente. El propósi-
to de este ejemplo es desarrollar varias representaciones
de códigos convolucionales y sus propiedades. Las técni
cas así desarrolladas pueden ser usadas con cualquier có-
digo convolucional.
Es tradicional e instructivo el exibir un código convolu-
cional por medio de un diagrama de árbol como en la figu-
ra 2.2.
- 31 -
D
1
00
00
11
11
10
01 -
UU a
00 a
11
10 b.
01 d
11a
00 c
01 b
10 3
11 c
10 b
01 d
a
00 c
m h -
00 a
11 c '
10 b
(U ¿
11 a -
00 c -
01 b
10 d
11
10
01
11
00
01
10
00
11
10
01
1100
01
10
00
1110
01
11
c
b
d
a
. r!
b
d
a
K
a
b
d
a
00
01
10
00
1110
01
1100
01
10
K
d
a
c
b
a
r
. h
d
a = iQO]
b = |01[
c = I lo]
d = fUl
Fig. 2.2
Diagrama de árbol
- 32 -
En este diagrama se puede observar ambas, la secuencia de
entrada y de salida del codificador. Las entradas son in_
dicadas por la trayectoria que se sigue en el diagrama, en
cambio que las salidas son indicadas por símbolos a lo: lar_
go de las ramas del diagrama de árbol. Un cero a la entra_
da se indica con la rama superior de una bifurcación en
cambio un uno será la rama inferior. De esta manera se
realiza todas las 32 salidas posibles para los primeros cin
co bits de entrada.
Del diagrama se llega a deducir que después de las tres pr^~~
meras ramas, la estructura llega a repetirse. En efecto,
rápidamente se reconoce que después de la tercera rama los
símbolos codificados que emanan de los dos nodos denomina-
dos "a" son idénticos y esto para cada par de nodos de i-
gual denominación. La razón para este comportamiento es
obvio luego de examinar el - codificador. El cuarto bit de
entrada ingresa al registro de desplazamiento por la izquier_
da y en consecuencia el primer bit de entrada sale fuera del
registro de desplazamiento, perdiéndose, y no tiene influen_
cia alguna en la codificación.
En consecuencia las secuencias de datos l O O x y y 000
x y generan los mismos códigos después de la tercera rama
y así ambos nodos llamados "a" en el diagrama de árbol, pue_
den ser juntados.
Esto conduce á un rediseño del diagrama de árbol como se pre_
senta en la figura 2.3, esta figura ha sido llamada como dia_
grama de "trellis" ó"enrejado" . Entonces un diagrama de
enrejado es una estructura de árbol con ramas que reaparecen.
Adoptamos la convención que las ramas del código producido -
por un cero, serán continuas y las ramas del código produc^
do por un uno serán punteadas.
La simbología usada por diferentes autores difiere, pero ba_
- 33 -
sicamente es la misma, y se debe a la configuración del codi_
ficador.
La estructura repetitiva del diagrama de enrejado sugiere un
adelanto en la simplificación de la representación de un có-
digo a un diagrama de estado. Los "estados" de este diagra-
ma son niveles de acuerdo a los nodos del diagrama de enreje*
do. En todo caso, los estados corresponden a los dos últimos
bits de entrada al codificador, los cuales pueden denotar tam
bien nodos.
Fig. 2.3
Diagrama de enrejado
Se observa finalmente que el diagrama de estado puede ser
dibujado directamente por la observación de las propiedades
del codificador, es particularmente útil el hecho de que un
gráfico directo de cuatro estados puede ser usado para re-
presentar la relación entrada-salida de una máquina de ocho
estados.
Para representar los nodos , los dos primeros bits del regis_
tro de desplazamiento representan los nodos, el primer bit
es la transición, así por ejemplo, si en el codificador se
considerado primero el detiene en los registrosj.1 1 O"
la izquierda, esto se representa en el diagrama por la transi._
cíón del estado anterior [1 | 0|segundo y tercer. registros
_ 34 -
al estado actual |_l_£jy primero y segundo registros, y la ra_
ma de transición está representada por el código O 1 .
Fig. 2.4
Diagrama de estado
2.2 PROPIEDADES DE LA DISTANCIA EN CÓDIGOS CONVOLUCIONALES
En esta sección continuamos el desarrollo del ejemplo de
la figura 2.1, con el objeto de aclararlo.
La probabilidad de errores para códigos lineales y canales
de entradas binarias, pueden ser limitados simplemente en
términos de peso de las palabras código, lo cual correspon_
de al conjunto de distancias de una palabra código con to
das las demás. El funcionamiento de los códigos convolucio_
nales, los cuales constituyen una sub clase de los códigos
lineales, implica que éstos pueden ser igualmente limitados.
El conjunto de distancias, respecto a la trayectoria de códi_
go igual a una secuencia de ceros, es fácilmente hallada con
la ayuda del diagrama de enrejado o el de estado.
- 35 -
Empezamos por redibujar el diagrama de enrejado, en la fig}¿
ra 2.5, 'nombrando a las rarnas;de acuerdo a su distancia con
la trayectoria de código 00
Fig. 2.5
Ahora consideramos, todas las trayectorias que en algún nodo
arbitrario j se une con la trayectoria que posee todas las
distancias igual'a cero.) Esto se ve en el diagramaT de és-
tas trayectorias, existe justo una con distancia igual a cin_
co, la cual diverge en-tres ramas de la referencia. Similar_
mente existen dos trayectorias con distancia seis, una de las
cuales difiere en cuatro ramas y la otra en cinco, y así en a
delante.
Se nota también, que los bits para la trayectoria de distan-
cia cinco son 00'..'... 100, los cuales difieren en un solo
bit respecto de la trayectoria con símbolos todos ceros,mien_
tras que para las trayectorias de distancia seis son 00
...11000 y 00 1010, se observa que cada una de éstas
difiere en dos bits de la referencia. La distancia mínima,
algunas veces llamada la mínima distancia "libre", entre to
das las trayectorias claramente se ve que es cinco. Esto
implica que cualquier par de er'rores del canal pueden ser -
- 36 -
corregidos, para dos errores que en la secuencia recibida
caus'enuna distancia de dos de la secuencia transmitida
(correcta). Para dos o_menos-arr-or-es- la. máxima distancia
de una secuencia recibida -la ;cu_al sea incp_r_r_.ep_ta._ a
la secuencia" transmitida tiene como _ mínimo u-
na 'distanciare t_re_s_. Con paciencia las distancias
de todas las trayectorias pueden ser determinadas en el dia-
grama de enrejado.
En todo caso, en lugar de examinar el diagrama de estado,
nosotros podemos obtener una expresión matemática cuya ex-
pansión produce directamente y sin mayor esfuerzo toda la
información de distancia. •
Empezamos por rotular las ramas del diagrama de estado de2 O
la siguiente manera D , D, D , donde el exponente corres_
ponde a la distancia de la rama que en particular a la co-
rrespondiente rama de ceros. Figura 2.6
Fig. 2.6Diagrama de estados rotulado de acuerdo
a la distancia
- 37 -
La función de transferencia en este caso es (apéndice 1}5
T(D) =D
1-2D 2.1
f £• -7
T{D) = D + 2D -»• 4D -i-. +2kDk+5+...
Esto verifica nuestra observación previa, y en efecto se ve
que la cantidad de trayectorias que se juntan con la trayec^
toria de ceros en un nodo dado, es 2 ") con una distancia i-
gual a ,k + 5 respecto a la referente.
La expresión matemática es válida para secuencias de código
infinitamente grande; si ahora nosotros consideramos que en
el j-esimo nodo realizamos una truncación para poder decod^
ficar, lo cual es más fácil de hacer si consideramos la in-
formación adicional del diagrama de estado modificado.
Figura 2.7
Fi9- 2-7
Diagrama de estado modificado
Los términos L son usados para determinar la longitud de
una trayectoria dada, donde cada rama tendría un término L,
y el exponente será aumentado por cada vez que se pasa por
esa rama. Los términos N son incluidos solamente si la ra
- 38 -
ma de transición es causada por un dato de entrada de va-
lor 1, correspondiente a una rama punteada en el diagrama
de enrejado. Figura 2.3
La función generadora del diagrama de estado aumentado es
D5 L3 NT(D ,L,N) « -
1-DL (1+L)N
T(D,L,N) = D L N -t- D L (1+L)N + D L (1+L) N +
D5+KL3+W)kNk+1 +
Aquí podemos verificar que las dos trayectorias de distancia j
seis, una es de longitud 4 y la otra es de longitud 5 y am- •
bas difieren en dos bits de entrada de la secuencia de ceros. /
Ahora las trayectorias de distancia siete, una es de longitudS
cinco, dos son de longitud seis y una de siete, y para cada ¡I
trayectoria corresponde una secuencia de entrada con tres u- |
nos. Si estamos interesados en el j-ésimo nodo debemos trun \r la serie de manera que los términos que son de potencia /
mayor a Ir sean excluidos.
Tenemos determinadas todas las propiedades de las trayecto
rias de un código convolucional, y esto puede ser útil más
tarde en la evaluación de la probabilidad de error en el fun
cionamiento de códigos usados sobre canales arbitrarios sin
memoria.
2.3 DECODIFICADOR DE DISTANCIA MÍNIMA PARA UN BSC
En un canal binario simétrico, errores que transforman un
símbolo código O a l ó u n l a O s e asume que ocurren inde-
pendientemente de un símbolo a otro con probabilidad p. Si
todas las secuencias de entrada (mensajes) son igualmente
probables, el decodificador que minimice la máxima pro
- 39 -
babilidad de error para cualquier código, de bloque o convo
lucional,es 'elque-examina la secuencia recibida con errores
y" ,y" , ,y~. , y escoge la secuencia de datos corres_
pendiente a la secuencia transmitida x" ,x , ,x . ,
en' base a la distancia de Hamming de la secuencia recibida;
esto es la secuencia que difiere en el menor número de símbo_
los de la secuencia transmitida.
Primero observemos el diagrama de árbol, debemos escoger una
trayectoria dentro del diagrama cuya secuencia de código d^
fiera en un número mínimo de símbolos de la secuencia reci-
bida. Entonces podemos acordarnos que las ramas del código
transmitido se repiten continuamente- :dando lugar a•que las
trayectorias posibles sean escogidas en el diagrama de enre_
jado. Observando este diagrama se nota que es innecesario
considerar completa la secuencia recibida (que puede consis_
tir de cientos de millones de símbolos por longitud )a un
tiempo, en la búsqueda de la secuencia transmitida más proba_
ble. En particular inmediatamente después de la tercera
rama se puede determinar cual de los dos caminos que condu-
cen al estado "a" es el más probable {el de menor distancia)
Nos referimos al camino de mínima distancia entre estas dos
trayectorias como el "superviviente". Lo mismo se puede ha_
cer para las otras par de trayectorias que se juntan en los
otros estados.
En el nodo siguiente debemos comparar dos ramas que emergen
de dos estados anteriores y van hacia un estado en este no-
do.
De esta manera se procede a lo largo de la secuencia recibi_
da y cada paso para cada estado guardamos una trayectoria -
superviviente y su distancia de la secuencia recibida, la
cual generalmente se llama "la métrica" . Existe una difi-
cultad que'puede surgir, y es la posibilidad de que dos tra_
yectorias que entran en un nodo posean igual métrica. Enton_
ees podemos solucionar esta situación lanzando una moneda
- 4 0 -
es decir se puede escoger cualquiera de las dos trayecto-
rias. Si preservamos ambas distancias con contenidos igua_l
mente válidos, los símbolos recibidos más tarde deberán a-
fectar de igual manera ambas métricas en consecuencia vemos
que no influye cual sea nuestra elección.
Este algoritmo de decodificación fue propuesto primero por
Viterbi dentro del más amplia contexto de los canales de me_
moría nula.
2.4 GENERALIZACIÓN DE UN DECODIFICADOR ÓPTIMO PARA UN CANAL AR_
BITRARIO SIN MEMORIA
secuencia
de datos
a _ , a.,...
secuenciacodificada
codificadorconvolucio-nal
,a.,.". .
Canal de
memoria nú
la (inclui
do modem)
secuenciarecibida
~ - -
X_.,X_,..., X . f . . .
Fig. 2.8Sistema de comunicaciones empleandocódigos convolucionales
En la figura 2.8 se presenta un sistema de comunicaciones
empleando un código convolucional.
El codificador convolucional, consiste en un registro de des_
plazamiento de K estados y n sumadores módulo-2 los cualesK—1
producen un diagrama de estado o de enrejado con 2 esta-
dos o nodos y cada rama contiene un código de n símbolos.
La velocidad de este código es entonces {b = 1)
R =2.3
n símbolos código
La secuencia de datos es generalmente binaria (a. = O ó 1)
- 41 -
y la secuencia codificada es dividida en -subsecuencias don_
de x~. representa los n símbolos del código generado justo -
después que el bit de entrada a. ingresó al codificador. La
salida del canal o secuencia recibida es igualmente denomi-
nada y. r la que representa los n símbolos recibidos cuando
los n símbolos del código x". son transmitidos.
Este modelo incluye un canal binario simétrico en donde los
y. son vectores binarios de n símbolos y cada uno de estos
es diferente de los correspondientes de x". con probabilidad
p y son idénticos con probabilidad 1-p.
Para completar, en canales generales consideramos que todos
los datos de la secuencia son igualmente probables, el deco
dificador que minimice la probabilidad de error es aquel -
que compara las probabilidades condicionales, también llama
das funciones de probabilidad, PCy/x'"*1') donde y es la secuen
cía recibida, x1""1 es una de las posibles secuencias transnr^
tidas, y se decide en favor de la máxima. Se llama un deco-
dificador de máxima probabilidad. Las funciones de probabi-
lidad son dadas o calculadas de las especificaciones del ca-
nal. Generalmente es más conveniente realizar las compara-
ciones en función de los logaritmos de las probabilidades
log P (y/x"1""1} y el resultado no se altera.
Para ilustrar esto consideramos otra vez el canal binario si
métrico. Aquí cada símbolo transinitido es alterado con pro-
babilidad p 1/2 . Ahora suponemos que recibimos una secuen
cia binaria particular de dimensión N, "y, y consideramos u_
na posible secuencia código transmitida de igual dimensión
5?t"")fla cual difiere en d<m símbolos de y" ( la distancia de
Hamming entre xllTT%1 y, y es d™ }, La probabilidad de que
x1""1 se transforme en la específica secuencia recibida "y con
distancia d , es
. . d-m ,, , N — d~n „""1' ) = p (i_p) 2.4
- 42 -
y la función de probabilidad logarítmica es así
2.5
Ahora si nosotros calculamos esta cantidad para cada posible
secuencia transmitida, además es claro que el segundo térmi-
no es constante en cada caso. Además desde que se asumió
P^1/2 se puede expresar esto como
log P (y/x l"Tl)) = - oí ár* - (b 2.6
Donde alfa y beta son constantes positivas y d-~ es la dis-
tancia también positiva. En consecuencia, es claro que maxi
mizar la función de probabilidad logarítmica es equivalente
a minimizar la distancia de Hamming d™ . Así para este ca
nal para minimizar la probabilidad de error nosotros escoge_
mos la secuencia código de mínima distancia de la secuencia
recibida.
Ahora consideraremos un canal práctico: el AWGN (canal con
ruido gaussiano) modulado en fase, en este caso bifase, el
modulador y el demodulador óptimo para este canal se presen^
ta en la figura 2.9
" " ' rs (t)=/2Es/T'sen (••í--rTU 1-1' • ' -\i 1 ~> -i " ' *12 ln 21 22
? PSK
modulador
Demodulador
yllyl2'''ylny2iy22
n(t) ruido gaussiano
Fig. 2.9Modem para un canal con ruido blancogaussiano y modulación PSK
- 43 -
Se usa la notación x^k donde k es elrJ é.siino_sáinbpl.Q..,Eara _la,
J3ésima..-.rama,.__ Cada símbolo binario modula la portadora en
+ TT/2 radianes por T segundos. La velocidad de transmisión
es 1/T símbolos / segundos o b/nT = R/T bits / s. .
La función Es es la energía transmitida por símbolo, en con_
secuencia la energía por bit es Eb = Es /R.
El ruido blanco gaussiano es un proceso aleatorio con valor
medio cero y densidad espectral N0 (W/Hz) el cual afecta a
cada símbolo independientemente. La salida y. es una va-
riable aleatoria gaussiana cuyo valor medio es ]fj[s x,U*
y cuya varianza .• es N0/2. La densidad de probaba^
lidad condicional de y., dado x.. es:
exp -(y-,- x ) / NP(y.k/*.k> = ^ - * -
La función de probabilidad para la j-ésima rama de una trara
sición particular de código x.'™1
P(y / x l l "" j - TT P ( y . . / x ^ ) 2.8J J KTÍ JK HK
Cada símbolo es afectado en forma independiente- -por -el. rui_
do blanco gaussiano, y así la función de probabilidad loga_
rítmica para la j-ésima rama
ln P (y. / x-') = E in P (y jk / *.-'
T _1 T TT
e K k > 2 - i r ¿ ( V 2
= C y . , x.,triní - D ' 2.9- J
- 44 -
Donde C y D son independientes de m, y tenemos que conside_2
rar que{x1.™') = 1 para que se cumpla.
De esta manera tenemos expresado el decodificador de máxima
probabilidad para un canal con ruido blanco gaussiano, con
modulación bifásica (PSK) o cuadrifásica , y es aquel que for_
ma el producto entre la secuencia recibida y la secuencia có
digo y escogemos la trayectoria correspondiente al mayor. La
métrica para este canal en consecuencia es el producto inter_
no, en contraste con la distancia métrica usada para el ca-
nal binario simétrico.
Generalizando , para cualquier canal sin memoria y usando la
apropiada métrica, la cual es determinada por la descripción
estadística del canal, In P (y/íf715) . Esto incluye a cualquier
otro canal con ruido gaussiano que emplee otras formas de mo_
dulación,"es posible aplicar las mismas características de
un decodif icador de distancia mínima para un canal binario
simétrico , explicado en la sección 2.3.
2.5 FUNCIONAMIENTO DE CÓDIGOS CONVOLUCIONALES EN CANALES SIN ME
MORÍA
2.5.1 CANAL BINARIO SIMÉTRICO
La probabilidad del primer evento errado rápidamente es ob_
tenida de la función de generación T(D), podemos asumir, -
sin pérdida de generalidad, puesto que tratamos con un gru_
po de códigos , que la trayectoria transmitida posee todos
los bits cero. Entonces el primer evento errado ocurre en
el j-ésimo paso, si la trayectoria correcta es excluida
por selección de otra que emerge a la trayectoria de todos
los ceros en el nodo a al j-ésimo nivel. Ahora suponemos
que los supervivientes de los niveles anteriores son tales
que la trayectoria comparada con la trayectoria de los ce-
ros al paso j-ésimo es aquella cuya secuencia de datos es
- 45 -
000......0100 correspondiendo a los nodos a aacba,esta
difiere de la trayectoria correcta {todos ceros) en 5 sím
bolos. En consecuencia un error de desición puede ser rea_
lizado si en esta comparación el BSC causa tres o más erro_
res, entonces la probabilidad de un error en esta compara-
ción esta dada por
E£•« 3
2.10
Por otro lado, esto no asegura que esta distancia de 5 en
particular haya supervivido previamente como para ser com-
parada con la trayectoria correcta en el j-ésimo paso. Si
cualquiera de las trayectorias de distancia 6 son compara-
das en su lugar, entonces cuatro o más errores en los seis
diferentes símbolos pueden ser la causa de un error en la
desición de la trayectoria superviviente. Sin embargo tres
errores causan incertidumbre, la cual se puede resolver por
el lanzamiento de una moneda, cuyo resultado da error solo
la mitad de las veces.
Entonces la probabilidad si esta comparación se realiza es:
32.11
En forma similar si las trayectorias supervivientes anterio_
res son tales que, una distancia de trayectoria igual a d
es comparada con la trayectoria correcta en el j-ésimo pa-
so el resultado de la probabilidad de error es:
V
1 k k/22 {k/2)P '
k-ek impar
k/22.12
+ t ^ t^ xí }p -U-p) k par
- 46 -
Ahora al paso j, cuando no hay una manera simple de deter-
minar los supervivientes podemos sobrelimitar la probabili_
dad del primer evento errado por medio de la suma de la
probabilidad de error de todas las posibles trayectorias -
que se comparan con la trayectoria correcta en este punto.
Note que esta unión de límites es verdaderamente un límite
superior por cuanto dos o más de dichas trayectorias pueden
tener una distancia que se ajuste a la secuencia recibida.
Así para el ejernplo que utilizamos la probabilidad del pr_i_
mer evento errado está dada por
P5 + 2P6 + 4P7 + '•• + Z + •'• 2'13
Donde P está dado por la ecuación 2.12K
En la sección 2,5.3 se presenta que la ecuación 2.12 puede
ser sobrelimitada por (ver la ecuación 2 . 43)
2.14
Usando esto, el lími'te de la probabilidad del primer evento
errado 2 . 12 puede ser más fácilmente limitado por
5 ="
1-4 / p (1-p) '" - J "^ tJI 2'15
Donde T(D) es la función de transferencia de 2.1
Resulta fácil, que para un código convolucional binario-de
árbol (b=l) con función de generación o transferencia
T(.D). = £ a • Dk 2.16Ks J
La probabilidad del primer evento errado está limitada por
- 47 -
la generalización de 2.13
P --ya. P,E ¿ I \f ir
. i ">• "
2.17
donde P está dada por 2.12 y más libremente está limitadaK
por la generalización de 2.15
T(D) 2.18
Siempre que una decisión errónea ocurre, uno o más bits
pueden ser incorrectamente decodificados. Específicamente,
los bits en los cuales la trayectoria seleccionada difiere
de la trayectoria correcta, son los incorrectos. Si solo
un error essiempre realizado en la decodificación de una -
trayectoria de arbitraria longitud, el número de bits erra_
dos en esta trayectoria incorrecta debe ser fácilmente obte_
nida de la función de generación aumentada, {así como se la
dio en la ecuación 2,2 con los factores L suprimidos). Los
exponentes del factor N indican el número de bits errados
para la trayectoria dada incorrecta y que arriba al nodo a
en el j-ésimo nivel.
Después de que el primer error ha sido realizado, la trayec
toria incorrecta no podrá ser comparada con una-trayectoria
que sea totalmente correcta sino más bien con una trayecto^
ria la cual diverge de la correcta en algunas tramos de -
las ramas. (Ver fig. 2.10)
trayectoria correcta x j
trayectoria x"
.supervivienteincorrecto x'
Fig. 2.10Ejemplo de decisiones de decodificacióndespués que ha ocurrido un error inicial.
- 48 -
Si la trayectoria correcta x ha sido excluida por un error
de desición al paso j en favor de la trayectoria x1 , la de_
sición al paso j+1 será entre x'y x". Ahora la probabili^
dad de error {primer evento errado) de la ecuación 2.17 ó
2.18 es para una comparación en cualquier paso, entre la tra_
yectoria. x :y cualquier otra trayectoria que se encuentra
con esta en este paso, incluida la trayectoria x" en es-
te caso. Sin embargo, de que la métrica (distancia nega_
tiva de la secuencia recibida) para la trayectoria x1 es
mayor que la métrica para x , y sobre este fundamento se
excluyó la trayectoria correcta-en el paso j, la probabili
dad que la métrica de la trayectoria x" exceda a la de
la trayectoria x1 al .paso j + 1 es menor que la probabili-
dad que la métrica de la trayectoria x" exceda a la de la
trayectoria x (correcta) en este punto. En consecuencia,
la probabilidad de que una nueva trayectoria incorrecta
sea seleccionada luego de- que un error ha ocurrido es li_
mitada en forma superior por la probabilidad del primer e-
vento errado a este paso.
Por lo tanto,cuando un segundo error sigue exactamente des
pues de un primer error, ocurre a menudo { Ver fig.
2.10) que los bits errados de la trayectoria x1.1 se sobrepo-
nen a los bits errados de la trayectoria x'. Con esto en-
tendido, ahora presentamos que para un código de árbol bi-
nario si nosotros ponderamos cada término del límite de
la probabilidad de error del primer evento a cualquier paso
por el número de bits errados para cada posible trayecto-
ria entrante al nodo con la trayectoria correcta en este
nodo, limitamos en forma superior la probabilidad de bits
errados. Para un paso de decisión dado corresponde deco-
dificar uno o más bits de la secuencia de datos recibidos;
la unión de los límites de la probabilidad del primer even_
to errado con cada término ponderado por el correspondien-
te número de bits errados es un límite superior del espera
- 49 -
do número de bits errados causada por esta acción. Suman-
do el número de bits errados sobre L pasos, puede dar como
resultado una sobre estimación debido al conteo doble, dan_
donos un límite superior del esperado número • de bits erra_
dos en las L ramas, para un L arbitrario. Pero, debido a
que el límite superior sobre los esperados bits errados es
el mismo para cada paso, entonces, dividimos- la suma de los
L términos para L, que es el esperado número de bits erra-
dos por paso y este es justo la probabilidad de error PRP
para un código de árbol-binario (b=l).
Si' b^l, entonces debemos dividir esta expresión para b, el
número de bits codificados y decodificados por paso¿
Para ilustrar el cálculo de P para un código convolucio-B
nal consideramos nuevamente el ejemplo de la figura 2.1.
Su función de transferencia en D y N es obtenida de la e-
cuación 2.2, asignando a L el valor de 1, ya que ahora no
nos interesa la longitud de las trayectorias incorrectas
esto es,
1-2DN
D5N + 2DV 4-,,.- Dk+5Nk+1 -f.,. 2.19
Los exponentes de los factores N en cada término determinan
el número de bits errados por trayectoria que corresponde a
ese término. Donde T(DJ = T(D,N) \ nos da la probabi-\l r
lidad del primer evento errado P , cada uno de cuyos térmiE —
nos debe ser ponderado por el exponente de N para obtener
P , esto quiere decir que debemos diferenciar primero
T(D,N) para N«l y obtener
- 50 -
•<3T(D,N)
dN 1N=l
S fí 7 kD -f 2.2D + 3.4D +... + (k+l)2 D +
(1-2D)2
2.20
Entonces de esto obtenemos, igual que en la ecuación 2.13,
que para un canal binario simétrico (BSC)
D^P_ + 2.2P_ + 3.4P-, + + (k+l)2kp, _ + 2.21B 5 6 / k+5
donde P está dada por la ecuación 2.12.K
Si para P utilizamos el límite superior 2.14 obtenemos unK
límite simple pero débil (no muy riguroso).
K. s
- d T { D , N )
dN N-l,D-2
2.22Cl-p)
Si generalizarnos para un código de árbol-binario (b=l}/ usa_
do en un BSC
d T ( D , N )
dN lN-1
¿_, c, D 2.23
Entonces de igual manera que 2.21-
n ^Zc. P, 2 .24B . « j k k
- 51 -
y correspondiendo a 2 . 2 2 tenernos el límite flojo
dN
Para un código de árbol no binario (b 1), todas estas ex-
presiones deben ser divididas por b.
Los resultados de las ecuaciones 2.18 y 2.22 deben ser ex-
tendidos a los canales sin memoria de forma más general,
pero primero se considerará un canal de particular interés.
2.5.2 CANAL CON RUIDO BLANCO GAUSSIANO CON MODULACIÓN BIPASE
Como se presentó en la sección 2.4 el decodificador para es_
te canal opera exactamente de la misma manera como para un
canal binario simétrico excepto que en lugar de la distan-
cia de Hamming usamos la s.iguiente métrica
Donde X.. = + 1 son los códigos transmitidos, los símbolos13 -
Y., corresponden a los símbolos recibidos (demodulados)r j
varía sobre los n símbolos de cada rama; en cambio i corre
sobre todas las ramas de una trayectoria en particular. En_
tonces para analizar su funcionamiento procedemos exactamen
te igual que en la sección 2.5.1 excepto que los errores de
desición B, de las ecuaciones 2.10 y 2.12 deben ser susti-• k
tuidas.
Como anteriormente asumimos, sin pérdida de generalidad,
que la trayectoria correcta (transmitida) x posee los sím-
bolos X... = +1 para todos los valores de i , - j (correspon-
diendo a •• una trayectoria de ceros si los símbolos de entra_
da son cero y uno). Consideramos una trayectoria incorrec-
ta x' que entra a un pa-so en particular con la trayectoria
- 52 -
correcta, la primera posee k símbolos negativos {X..' = -1}
y el resto positivos. Dicha trayectoria será incorrectameii
te escogida solo si posee una métrica mayor que la métrica_
de la trayectoria correcta, por ejemplo
y y x..- Y. . y y x.. yf- 13 ID ~ f - I D
\ Y"1 i v ' _ v i v -—. n> / tA . , — A . . J i . , ~?- U
Donde i corre sobre todas las ramas en las dos trayectorias.
Pero, desde que asumimos que la trayectoria x y x' di-
fieren en exactamente k símbolos, donde X.. = l y X. ,' = -1
la probabilidad de error de las dos es justamente
P = Pr
= Pr
Y {X . . ' - X . . ) Y . . O
(X '• - X ) Y ^ O~
= Pr <-2 > Y Or ~
= Pr Y" Y ^0~ 2.26
Donde r corre sobre los k símbolos donde las dos trayecto-
rias difieren . Ahora como se presentó en la sección 2 . 4
que Y... son variables aleatorias gaussianas independientes
de varianza N0/2 y valor medio J^ X. ., donde X. . son los
símbolos códigos transmitidos actualmente. Desde que se as u
mió que la trayectoria (correcta) transmitida tiene X. ,= +1
para todo i, j; resulta que Y. . ó Y tiene valor medio
/Es' y varianza N0/2 . Por consiguiente desde que las k
variables Y son independientes y gaussianas, la sumaK
Z = 2_! Y es también gaussiana con valor medio k -/Es"-í=i r
y varianza kN0/2.
En consecuencia,
- 53 -
P ~P (Z<0) -k r
exp (-X /2]
72 n"= erfc
2.27
Recordando de la sección 2.4 Es,es la energía por símbolo
la cual se relaciona a-la energía por bit, por medio de
'Es - R-Eb , donde R = b/n. El límite de P_ entoncesE
se lo encuentra exactamente como en la sección 2.5.1 y ob-
tenemos el mismo límite general como en 2.17
2.28
Donde a, son los coeficientes dek
T(D) =k
2.29
Donde d es la míni'ma distancia entre cualquiera de las dos
trayectorias. Podernos simplificar este procedimiento con-
siderablemente si aflojamos solo levemente el límite paira
este canal, observando que para x . O, y O,
erfc J x+y exp ( —jr— ) erfc ^/ x. 2.30
Por consiguiente, para k d, asignamos L = k - d y de la
ecuación 2.27 obtenemos
, 2k£s f 2 d + L EsP, ~ erfc = erfc -k
^ exp-L ES- — , ,.} erfc 2.31
Entonces el límite de 2.28,usando 2.31 es
- 54 -
Es -(k - d)EsN_
PE<"fC ;sf"eXP ' tf5' T ( D > U - exp ,-Es/NJ 2 ' 3 2
La probabilidad de bits errados se la puede obtener de la
misma manera. Justo como paca el BSC ( 2.23 y 2.24) tene-
mos que para un código de árbol binario
P B < I C k P k 2'33
Donde c, son los coeficientes dek
d T ( D , N ) , _ , . „ . . 2 ^ 3 4
dN 1N=l K. ¿
Así, siguiendo los mismos argumentos los cuales usamos de
2.28 a 2.32 para un códido de árbol-binario obtenemos
_ / , 2dEs . dEs d T ( D , Np < e r f c exp • ( } ~ N=i.o-exp(
2 .35
Para b>l, estas expresiones deben ser divididas por b.
Para ilustrar la aplicación de este resultado consideramos
el código de la figura 2.1 con parámetros K = 3, R - 1/2,
cuya función de transferencia esta dada por la ecuación
2.19. Para este caso donde R = 1/2 y Es. = 1/2 Eb , obtene_
mos
erfc 7 5 Eb/N0 2.36
Debido a que -el número de estados crece exponencialmente
con el valor de K, cálculos directos de la función de gene_
- 55 -
ración llegan a ser inmanejables para K>4. Por otro lado
el cálculo de una función de generación es básicamente una
matriz de inversión, la cual puede ser calculada numérica-
mente para un -valor dado de D. La derivada con respecto a
N evaluada con N = 1 puede ser limitada por el cálculo de
la diferencia (T(D, 1 +£) - T(D,1) ] A , para í pequeña. Re_
sultados de estos cálculos se encuentran en el documento
de Heller y Jacobs , junto con los resultados de la simu_
lación de los respectivos códigos y canales. La simulación
verifica la exactitud de los resultados.
En la próxima sección estas técnicas de limitación serán ex
tendidas a los canales más generales sin memoria, de los
cuales las ecuaciones 2.32 y 2.35 pueden ser obtenidas di-
rectamente .
2.5.3 GENERALIZACIÓN DE LOS CANALES SIN MEMORIA
Como se indica en la sección 2.4, para secuencias de datos
igualmente probables, el decodificador de mínima probabili_
dad de error escoge la trayectoria que maximice la función
de probabilidad-logarítmica (métrica)
_ _ , . _ i _ (m) .In P (y \ )
sobre todas las posibles trayectorias x . Si" cada sím-
bolo es transmitido(o modula el transmisor)independiente-
mente de todos los símbolos .anteriores y posteriores, y la
interferencia afecta cada símbolo independientemente de to_
dos los demás, entonces el canal, el cual incluye el modern,
se dice que es sin memoria y la función de probabilidad
A j=i
donde X... es un símbolo código de la m-ésima trayecto-
ria, Y., es el correspondiente símbolo recibido (demodula-
do). j corre sobre los n símbolos de cada rama, i corre
- 56 -
sobre las ramas de la trayectoria dada. Esto incluye
los • casos especiales considerados en 2.5.1 y 2.5.2.
El decodif icador es el mismo que para BSC excepto por el u_
so de una métrica más general. Las desiciones son hechas
después de cada conjunto de nuevas métricas de las ramas
las cuales son sumadas a las métricas previamente almacena
das. Para analizar el funcionamiento, debemos simplemente
evaluar P , la probabilidad de error de desiciones para u-K
na trayectoria incorrecta que difiere en k símbolos de la
correcta, como se hizo para los canales especiales anterior^
mente estudiados . Procedemos como en la ecuación 2.26, de_
notamos X. , y X. . ' a los símbolos de la trayectoria corree30 •* 10 ^
ta e incorrecta, respectivamente, obteniéndose
ÍYr \rr r
P (Y \ )j- \
P(Y \r * r
donde r corre sobre los k símbolos código en los cuales las
trayectorias difieren. Esta probabilidad puede ser escrita
como
P. (x, x'). = ZTTP(J 1 X ) 2.38c r
donde Z es el conjunto de todos los vectores y = (Y , Y , ...,K J_ ¿
Y , . . . . ,Y ). para lo cualr K
pero si este es el caso, entonces
- 57 -
P{Y1/2
.ytz*
n p (Y \1 1 r \
2.40
Donde Z es todo el espacio de los vectores recibidos . La
primera inecuación es válida porque estarnos multiplicando
el sumando por una cantidad mayor que la unidad, y la se-
gunda porque es simplemente, la extensión de la suma sobre
un largo conjunto de términos positivos. Finalmente .el su
matorio de k-dimensiones sobre y lo podemos distribuir en
k sumatorios de una dimensión sobre y , y , . . . , fy , respec1 2. k —
tivamente y esto quedaría así
p ( x , x ' ) á £ E -•• T. fímr 1 x )1/2p(Y | x M1/2- r
2.41
Para ilustrar el uso de estos límites, consideremos los dos
canales estudiados con anterioridad. Para el canal binario
simétrico, Y es igual a cualqui'era, X , el símbolo transmir r —
tido o a Xcr su complemento- Y depende de X por medio de
la estadística del canal. Asi
P(Y - X ) = 1 - p
P(Y = Xc) = pr r ^
2.42
Para cada símbolo dentro del conjunto r = l,2,....,k por
definición X ¿¿ X l. En consecuencia para cada término enr r
la suma six = 0 , X ' = l y viciversa.r r
- 58 -
Entonces, cualquiera X 6 X ' pueden ser
£ P ( Y I X rf" P (Yr \ -r" = 2P1/2(l~p)1/2
y,,o
y el producto de k factores idénticos es:
t 2.43K
para todos los pares de trayectorias, correcta e incorrec-
ta. Esto ha sido usado en la sección 2.5.1 para obtener
los límites 2.15 y 2.25.
Para el canal con ruido blanco gaussiano de la sección
2.5.2 presentamos que la función de probabilidad {densidad
de probabilidad) es
r /— 2 ,exp [-(y - /EsX ) /No I
i ^ ^ i -*r r > 2.44
r r yfnT
Donde X = +1 ó -1 yr J
X + X ' = O 2.45r r
Donde Y1 es una variable real, y el espacio de Y es lar r
línea de los números reales, en consecuencia la suma de la
•ecuación 2.41 se convierte en integral.
r \r)1/2 P(Yr\xr ')1 /2dY
exp dY2N^ r
exp-( Y 2 + ES) 1
= exp (r c * N.
- 59 -
2 2Donde usando 2.45 y X = X ' =1. El producto de los
r r L
k términos idénticos es, entonces
V exp (ir) 2-46
Para todo par de trayectorias correcta e incorrecta. Inse_r
tamos estos límites en las expresiones generales 2.28 y
2.33 y usando 2.25 y 2.30 limitamos la probabilidad del
primer evento errado y la probabilidad de bits errados.
P ^ T (D)E \- ES/NJ. 2.47
2.48dN N~1,D= exp (-Es/N0J
con lo gue algo suavizamos las ecuaciones 2.32 y 2.35.
Una característica notable de estos dos canales BSC y AWGN
es gue cada '.símbolo es afectado en forma independiente de
su localización en la secuencia. Cualquier canal sin memo
ria posee esta propiedad de ser estacionario {estadística-
mente invariante en el tiempo) para un canal sin memori'a 'es
tacionario la ecuación 2. 41 se reduce a
P , ( x , x ' í ^ [ £ P ( Y \1/2 P { Y \ X ' ) 1 / 2 D 2 . 4 9tí *• ,1 L L rr
donde
D0= £ P(Yr\Xr)1/2 P ( Y r \ X r ' ) ^1, 2.507r
Donde este límite sobre P, es válido para todos estos cana-k
les, claramente se ve que este límite depende de los valo-
res actuales asumidos por los símbolos X y X ', de lat- r rtrayectoria correcta e incorrecta, y estos generalmente va_
rían de acuerdo al par de trayectorias x y x' en cuestión.
60 -
Sin embargo si los símbolos de entrada son binarios, x y
x , donde que X - x, entonces X ' = je, y esto para cualr f r _
guier canal sin memori'a de entrada binaria, luego la ecua-
ción 2.50 se la puede escribir {x complemento de x) .
P(Y\x}1/2 2.51
y en consecuencia
2.52
dT(D,N)dN N=1,D=D,
Donde D0 está dada por la ecuación 2..51. Otros ejemplos de
canales de este tipo son FSK modulado sobre AWGN(ambos co-
herente y no coherente) y canales con desvanecimiento Rayleigh,
2.6 CÓDIGOS CONVOLUCZONALES SISTEMÁTICOS Y NO SISTEMÁTICOS
El término " Código convolucional sistemático" se refiere
a un código en el que en cada rama uno de los símbolos cód^
gos es exactamente el bi't de dato que genera la rama, De es_
ta manera un codificador sistemático tiene sus estados co-
nectados solo a n-1 sumadores, el n-ésimo es reemplazado por
una línea directa al primer estado del conmutador.
código
Fig. 2.11Codificador convolucional sistemático
- 61 -
Es bien conocido que para un grupo de códigos bloque, cua!L
quier código no sistemático puede ser transformado en un có^
digo sistemático el cual funciona exactamente igual que el
no sistemático. Este no es el caso para códigos convolucio-
nales. La razón de esto es que, como se presentó en la sec-
ción 2.5, el funcionamiento de un código en cualquier canal
depende en su mayor parte de las distancias relativas entre
las palabras código y particularmente de la mínima distan-
cia libre, la cual es el exponente de D en el numerador de
la función de generación. Eliminando uno de los sumadores
da como resultado una reducción en el exponente de D. Por
ejemplo la distancia libre para el código K=3 de la figura
2.11 es de d=4, en cambio para un código sistemático como
el de la figura 2.1 con K=3 tiene una distancia libre d=5.
La tabla 2.1 presenta las máximas distancias mínimas libres
para códigos sistemáticos y no sistemáticos con valores de
K=2 hasta 5. Para longitudes de control más largas los
resultados- son aún más separados, y se ha demostrado que
el funcionamiento de un código sistemático de longitud
de control K es aproximadamente el mismo que el dé un có-
digo no sistemático de longitud de control K(l-R). Así
para R-l/2 y K grande códigos sistemáticos tienen el fun9
cionamiento de un código no sistemático de longitud de con_
trol K/2, sin embargo requieren la misma complejidad de de_
codificación.
K
2
3
4
5
SISTEMÁTICO
3
4
4
5
NO SISTEMÁTICO
3
5
6
7
TABLA 2.1
Máxima-mínima distancia libre
CAPITULO III
EL ALGORITMO DE VITERBI
3.1 INTRODUCCIÓN
El algoritmo de Viterbi (VA) fue propuesto en 1967 por
Andrew J, Viterb'i como mjjjn¿tpdo__p_aj:.a__la_decodi.£dcacaj5n_,de
códigos convolucionales . Desde esa época , ha sido recono-
cido como una atractiva solución a una variedad de proble-
mas de estimación digital, algo así como el filtro kalman
el cual ha sido adaptado a una variedad de problemas de es-
timación analógica .
De igual manera que este filtro el algoritmo de Viterbi en_
cuentra los estados de un proceso estocástico con un méto-
do recursivo el cual es óptimo en ciertos casos, . y se
presta rápidame_nte_a_s_u implemen.tación y anális_is,.
. _ \=> El procesofun_d_ainental_ s_e asume que es un proceso de Markov
an_tes__gu_e_gauss-i-ano7 cuyo desarrollo difiere en la estructu
ra.
El proceso de Markov se caracteriza por lo siguiente: es
discreto en el tiempo, el estado x al tiempo k es uno deK
: un número finito M de estados m, 1 m *z M, Inicialmente
podemos suponer que el proceso se realiza solo desde el tiem
po O al tiempo k y que los estados inicial y final x y xU K
son conocidos ; la secuencia de estados es representada por
el vector x (x , ......... rx, } .U K
La probabilidad P (x / x ,x , ....... x.) de estar en el: K"rJ. U J. fí
estado x al tiempo k+1, dados .todos los estados hasta
el tiempo k, depende solo del estado x al tiempo k:~K
3.1
Las probabilidades de transición P (x . /x,) pueden estarK
variando en el tiempo, pero esto no está indicado en esta
notación.
- 64 -
No se indica explícitamente pero el canal puede variar en el
tiempo en el sentido que P (z / £ ,) puede ser una función
de k. Esta formulación se resume en los siguientes casos es_
peciales.
1. En el caso en el cual z depende solamente del estado x^
P(z / x ) = /x 3.4
2. En el caso en el cual z dependa probabilísticamente de
una salida y del proceso al tiempo k,-donde y^ es un gi_
ro a una función determinística de la transición £;< ó el
estado x, . Para entender lo dicho usamos un modelo quek
surge a menudo en comunicaciones digitales. Existe una
secuencia de entrada -u = (u , u , ) , donde' cada
u es generado en forma independiente de acuerdo a unak
distribución de probabilidad P (u ). Existe una secuenciaK
y libre de ruido, no observable, en donde cada elemento y
es alguna función determinística de la presente y las v
anteriores entradas.
Vv>3.5
n k
v -
k~l uk-2 k-v
v T
m
f (.}
estados del re-gistro de despla_zamiento
función determinística
canal de memo-ria nula
Fig. 3.2Modelo de registro de desplazamiento
La secuencia observada z es la salida de un canal de memoria
nula, cuya entrada es y
- 65
Cada elemento de la secuencia de entrada u, puede tomar un
valor de un número finito de valores m (en el caso binario
m = 2). Para completar la correspondencia a nuestro modelo
general definimos:
Los estados x, = (u. ., , ,u, ) 3.6k k-1 k~v
Las transiciones é*— (u, , ,u, } 3.7^ k k~v
El número de estados es así |x! = rn , y el de transiciones
|Z|= m . Para este ejemplo en el cual b=l, en el caso masbv .„, b (v+1)
general |x¡= m y IZ \ m
Finalmente, exponemos el problema en el cual el algoritmo
de Viterbi es una solución. Dada una secuencia z" de obser
vación del proceso de Markov. Encontramos la secuencia
de estado x para la cual la probabilidad "a posteriori"
P{x"/z) sea máxima. En forma alterna, encontramos la se-
cuencia de transiciones £ para el cual P ( | /z) es máx_i
mo (donde x — -¿ }. En el modelo del registro de despla_
zamiento esto es igual a encontrar la secuencia de entrada
más probable u, donde u — x; ó también la secuencia de
señal más probable y.
Es ventajoso saber que esta regla de probabilidad aposterio_
ri máxima minimiza la probabilidad de error en la detec-
ción de la secuencia correcta ( probabilidad de error <3e '.
bloque, mensaje o palabra) y así es óptima en este sentido.
Esto es aplicable a un gran número de campos, incluyendo cc5
digos convolucionales, interferencia entre símbolos, recono_
cimiento de textos y PSK. (Modulación por desplazamiento de
fase).
" "
\2 EL ALGORITMO J" "" '" ''a
A continuación presentamos que el problema de la estimación
de una secuencia por medio de la probabilidad máxima aposte_
riori, previamente establecida, es idéntico al problema de
encontrar la ruta más corta a través de un gráfico. El algo
ritmo de Viterbi surge como una solución recursiva natural.
Estaraos acostumbrados a asociar con un proceso de Markov a
un diagrama de estado del tipo- de la figura 3.3, para un
proceso de cuatro estados en un registro de desplazamiento
Fig. 3.3Diagrama de estado
Aguí los nodos representan estados, las ramas representan
transiciones y con el transcurso del tiempo el proceso tra_
za algunas trayectorias de estado a estado a través, del dia_
grama.
En la figura 3.4 se introduce una descripción más redundar^
te del mismo proceso, el cual llamamos diagrama de enreja-
do, aquí cada nodo corresponde a un estado distinto a un
tiempo dado y cada rama representa, una transición a algún
nuevo estado en el siguiente intervalo de tiempo.
- 67 -
Estado k=0
00 YO
01 .
10 .
11
k=3 k=4 k=k~2 k=k-l k=k
Fig. 3.4Diagrama de enrejado
El enrejado empieza y termina en ios estados conocidos xO
y x . La más importante propiedad es aquella que dice queR
para cada posible secuencia de estado x, existe una corres-
pondencia a una trayectoria única a través del enrejado y
viceversa.
A continuación presentamos como dada una secuencia observa-
da zr a cada trayectoria podemos asignar una "distancia" pro
porcional al —In P(x,z) donde x es la secuencia de estado
asociado con esa trayectoria. Esto nos permitirá solucio-
nar el problema de encontrar la secuencia de estado para la
cual P (x/z) sea máxima/ o en su forma equivalente para que
P (x,z) = P (x/z) P ("z) sea máxima, para encontrar la trayec_
toria cuya distancia sea mínima, donde In P(x,z) es una fun-
ción monótona de P{x,z) y existe una correspondencia uno a
uno entre las trayectorias y las secuencias.
Se observa' que debido a las propiedades de Markov y memoria
nula, los factores de P(x,z} son los siguientes:
P(x,z) = P(x)-P(z/x)¿-rn PÍ V 'Ak
3,8
3.9
- 68 -
De aguí, si nosotros asignamos a cada rama (transición) la
"distancia" .
= _ in p (x /x 1 - In P (z / ¿ ) 3 101 uj!' tí ' k "
en consecuencia la distancia total de la trayectoria corres_
pendiente a x es como se expone :
- In P(x,z) = Y AU*) 3.11Vxo
Encontrar la ruta más corta a través de un gráfico es un
viejo problema en operaciones de investigación. La más con
cisa solución fue dada por Minty en un artículo de un cuar_
to de página en 1957, el cual citamos en su totalidad.
"El problema de la ruta más corta puede sersimplemente como sigue: Construimos un niode_lo lineal de una red vial, donde los nodos repr_e •sentan ciudades y las longitudes lineales repre-sentan dintancias (o costos). Cogemos el nodo"Los Angeles" en nuestra mano izquierda y el no-do "Boston" en nuestra mano derecha y estiramospara que se aparten.
Si el modelo llega a ser enmarañado, tome un asístente que desate y reúna los nodos hasta que elenredo se resuelva. Eventualmente una o más tra-yectorias pueden estar tirantes y serán las máscortas. Los nodos deben ser rotulados ya que des_pues de uno o dos usos las identidades del modeloson fácilmente confundidas".
Desafortunadamente, el algoritmo de Minty no se adapta a
los modernos métodos de computación.
En consecuencia llega a ser necesario girar sobre el algo-
ritmo de Viterbi, el cual es bien conocido en operaciones
de investigación. Se requiere de una observación adicio- =
nal.
Denotamos por x£ a un segmento ( xn,xn, ..... ,x ) consisten.U _L K
te de. los estados al tiempo k de la secuencia de estado
X0 vucfa QU* V / G cúook
- 69 -
x = (xn,x , ,x }. En el diagrama de enrejado X* co-U JL K
rresponde a un segmento de trayectoria que empieza en el no_
do x- y termina en el nodo x . Para cualquier tiempo, k enU k
particular, existen en general diversos segmentos de trayec-
torias semejantes, cada una con una distancia.
¿C X* ) « " A.UO . 3.12
El segmento'más corto es llamado "el superviviente" corres-
pondiente al nodo x y es denotado como x (x ) . Para cual^K K
quier tiempo k > O , existen M sobrevivientes, uno para ca_
da estado x. .
Así, a cualquier tiempo k se necesita recordar solo los M
sobrevivientes x (x ) y sus distancias (métrica).K
P (XR) £ X [x{xk)J. 3.13
Al alcanzar el tiempo k+1, se necesita solo extender todos
los supervivientes al tiempo k en una unidad de tiempo, cal_
culamos las distancias de los segmentos de trayectoria ex-
tendidos y para cada nodo x seleccionamos el segmento deK~r_l.
menor ' distancia , siendo este el superviviente corres-
pondiente al tiempo k+1.
El proceso sigue indefinidamente siempre que el número de
supervivientes no exceda a M.
Este algoritmo puede ser visto como una versión simple de
programación dimámica avanzada. Por éste o cualquier otro
nombre el algoritmo es fundamentalmente el problema de lan_
zar suertes con la ruta más corta.
Se ilustra el algoritmo con un diagrama de enrejado de cua_
tro estados y a lo largo de cinco unidades de tiempo en la
figura 3.5. En la figura 3.5.a presentados el diagrama de
enrejado completo, con cada rama adjuntamos una distancia
(en las aplicaciones reales, las distancias deben ser fun-
- 70 -
clones de los datos recibidos). En la figura 3.5'.b. presen_
tamos cinco pasos recursivos por los cuales el- -algoritmo
determina la trayectoria más corta del nodo inicial al fi-
nal. A cada estado solo cuatro (o menos) supervivientes
son presentados, con sus métricas.
a.
b.
,0 r t or 0,\ .-'
* «T -o i fff - -i''* '
- 71 -
k=3
k=5
Fig . 3 . 5
- 72 -
Una formulación formal del algoritmo es la siguiente:
Almacenamien to:
k índice de tiempo
Sí (x ) r l x - M Superviviente terminado en x• K K K
P (x ) , l^"x,-^M métrica- del supervivientek k
Inicializacion:
k « O
x (x ) = x ; x (m) arbitrario, m 4- x
P (x) - O ; r (m) = e* m 4 X
Recursión : Cálculo
r
Para todo Sk = (xk-H' xk}
Buscar :
T (xk+1) « min T
Para cada x . ; almacenamos P íx. -) y el superviviente co
rrespondiente x" (x . ) . Cambiamos k+1 a k y repetimos el
proceso hasta que k sea igual a E.(número de bits transmití
dos) .
Con una secuencia finita de estados x~ el algoritmo termina
al tiempo k con la trayectoria completa, más corta almace-
nada como el superviviente 5? (x ) .K
Ciertas modificaciones triviales son necesarias en la prác_
tica. Cuando una secuencia de estado es muy larga o infini_
ta, es necesario la truncación de los supervivientes a una
longitud manejable o . En otras palabras, el algoritmo de_
be llegar a una decisión definitiva sobre los nodos.
En la figura 3.5.b todos los supervivientes al tiempo k-4
- 73 -
van a través de los mismos nodos hasta el tiempo k=2.
En general, si la longitud a de truncación es escogida bas_
tante grande, existe una alta probabilidad de que todos los
supervivientes al tiempo k irán a través de los mismos no-
dos hasta el tiempo k- <f , en consecuencia la trayectoria
con la probabilidad máxima es conocida hasta el tiempo k-c/~
y puede ser determinada en un bloque de desiciones, en es-
te caso el costo de la truncación es nulo. En los raros
casos, cuando los supervivientes son imposibles de escoger,
cualquier estrategia razonable para determinar la desición
del algoritmo al tiempo (k-</ ) puede funcionar,escogemos
un nodo arbitrario, o el nodo asociado al superviviente más
corto o se escoge un nodo por votación, etc. Si c/7 es bas_
tante grande el efecto sobre el funcionamiento es desprecie*
ble.
La complejidad del algoritmo es fácilmente estimada:
1. Memoria
El algoritmo requiere almacenar'M localizaciones, una por
cada estado, donde cada localización debe ser capaz de al
macenar la métrica P (m) y una lista de cT símbolos
del superviviente truncado.
2. Computación
En cada unidad de tiempo, el algoritmo debe realizar |Z|
sumas, una por cada transición, y M comparaciones entre
los ]Z1 resultados.
Así de esta manera la cantidad de memoria utilizada es pro_
porcional al número de estados y la cantidad de cálculos al
número de transiciones. Con un proceso de registro de des_
plazamiento como el de la figura 3.2, M = m y Izl = m ,
la complejidad del decodificador se incrementa exponencial—1
mente con la longitud v del registro de desplazamiento.
- 74 -
Una mirada al diagrama de enrejado, nos revela detalles a di.
cionales para la implementación. Para un registro de des-
plazamiento binario, las transiciones dentro- de cualquierv—1
unidad de tiempo pueden ser separadas en 2 grupos dis^un
tos de 4, las transiciones se originan en un par de estados
comunes y terminan en otro par de estados comunes. Esto se
ilustra en la figura 3.6, los estados al tiempo k han sido
nombrados x'O y x'l y los estados al tiempo k+1 serán Ox1
y Ix1 . En el ejemplo de la figura 3.5 se lo hace con dos
grupos o celdas.
Fig. 3.6Grupo típico
En la figura 3.7 se presenta la unidad lógica básica en la
implementación de un grupo cualquiera. Una versión del al.
goritmo que sea de alta velocidad se lo puede implementar
con :2V unidades lógicas en-paralelo; una implementación
de baja velocidad usa una sola unidad lógica, de tiempo com
partido o una versión de software, con una subrutina.
Un decodíficador convolucional para aplicaciones que se ne-
cesite tengan alta velocidad, por ejemplo en el caso-de v=6
{M=64 Z = 128) es construido con 356 circuitos lógicos
TTL y puede operar hasta los 2 H bits/s. Un decodíficador
de software de un código similar puede funcionar hasta una
velocidad del orden de los 1000 -bits / s si se lo implemen
ta en una computadora. La complejidad moderada del algori_t
mo de Viterbi lo califica para su inclusión en muchos siste_
mas de procesamiento de señales.
Píx'O)
r
a ot
ra unidad
lógica
a otra
unidad
lógica
Fig. 3.7
Unidad
lógica
- 76 -
3.3 ANÁLISIS DE FUNCIONAMIENTO
El concepto para introducirnos en el análisis del funcina-
miento es el de un evento con error. Si x es la secuencia
de estado actual, y Sí la secuencia de estado escogido me-
diante el algoritmo de Viterbi. En un tiempo largo x y 5?
tipicamente divergen y se encuentran un número de veces co_
mo se ilustra en la figura 3.8. A cada separación se le
llama un evento con error. Los eventos errados pueden en
general ser de longitud ilimitada si x es infinita, pero
la probabilidad de un error infinito usualmente es cero.
k=0 ' k=K
Fig. 3.8Trayectoria correcta y estimada
Correcta: línea continua
Estimada: línea punteada
La importancia de un evento errado es que es probabilística
mente independiente de cualquier otro; en el lenguaje de la
teoría de la probabilidad ellos son "recurrentes". Además,
permiten el cálculo de la probabilidad de error por unidad
de tiempo.
Dada la trayectoria correcta x, el conjunto ¿< de todos
los posibles eventos errados que comienzan al tiempo k en
un diagrama de enrejado que se inicia en x y cada una deK.
las ramas termina en la trayectoria correcta como se ilus-
tra en la figura 3.9, para el diagrama de enrejado dado en
la figura 3.4.
La probabilidad de error de cualquier evento en particular
es fácilmente calculado: esto es simplemente la probabili-
dad de que la observación sea tal que, sobre el intervalo
- 77 -
de tiempo durante el cual -¿t es diferente de x, •$ es más
probable que x. Si el evento errado tiene una longitud ^
esto es simplemente un problema de desición de dos hipóte
sis entre dos secuencias de longitud Z , y típicamente
tiene una solución estándar .
k k+1 k+2 k+3 k+4
Fig. 3.9Trayectoria correcta x (linea gruesa)Subconjunto de todos los posibles errores(línea delgada)
'La probabilidad P ( ¿K ) que --cualquier evento errado en
¿K ocurra, puede ser limitada por la suma de las proba-
bilidades de todos los eventos errados en ¿u . si bien es_
ta suma puede ser infinita, usualmente es dominada por uno ó
por unos pocos términos iniciales que representan probabili-
dades de error de eventos particulares, cuya suma entonces
forma una buena aproximación de P ( <fM ). El límite supe-
rior también puede obtenerse en forma correcta por medio de
técnicas de diagramas de flujo.
De otra manera un límite inferior a la probabilidad de error
de un evento, puede obtenerse por el comentario de un "genio".
Tomamos el evento particular errado que tiene la mayor proba-
bilidad de todos ellos dentro de é* . Suponemos que un ge_
nio amistoso nos cuenta que la secuencia verdadera es una de
dos posibles: la trayectoria actual correcta o la trayecto-
ria correspondiente al evento con -error. Aun con esta in-
- 78 -
formación, se podría disimular un error si la trayectoria
incorrecta es más probable. En ausencia del genio la pro-
babilidad de error debe ser inferior, donde una de las es-
trategias que se tiene dada la información del genio es, de
ignorarla. En conclusión , la probabilidad de error de un e_
vento en particular es un límite inferior de P ( ¿V ) -
Una importante observación,, es que este límite inferior se
aplica a cualquier esquema de decisiones , no necesariamente
el algoritmo de Viterbi.
Si el algoritmo de Viterbi da su funcionamiento aproximada-
mente con estos límites , entonces se puede pedir que sea óp_
timo respecto a estas cantidades.
En conclusión, la probabilidad de error de cualquier evento
que comienza al tiempo k , puede ser limitada en forma su-
perior e inferior como sigue:
max P (evento errado) P ( ó* ) max P {evento errado) +
otros términos
Con suerte estos límites serán rigurosos.
3.4 TRUNCACION DE LAS TRAYECTORIAS
En la deducción del algoritmo de Viterbi para decodificación
por máxima probabilidad de códigos convo3ucionaj.es en__la sec
ción.3.2, se asume tres condiciones imprácticas , las cuales\n : arbitraria longitud de las trayectorias , métricas exac_ )
stas y perfecta sincronización del códigoC-^ Todos estos tres
requerimientos pueden ser eliminados con una mínima pérdida
del rendimiento. Pero la más importante y la que tratare-
mos es la longitud arbitraria de las trayectorias .
Como inicialmente se describió, el algoritmo requiere que jj
na decisión final sobre la trayectoria del código .más proba
, r>os\c*-Y V
ble sea postergada hasta el fin del mensaje y cuando el dia_
grama de enrejado converge hacia un estado conocido {estado
cero) debido a la inserción de una "cola" de b(K-l) ceros
en el registro de desplazamiento del codificador. J
K = v 4- 1 3.14
Si el mensaje tiene una longitud de (B •- K + l)b bits, el
decodificador debe proveer un_registro je esa longitud pa-(K~ 1)
ra cada uno de los 2 estados. Un remedio obvio es li
mitar B, a algún número manejable, y se lo reduce al orden
de mil ó menos debido a la cola de b(K-l) ceros que se in-
serta para cada (B-K+l)b bits de datos. Esto tiene dos
desventajas. Primero, reduce la eficiencia por aumento de
la relación señal a ruido y el ancho de banda requerido; a
demás requiere de una interrupción periódica del flujo de
datos para insertar la cola de ceros, una desventaja común
de los códigos de bloque.
Para hacer el algoritmo de Viterbi una técnica de decodifi_
cación práctica, ciertos refinamientos en el algoritmo bá-
sico son deseables. Primero de todo forzar periódicamente
al codificador a un estado conocido usando secuencias de
ceros múltiplexadas en la trama de datos no es operacional_
mente deseable ni necesario.
Las 2 trayectorias decodificadas tienen una alta pro-
babilidad de que muy atrás del presente paso de decodifica_
ción, sean o tengan una trayectoria común. Todas lasb (K~112 trayectorias tienden a tener un tronco común con ra_
mas que eventualmente divergen en varios estados. Esto su_
giere que si los decodificadores almacenan bastante de la
historia de los bits de información pasados de cada una de
las 2 trayectorias, entonces los primeros bits de tcj
das las trayectorias deberían ser idénticos. La cantidad
de memoria que se requiere es u y es igual al número de es_
tados multiplicado por la longitud de la historia de los
- 80 -
bits almacenados por estado, h
K nbíK-1) , TCu ~ h . 2 3.15
Así sin tener que insertar la cola de ceros, podemos trun-
car la memoria de las trayectorias aproximadamente a unas
cinco longitudes de control y para esto usamos registros de
desplazamiento de longitud 5bK para cada estado. El valor
de h se lo encontró experimentalmente y como se dijo ante-
riormente es de 4 ó 5 veces la longitud de control, lo cual
es suficiente para que no exista degradación del sistema.
h 5bK 3.16
Con cada nuevo conjunto de b bits que ingresan a los regis-
tros de cada estado los b bits que entraron 5K ramas de
tiempo antes son eliminados, pero antes que esto ocurra el
decodificador hace una desición final sobre estos bits, es_
cogiendo los b bits del primer registro de desplazamiento,
o simplemente aceptando el contenido de un registro de un
estado arbitrario, en base a que, con alta probabilidad to_
das las trayectorias serán idénticas en este punto y antes.
El análisis de las pérdida-s en el rendimiento causada por
esta estrategia de truncaciones aparece muy difícil, pero
simulaciones indican una pérdida mínima cuando las trayecto
rias son truncadas -a más de cinco longitudes de control.
Una mejor pero más compleja estrategia de truncaciones, .es
comparar las funciones de probabilidad o métricas después
de cada nueva rama, no solo en grupos de 2 sino, además en_
tre todas las 2 trayectorias supervivientes, para de-
terminar la trayectoria superviviente más probable en el punb(K—11
to de truncación, entonces además de las 2 trayecto-
rias, nosotros escogemos la salida correspondiente a la más
alta métrica. Esta estrategia permite reducir la longitud
de la memoria a 4bK o menos en situaciones prácticas, como
se ha determinado en la simulación.
- 81 -
V o •
3.5 COMPARACIÓN CON OTROS ALGORITMOS
Los decodificadores de máxima probabilidad para códigos
convolucionales tienen un rendimiento muy superior a los
decodificadores de máxima probabilidad para códigos de
bloque, pero sufren de la misma desventaja ya que la com-
plejidad de cálculo crece exponéncialmente con la longitud
de control.
Existen dos tipos de decodificadores para códigos convolu-
cionales que son los más utilizados: el decodificados1 se_
cuencial y el decodificador Viterbi. (Ver apéndice 2).
Ambos decodificadores secuencial y Viterbi ofrecen alterna_
tivas prácticas a un ingeniero en comunicaciones en el di-
seño de un sistema eficiente de comunicaciones de alto ren
dimiénto. Los dos decodificadores tienen diferencias signi
ficantes, las cuales son dadas a continuación. Arabos son
capaces de muy altas velocidades de operación.
3.5.1 PROBABILIDAD DE ERROR
Se debe indicar que, la complejidad de los decodificadores
secuenciales es relativamente independiente de la longitud
de control (K), esta longitud típicamente se la hace grande
para proveer una muy pequeña probabilidad de un error no dei
tectado.
Usualmente las contribuciones más importantes de errores se
debe a la saturación del buffer de recepción de datos, debí
do a una sobrecarga de cálculos.TJn evento tal, causa una la_r
ga cadena de datos ruidosos hasta que el decodificador res-
tablezca la sincronización del código. Durante esta cadena
la probabilidad de bits errados es la de un canal primiti-2
vo, puede ser P = 3.10
82 -
Errores en un decodificador Viterbi ocurren en pegueras ca_
deñas de longitud 10 a 20. Sistemas que son sensibles a
largas cadenas de errores deben usar este tipo de decodif i_
cador. Sistemas que pueden tolerar ocacionalmente largas
cadenas, con una indicación de error, la cual es proveída
por el decodificador deben considerar decodificación secuen_
cial.
La curva de probabilidad de error versus Eb/No tiende a ser
mucho más rápida para un decodificador secuencialque para
un decodificador Viterbi debido a la diferencia de la lon-
gitud de control. Así la ventaja de los decodificadores
secuenciales se incrementa cuando son demandadas bajas pro_
habilidades de error.
3.5.2 RETARDO EN LA DECODIFICACION
Decodificadores secuenciales tienden a requerir largos bu-
ffers de por lo menos 200 bits y hasta algunos miles de
bits.
Decodificadores Viterbi, requieren de memorias para las tra_
yectorias de máximo 64 bits. De esta manera el retardo en
la decodificación difiere por sobre los dos órdenes de mag-
nitud.
3.5.3 LONGITUD DE COLA REQUERIDA PARA TERMINAR LAS SECUENCIAS
En las secciones anteriores habíamos hablado sobre una man_e
ra de terminar una secuencia de datos, lo cual puede ser e-
jecutado por la transmisión de una secuencia conocida de
longitud b(K-l) y de esta manera causar que el decodifica-
dos entre a un estado conocido.
Donde K es típicamente grande para decodificación secuencial
y la inserción de la cola puede causar una degradación s.igni
- 83 -
ficante en el rendimiento del sistema. La cola insertada
en los decodificadores Viterbi, causa una degradación peque
fia debido a que la longitud de control es corta.
3.5.4 OTRAS VELOCIDADES Y CUANTIZACION SUAVE
Decodificadores Viterbi para velocidades 1/3 y 8 niveles de
cuantización no son significativamente más complejos que o_
tros de velocidades 1/2 y 4 ó 2 niveles de cuantización.
, Los datos con cuantización suave son procesados en la sec_
cción de entrada y entonces incorporados en las ramas y esj_
tados de las métricas. No se requiere almacenamiento. Un
decodificador secuencial, en el otro caso, debe almacenar
algunas miles de ramas de los datos recibidos, cada rama
contiene log Q/Rn bits, para velocidades de Rn y Q niveles
de cuantización. Aunque existe la posibilidad de una ganan
cia de 0,4 dB por el uso de velocidad 1/3 antes que 1/2 y
una ganancia de 2 dB por el aso de cuantización suave, es-
tas ventajas son logradas en el decodificador secuencial en
base a un formidable almacenamiento y costo del proceso. En
general, entonces, decodificadores secuenciales de altas ve
locidades son limitados a velocidad de 1/2 y cuantización
dura.
Un segundo argumento contra la cuantización suave con decodi'
ficación secuencial envuelve a la probabilidad de sensibili-
dad de un buffer lleno de variaciones del canal.
El efecto sobre un decodificador Viterbi no es distinguible.
La degradación es mucho más pronunciada para decodificación
secuencial, donde la carga computacional es muy sensible a
los cambios en los parámetros del canal. Así, parte de los
2dB ganados por desición suave se perderán.
En la comparación entre decodificador secuencial y decodifi
- 84 -
cador Viterbi, queda clara que se debe considerar decisión
suave solo para el segundo. Bajo estas condiciones la veri
taja en la eficiencia de una longitud de control larga de
un decodificador secuencial se ve considerablemente dismi-
nuida. Consecuentemente el funcionamiento de un decodifi-
cador secuencial de velocidad 1/2, K = 41 no es mejor que
el de un decodificador Viterbi de longitud de control 5 a 7
a una probabilidad de error de Pe= 10 . El decodifica-—8
dor secuencial presenta una ventaja distinta a Pe = 10 ó
menos.
3.6 APLICACIONES
3.6.1 CÓDIGOS CONVOLUCIONALES
Es para los códigos convolucionales que este algoritmo fue
primero desarrollado y es naturalmente aguí donde ha tenido
su más grande impacto.
Los resultados teóricos más importante están contenidos en
el documento original de Viterbi (1967). Aquel presenta _u
na cómoda definición del conjunto de códigos de enrejado y
decodificación por máxima probabilidad a posterior! (MAP),
además la probabilidad de error se puede hacer que disminu-
ya exponencialmente con la longitud de control K, a todas
las velocidades de código R menores que la capacidad del
canal. Además la velocidad de decremento es considerable-
mente mayor que para códigos de bloque con una complejidad
de decodificación comparable.
Los canales utilizados para comunicaciones espaciales son
frecuentemente simulados en forma eficiente por canales con
ruido blanco gaussiano. El algoritmo de Viterbi es atract^
vo para estos canales, ya que da rendimientos superiores a
todos los otros esquemas de decodificación salvo la decodi_
ficación secuencial y esto para altas velocidades, con com
- 85 -
plejidad modesta y un considerable esfuerzo contra las va_
riaciones en los parámetros del canal. Un número de proto
tipos han sido probados, algunos del todo originales y o~
tros parecidos al desarrollado por Viterbi, pero es claro
que estos decodificadores llegarán a ser comunes en los si s
temas de comunicaciones espaciales.
El codificador convolucional de velocidad R = l/n< es un re_
gistro de desplazamiento de circuito exactamente'igual al
de la figura 3.2, donde las entradas u, son bits de infor-K
mación y las salidas y son bloques de n bits,K
y = (p-,,/ P-, , rp ,) donde cada uno de ellos esK J_K ¿K nK
un chequeador de paridad ( sumadores módulo-2) de algún sub
conjunto de los tí bits de información. La palabra código
es enviada a través del canal de memoria nula.
Un codificador de velocidad de código R = 1/2 con K ~ 3, u^
sado como ilustración se lo puede ver en la figura 2.1.
Los codificadores más generales existen; la velocidad puede
ser R = b/n, las entradas pueden ser no binarias, el codifi^
cador puede tener realimentaciones. En cada caso, el códi-
go puede ser generado por un proceso de registro de despla-
2amiento.
3.6.2 INTERFERENCIAS ENTRE-SIMBOLOS
La aplicación del algoritmo de Viterbi a la interferencia
entre símbolos es más reciente y el principal desarrollo
ha sido teórico.
En transmisiones digitales a través de canales analógicos,
encontramos frecuentemente la siguiente situación. La se-
cuencia de entrada u, discreta en el tiempo y en los valo
res entra en un modelo de registro de desplazamiento y es
usada para modular una forma de onda continua la cual es
- 86 -
transmitida a través del canal y entonces muestreada. I~
dealmente las muestras z deben ser iguales al corresponK
diente u , o alguna función simple de ella; en efecto, aK
pesar de todo, las muestras z son perturbadas por ruidoK
y por las entradas vecinas u'. . El efecto posterior es liaK
mado interferencia entre símbolos. Algunas veces la inte_r_
ferencia es introducida deliberadamente para propósitos de
modelado del espectro, también llamada respuesta parcial
del sistema. En cada caso los muéstreos de la salida pue-
den a menudo ser modelados como:
= yk + nk3.16
donde y, es una función determinística de un número finitok
de entradas, mejor dicho y = f (u , u } y n. esK K K—V K.
el ruido blanco gaussiano, y esto es precisamente la figu-
ra 3.2.
Para ser sin embargo más específico, dentro de la modu-
lación por amplitud de pulso (PAM) la secuencia de señal y
puede ser tomada como la convolución de la secuencia de eri
trada ü, con alguna secuencia de pulsos discretos (h , h
Yk = h. • u.i k-1 3.17
Si h. = O para i > K-l, entonces tenemos nuestro modelo dei
registro de desplazamiento. Una ilustración de tal modelo
en la cual la interferencia entre símbolos mide 3 unidades
de tiempo, aparece en la figura 3.10.
V
\, -/ h n -
Fig. 3.10Modelo de un sistema PAM
- 87 -
3.6.3 FSK CON FASE CONTINUA (CPFSK)
Este ejemplo no es citado por su importancia práctica, pero
presenta, como el algoritmo de Viterbi es de utilidad aun -
en las más redundantes situaciones.
En FSK, una secuencia de entrada u selecciona una de m fre-
cuencias (si u es m-ésimo) en cada intervalo de señal deK.
longitud T, si la serial transmitida es n ( t )
n(t) = eos { uj (U )t + G. } 3.18K K
kT t (k+l)T
donde cJ'(u ) es la frecuencia seleccionada por u , y 6 es*» K • K
algún ángulo de fase. esto es deseable por dos razones:
formación del espectro y simplicidad del modulador para que
la fase sea continua en el intervalo de transición; esto
es que
¿o + ek_-¡_ SH kT + módulo 2TT 3.19
Esto se llama FSK con fase continua. La continuidad de la
fase introduce la memoria dentro de los procesos de modula
ción. Un modelo de FSK con fase continua, radio de desvia
ción 1/2 y detección coherente con ruido blanco gaussiano
se presenta en la figura 3.11
GENERADOR
DE SEÑAL
Fig. 3.11Modelo de FEK con fase continua
3.6.4 RECONOCIMIENTO DE TEXTOS
Incluimos esta aplicación para indicar que el algoritmo de
Viterbi no se limita a la comunicación digital. Dentro de
los lectores del reconocedor óptico de caracteres (OCR),los
caracteres individuales son examinados y sus característi---.
cas más sobresalientes aisladas, además se hace desiciones
en el sentido de que letra u otro carácter se encuentra ce^r_
ca del lector. Los caracteres comunmente forman parte de
textos con lenguaje natural, se debe reconocer que esto de_
be ayudar "al lector a resolver ambigüedades.
Una manera de simular los textos es tratando un lenguaje na_
tural semejante (por ejemplo) al español como un proceso de
Markov discreto en el tiempo. Por ejemplo podernos suponer
que la probabilidad de ocurrencia de cada letra depende de
las v letras previas y calculamos las probabilidades de o-
currencia de las (v+1) combinaciones de letras.
Tales modelos no describen completamente la generación del
lenguaje natural, sin embargo cuentan para una gran parte
de las relaciones estadísticas dentro del lenguaje y son
fácilmente encontrados.
Con tal modelo, las letras del español son vistas como las
salidas de un proceso de Markov de m estados, donde m es
el número de caracteres distinguibles tal como 30 (29 letras
y espacio). . Si además asumimos la salida del OCR z es de-k
pendiente solo del correspondiente carácter de entrada y ,K
entonces la lectora OCR es un canal de memoria nula a cuya
salida podemos aplicar el algoritmo de Viterbi para sacar
provecho de la longitud del texto. Pig.3.12. Aquí la sali_
da del OCRf puede ser cualquiera, de los primitivos datos
sensadosr posiblemente una serie de ceros y unos y en conse;
cuencia las decisiones pueden ser hechas por el lector en
ausencia de reglas contextúales. Generalmente lo más pode_
roso será el algoritmo de Viterbi.
- 89 -
Proceso de
Markow
representando
al español
caracteres
ykO C R
salidasalgoritmo
deViterbí
textodecodif i
"
Fig. 3.12Reconocimiento de caracteres con el VA
3.6.5 OTROS
Se reconoce ciertas similaridades entre la grabación mag-
nética y canales con interferencia entre símbolos, Kobaya-
shi ha propuesto aplicar este algoritmo para la grabación
magnética digital.
Timor, tiene aplicado el algoritmo en un sistema secuencial
de sonidos, además han sugerido usar el algoritmo en el re-
conocimiento de diagramas sintáxicos.
CAPITULO IV
PROGRAMAS DIGITALES
4.1 EL SISTEMA DE COMUNICACIÓN
En el campo de la ingeniería de sistemas de comunicación,
la segunda mitad del siglo XX, ha sido destinada a ser reco_
nocida como la era de la evolución de la comunicación digi-
tal , de igual manera como lo fue la primera mitad, la era
de la evolución de la radio comunicación hasta el punto de
poder transmitir mensajes confiables como son la voz y la
imagen, .comunmente transmitidos en forma análoga1.
El desarrollo de las comunicaciones digitales tuvo su im-
pulso por las necesidades de tres tendencias principales:
1. Gran incremento en la demanda de transmisión de datos
de todas las formas, desde banco de datos de computado-'
ra a terminales, para una gran variedad de aplicaciones
y con cualquier variación en los requerimientos de seg_u
ridad.
2. Rápida evolución de los satélites estacionarios sincró-
nicos , los cuales facilitan las comunicaciones a lo an-
cho del mundo a muy altas velocidades, pero cuyos cos-
tos de lanzamiento y en consecuencia las limitaciones en
potencia y ancho de banda, imponen un significante inserí
tivo económico sobre el eficiente uso de los canales exis_
tentes.
3. Las redes de comunicaciones digitales que simultáneamente
sirven a diferentes usuarios, con una variedad de velocidad
de transmisión y requerimientos, en el cual un simple y e-
ficiente multiplexado de los datos y un acceso múltiple a
los canales tienen un interés económico primario.
Estos requerimientos y la tecnología electrónica de estado
sólido necesita el desarrollo de un sistema de comunicación
digital eficiente, flexible y libre de errores lo cual se de
- 91 -
sarrolló simultáneamente y en forma paralela a lo largo del
tercer cuarto de este siglo.
El sistema de comunicación es mejor descrito en términos de
diagrama de bloques, el cual lo presentamos en la figura 4.1
La fuente es modelada como un generador aleatorio de datos.
Secuencia de
entrada digital
Secuencia de
salida digital
Fuente Codificador
de fuente
i
L ~ _-
Decodificad .
de fuenteDestino
Fig. 4.1Sistema de comunicación digital
El codificador de fuente funciona como el asignador de una
correspondencia entre la salida de la fuente y una secuen-
cia digital, (usualmente binaria), si la fuente misma gene-
ra una salida digital, la correspondencia que realiza el
codificador puede ser uno a uno.
Cuando la fuente es analógica, esta no puede ser presenta-
da perfectamente por una secuencia digital por cuanto la
salida tiene un infinito número de valores y así obviamen_
te no puede haber una asignación uno a uno con un conjuri
to de valores discretos. Lo mejor que gue puede hacer en
la asignación de una fuente analógica a una secuencia di-
gital produce alguna distorsión en el destino, luego que
el decodificador de fuente opera, el cual en este caso rea_
liza la asignación inversa en forma aproximada. Si el co-
dificador de fuente realiza una asignación uno a uno, el
decodificador puede funcionar simplemente a la inversa y
así entregar en el destino el mismo dato que fue generado
en la fuente.
- 92
El objeto de la presente tesis es simular un enlace de co-
municaciones, proceso que se implementará en una minicompj¿
tadora. Los elementos que componen estos sistemas pueden
ser presentados esquemáticamente en la figura 4.2 ,
Generador
de datos
pseudoaleat.
detector
de nivel
Decodif icad.
viterbi y
Contador
de errores
contador de
errores
Fig. 4.2Diagramas de bloques de la simulación
de un canal
1. Generador de datos pseudo-aleatorio.
2. Codificador convolucional de longitudes de control
K=3,4,5 y velocidades de código 1/2 , 1/3.
3. Canal con ruido blanco gaussiano,
a. Generador de ruido blanco gaussiano.
b. Detector de nivel, cuantizador de 2 y 8 niveles
c. Comparador y contador de errores del canal.
4. Decodificador Viterbi y contador de errores.
- 93 -
Todos estos elementos han sido simulados por medio de un
lenguaje de programación de alto nivel, de propósito gene
ral, debiéndose aclarar que existen lenguajes especializa,
dos para simulación, al usar un lenguaje de propósito ge-
neral el programa se volverá más lento, debido a la can tí
dad de instrucciones que son necesarias para lograr el ob
jetivo deseado.
Con el objeto de que sea fácilmente .entendida la simula-
ción, en las siguientes secciones cada el-emento de esta ha
sido explicado en forma separada pero formando parte de un
solo programa. El diagrama de flujo utilizado en su dispo
sición es similar al diagrama de bloque de la figura 4.2.
©
I N I C I O
TÍTULOS
Ingreso de variables
GENERADOR DE DATOS
CODIFICADOR
CANAL
©
- 94 -
DECODIFICADOR
NO
SI
SALIDA
F I N
Fig. 4.3
Diagrama de flujo general de la simulación
de enlaces de comunicación
Se debe anotar que básicamente este es el diagrama de flu-
jo de las simulaciones, pero que debido a las car acteríst^L
cas del decodificador ha sido necesario modificarlo, como
se presenta en la figura 4.16; en donde el programa cen-''
te al es el decodificador y,el generador de datos, el cod.i
ficadorr el canal y el cálculo de las distancias de Hamming
constituyen una subrutina la cual es llamada de acuerdo a
las necesidades del programa central.
Otras características de lia simulación son: Para cada tipo
de código se realiza un programa independiente el cual con_
tiene todos los elementos del sistema de comunicaciones;
los decodificadores se diferencian entre sí en los prime-
ros períodos de tiempo.
4 - 2 ENTRADA DE DATOS (GENERADOR PSEUDO-ALEATORIO)
Este generador de datos como ya se dijo con anterioridad
en lo posible formará parte de un programa que simule to-
talmente el sistema de comunicaciones, pero caso contrario
puede formar un solo programa con el codificador y el ca-
nal, o cualquier arreglo de ellos, dependiendo de la capa-
cidad de la memoria RAM de la minicomputadora.
Con este fin la generación de datos la hacemos de la forma
más simple posible, y por esto usamos la instrucción RND(x)
con la cual obtenemos un número aleatorio entre cero y uno,
a continuación con un detector de nivel obtenemos la salida
en forma binaria {O ó 1) .
El diagrama de flujo de este elemento del sistema se lo tie_
ne en la figura 4.4.
I N I C I O
TÍTULOS
Ingreso de variables
Generación del
dato RND (x)
- 96 -
4.3
Detector del nivel
NO
CODIFICADOR
CODIFICADOR
CANAL
DECODIFICADOR
SI
SALIDA
FIN
Fig. 4.4
El codificador de un código convolucional como se enunció
en capítulos anteriores es un circuito lineal como se ilu_s_
tra en la figura 4.5.
K estados
•+) n sumadoresmódulo 2
símbolos binarios codific
Fig. 4.5Codificador convolucional
- 9-7 -
En consecuencia un código convolucional binario de veloci-
dad R ~ 1/n y de longitud de control K, se define como la
salida de un circuito lineal con alimentación hacia adelan_
te de una entrada a n~salidas.
El codificador consiste en un registro de desplazamiento de
K estados y n sumadores módulo-2. Cada uno de éstos es co-
nectado a ciertos estados del registro. El diagrama de co-
nexiones especifica el tipo de código. La matriz generado-
ra G determina el tipo de conexiones a realizarse.
Los bits de información son desplazados dentro del registro
b bits a un mismo tiempo. Luego de ésto, las salidas de los
sumadores módulo-2 son muestreadas secuencialmente, consti-
tuyendo los símbolos del código. Genera'ndosé n símbolos bi-
narios para cada conjunto de b bits de información. La ve-
locidad de código R es b/n (bits de información por símbo-
los código), donde b^n. El estado del codificador conven
lucional es el contenido de los K - 1 estados del registro
de desplazamiento.
En primer lugar asumimos que los K estados del registro de
desplazamiento inicialmente tienen valor cero, otra consi-
deración; las palabras código son calculadas luego de que
ha sido introducido en el registro de desplazamiento un sím
bolo binario, en consecuencia b = 1. Usaremos palabras có-
digo de dos y tres bits las cuales dan una velocidad de có
digo R = 1/2/ y 1/3 respectivamente.
A fin de realizar simulaciones con diversos tipos de códi-
gos, la longitud de control o número de estados del regis-
tro de desplazamiento variará entre los valores de K = 3 a
K = 5.
En la figura 4.3 se da los diagramas de conexiones de los
diversos codificadores a simularse.
Entrada de datos K^_secuencia codificada
Fig. 4.6.a K=3 b=l n=2
Entrada de datos secuencia codificada
Fig. 4.6.b K^4 b=l n=2
Entrada Salida
Fig. 4.6.C K=5 n=2
- .99 -
secuencia de entrada secuencia codificada
Fig, 4.6.a K= 3 b«l n=3
secuencia de entrada.V secuencia codificada
Fig. 4.6. e K=4 b=l n=3
secuencia de entradasecuencia codificada
Fig. 4.6.f K=5 b-1 n=3
- 100 -
Cada uno de estos codificadores será un programa o parte
de algún otro. El diagrama de flujo es básicamente el mis_
rno para todos, por lo que el.diagrama de la figura 4.7 es
común para todos.
I N I C I O
Ingresó de variables
Generación de datos
Simulación de regis-
tro de desplazamiento
Sumadores
módulo-2
Canal con ruido
Decodif icador
NO
- 101 -
4.4
SALIDA
FIN
Fig. 4.7
Diagrama de flujo de los codificadores
EL CANAL
Los satélites y los canales de comunicación espacial son -
candidatos más probables debido al costo del uso de codifi_
cación para aumentar la eficiencia de las comunicaciones.
Las principales perturbaciones que se suman a estos canales
usualmente pueden ser simulados con gran precisión por rui-
do gaussiano, el cual debe ser "blanco" para que exista la
esencial independencia de un bit al siguiente.
La eficiencia de un sistema de comunicaciones es usualmen-
te medido por la razón de la energía recibida por bit al -
ruido (Eb/N0}, la que se requiere para ejecutar un rango -
específico de bits errados. La relación Eb/No se puede ex-
presar en términos de la potencia de la señal modulante por
la relación:
Eb4.1
donde R es la velocidad de información en bits por segundo.
El objetivo del programa de canal es sumar a la señal trans_
mitida ruido blanco gaussiano. Además la señal con ruido -
es cuantizada, ya sea en dos estados si es utilizada la de-
codificación dura o en ocho estados si utilizamos decodifi-
- 102 -
cacion suave.
4.4.1 DISTRIBUCIÓN GAUSSIANA. O NORMAL
La variable aleatoria x, que toma los valores reales
- co -¿ x *z oo , tiene una distribución normal o gaussiana ,con
un valor esperado u y desviación estándar <f , si su función
de probabilidad está dada por:
i _ 1 / x~u \f (x) = — e 2 l 3 4.2
Si los valores de u y &1 son cero y uno respectivamente,la
función recibe el nombre de distribución normal estándar.
Cualquier distribución normal puede convertise a la forma
estándar, haciendo la sustitución,
4.3
Así su función de distribución será2
f(x) =~ e"^El valor medio y la varianza son
E(x} = u 4.4
V(x) = (f 4.5
Esta distribución de probabilidad, también cumple con la
propiedad de que
íf (x) dx = 1
En la presente tesis se usará el método del límite central
para generar ruido blanco gaussiano.
4.4.2 MÉTODO DEL LIMITE CENTRAL
Este método utiliza el teorema del límite central el cual
establece:
103 -
Sea x , x,, ......... x ........ una sucesión de varia1 2 n
bles aleatorias dependientes con E {x. ) = u. y2
V ( x . ) = CJÍ , i - 1, 2, ...... Sea x = x + x +. .1 1 j. z
.... + x . Luego bajo ciertas condiciones generales
- .1 u.
—-—— 4.6
tiene aproximadamente la distribución normal estándar.
Si las variables aleatorias independientes x. se reemplazan
por los números aleatorios r., generados en el intervalo
(0,1}, se tiene
nx = r. 4.7
y u. = n-ui í i
v „ „ j*_¿, <S1 - n <r
) = 1/2 ; c
Reemplazando en 'la ecuación 4.6 se tiene que
2en donde u = E { r . ) = 1/2 ; <f = var ( r . } = 1/2
r . - n- u
4.10
Así para generar los valores de las variables en la compu-
tadora, se debe sumar un número k de var iableas aleatorias
independientes, distribuidas uniformemente en (0,1); con
lo que las ecuaciones 4.8 y 4.9 serán
n-u = ~- 4.11
— 4.12
por lo tanto
- 104 -
y =r • kL r • - Tni i 2
12
4.13
Igualando las ecuaciones 4,3 y 4.13 se tiene
x =12 ,1/2 k
ri - 24.14
donde x es la valor de la variable aleatoria que se va a g_e
nerar, con valor medio u y variánza G* .
El valor de k, dependerá del objetivo de la generación de
los valores. Si se requiere el menor tiempo de cómputo,un
valor apropiado sería k = 12, de esta manera se evita rea-
lizar una división y una raíz cuadrada; los valores obte-
nidos se limitan entre +6 y -6. Si se desea mayor preci-
sión en los valores generados, se sebera usar un valor de
k mayor.,f (x)
-2 x
Fig. 4.8Función de densidad de probabilidad de la distribución
normal o gaussiana
4.4.3 CUANTIZACION
Normalmente las entradas de un canal con ruido blanco gau-
ssiano son elementos de un conjunto finito de valores (bi-
105 -
nario), y sus salidas generalmente son variables continuas
gaussianas y en consecuencia pueden ser cuantizadas en un
número finito de niveles.
El funcionamiento de una versión cuantizada de un decodif^
cador es más difícil de analizar en forma precisa. De otro
lado la cuantización de las salidas a uno de los j niveles
simplemente transforma el canal con ruido blanco gaussiano
a un canal con un alfabeto de entrada y un alfabeto de sa-
lida finito. Un ejemplo de este tipo de canal con su sa-
lida cuantizada a ocho niveles se presenta en la fig. 4.9
salida
bl*
b2
b3
b4
-3a -2a—i— -a
2a 3ab5
bG
-f-bV
b8
Fíg. 4.9Cuantizador uniforme de 8 niveles
Denotando la entrada binaria por (a , a } donde a = - a
y el alfabeto de salida por (b , b , ,b ).1 2 8
La amplitud del ruido es determinada por la relación Eb/No
en decibelios, el método utilizado para generar las varia-
bles gaussianas es el explicado anteriormente con un valor
de k = 12, u = O y cr' - 1. Otra característica de este
programa es la cuantización a la salida del canal de acuer
do al tipo de decodificación a usarse, dos niveles si es -
djjra y_ochp si_e.s_sua.ve.
- 106 -
Se tiene un indicador del número de errores introducidos
por el canal, debido a la suma del ruido blanco gaussiano
El diagrama de flujo de este programa se lo da fig.4.10.
I N I C I O
Ingreso de variables
GENERACIÓN DE DATOS
CODIFICADOR
Adición a los bitscodificados de rui_do blanco gaussiano
Cuantizador de
niveles
Cuantizador de 2
niveles
- 107 -
Contador de errores
DECODIPICADOR
Fíg. 4.10
Diagrama de flujo del canal
- 108 -
I N I C I O
C = O
I = 1 TQ 12
C = C + RND(l)
X = V * {C-6}
RETURN
Fig. 4.11
Diagrama de flujo de la subrutina parala generación de ruido blanco gaussiano
Las variable usadas tienen el siguiente significado
X = Amplitud del ruido gaussiano generado.
V = Valor efectivo de la tensión del ruido.
C = Sumador auxiliar.
-109 -
4.4.4 TASA DE BITS ERRADOS (BER)
En sistemas de comunicaciones se generan varios tipos de
ruidos que causan errores de bits. Existen por lo general
ruidos impulsivos que se producen a momentos discretos y
ruidos periódicos que se repiten a periodos fijos. Los que
causan mayor problema son ruidos cuya generación es constar!
te y cuya tensión eléctrica varia al azar. El ruido fcermi^
co es representativo de ellos, Este ruido aleatorio y con
el cual tratamos es el denominado ruido gaussiano..
Como se vio en la sección 4.4.1 la función de densidad de
probabilidad de la distribución gaussiana o normal está re_
presentada en la ecuación 4.2, ahora para que esta expre-
sión nos de la distribución de la tensión del ruido, consi
deramos que el valor medio u - O y en consecuencia la ecua
ción 2.4 la podemos reescribir.
1 2,, , _ _1 exp( ~ ~ ) 4.15f X) - 2 „-•
Donde cf representa el valor efectivo de la tensión de rui.
do y o-"2 representa la potencia efectiva del ruido (valor
cuadrático medio) .
A continuación la función de distribución de probabilidad
P (x iV) que representa la probabilidad de que la tensión
de ruido x cae bajo el nivel V se puede lograr integrando
fíx) de - co hasta V.
1 -i- erf (— ) I 4.16P(X-íV) = f (X) dX =
2 f 2erf (z) = =- / exp {-t )dt 4.17
« TT ./„
En donde, erf (z) es la función de error. La función mos-
trada en la siguiente ecuación se llama función complemen-
- 110 -
taria de error.
erfc (x) = 1 - erf(2) 4.18
En transmisión analógica el parámetro importante es la po-
tencia media del ruido «''"que está contenido en la bandn de
la señal para evaluar la calidad de transmisión, pero en
la transmisión digital la exactitud de la decisión entre
"1" y I10" depende de la relación de magnitud entre las tari
sienes instantáneas de impulso y ruido en el momento de la
decisión.
El tren de impulsos unipolares que se simula se transmite
(las tensiones de los impulsos son: A y O, A^O, en nuestro
caso A = 1) y el de impulso.s bipolares (las tensiones son
A/2 y ™A/2)ambos sin retorno a cero (NRZ), estos dos códi-
gos se pueden considerar iguales excepto por el nivel de
decisión (para el unipolar-..A/2, y para el bipolar ...0}
en consecuencia el BER se lo puede deducir para cualquiera
de los dos lo haremos sobre el unipolar.
A'
A
"2
0
_ "
,iii1i
• -iii1i|i
ii1IiJiii\
1 o 1 1Fíg.4.12.a
Tren de impulsos unipolares
O 1 O 1 1 O O
Fig. 4.12.bImpulsos deformados debido al ancho de banda
-111 -
La probabilidad (Pem) de que la tensión de un impulso A se
tome erróneamente por cero (0) debido al ruido,, es igual a
la probabilidad de que la tensión del ruido sea inferior a
-A/2 (P (x ~*z -A/2) ) , considerando que el nivel de decisión
es A/2.
Pem = 1- erf (-A
2 e/
— erfc (2 _ r
4.192 <f
Igualmente la probabilidad (Pes) de que la tensión de un im
pulso cero se tome por A erróneamente debido al ruido,es i-
gual a la probabilidad de que la tensión del ruido suba por
encima de A/2.
Pes = 1~ 1-erf (-A
2 J2 a*
\o (—± - Pem 4.20
Por lo tanto considerando que "O" y "1" se generan igualmeri
te, la tasa media de bits errados Pe se expresa por
Pe = — (Pem Pes) - — erfc (-A
2/2.0-4.21
En la figura 4.13 se expresa los significados de las ecuacip_
nes 4.19 y 4.20, f (x) y f (x) indican la densidad de pro-
babilidad de la tensión de ruido, y las áreas de las partes
sombreadas corresponden a Pes y Pem respectivamente. De la e_
cuacion 4.21 se sabe que la BER se decide por la relación
entre la tensión de cresta del impulso A y la tensión efecti
va del ruido
• - 112 -
Tensión
de
Impulsos
Tensión
de ruido
Gaussiano
(x)
Tensión
de ruido
Gaussiano
Fig. 4.13Tensiones de señal, ruido gaussiano ylímites en que ocurren errores
Por lo general la BER se representa por la función de la r
lación entre la potencia de la señal y la del ruido (S/N).En
este caso la potencia del ruido se expresa mediante el valor
efectivo o"2 y la de la señal se expresa por la potencia co
rrespondiente a la tensión de cresta A en lugar del valor e-
fectivo.
En la figura 4.14 se indica la curva de Pe, siendo A/2 \¡2 a*
expresado en dB el parámetro del eje horizontal.
4.4.5 RELACIÓN SEÑAL A RUIDO
Por definición la relación señal a ruido es la. división entre
la potencia media de una onda Eft) y la potencia del ruido <<
S/N=4.22
Donde la potencia media se define:
_ 113 -
X
lo-1— 2
Tasa 10
io~3errores in~4
Pe -510
io-6lo'7-8
10
" \2 4 6 8 1 0 1 2
S/N (dB)6 8 10 12 14 16 18
Fig. 4.14 Tasa de errores de impulsos u
P = lim ~ / E2 (t) dtÍ, T— ~ -L J o
A20 log -r - W logB
4.23
Para el caso nuestro de señal unipolar donde,
E (t) *O t
T/2 t
T/2
T
La potencia media es igual A /2, y en consecuencia la reía
ción señal a ruido será igual a:
S/N =A'
4. 24
Esta relación generalmente se le expresa en dB,
S/N (dB) = 20 logA
- 10 log 2 4. 25
Para nuestra simulación de la relación señal a ruido dese_a
mos obtener el valor efectivo de la tensión del ruido o1
el ciual lo podernos obtener de la ecuación 4.25.
- 114 -
4.5 DECODIFICACION Y SALIDA DE DATOS
4.5.1 EL ALGORITMO BÁSICO
Un decodificador primitivo de máxima probabilidad debe cal
cular las probabilidades de los datos recibidos para dete£
minar la secuencia correcta y esto lo realiza sobre todas
las trayectorias a través del diagrama de enrejado, Desa-
fortunadamente el número de éstas para una secuencia de
información de L bits es 2 ; este decodificador no es
práctico a medida que L se incrementa.
00
01
10
11
Con el decodificador de Viterbi es posible una gran reduc-
ción en el esfuerzo requerido para la decodificación por
máxima probabilidad, debido a las ventajas que presenta la
estructura especial, del diagrama de enrejado.. Si nos fija_
mos en el gráfico 4.15 el cual es del ejemplo que nos sir_
ve de base, observamos que el diagrama de enrejado asume u
na estructura periódica a partir del tercer nodo (en-gene-
ral, a partir del nodo K). Después de este punto, a cada
uno de los cuatro estados se puede llegar partiendo de dos
estados anteriores. En el nodo 3 por ejemplo, llegan ocho
trayectorias y a cada estado van dos . El estado 00 al no
do 3, posee dos trayectorias que ingresan y que correspon-
den a las secuencias de información 000 y 100. Estas tra-
yectorias se dice divergen en el estado 00 en el nodo O y
se vuelven a encontrar en el estado 00 nodo 3. Las trayec_
torias se encuentran después de dos bits de información i-
dénticos y consecutivos ( en general b (K-l) ) .a - ', T-
K=0 1 2 3 4 51
Fig. 4.15
115 -
El decodificador de Viterbi calcula la probabilidad de ca-
da una de las 2 trayec-torias que ingresan a un estado da-
do {b = 1) y luego de compararlas elimina a todas excepto
la trayectoria más probable que llegue a dicho estado. Es-
to se realiza para cada uno de los 2 * > estados existen-
tes en un diagrama de enrejado; después de cada operación
de decodificación solo una trayectoria líder permanece en
cada estado denominada "superviviente". El decodificador
entonces procede al siguiente nodo en el diagrama de enre_
jado y el proceso se repite.
El decodificador así escrito, retiene un conjunto de 2
trayectorias 'después de cada paso de decodificación.
4.5.2 MEMORIA DE LAS TRAYECTORIAS
Las 2 trayectorias decodificadas, tienen una alta pro_
babilidad de que muy atrás del presente paso de decodífica-
ción tengan una trayectoria común.
Todas las 2 trayectorias tienden a tener un tronco común
con ramas que eventualmente divergen en varios estados. Esto
indica que si los decodificadores almacenen bastante de la -
historia de los bits de información pasados de cada una de
las trayectorias, entonces los primeros bits de éstas debe_
rían ser idénticos.
Experimentaimente se ha determinado que la longitud de la
historia requerida es de 4 ó 5 veces la longitud de con-
• trol, en la presente simulación se podrá variar la longi_
tud de la historia requerida, aunque lo haremos hasta un
máximo de 32 bits.
La decodificación en consecuencia tiene un retraso igual a
la longitud de la historia de las trayectorias; si por e-
jemplo esta longitud es de 32, al ingresar los bits en el
nodo 33 calculamos todas las distanciasde las trayectorias
- 116 -
y encontramos los supervivientes en cada estado, a continua_
ción escogemos el superviviente que tiene el menor valor, y
en la historia de su trayectoria, escogemos el bit que in-
gresó 32 unidades de tiempo atrás, luego el proceso se re_
pite en el nodo siguiente (34).
4.5.3 ESTADO Y CALCULO DE LAS RAMAS
Las comparaciones de las trayectorias se hacen para aque-
llas que entran a cada estado y requieren del cálculo de
la probabilidad de cada trayectoria envuelta en una secuen_
cía particular de información recibida.
El cálculo de la probabilidad se lo hace en forma logarít-
mica, con lo cual es más sencillo su procesamiento, cuando
una métrica se extiende en una rama, la métrica de la nue-
va trayectoria es la suma de la distancia calculada para la
rama y la métrica del superviviente anterior. Para facili
tar estos cálculos la métrica del superviviente de cada es_
tado debe ser almacenado y se la denomina estado de la mé-
trica.
La operación de un decodificador de Viterbi puede ser resii
mida como sigue, tomando el ejemplo de K=3.
1. La métrica para dos trayectorias que ingresan al estado
00, es calculada por la suma del estado de la métrica , o
de los estados 00 y 01 con Ias4istañciasde las ramas sii
perior e inferior que entran al estado 00, respectiva- '
mente.
2. La menor de las dos nuevas métricas es almacenada como
el nuevo estado de la métrica del estado 00. La nueva
historia de la trayectoria para el estado 00, es la his_
toria de la trayectoria del estado ganador r historia:
aumentada en un O ó 1 dependiendo de cual estado 00 ó
117 -
01 ganó.
3,. Este proceso de sumar-comparar-seleccionar es realizado
para las trayectorias que ingresan a los otros tres es-
tados.
4. Los bits de la trayectoria, menor valor de métrica for-
man la salida del decodificador, se realiza la trunca-
ción y se escoge la trayectoria que tiene menor valor
de métrica.
4.5.4 CONSIDERACIONES ESPECIALES
Debemos considerar en primer lugar que el decodificador de
be reconocer el estado en el cual el codificador comenzó,
antes de empezar la decodificación. Asumimos que la deco-
dificación comienza en el estado 00.
Es necesario poner una cola de ceros luego de acabado el
mensaje, ya que existe un retardo en la decodificación i-
gual a la longitud de la historia de las trayectorias.
I N I C I O
Dimensionamiento y
asignación de valores
a las variables
Número de bits a
generarse ?
- 118 -
A
Cálculo de las métricasy almacenamiento de lahistoria de las trayec-torias para los primerosperíodos de tiempo.El número de períodos de_pende de la longitud decontrol.
K = K 4- 1
T Í T U L O S
Generador de datosCodificadorCanalDistancia de Hamming
CALCULO DE LOS
SUPERVIVIENTES
NO
longitud de la
istoria
-119 -
Escoja la trayectoriacon el menor valor demétrica.
Obtención del bit de-codificado de la tra-yectoria escogida.
Contador deerrores
Eliminación del bitdecodificado de lahistoria de las tra_yectorias.
- 120 -
T Í T U L O S
GeneradorCodificadorCanalDist.Hamnúng
Inyección de la
cola de ceros
CALCULO DE LOS
SUPERVIVIENTES
SI
Opciones a
escoger
Cargar en RAMel programadeseado
L9
es igual a
la longitud de la
.historia
SI
Impresión de
sultados
NO
F I N
Fig. 4.16
Diagrama de flujo del decodificador
L9, K contadores
- 121 -
I N I C I O
Suma de las distan-cias de Hamming a lasmétricas de los esta_dos.
Elección del supervi-viente de cada estado
Cálculo de la nuevamétrica en cada es-tado
R E T U R N
Pig. 4.17
Diagrama de flujo del cálculo de supervivientes
- 122
4.6 MANUAL DE USO
4.6.1 CARACTERÍSTICAS DE LA MICROCOMPUTADORA
La simulación será realizada en un mi'crocomputador- TEKTRONIX
4051, el lenguaje de programación es el BASIC,.además de una
serie de instrucciones propias de este sistema computacional
que sirve para manejar los periféricos disponibles.
La unidad central del proceso de este sistema tiene una área
de memoria real de 30 Kbyte. Con el fin de aprovechar mejor
el área de memoria disponible, se hace necesario que solamen_
te el programa que se esté ejecutando esté 'en memoria real -
(además de un corto programa de control permamentemente en e
lia), los demás deben estar almacenados en la unidad de dis-
cos hasta que su uso sea requerido por el proceso establecí
do de antemano; el momento que un programa terminé de ejecu-
tarse, este debe ser borrado de la memoria y en su lugar de-
berá ponerse el siguiente programa a ser corrido.
4.6.2 MENÚ
Cuando una persona desee usar el programa deberá seguir una
serie'de instrucciones dadas por este manual de uso en la
sección 4..6.4, y a continuación irán saliendo una serie de
leyendas o instrucciones en la pantalla las cuales deberá
seguir, mencionaremos las principales:
La primera decisión que se presentará para escoger es:
1. DEMOSTRACIÓN DE LOS CODIFICADORES
2. DEMOSTRACIÓN DE LOS DECODIFICADORES
3. SIMULACIÓN DE ENLACES DE COMUNICACIÓN
4. PRUEBAS
- 123 -
A continuación con todas las opciones anter iores, se debe es_
coger el tipo de código que se usará;
CÓDIGO A UTILIZARSE
1.2.
3.
4,
5.
6.
K =
K =
K =
K =
K =
K -
3
4
5
3
4
5
R =
R =
R =
R =
R -
R =
1/2
1/2
1/2
1/3
1/3
1/3
Si escogemos realizar la primera opción, el programa corres-
pondiente es cargado en este punto y funcionará-:oon el tipo
de código escogido. Con las demás opciones se debe ingresar
ciertas características como son:
TIPO DE DECODIPICACION (Suave o Dura):
LONGITUD DE LAS TRAYECTORIAS (Max 32):
Con las opciones 3 y 4 aparece ademá's:
RELACIÓN SEÑAL A RUIDO (dB)
DESEA IMPRESIÓN (s/n)
La decodificación suave significa que la salida del receptor
se halla cuantizada a 8 niveles y decodificación dura a 2 ni_
veles.
La longitud de las trayectorias indica el retardo en la de-
codificación , es decir la longitud del registro con la his_
toria de una trayectoria.
La relación señal a ruido se la utiliza en la simulación del
canal con ruido blanco gaussiano y se la ingresa en dB,
El programa elegido es cargado en la memoria RAM y corrido,
- 124 -
En las demostraciones, es el operador el que ingresa, las ya^
riables sean estas binarias o decimales (cuando la salida
está cuantizada) el objetivo de estas demostraciones es,que
el funcionamiento del codificador y decodificador sean fá-
cilmente entendidos.
La simulación de enlaces de comunicación da una visión glo-
bal de todo el proceso de comunicaciones presentando el fun.
cionamiento de la simulación en cada elemento del enlace.
Las pruebas de simulación tienen por objeto reducir el tiem
po de utilización de la mi'crocomputadora y para lo cual se
evita la presentación de cualquier dato del funcionamiento
presentándose solamente el contador de bits.
4.6.3 DISTRIBUCIÓN GENERAL DE LOS PROGRAMAS EN LA MEMORIA
Tratemos en primer lugar de entender como es el funcionamien_
to del programa. Tenemos un programa PRINCIPAL que siempre
está en RAM y una serie de programas que están almacenados
en disco y se carga a la RAM de acuerdo a io que .nosotros
deseemos simular o demostrar.
Con esta forma de trabajo tenemos la ventaja de ampliar la
capacidad de memoria de acuerdo a nuestros requerimientos,
aunque el programa en general se vuelve mucho más lento por
que ñay que esperar que este se cargue en la RAM para luego
hacerlo correr.
A continuación en la figura 4.18 tenemos la distribución ge
neral de los programas en la memoria y en la figura 4.19 el
diagrama de flujo del programa PRINCIPAL.
Programa
PRINCIPAL
Memoria libre
para almacenar
el programa a
ser corrido Fig. 4.18
Demostración de los codificadores
Demostración del decodificador K~3 R=l/2
Demostración del decodificador K=4
R=l/2
Demostración del decodificador K=5
R=l/2
D_emostraeión_del decodjj:icador K~3
R-l/3
Demostración del decodificador K=4 R-l/3
Demostración del decodificador K=5 R=l/3
Simulación de enlaces de comunicación K=3 R=l/2
Simulación de enlaces de comunicación K=4. R=l/2
Simulación de enlaces de comunicación K=5 R=l/2
Simulación de enlaces de comunicación K=3
R-l/3
Simulación de enlaces de comunicación K=4
Simulación de enlaces de comunicación K=5
R=l/3
Prueba
dela
simulación
K=3
R=l/2
Prueba
de
lasimulación
K=4
R=l/2
Prueba
de
lasimulación
K=5
R=l/2
Prueba
dela
simulación
K=3
R=l/3
Prueba
dela
simulación
K=4
R=l/3
Pc_ueba
de la simulación K=5 R~l/3
H to Ln
- 126 -
I N I C I O
Identificación de
programa
Preguntar que pro-
grama desea correr
Preguntar las carac_
terísticas del pro-grama
no
Cargar programa de_
seado a la RAM
Fíg. 4.19
Diagrama de flujo del programa PRINCIPAL
- 127 -
4.6.4 MODO DE INICIALIZACION DEL PROGRAMA
Las instrucciones a seguir para poder entrar en el sistema de
el programa son:
a. Prenda . el -sistema e inserte el disco en cualquiera de -
las unidades disponibles.
b. Inicialice el sistema del reloj del microcomputador con la
instrucción
CALL "SETTIM"r "DD - MMM - AA to HH:MM;SS"
donde DD : Día
MMM: Iniciales del mes en Inglés
AA : Año
HH : Hora
MM : Minutos
S S : S egundos Cope i'ona 1)
c. Cargue el disco mediante la instrucción:
CALL "MOUNT" , # , B$
donde # :. Unidad donde está el disco (0,1 ó 2)
B$ : Cualquier variable alfanumérica
d. Inicialice la unidad donde está el disco con la instruc-
ción :
UNIT #
e. Cargar a la memoria del computador el programa principal
mediante la ins-trucción:
OLD "PRINCIPAL1'
f. Correr el programa mediante la instrucción RUN.
- 128 -
g. Siendo el sistema computacional iterativo, se mantiene u-
• na comunicación conversacional entre el computador- y el u_
suario durante todo el proceso, cada vez que sea necesa-
rio ingresar datos al computador se debe presionar inmedia_
tamente la tecla RETURN.
h. Si por cualquier motivo desea interrumpir la ejecución del
programa puede hacerlo presionando dos veces la tecla BREAK
i. Después de haber interrumpido la ejecución de un programa
se puede tener acceso al mismo presionando la tecla defin_i_
ble 1, que muestra las opciones disponibles.
CAPITULO V
RESULTADOS, CONCLUSIONES Y RECOMENDACIONES
5.1 /RESULTADOS DE LA SIMULACIÓN
Viberbi dedujo el límite superior de la probabilidad de bits
errados para un decodificador basándose en la función de
transferencia de los códigos convolucionales. Estos lími-
tes son casi exactos para canales con ruido blanco gaussija-4
no con probabilidades de error menores de 10 . Tomando
en cuenta el corto tiempo con el que se dispone en la mí-
crocomputadora se procedió a evaluar este límite en un ran
go de la relación señal a ruido (Eb/N0) para una variedad
de códigos. Este límite ha sido calculado por Heller y Ja_
cobs y se lo presenta para su comparación.
El límite superior provee también datos de funcionamiento
a muy bajos promedios de bits errados, donde los resulta-
dos de la simulación no están disponibles debido al excesjl
vo tiempo que se requiere en la computadora. En las comp_a
raciones entre éste límite y los resultados de la simula-
ción, es importante tener en cuenta que éste ha sido ded_u
cido para una salida cuantizada en un infinito número de
niveles.
En la figura 5.1.a presentamos la probabilidad de error
(Pe) vs, Eb/N0 para una señal unipolar sin codificación,
el valor de la probabilidad de error es calculada en for-
ma aproximada por la siguiente ecuación:
, . , -A2-i /-> 4= ' A \ ^ / 2 . expl 1- } 5.1Pe = 1/2 erfc (—- ) - — ~
En la figura S.l.b presentamos valores de la probabilidad
de error obtenidos en la simulación, observándose que éstos
oscilan o se encuentran alrededor del valor teórico, para
- 130 -
obtener valores más ajustados a lo calculado es necesario
que el número de bits de la simulación sea grande, pero e_s_
to no es aconsejable debido al elevado tiempo de uso de la
computadora, en consecuencia los resultados obtenidos del
funcionamiento de los decodificadores tienen que ser calcu
lados por interpolación para su correcta interpretación.
La ganancia de codificación obtenida con estos decodifica-
dores es aproximadamente de 3 dB a 5 dB para receptores
cuantizados a 2 niveles y 8 niveles respectivamente, como
se observa en las figuras siguientes.
Los principales resultados de la simulación y los límites
de la función de transferencia son presentados en las figti
ras 5.2 y 5.3. Estos gráficos presentan l.la razón de bits
errados vs. Eb/No (relación señal a ruido) pana decodifica
dores Viterbi, usando códigos convolucionales, con veloci-
dad de código 1/2. En todos los casos la longitud de la
historia de las trayectorias ha sido 32 bits.
Los resultados de la simulación presentados en la figura
5.2 corresponden a decodificadores con cuantización suave,
con este tipo de cuantización se tiene una pérdida de 0,2
a 0,25 dB en relación al valor teórico, los límites de la
función de transferencia se ajusta muy bien a los resulta--4
dos de la simulación, en el rango de bits errados de 10
a 10 , el límite es más exacto a medida que aumenta la
relación señal a ruido y el funcionamiento del decodífica-
dor puede ser analizado aun en ausencia de simulación. La
diferencia entre el valor teórico y la simulación se debe
en gran parte a que el límite superior es calculado como si
se tuviera cuantización infinita.
En la figura 5,3 tenemos los resultados para decodificado-
Viberbi con cuantización dura, con la misma velocidad
- 131 -
de código R = 1/2 y la longitud de la historia de las tra-
yectorias igual a 32,
Comparando las curvas de las figuras 5.2 y 5.3 se puede ad_
vertir ciertas características de estos códigos:
1. La cuantización a dos niveles es aproximadamente 2dB
inferior a la decodificación con cuantización suave.
2. Cada incremento en la longitud de control (K) provee _u
na mejoría en la eficiencia algo menor de 0,5 dB en el— S
rango de 10 bits errados.
3. La mejora en.-el funcionamiento vs. la longitud de con-
trol se incrementa con el decrecimiento de los bits e-
rrados.
Para observar más claramente los efectos de la cuantización
en la recepción, en la figura 5.4 se presentan los resulta-
dos de la simulación para los códigos con longitud de con-
trol igual a 5, con velocidad de código 1/2, longitud de
la historia de las trayectorias de 32 bits, 2 y 8 niveles
de cuantización.
En la figura 5.5 se presentan^ los resultados de las simula-
ciones para tres valores de la longitud de la historia de
las trayectorias (8,20,32) usando velocidad de código 1/2,
con cuantización suave y dura, usando un código con lon-
gitud de control igual a cinco.
De aquí observamos que el funcionamiento del decodificador
para longitudes de la historia de lasitrayectorias igual a
32, es casi similar a las de un decodificador con una lon-
gitud infinita; *. Aún para la longitud de la historia igual
a 20, existe una pequeña degradación en el funcionamiento.
132 -
Como se mencionó previamente otras simulaciones realizadas
han presentado que los decodíficadores dan un funcionamien-
to aceptable si tienen una longitud de la historia de las
trayectorias igual a 4-5 veces la longitud de control, lo
cual se ratifica en el presente trabajo.
Estos resultados de la comparación de cuantizacion, y lon-
gitud de la historia de las trayectorias son fácilmente ex
tendidos a todos los demás códigos simulados y aún más es-
tos resultados con velocidad de código 1/2 se pueden exte_n
der sin mayores cambios a velocidades de código 1/3.
La figura 5.6 presenta los resultados de la simulación de
decodíficadores Viterbi con longitud de control K=3,4,5 y
velocidad de código 1/3, con ocho niveles de cuanti-
zación y una longitud de la historia de las trayectorias
igual a 32.
Comparando los datos obtenidos a través de las simulaciones
de decodificadores Viterbi, con velocidades de código 1/2
(Fíg.5.2 y 5.3), y velocidades de código 1/3 es claro que
este último ofrece una mejora de 0,3 a 0,5 dB sobre el pr_i
mero para un valor fijo de la longitud de control, lo cual
era lo que se esperaba.
Para muy bajas relaciones de señal a ruido el funcionamieri
to de los decodíficadores no justifica su implementación
ya que se obtiene probabilidades de bits errados muy cerca_
ñas a las de la señal sin codificación, en este caso es ne
cesario el estudio de otro tipo de decodificador.
UJ
UJ
- 134 -
Eb/No (dB)
IU
")
o en
en
r-»
- 136 -
.valor -interpolado
.real
i I10 11 12 13 14
o
o>
co
y in
vr
ioiw
(ep) °N/qa ZI II 01
- 8CT -
•-J
CO
ID
O
~ 140 -
5.2 CONCLUSIONES
En este trabajo hemos presentado la simulación de un enla-
ce de comunicación usando códigos convolucionales de velo-
cidad de código 1/2 y 1/3 en conexión con decodificación
Viterbi. Este sistema en particular se basa en programas
digitales implementados en una microcomputadora. Las simu-
laciones son uno de los esquemas clásicos de implentación
de estos sistemas para de esta manera obtener sus caracte-
rísticas de funcionamiento.
La decodificación Viterbi ha sido presentada como un méto-
do práctico para mejorar la eficiencia de las comunicacio-
nes espaciales y de satélites, en nuestra simulación se qb
tuvieron mejoras de 3 a 5 dB con respecto a la señal unip_o
lar sin codificación, con códigos de longitud de control
mayor (K=7) es posible obtener ganancias de codificación
de 4 a 6 dB con cuantizacíón dura o suave respectivamente.
Largas longitudes de control son requeridas para tener proj •
habilidades de error bajas con altas velocidades de trans-
misión. Pero la memoria usada y la conplejidad del cálcu-Tf
lo'son proporcionales a 2 , en consecuencia decodificado-
res Viterbi son poco prácticos para valores de K^10r en
este punto la decodificación secuencial es una buena solu-
ción.
Con longitudes de control K í=6, la complejidad es la apro-
piada como para permitir una implementación en paralelo, la
cual daría una velocidad de decodificación mayor y además
si se utilizan circuitos muy rápidos como son microprocesa_
dores bipolares por ejemplo la serie 3000 dé la compañía
SIGNETICS, se estaría en capacidad de competir en cuanto a
velocidad y costo con versiones realizadas por medio de ci_r
cuitos digitales las cuales ya existen en norteaméricar -y
- 141 -
operan a velocidades de 2 Mbits/s. con 2,4 y 8 niveles de
cuantización, pero gue requieren aproximadamente unos 356
circuitos integrados TTL. Un decodificador completo debe
incluir circuitos de ínterfacer circuitos de sincronización,
circuitos de tiempo.
Velocidades de código menores que 1/2 adquieren mejoras en
el funcionamiento a expensas de una mayor expansión del
ancho de banda y mayor dificultad en el seguimiento del
símbolo debido a la disminución de la relación Eb/No. .'Ve-
locidades de código mayores a 1/2 cons'ervan el ancho de
banda pero son menos eficientes en la energía. Con velo-
cidades de código 1/3 obtenemos una mejora de 0,3 a 0,5 dB
con respecto a la velocidad de código 1/2.
Con una longitud de la historia de las trayectorias igual
a 4 ó 5 veces la longitud de control se determinó que el
funcionamiento del decodificador es aceptable existiendo
solo una muy pequeña degradación, gracias a esto el re-
tardo en la decodificación es pequeño comparado con el r_e
tardo que necesita el decodificador secuencial, en decod^
ficación Viterbi se tiene 64 bits de retardo como máximo
y en consecuencia la cola de ceros que se tiene que inser-
tar al terminar la secuencia de datos, prácticamente no a-
fecta al funcionamiento del decodificador.
Paira señales con gran cantidad de errores, no es aconseja-
ble el uso de este tipo de decodificadores ya que para re-
laciones señal a ruido bajas se producen muchos errores en
la decodificación, siendo en este caso aconsejable el uso
de decodificadores secuenciales.
Códigos convolucionales que utilizan el decodificador Vi-
terbi tienen un funcionamiento superior a códigos de blc>
que que utilizan decodificación por máxima probabilidad,
pero sufren iguales desventajas ya que la complejidad del
- 142 -
cálculo crece exponencialmente con la longitud de control,
así como la probabilidad de error decrece en forma exponeri
cial con este mismo parámetro, el efecto neto es que la
probabilidad de error decrece algebraicamente con la com-
plejidad de cálculo.
El hecho que se pueda corregir más errores nos cuesta dos
cosas: mayor complejidad en los circuitos y mayor tiempo
en la decodificación.
la simulación ha sido llevada a cabo en otros países como
un paso importante en la determinación de las característ_i
cas de muchos y diversos sistemas de comunicación,: a pesar/
de su elevado costo, entonces la limitación más importante
en estos esquemas es la optimización del tiempo de uso •de
la computadora razón esta por la que en nuestro caso no es
conveniente evaluar probabilidades de error muy bajas.
Un factor que influye en la duración de las simulaciones es
el lenguaje utilizado en la programación, siendo más conve-
niente el- uso de un lenguaje de programación especializado
antes que uno de propósito general, a esto hay que añadir
las limitaciones técnicas de la microcomputadora usada.
Se desarrolló programas demostrativos del funcionamiento de
codificadores, decodificadores y del sistema completo con
el objeto de que sean fácilmente entendidos.
Se debe notar que --en el pcesente trabajo no se realiza
simulación de modulación y demodulación, considerando sim
plemente que se transmite una señal binaria unipolar la
cual es afectada por el ruido, esta omisión es solo por
fines del desarrollo de la tesis, debido al aumento en el
tiempo de computación y la cantidad de memoria necesaria
para desarrollar los programas. La modulación provee una
mejora adicional de 6 dB con respecto a la señal unipolar,
- 143 -
sin embargo, en los capítulos anteriores estudiamos decod_i
ficadores que funcionen en canales con ruido blanco gaussia.
no y con modulación BPSK.
5.3 RECOMENDACIONES
Desde la década de los años 70, la mayoría de la iixvestig_a
ción del funcionamiento de estos sistemas dentro del domi-
nio de las universidades norteamericanas, ha sido llevada
a cabo a través de una extensiva y costosa simulación de
éstos en macro o micro-computadoras digitales.
El primer paso para la comprensión del funcionamiento de
códigos y sistemas de comunicación es la simulación en coni
putadoras, para luego continuar con los prototipos.
En la actualidad se realizan simulaciones, las cuales pue-
den configurar gran variedad de sistemas de comunicación
digital, estos" conjuntos de programas proveen de muchos ti_
pos de codificadores de canal, decodificadores, moduladores,
demoduladores para diferentes tipos de modulación, varios
algoritmos de seguimiento de fase, etc., y en adición cana
les con ruido blanco gaussiano. Este solfware sería muy ú
til adquirir o desarrollar para usarlo en cursos de comuni
cación digital, además es necesario tener microcomputadores
o computadores con lenguajes de programación especiales pa-
ra simulación, para facilitar la implementación de estos es_
quemas y a su vez disminuir el tiempo necesario en su ejecjj
sión.
Con respecto al presente trabajo, el paso lógico a seguir •
es la implementación de un enlace de comunicaciones por me
dio de un prototipo de' hardware, el principal propósito de
esto es la disminución del alto costo de correr estas :.simu
laciones en macro o microcomputadoras. Otra ventaja reside
en el acto de que el bajo costo de la implementación del
144 -
sistema final es una solución atractiva para tener una he-
rramienta de enseñanza y entrenamiento para los estudiantes
en este importante pero nuevo campo de la teoría de las co-
municaciones.
A P É N D I C E I
F U N C I Ó N D E T R A N S F E R E N C I A
D I A G R A M A S D E E S T A D O Y
E'N R E J A D O D E L O S C O D I F I C A D O R E S
C'O N V 'O L U C I O N A L E"S
1 de 16
FUNCIÓN DE TRANSFERENCIA DE SISTEMAS LINEALES
La función de transferencia de un sistema lineal se define
como la relación de la transformada de Laplace de la varia_
ble de salida a la transformada de Laplace de la variable
de entrada, suponiendo que todas las condiciones iniciales
se hacen iguales a cero. La función de transferencia de un
sistema (ó elemento} representa la relación que descríbela
dinámica del sistema bajo consideración.
T {s) = salida^entrada
Los sistemas dinámicos se representan matemáticamente me-
diante un conjunto de ecuaciones diferenciales simultáneas.
La introducción de la transformación de Laplace reduce el
problema a la solución de un conjunto de ecuaciones alge-
braicas lineales.
La inportancia de la relación causa y efecto de la función
de transferencia se hace evidente por el interés en repre-
sentar las relaciones de las variables del sistema por me-
dios diagramáticos. La representación por diagramas de blo_
ques para las relaciones de los sistemas predomina en la in_
geniería de sistemas de control. Los diagramas de bloques
constan de bloques operacionales y unidireccionales que re_
presentan la función de transferencia de las variables de
interés.
La representación en diagramas de bloques para un sistema
dado, frecuentemente puede simplificarse por técnicas de
reducción.
entrada salida
V{s) T{s) 9 (s)
2 de 16
Los diagramas de bloque son adecuados para la representa-
ción de las interelaciones entre las variables controladas
y de entrada. Sin embargo, para un sistema con interela-
ciones razonablemente complejas, el procedimiento de reduc_
ción en el diagrama de bloques es engorroso y frecuentemen_
te bastante difícil de completar. Masón ha desarrollado un
método alterno para determinar la relación entre las varia_
bles del sistema, el cual se basa en la representación de
éste por segmentos de línea. Los puntos.de entrada y sali_
da o uniones se conocen como nodos.
v(s, o ^ O e
A continuación se da algunas simplificaciones útiles para
la reducción de los diagramas.
a ba _ o > e f o
Xl X2 X3
X2 = a Xl
- b
Reemplazando X = a 5 X
a b
Xl X3
Xl
a + b X « ( a + b ) X
Xl X2
3 de 16
-c .
1-g
ó X
X_ = aX + cX
xi = ex:X3 = bx.
X. = dX.
4 de 16
= e
X « eaX + ecX
X = baX +
X, = daX, + dcX_4 1 5
ea
Estas propiedades pueden ser aplicadas en los diagramas de
estado para encontrar su función de transferencia. A con-
tinuación se deduce la función de transferencia del codifi
cador conyolucional K = 3 r R = 1/2 .
DLN
D2L
Supresión de bucle
D LN
D2LN
D2LN
DLN- (1
1-DLNDL
DL roí D2LN
LN
DLN
1- DLN-) DL + DL
LN
LD
1-LDN
LN
DL
LD
5 de 16
-loo
Supresión de malla (10,
LD2
2 "íL DJN
1-LDN
1-DLN
Supresión de bucle
6 de 16
L D N1-LDN
LD
1-DLN
D L N
1-DLN (L+1)
T ( D , L , N ) = D L N
1-DLN(L+1)
T ( D L N ) = D L N + D L N (1+L) +
7 de 16
10
K=0 00 K=2 K=3 K=400
01
10
11
Diagrama de estado del codificador
convolucional.K«3 R= 1/2
8 de 16
Diagrama de estado para el codificador
convolucional K=4 R=l/2
9 de 16
000 K-0
001
010
Olí
100
101
110
111
K=4
Diagrama de enrejado
K=4 " R=l/2
10 de 16
Diagrama de estado del
codificador K-5 R= 1/2
11 de 16
oooo
ooo.
oHoO.
.-1
oo .
ooHo
oHo Q
oooTÍ
Hoo
or-!
M Oi-i Oo H<-! H
o•-i
r-ír-íHr-í
12 de 16
000
00
01
10
11
K=4
110
Diagrama de estado y enrejadopara el codificador K=3 R= 1/3
13 de 16
000
010 001
Diagrama de estado del
codificador K=4 R=l/3
14 de 16
000
001
010
.011
100
110
111'
K=0 000 K=l K=2 K=4
100
Olí
Diagrama de enrejado
K=4 R= 1/3
IOT
OTO
QJ •O H
00
1
TO
O
TTTT
OTTT
TOTT
OOTT
TTOT
OTOT'
TOOT
ÜÜOT'
TTTO
OTTO'
TUTO"
OOTO
TTOQ-
OTOO
TOOO"
0000'
000
1 de
OTRAS TÉCNICAS DE DECODIPICACION DE CÓDIGOS CONVOLUCIONALES
Muchos teóricos en codificación para corregir errores en a-,
plicaciones espaciales prefieren a códigos convolucionales
sobre códigos bloque. Estos códigos frecuentemente son des_
critos como códigos de árbol debido a que el conjunto de po
sibles palabras código puede a menudo ser dibujada en una -
estructura similar a un árbol, cada palabra código está re-
presentada por una rama distinta que emana del nodo raiz.
Algoritmos de decodifí'cación probabilística han sido inventa_
dos, e intentan, la selección de una rama en el árbol la cual
posea la mínima distancia respecto a la secuencia recibida,
cuyos símbolos han sido afectados por el ruido. Estos algcD
ritmos se separan en dos clases: d c dJLf-Lc.aj3.o,r_íie_ ma_xim a
probabilidad el cual hace su decisión óptima en cada rama y
estima un código, y de_c_od_ifi_cación secuencial la cual trata
de seleccionar una trayectoria óptima a través del árbol por
medio de iteracciones sucesivas que frecuentemente necesitan
una investigación anterior.
Ambos secuencial y decodificación Viterbi por máxima proba-
bilidad ofrecen prácticas alternativas al diseñador de sis-
temas de comunicaciones de alto rendimiento, pero la aplica_
ción de ambos métodos ha sido limitada por la complejidad y
el esfuerzo de la decodificación. Para decodificación Viter_
bi, ambos la complejidad de cálculo y el esfuerzo de decodi-V
ficación son proporcionales a m (donde K es la longitud de
control del codificador)r entonces este se limita a códigos
cortos, usualmente K 8, para decodificación secuencial,
ambas la complejidad y el esfuerzo son independientes de K,
pero el número de cálculos que el decodificador debe reali-
zar con toda la secuencia recibida es una variable aleato-
ria.
Para la explicación de la decodificación secuencial usaremos
un código convolucional {3,1} cuya longitud de control es 3,
como se presenta en la figura 1.
2 de
Output\e = 3r¿,
Pig. 1Codificador convolucional
DECODIFICACION DE CÓDIGOS CONVOLUCIONALES: MÉTODO DE LA IN
VESTIGACION EXAUSTIVA
Para entender el procedimiento de decodificación usado pa-
ra códigos convolucionales, consideramos el código de árbol
de la figura 2. El punto de inicio sobre el diagrama de
árbol se localiza a la izquierda y corresponde a la situa-
ción antes de que ocurra el i-ésimo bit de mensaje d.. Por
conveniencia asumimos que los bits de mensaje d y d.i J, 1 " £.
son cero.
Las trayectorias presentadas en el diagrama se generan usan
do la convención de que lo que diverge del nodo hacia arri-
ba se debe a que el bit de entrada es cero (convención usa^
da en la presente tesis). El nodo de inicio A corresponde
a d. _, = O y d. _ = O , entonces si d. = O, nos move-i-l i-2 i
mos hacia arriba del nodo y la salida codificada puede ser
000. La salida codificada se presenta, en la parte inferior
de la trayectoria. Nodos 1, 2, 3 y 4 pueden considerarse
los nodos de inicio para d con d.,d. = 00,01,10,11
respectivamente, el primer bit del mensaje influencia a los
códigos generados desde el nodo de inicio a los dos nodos
3 de
sucesivos. Así en este caso el bit de entrada afecta a 9
bits de salida y son ocho las trayectorias distintas, aso-
ciadas con cada nodo de inicio.
d,
(000)
¿,..',=
(000)
(000) ©mi)
(111)
(101)
(010)
(111)
(101)
(100)
(011)
(010)
!001)
Fig. 2
Diagrama de árbol
9 bit codewordsinfluenced by d,
000 000 000
ooo ooo m
000 111 101
ooo m 010
111 101 100
m 101 011
111 010 001
111 010 110
Los códigos de árbol pueden ser usados en la operación de
decodificación de la siguiente manera. En ausencia de ru^
do la palabra código es'recibida corno se transmite. En es-
te caso la reconstrucción se realiza de una manera senci-
lla. Simplemente seguimos la palabra código a través del
diagrama de árbol n bits a un mismo tiempo (n=3 para el
caso del ejemplo). La secuencia transmitida es entonces re_
4 de 8
construida de la trayectoria tomada a través del diagrama.
La presencia de ruido introduce errores en la transmisión
y entonces la palabra código transmitida no siempre es i-
gual a la palabra código recibida. En esta situación el
siguiente procedimiento puede ser usado para la reconstruc_
ción de la palabra código con la esperanza de que pueda co-
rregir errores .
*Consideremos el i-ésimo dígito del mensaje d . el cual tie_
ne influencia sobre n.K bits en la palabra código, en es-
te caso del ejemplo tiene influencia sobre 9 bits.
Si nosotros asumimos que d. y d . han sido correctameni~l i— ¿. —
te decodif icados , en consecuencia el nodo de inicio es de_
finido en el diagrama de árbol y se puede identificar 8 blp_
ques distintos de 9 bits que parten de este nodo. Compara_
mos los 9 bits recibidos con los 8 código-bloque válidos,
y descubrimos que el bloque válido se ajusta a la secuen-
cia recibida {usamos la distancia de Hamminq) .Si este blo
que válido corresponde a una trayectoria superior al nodo
de inicio en el diagrama, entonces d . es decodif i cado como
cero, caso contrario como uno. Después que d . es decodif i
cado usamos los valores de d. - y d. para definir eli— 1 i— .¿
nodo de inicio que servirá para decodificar d. . Este pro_
ceso se repite hasta que todo el mensaje es decodif icado.
Este algoritmo de decodificación describe una probabilidad
de error que decrece exponencialmente con el valor de K.
Sin embargo, si se tiene un valor de K grande, cada bit rerr
quiere que se examine 2 secciones de ramas del diagrama
de árbol, y el procedimiento de investigación en el proce-
so de decodrf icación llega a ser muy largo. Otro problema
asociado con este procedimiento de decodificación es que
los errores tienden a propagarse ,
5 de 8
DECODIFICACION SECUENCIA!*
El método de decodificación por investigación exaustiva,
llega a ser impráctico a medida que K aumenta su valor, de_
bido a que el decodificador tiene que examinar 2 seccio-
nes de rama del diagrama de árbol. Los esquemas de deco-
dificación secuencicil evitan el largo proceso de examinar
cada una de las ramas de las 2 ramas del diagrama en la de
codificación de un solo bit del mensaje. En decodificación
secuencial al arribar una palabra código de n bits, el deco
dificador compara estos bits con los de la palabra código a_
sociada a las'dos ramas que divergen del nodo de inicio y o
rigina una rama superior o inferior ( decodificamos un bit
cero o uno respectivamente) en el diagrama de árbol depen-
diendo de cual de las palabras código exibe las menores dis_
crepancias con los bits recibidos.
Si la palabra' código recibida contiene errores de transmi-
sión, el decodificador puede hacer un error y comenzar una
trayectoria mal en el diagrama de árbol. En este caso, lo
que contiene a continuación la trayectoria puede estar e-
rrado.
Suponemos que el decodificador mantiene una memoria del fun_
cionamiento del número total de discrepancias entre la pala_
bra código recibida y los bits de código encontrados a lo
largo de la trayectoria. En consecuencia la probabilidad
de que después de hacer una mala decisión en algún nodo,el
número de errores crezca mucho más rápidamente que en el
caso de que el decodificador haya escogido la trayectoria
correcta es mayor. El decodificador puede ser programado
para responder a esta situación, por el retroceso de la tra_
yectoria hasta el nodo en el cual: aparentemente apareció el
error y toma una rama alternativa fuera de este nodo. De es_
ta manera el decodificador eventualmente encuentra la tra-
yectoria a través de K nodos. Una vez que la trayectoria
es encontrada el decodificador decide sobre los primeros
bits.
6 de 8
El decodificador empieza a retractarse cuando el número de
errores acumulados excede un -nivel. Figura 3. El número de
errores acumulados deberá oscilar cerca de un valor E(j) si
el decodificador sigue la trayectoria correcta (Trayectoria
1 del gráfico 3} Sin embargo la trayectoria puede diverger
por la acumulación de errores luego de una mala desición
{trayectoria 2). Cuando la acumulación de errores excede
un nivel llamado "nivel de descarte", el decodificador de_
cide que un error ha sido realizado y retrocede en la tra-
yectoria hasta la más cercana trayectoria inexplorada y em
pieza a moverse hacia adelante otra vez. Es posible que
la trayectoria sea revisada otra vez si no dio los resulta_
dos deseados la anterior regresión (trayectorias 3,4 y 5
en la figura 3). De esta manera decodificación secuencial
opera con pequeñas palabras de código la mayor parte del
tiempo y regresa a probar e investigar los errores, sobre
largos conjuntos de palabras código, pero esto solo cuan-
do juzga que un error ha sido realizado.
Fig. 3Decodificación secuencial, nivel de
descarte
7 de 8
El principal defecto de este tipo de decodificación es que
el número de trayectorias incorrectas y consecuentemente
la complejidad de los cálculos dependen del ruido del ca-
nal en una forma aleatoria.
El algoritmo de decodificación secuencial "STACK" da una
muy simple y elegante presentación de los principales con-
ceptos de decodificación secuencial, sin embargo el algo-
ritmo de Fano es el que generalmente se lo utiliza en la
práctica.
Por un número de razones, incluyendo tamaño del buffer re-
querido,velocidad de cálculo, y sensibilidad de las métri-
cas, transmisión de datos con velocidades de cerca de
100 Kbits/s con decodificación secuencial' solo son posi-
bles si se utiliza cuantizacion dura.
DECODIFICACION POR REALIMENTACION
Una tercera técnica para decodificar códigos convoluciona-
les es conocida como "decodificación por realimentación",
con decodificación por umbral como una subclase. Un deco-
dificador por realimentación básicamente realiza una deci-
sión sobre un bit en particular o una rama dentro del ár-
bol o enrejado de decodificación basado en los símbolos re_
cibidos de un limitado número de ramas más allá de este pun
to.
Cuando la transmisión se realiza sobre un canal binario SJL
métrico se emplea códigos con ciertas propiedades algebra_i
cas (ortogonalidad) la desición sobre una rama dada puede
estar basada en una función lineal de los símbolos recibí
dos, llamada "el síndrome", cuyo dimensionamiento es igual
al número de ramas envueltas en la decisión. Un particu-
lar y simple criterio de decisión basado en este síndrome
es la decodificación por umbral.
Decodificadores por realimentación en general, y decodifi-
8 de 8
cación por umbral en particular, tiene una capacidad de co
rregir errores equivalente a códigos con una longitud de
control muy corta y en consecuencia no se los puede corapa_
rar favorablemente con el funcionamiento de decodificado-
res de máxima probabilidad o secuenciales. Sin embargo de_
codificadores por realimentación son particularmente úti-
les en la corrección de errores de ráfaga, los cuales ocu
rren en canales con desvanecimiento (fading).
APÉNDICE III PAG, 1
3 n9=~i4 02=15 Y*-' MENÚ n
ó GO TO 10008 02-29 '101213141017182.021oo24252628293032"£" ""/•~f \,í
343ó3738404142444546•484950525354565758óO61626465660869707273
Y*="nEMCQB*GO TO 100002-3Y*="BEMBEC1'GO TO 100002-4Y*-linEMHEC2'GO TO 100002-5Yífr='BErfBEC3'GO TO 1000D2-6Y$="BEMBEC4m
GO TO 100002 = 7Ys|»=ttDEMriEC5'GO TO 100002-8Y^-riEMBECÓ"GO TO 100002-9Yí[i='SENCOMl'GO TO 100002-10Y$="SENCQM2"GO TO 100002^11Y*='SENCOM3'GO TO 100002 = 12Yí!í-"SENCOM4*GO TO 100002=13Y$="SENCOM5'GO TO 100002-14YÜ>-"3ENCOMó'GO TO 100002-15Y$-aPRUEBAl'GO TO 100002-16Y$='PRUEBA2"GO TO 100002 = 17YcJi-BPRUEBA3w
GO TO 100002 = 18Y$="PRUEBA4'
APÉNDICE III PAG, 2
747677788081
30081032083084085086010001010102010301040105010 0010701080109011001110112011301140115011 00117011801190120012101220123012401250120012701280129013001310132013301340135013601370138013901400
GO TO 100002=19Y$='PRUEBAS-CO TO 100002-20Y$="PRUEBAóM
GO TO 1000IF 01=02 TRENJl^MEMORY
1030
1000
DELETE 1010^20000APPEND Y$Í1000GO TO 1000CALLGO TOREM -01-1GO TOIF D9PRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF D9
PROGRAMA PRINCIPAL PRINCIPAL
POLITÉCNICA NACIONAL
=0 THENIF D9=l THENIF D9=2 THENGO TO 1040Fl = 0F2~0
800>-l THEN 1180 ••LJJJJJJ1ESCUELAa T M__ __ . , „,_-__ ., _~,MM —,-««—_ •
"JJIFACULTAD DE INGENIERÍA ELÉCTRICA''JJISIMULACION DE ENLACES DE COMUNICACIÓN'•IUSANDQ CÓDIGOS CONUOLUCIONALES""IY DECODIFICADORES UITERBI"'JJJIREALI2ADO POR? ALFONSO FERNANDO PADILLA•JIPROFESQR DIRECTOR: ING* HERBERT JACOBSON-•JJJIUNIDAD DONDE ESTA EL DISCOGG t " íD9
850850350
NARUAEZ
F5=0
PRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF Fl«PRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINT
DE ENLACES DE COMUNICACIÓN'LJJJJJJISIMULACION• T_H«_ , ,.«.«. «»M „ , _ __ ___ . _ ,__ . a
•JJJJI1, DEMOSTRACIÓN DE LOS CODIFICADORES"'•JI2+ DEMOSTRACIÓN DE LOS DECODIFICADORES'-•JI3+ SIMULACIÓN DE ENLACES DE COMUNICACIÓN''JI4. PRUEBAS"•JJJIEfíCOGA UNA POSIBILIDADGG :'fFllO OR Fl>4 THEN 1310"LJJJJJJI TIPO DE CÓDIGO ATI y .___«. | «. ™ _« _« . ,Tn, , _,,
K = 3
UTILIZARSE
'JJJI1' JI2.1 JI3*•JI4.•JI5.' JIÓ*
KKKKK
= 4— 5- 3
- 4
RRRRR
R = 1/2= 1/2'= 1/2 '= 1/3'= 1/3'- 1/3'
APÉNDICE III PAG. 3
14.101420143014401450146014701480149015001510152015301540:1550156015701580159016001610162016301640165016601670168016901700171017201730174017501760177017801790180018101820183018401850186018701830189019001 9 1 019201930194019501960
PRINTINPUT 1IF F2<'PRINTPRINTGO TO iPRINTGO TO :PRINTGO TOPRINTGO TO .PRINTGO TOPRINTGO TOPRINTIF Fl =PRINTINPUTIF W* =GO TOPRINTF3 = 7GO TOPRINTF3=lIF Fl =IF F2 =PRINTGO TOPRINTINPUTF4=INTIF F4>IF Fl =IF F2=:GO TOIF F4>PRINTIF Fl =PRINTINPUTPRINTPRINTINPUTIF 2* =F6=32GO TOF6=51REM —REM CAGO TOGO TOGO TuGO TO
•JJJICODIGO ESCOGIDO C1-Ó)GG:'ÍF2
:::0 OR F2>6 THEN 1420•LJJJJJJICARACTERISTICAS DEL PROGRAMA ESCOGIDO
F2 OF 14707l490?15107l530,15507l570•JJJJICODIGO K=3 R=l/2'1580•JJJJICODIGO K=4 R=l/2"1580•JJJJICODIGO K=5 R=l/2"1580•JJJJICODIGO K=3 R=l/3"1580•JJJJICODIGO K=4 R=l/3"1580•JJJJICODIGO K=5 R=l/3*1 THEN 1910•JJITIPO DE DECODIFICACIONCSu3ve/.Durs)GG: ' ?W*•3' OR U$='s" THEN 16301660'IOCHO NIVELES DE CUANTIZACION'
1680•IDOS NIVELES DE CUANTIZACION'
4 THEN 17003 OR F2=ó THEN 1720•JILONGITUD DE LAS TRAYECTORIAS Cmsx 32)GG:'?Í730•JILONGITUD DE LAS TRAYECTORIAS (max 2 4 > G G Í I ,F4C F 4 )32 OR F4<5 THEN 16904 THEN 1800
OR F2=6 THEN 1790181024 THEN 1690•ILONGITUD DE LAS TRAYECTORIAS 'íF4?' BITS'2 THEN 1910•JIRELACION SENIAL A RUIDO (dB)GGí"fF5•lEb/N •JES?' dB'•JJIDESEA IMPRESIÓN DE LOS RESULTADOS (S/N)GGtZ*•S" THEN 1900
1910
REM CARGA DEL PROGRAMA DESDEGO TO Fl OF 871940,1950,1960GO TO F2 OF 12,16,20,24,28,32GO Tu F2 OF 36,40,44,48,52,56GO TO F2 OF 60704,68772770780
RAM
APÉNDICE III PAG, 4
100010101020103010401050100010701080109011001110112011301140115011001170118011901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440.1.4501400147014801490150015101520.1.530
800DEMOSTRACIÓN DE LOS CODIFICADORES
programa 'BEMCQB'S5)'LJJJJJJIESCUELA POLITÉCNICA NACIONAL'•JJIFACULTAD DE INGENIERÍA ELÉCTRICA'•JJIDEMOSTRACION DE LOS CODIFICADORES1
"JJJJILa forma de ingresar los datos es uno 3 uno'*JJIE1 dato a ser codificado debe ser un dimito '"IBINARIO (O - 1)7 otro numero da por termina-*"Ido el programa "'Jlpresione RETURN para continuar';W$
01 = 2GO TOREM —REM •DELETEDIM SCPRINTPRINTPRINTPRINTPRINTPRINTPRINTF'RINTINPUTPAGESC1)=0S < 2 > = 0S(3)=0
S(5)=0GO TO F2 OF 122071700,231073030*300074380D rr M „
REM CODIFICADOR K = 3 R = 1/2GOSUB óOOOGQSUB 7000MÜUE 50,95PRINT 'CÓDIGOS CÜNUOLUCIONALES'MQUE 40^90PRINT "DEMOSTRACIÓN DE LOS CODIFICADORES"MOUE 50,85PRINT 'CÓDIGO K = 3 R = 1/2'
S(1)=JS<2)=X1S(3)=X2
IF Y2=0 OR Y2=l THEN 1400Y 2-OY1=Y2+S(2)IF Yl = 0 OR Yl = l' THEN 1430Y 1=0MOUE 10775PRINT 'Estado anteriorMOUE 80775PRINT "estado actualMOUE 37744PRINT SCI)MOUE 47744PRINT SC2)MOUE 57^44PRINT S(3)MOUE 85*50
-> " Í X 1 Í X 2
-> •?S<1)?S(2)
APÉNDICE III PAG,
159016001 61016201030164016501660167016801690170017101720173017401750170017701780179018001810182018301840185018601870138018901900191019201930194019501960197019801.99020002010202020302040205020602070208020902100211021202130
HOYE 5,50PRINT 'Diáito 3 'MOVE 5,46PRINT 'codificarse -> "ÍJMQYE 100,40PRINT "salida-MOUE 15,44PRINT •>'MOUE 110,44PRINT •>'GO TO 1220R£ft
REM CODIFICADOR K = 4 R = 1/2GOSUB 6000GOSUB 8000MOUE 50,95PRINT 'CÓDIGOS CONVOLUCIONALES *HOYE 40,90PRINT 'DEMOSTRACIÓN DE LOS CODIFICADORESMQVE 50,85PRINT 'CÓDIGO K = 4 R = 1/2'HOVE 55,20DRAW 90,20DRAU 90,43X1=S(1)X2-S (2)X3~S<3)X4=S(4)S(1)=JS(2)=X1S(3)=X2S(4)z=x3Y2=SC1)+S(2)+S(4>IF Y2=2 THEN 1950IF Y2=3 THEN 1970GO TO 1980Y2 = 0GO TO 1980Y2 — 1Y1=Y2+S(3)IF Yl=2 THEN 2010GO TO 2020Yl=0HOYE: 37,44PRINT 3(1)MÜUE 47,44PRINT 3(2)MOVE 57,44PRINT S(3)MOUE 67,44PRINT SC4)MOUE 10,75PRINT 'Estado anterior > 'ÍX1ÍX2ÍX3HOYE 80,75PRINT 'Estado actual > "íS(l)?S(2
APÉNDICE III PAG, ó
214021502100217021802190220022102220223022402250220022702280229023002310232023302340235023002370238023902400241024202430244024502400247024802-1902500
MOVE 90*50PRINT YlMUYE 90*40PRINT Y2MOVE 100*40PRINT Y1ÍY2MQVE 5,50PRINT 'Dimito 3"MOVE 5,40PRINT 'codificarse -> •íJMQVE 100*40PRINT 'salida1MOVE 15*44PRINT •>'MOVE 110*44PRINT •>"GO TO 1700i\. n *REM CODIFICADOR K = 5 R = 1/2GQSUB 0000GOSUB 9000MOVE 50*95PRINT 'CÓDIGOS CONVOLUCIONALES"MOVE 40*90PRINT 'DEMOSTRACIÓN DE LOS CODIFICADORESMOVE 50»85PRINT "CÓDIGO K = 5 R = 1/2'MOVE 40*40
60*2070*4080*4000*20
DRAWDRAWMOVEDRAUDRAW 95*20DRAW 95,43X1=SC1)X2=S<2)X3=S<3)
2510 X4=S<4)252025302540255025002570258025902000261026202630264026502660267026802690
S<1)=JS(2)=X1S(3)=X25(4)^X3
IFIFIFGOY 1GOYlY2IFIFGOY 2
Y 1YlYlTO0TO-lS(Y2Y2TOO
1)+S(2)+S(3)+S(5)-2 THEN 2620-3 THEN 2640=4 THEN 26202650
2650
1)+S(4)+S(5)=2 THEN 2690=3 THEN 27102720
APÉNDICE III PAG. 7
27002710272027302740275027002770273027902800.2810282028302S402850286028702880289029002910292029302940295029602970298029903000301030203030304030503060307030303090310031103120313031403150316031703130319032003210'322032303240
ÍX1ÍX2ÍX3ÍX4
;s<2);s(3)
GÜ TO 2720Y2 = lMOUE 10,75PRINT "Estado anteriorMOUE 80*75PRINT "Estado actual >HOYE 37f44PRINT Sil)MOUE 47,44PRINT SC2)MOUE 57,44PRINT S(3)MOUE 67^44PRINT 3(4)MQUE 77í44PRINT SC5)MOUE 90í47PRINT YlMOUE 90,40PRINT Y2MOUE 110.47PRINT Y1ÍY2MOUE 5*50PRINT 'Dimito 3'MOUE 5,40PRINT "codificarse -> 'ÍJMOUE 110r40PRINT 'salida'MOUE 15r44PRINT •>'MOUE 115^44PRINT •>'GO TO 2310
REM CODIFICADOR K = 3GOSUB 6000GOSUB 7000MOUE 50,95PRINT "CÓDIGOS CONUOLUCIONALES'MOUE 40^90PRINT 'DEMOSTRACIÓN DE LOS CODIFICADORESMOUE 50^85PRINT 'CÓDIGO K = 3 R = 1/3'MOUE 80,70DRAW 80í45.DRAW 85,45X 1 = S < 1 )X2=S(2)X3^S(3)S (1) = JS<2)=X1SC3)-X2Y3=SC1)+S(3)1F Y3-2 THEN 3250GO TO 3260
R = 1/3
32.50 Y3 = 0
APÉNDICE III PAG, 8
32.00 Y1 = Y3+S(2)3270 IF Yl=2 THEN 32903280 GO TO 33003290 Y 1=0 •3300 Y2=Y13310 MOUE 37,443320 PRINT SCI)3330 MOUE 47,443340 PRINT S(2)3350 MOUE 57,443300 PRINT 5(3)3370 MQUE 10,753380 PRINT 'Estado anterior ----- > '?X1?X23390 MOUE 80,753400 PRINT 'Estado actual ----- > "?S(1)ÍS(2)3410 MOUE 85,503420 PRINT Yl3430 MQUE 85,453440 PRINT Y23450 NOVE 85,403460 PRINT Y33470 MOUE 100,403480 PRINT Y1ÍY2ÍY33490 MOUE 5,503500 PRINT "Diáito a'3510 MOUE 5,463520 PRINT 'codi-ficarse -> " ? J3530 MOUE 100,403540 PRINT "salida"3550 MQUE 20,443500 PRINT •>•3570 MOUE 110T443580 PRINT '>•3590 GO TO 3030
3010 REM CODIFICADOR K = 4 R - 1/33620 GOSUB 00003630 GOSUB 80003040 MQVE 50,953650 PRINT "CÓDIGOS CONUOLUCIONALES1
3060 MOUE 40,903670 PRINT 'DEMOSTRACIÓN DE LOS CODIFICADORES3680 MOUE 50,853690 PRINT 'CÓDIGO K = 4 R = 1/3 '3700 MOUE 40,403710 ÜRAW 40,20Vi 7 2 O BRAW 00 y 403730 MOUE 70,403740 DRAW 40,203730 DRAW 40,183700 DRAW 90,183770 DRAW 90,433780 MOVE 55,203790 DRAW 85,203800 DRAW 85,45
APÉNDICE III PAG, 9
331038203830384038503800387038803890390039103920393039403950390039703980399040004010402040304040405040004070408040904.1004110412041304140415041604170418041904200421042204230424042504260427042804290430043104320433043404350
DRAW 90.45
S(1)=J
S(3)=X2SC4)=X3Y2=S(1)+S(2)+S(4)IF Y2=2 THEN 3930IF Y2=3 THEN 3950GO TO 3960
GO TO 3960Y2=lY1=Y2+S(3}IF Yl=2 THEN 3990GO TO 4000Y 1 = 0Y3=SC1)+S(3)+SC4)
Y3-2 THEN 4040Y3=3 THENTO 4070
4060IFIFGOY 3= OGO TO 4070Y3=lMOUE 37,44PRINT SCI)MQUE 47,44PRINT S(2)MOUE 57,44PRINT S(3)MOVE 67.44PRINT S(4)MOUE 10.75PRINT 'EstadoMOVE 80,75PRINT 'EstadoMOVE 90.50PRINT YlMOUE 90,45PRINT Y2MOUE 90,40PRINT Y3MOUE 110,46PRINT Y1ÍY2ÍY3MOUE 5.50PRINT "Diáito 3'MOUE 5.46PRINT "codificarseMOUE 110.40PRINT 'salida1MOUE 15,44PRINT •>'MOUE 120,44
anterior
actual
ÍX1ÍX2ÍX3
J
APÉNDICE III PAG+10
43604370-43804390440044104420443044404450440044704480449045004510452045304540455045604570458045904600401046204630464046504ÓÓO4670468046904700471047204730474047504760477047804790480048.1.04820483048404850486048704880489049004910
PRINTGO TOREM -REM •GGSUBGQSUBMQVEPRINTMOVEPRINTMOUEPRINTMQVEDRAUDRAUMOVEDRAUDRAWMQVEDRAUDRAUMOV EDRAUDRAUDRAUNOVEDRAUDRAUX1=S<
3600
X"V«.í~ /%i— b \.
CODIFICADOR K = 5 R = 1/36000900050,95'•corneos CÜNVQLUCIÜNALES'
40*90•DEMOSTRACIÓN DE LOS CODIFICADORES
50,85'CÓDIGO K = 5 R = 1/31
70,4070,2580,4090,4590,2570*2540,4050,2060,4080,4050,2095,2095,4340,40.70,2550,401)2)3)
S(1)=JS(2)=X1SC3)=X2S(4)=X33(5)^X4Y2=S(1)+SC2)4-SC4)+S(5)IF Y2-2 OR Y2=4 THEN 4770IF Y2=3 THEN 4790GO TO 4800
GOY 2Y1IFGOYlY3IFIFGOY 3GO
TO 48001Y2+S<3)YlTO
2 THEN4840
4830
S<1)+S(3)+S(5)Y3=2 THEN 4880Y3-3 THEN 4900TO 49100TU 4910
MOVE 37,44
APÉNDICE III PAG,11
4920493049404950496049704980499050005010502050305040505050005070508050905100511051205130514051505100517051805190520052105220523052405250526052705280529053005310532053305340535053005370538053905400541054205430544054505460
PRINT 5(1)MOUE 47,44PRINT SC2)MOUE 57,44PRINT S(3)MOUE 67/44PRINT S(4)MOUE 77,44PRINT 3(5)MOUE 10,75PRINT "Estado anteriorMOUE 80,75PRINT "Estado actual -MCUE 90,50PRINT YlMOUE 90,45PRINT Y2MOUE 90,40PRINT Y3MCUE 110,46PRINT Y1ÍY2ÍY3MOUE 5,50PRINT "Dimito a1
MOUE 5,46PRINT "codificarse ->MOUE 110,40PRINT "salida'MOUE 20,44PRINT •>•MOUE 120,44PRINT •>'GO TO 4380END
REMPRINTPRINTPRINTPRINTINPUTIF W$="S' OR W$='s" THENGO TO 5450PRINTPRINT 'JJJI 1* K =PRINT "JI 2. K = 4PRINT 'JI 3+ K - 5PRINT "JI 4. K = 3PRINT "JI 5. K = 4PRINT "JI ó* K - 5PRINT "JJIINPUT F2IF F2<0 ORGO TO 1150PRINT "JJIÜESEAINPUT W$
ÍX1ÍX2ÍX3ÍX4
í S ( 1) ,' S C 2) í S (3) ,- S ( 4 )
J
SALIDA DEL PROGRAMA"LJJJJJI ESCUELA POLITÉCNICA NACIONAL'"JJJJIFACULTAn DE INGENIERÍA ELÉCTRICA""JJJI DEMOSTRACIÓN DE LOS CODIFICADORES"JJJI DESEA OTRA DEMOSTRACIÓN(S/N)GGt•pW$
¡40
"LJJJJJIDEMOSTRACION DER =
LOS CODIFICADORES1/2"
= 1/2'= 1/2"= 1/3°= 1/3'- 1/3'
CÓDIGO DESEADO
F2>6 THEN 5410
REGRESAR AL MENUCS/N)
APÉNDICE III PAG*12
GTHEN 4R A C I A S
IF W$="SM OR Ul$='<PRINT "LJJJJJJJJI
###*#*###*########*####^DE INGRESO DE DATOS
;E CUALQUIER NUMERO PARA TERMINAR'
)-i>:m;
THEN 5250
*para el trafico cié K=3
-t.**0 ,r.*S
549060006010602060306040005060606070608060907000701070207030704070507060707070807090710071107.1.2071307140715071007.1707 1 807190720072.107220723072407250726072707280729080008010802080308040805030008070
ENDREM %REMMOUEPRINTMOUEPRINTINPUT
##*'T' •T 'r1 *SUBR20j U•INGRE
20*
JJ=INT<JIF J<0
i 10DATO
)OR J>
S
(
1RETURNREM #*#*%%%%*REM subrutinsPAGEMOUEDRAWDRAWDRAWDRAWIiRAWDRAWMOUEDRAWMOUEDRAWMOUEDRAWDRAWMOUEDRAWDRAWDRAWMOUEDRAWMOUEDRAWDRAWDRAWMOUEDRAW
15,35350505353545455555405050605083834050605083839011
,í
ftr
)
)
f
y
,
,
T
f
!
,
,
í
7
í
,
,
,
,
,
5
4545^50 '50^40"
40^45 (5040-50405070505070704840204020204245,45
RETURNREM #*#*####*.REM subrutinaPAGEMOUEDRAWDRAWDRAWL'iRAW
1535357575
,,,yy
4545505040
91*°
P3ra el ^rsfico de K = 4
APÉNDICE III PAG.13
soso8090810081108120813081408150816081708.180819082008210822082308240825082óO8270828082908300831083209000901090209030904090509060907090809090910091109120913091409:1.50910091709180919092009210922092309240925092609270928092 90
DRAWDRAWMOVEDRAW •MOVEDRAWMOVEDRAWMÜVEDRAWDRAWMOVEDRAWDRAWMOVEDRAWTIRAWMOVEDRAWMOVEDRAWDRAWMOVEDRAW
35,4035,4545,5045,4055,5055,4065,5065,4040,5055,7050,5060,5055,7070,5040,4055,2050,4070,4055,2090,4790,7055,7095,45125,45
RETURNREM *REM subrutinPAGEMOVEDRAWDRAWDRAWDRAWDRAWDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWDRAWMOVEDRAWERA uHOVEÍJRAWDRAWRETUR
15,4535,4535,5085,5085,4035,4035,4545,5045,4055,5055,4065 ,5065,4075,5075,4095,45125,4540,5060,7050,5060,5060,7080,5060,7095,7095,47N
para el ársfico de K=
APÉNDICE III PAG»14
10001010102010301040105010601070108010901100.1.11011201130114011501100.1.1.70nao1190120012101220123012401250120012701280129013001.31013201330.1340135013001370138013901400141014201430144014501400147014801490150015101320153015401550
oír Mi\c.n01=3GO TO 800REM •R E M
-PROGRAMA 'DEMDEC11
DEMOSTRACIÓN DE LOS DECODIFICADORESCÓDIGO K = 3 R - 1/2
DELETEDELETE BO,B1,B2,B3DELETE DfMlíM2rA?S3 f SJl=F4+3•DIM XOCJ1),X1(J1>TX2CJ1DIM BO(J1) íBKJl) ,B2(J1DIM A<4r2> rD<4) rMKJl) ?EO(F4+1)=0B1(F4+1)=0B2CF4 + D-0B3(F4+1)=0M2CF4+1)=0E=0E 1 = 0£2=0L0 = 0Ll=0L2.=0
S3(2)=0S3<3)=0A(lrl)=0
>TX3(J1)) fB3CJl)
1)-1*F3
PRINTPRINTPRINTPRINTPRINTINPUTIF K2DIM SR£MK=lM=lGOSUBGOSUBLO=D<XO(K)
"LJJJJJJJIESCUELA POLITÉCNICA NACIONAL "' JJJIFACULTAD DE INGENIERÍA ELÉCTRICA ""JJJIALGORITMO DE VITERBI ''JJJ10EMOSTRACION DE LOS DECODIFICABORES'JJJ1NUMERO DE BITS A GENERARSE IGG'ÍK2<F4 THEN 1410CK2+F4)
> PRIMER PERIODO DE TIEMPO
600050001)=0
X2(K)=1MOVE 5-PRINT K
APÉNDICE III PAG*15
156015701580159016001 6 1 016201630164016501660167016801090170017101720173017401750176017701730179018001810182013301840185018601870188018901900191019201930194019501960197019801990200020102020.2030204020502060207020802090.2100
MOVE IBíóOPRINT LOMOVE 18.30PRINT L2MOVE 5ró5DRAU 20 ,35MOVE 5,65DRAU 20.65REM > SEGUNDO PERIODO DE TIEMPOK=K+1M=2GOSUB 5000Al^LOA2=L2LO=A1+D<1)L1=A2+D(3)L2=A1+D(4)L3=A2+D<2)XO<K)=0XI (K)~0X2(K)=1X3(K>=1X1(1>=X2(1)X3(1)=X2(1)X2(1)=XO(1)MOVE 3+15*M7ÓOPRINT LOMOVE 3+15XM>45PRINT LIMOVE 3+15#MT30PRINT L2MOVE 3+15#M,15F'RINT L3MOVE 3+15*Hí70PRINT KPOR 1=1 TO 2BOCI)"XO( I )Bl < I )=X1 C I )B2 < I ) =X2 C I )B3<I)=X3(I>NEXT IMOVE 5 + 15*<M-O?,')5DRAW 5+15*Mí65MOVE 5+15*<M-l) íó5DRAW 5+Í5*Mr35MOVE 5+15#<M~.U í35DRAW 5+15*Mí50MOVE 5+15#(M-l)í35DRAW 5+15*My20H-h + 1REM >CUALQU:TER PERIODO DE TIEMPOK=K+1GOSUB 5000IF M~9 THEN 2110GO TO 2130
APÉNDICE III PAG
21102120213021402150210021702 ISO21902200221022202230224022502260227022802290230023102320233023402350236023702380239024002410242024302440245024602470248024902500251025202530254025502560257025802590260026102620263026402650
GOSUB 6000M=lMOVE 3tl5#rí.'70PRINT KREM > Calculo de supervivientesGOSUB 4000IF K=F4 THEN 2190GO TO 2060REMREM ESCOGIMIENTO DEL MENOR SUKl-KK=F4IF LO<L1 THEN 2250GO TO 2290IF LO<L2 THEN 2270GO TO 2330IF LO<L3 THEN 2350GO TO 2410IF LKL2 THEN 2310GO TO 2330IF LKL3 THEN 2370GO TO 2410IF L2<L3 THEN 2390GO TO 2410SCKl-fl-K)-XO(l)GO TO 2420SCKl-fl-K)-Xl(l)GO TO 2420S(K1+1-K)=X2(1)GO TO 2420SCK1+ 1-K)=X3( 1 )FOR 1=1 TO KX0( 1 )=BO( 1 + 1 )X1ÍI)=BKI-K)X2(I)=B2(I+Í )X3O: )-B3(I-K1. )BO(I)=XO(I)B1. C.T)=X1(.T)B2(I)=X2CI)B3 ( I )=X3( I )NEXT IIF K1=>K2 THEN 2630K.l = Kl + lGOSUÜ 5000IF H=9 THEN 2570Gü TO 2590GOSUB 6000M~lMOVE 3-fM*15,70PRINT KM.GOSUB -4000GO TO 2230REM • • • •REM SALIDAL9=L9+"1
UPERVIVIENTE
APÉNDICE III PAG,17
266026702680269027002710
!027302740275027002770278027902800281028202830284028502800237023SO289029002910292029302940295029602970298029903000301030SO303030403050306030703080400040104020403040404050400040704030409041004110
IF L9=K+1 THEN 2730K1=KI+1Vl=0.
REM > INYECCIÓN DE LA COLA DE CEROSGOSUB 5100GO TO 2550PRINTFOR 1 =PRINTNEXT IPRINTINPUTPRINTPRINTPRINTPRINT
LJJJID1GITÜS DECODIFICADCS í 'TO K2
I'íI? ' - fl í 3(I)
JJIpresione RETURN PSTS continuar* ?
232032@32[332
IF F3=l THEN 2800032SÓC232032@32
LJJJJJIESCUELAJJIFACULTAD DEJIALGORITMD DEJICODIGO K = 3
POLITÉCNICA NACIONALINGENIERÍA ELÉCTRICAVITERBl''
R = 1/2'
PRINTGO TOPRINTPRINTPRINTPRINTINPUTIF W$='SGO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTENDPRINTINPUTIF Wí>PRINTENDREMREMP1=LO+D(Í)G1=L2+D(3)Rl=LO+tK4)S1=L2+D(2)P2=Ll+n<4)Q2-L3+D<2>
'JIDECODIFICACION SUAVE (3 niveles)
"JIDECODIFICACION DURA (2 niveles)'•JIHISTORIA DE LAS TRAYECTORIAS - "'JINUMERG DE DATOS - "?K2OTRA PRUEBA (S/N)ÍGGÜ?
F4
'JIW$
THEN 29303040'LJJJJI ESCUELA POLITÉCNICA"JJIALGOR1TMO DE VITERBl"'JJ1DEMOSTRAC10NES A ESCOGER"JJJITecls * 3 . K = 3•Jiléela * 4 * K = 4"JITecla * 5'JITscls * ó-JITecls * 7
NACIONAL'
JITeclaJITecla
*
KKKKKMENÚ
— - 3- 4
-
R = i/:E= 1 /'' "
.1. f X—
= 1/2'- l/3a= l/3a- 1/3'
LJJJJJI desee regresar si MENÚ C S/N )
S" OR Uí>=°sJJI GRACIAS
THEN 4
SUBRUTJNA DEL CALCULO DE <***************#SUPERVIVIENTES
IF PK=P2LO-P2
THEN 4190
APÉNDICE III PAG.18
4120413041404150410041704180419042004210422042304240425042604270428042904300431043204330434043504360437043804390440044104420443044404450440044704480449045004510452045304540455045004570458045904600401040204030464040504ÓÓO
FOR 1=1 TO K-lXO(I-)=B1(I)NEXT IMÜVE -5+(M-l)*15,50DRAW 5+H#15>ó5Gü TO 4240LO=P1FOR 1=1 TO K-lXO(I)=BO<I)NEXT IMOVE 5+<M-l)#15?'ó5ÓRALO 5+rt#15ró5X O C K ) = 0IF QK=Q2 THEN 4330Lí = Q2FOR 1=1 TO K-lX1(I)=B3(I>NEXT IHOYE 5+(M-l)*15y20DRAW 5-fM#15?5QGO TO 4390L1 = Q1FOR 1=1 TO K-lX1(I)=B2(I)NEXT IMQVE 5-KM-l.m5735
X1ÍK)=0IF RK=R2 THEN 4480L2=R2FOR 1=1 TO K-lX2CI)=B1(I)NEXT I
DRAW 5-i-Hícl5f35GO TO 4540L2=R1FOR 1=1 TO K-lX2CI)=BO<I)NEXT IHOME 5-f (M-l ) «15 f 65DRAW 5-í-M*15T35X2(K)=1IF SK=S2 T H E N 4030L3 = S2FOR 1=1 TO K~lX3(I)=B3CI)NEXT I
DRAW 5GO TO 4670L3 = S1FOR 1=1 TO K-lX3CD-B2CI)NEXT I
APÉNDICE III PAG.19
467046304690-470047104720473047404750476047704780479048004810482048304840485048005000501050205030504050505000507050805090510051105120513051405150ÓGOO601060206030004060500060(0070ó O 80¿09061006110012001300140ó:150016061706180
M O U E 5r i R A W 5X 3 ( K ) = 1FOR 1=1 TO K
B2(I)=X2(I>B3(I)=X3(I)NEXT IMOUE 3+M*15r6PRINT LOMOUE 3+M*15í4PRINT LlMOUE 3PRINT L2MOUE •M*15yJ .5
PRINT L3
RETURNENDREM #**##********#*************##*****###********#REM SUBRUTINA PARA EL CALCULO DE LAS DISTANCIAS DEMOUE 3G+M*10rlOINPUT VI
020
IF U2<0 OR V2>F3 THEN 5000FOR 1=1 TO 4
HAMMING
IF VKO OR yi>F3 THENMOUE 3INPUT U2
TÍTULOS
T=ABS(A(IfD(I)=0+TNEXT IRETURNREMREMPAGEMOUEDRAWDRAWDRAWDRAWMOUE 40r95PRINT 'ESCUELAMOUE 36?90PRINT 'DEMOSTRACIÓN.MOUE 40,85PRINT "CODIFICADORMOUE 5,80PRINT 'LONGITUD DE LAS TRAYECTORIASMOUE 80?80PRINT -BITS A GENERARSE: -?K2MOUE 5,10
0>0OrlOO130/100130^00-0
POLITÉCNICA NACIONAL
DE LOS DECODIFICADOREB
R
APÉNDICE III PAG.20
619062006210622062306240¿ -~) cr /•,O ¿. iJ U
626062706280629063006310632063306340635063606370638063906400
PRINTMOME 5PRINTHOME- 2PRINTHOME 2C- r.1 T M Tl KJ.HIh'OME 2PRINTHOME 2PRINTHOME 1PRINTHOME 1PRINTHOME 1PRINTHOME 1PRINTHOME 1PRINTRETURN
"Primer bit,7' Sesundo biti 69• j a
;70a i •-. «
l
.721 ! Tiempo ",69"v1
í 75'Estado1705
•00", 50•oí-j 35•10'r20
•11-
APÉNDICE III PAG*21
1000101010201030104010501000107010SO1090110011101120113011401150:L:I.ÓO1170118011901200:L21012201230124012501260127012801290130013ÍO13201330134013501300137013801390140014101420143014401450140014701480149015001510152015301540
PROGRAMA "DEMDEC2
DEMOSTRACIÓNCÓDIGO K =
DE4
X1?X2>X3>X4,X5?XÓ
LOS
X7
REM01-4GO TO SOOREM -REMDELETE XODELETE BO,Bl,B2,B3,B4,B5,Bó,B7DELETE DfHl*M2fA?S3íSJl=F4+3DIM XO(Jl)íXKJl) jX2(Jl) fX3( JlDIM BO(J1),B1<Jl>7B2CJ1),B3CJ1DIM A(4y2)íD(4)íMICJl)fM2(Jl)?;BO(F4+1)=0BKF4-M)-0B2(F4+1)=0B3(F4+Í)=0B4(F4-H)=0B5(F4-H)=0BÓ(F4+Í)=0B7(F4-f-l)=0M2(F4+1)=0
El = 0E2-0LO-0Ll = 0L2-0L3-0
DECOriIFICADORESR = 1/2
yB4(Ji) ,BÓ<J1)
L9-0C 1 ) =
A(l»1)=0A<l72)=0A(2íl)-0
A ( 3 , 1) =
PRINTPRINTPRINTPRINTPRINTINPUTIF K2-
"LJJJJJJJIESCUELA POLITÉCNICA NACIONAL "•JJJIFACULTAÜ BE INGENIERÍA ELÉCTRICA ""JJJ1ALGORITMO DE VITERBI "'JJJIDEMOSTRACION DE LOS DECODIFICADORES•JJJINUHERO DE BITS A GENERARSE ÍGG";K2IF4 THEN 1490
DIMREM
SCK2+F4)PRIMER PERIODO DE TIEMPO
APÉNDICE III PAG,22
155015001570158015901600161016201630164016501660167016801690170017101720173017401750176017701780179018001810:L82018301840185018601870188018901900191019201930194019501960197019801990.2000201020202030204020502060207020802090
N=lGOSUB 8000GOSUB 7000LO = IK 1 )XO(K)=0L4=DC4)X4<K)=1MOUE 5+N*15í74PRINT KMOVE l+N#15ró5PRINT LOHOYE 1+N#15,37PRINT L4HOUE 5,69DRAW 54-N#15ió9MQVE 5r69DRAW 5+N#15,41REH > SEGUNDO PERIODO DE TIEMPOK=K+1N=2GOSUB 7000A1 = LOA2-L4LO=A1+D(1 )L2=A2+D(4)L4=A1+D(4)L6~A24-DC1 )XOCK)=0X2(K)=0X4(K)=1X6( K)-lX2(1)=X4C1)X6(1)=X4C1)X4(1)=XOC1)MOVE 2+N*15róSPRINT LOMOUE 2+N*15j51PRINT L2MOUE 2+N*15J37PRINT L4MOYE 2+N*15í23PRINT LoMOUE 3-fN#15,74PRINT KFOR 1=1 TO 2BO<I)=XO<I)B2(I)=X2(I)B4CI)=X4(I)BÓÍI)=XÓCI)NEXT IMOVE 5+<N-l)*l5fó?DRAW 5-í-N#15ró9MOUE 5+(N-l)*15í69DRAW 5+N#15i41MOUE 5-i-(N-l)^15r41
APÉNDICE III PAG,
210021102120213021402150210021702180219022002210
223022402250220022702280229023002310232023302340235023002370
DRAW 5-1 *15,55MOUE 5+<N-l>#15f4ÍDRAW 5+N#l5í27REH > TERCERK=3N = 3GÜSUB 7000MOUE 3+N*15r74PRINT KAl^LOA2 = L2A3 = L4
LQ = A1KK1)L1 = A2-KK3)L2~A3+Ü(4 )L3=A4-K«2)L4 = A1+IK4)L5-A2-fÜ(2 )Ló~A3 + IX 1 )L7=A4 + Ei (3 )XO(K)=0X1(K)=0X2(K)=0X3CK')=0X4ÍK)=1X5(K)~1X6(K)=1
PERIODO DE TIEMPO
X7(K)=1FOR 1=1 TO
240024 ÍO2420243024402450240024702480249025002510252025302540255025602570258025902600201026202030
XO<I)=BO(I)X1(I)=B2<I)X2(I )™'04( I )X3(I)=B6<I)X4(I)=BOCI)X5<I)=B2(I)XÓCI)=B4C.T)X7CI)=B6(I)NEXT IMOUE 2+N#15jPRINT LOMOUE 2+N*15;PRINT LlMOUE 2-f-N#157PRINT L2MOUE 2+N*15íPRINT L3MOUE 2+N*15íPRINT L4MOUE 2+N*15rPRINT L5MOUE 24*N*15;PRINT L6MOUE 2+N*15r
Oij
58
51
44
37
30
23
1 ó
APÉNDICE III PAG,24
204020502ÓÓO20702ÓSO2690270027102720273027402750270027702780279028002810282028302840285023002870288028902900291029202930294029502900297029802990300030103020303030403050300030703080309031003110312031303140315031003170
PRINTFOR IBO(I)SKI)B2(I>B3ÍI)B4CI)B5CI)Boíl)B7(I)NEXTMOVEDRAWMGVEDRAWMOUEDRAW•MQVEDRAWMOUEDRAWMOUEDRAUMOUEDRAWMOUEDRAWN=N+1REM -K=K+1GOSUBIF N =GO TOGOSUBN=lMOUEPRINTREM -GOSUBIF K=GO TOREM -REMKi = KK=F4
L7= 1 TO K=XOÍI)=X1(I)~Y?(T\ ¿. \ f
=X3<I)-X4CI)=X5<I)=XÓ(I)
I5-KN-l)*C" I \/ -í C" /O^JT*l'<-fl-JíO7
5+(N-l)*í57Ó95-}-N*15,4154-<N~l)#l5y41
41
09
+CN^J í ¿/
5+CN-l)^lCT I 1 I -J/ -t rr / O^JTiN'fl^J 7 O--:
5 + C N - l5+N*15,345+(N-l)*15r275+N*15í4S5-f (N-l)#15,275+N*15,20
>CUALQUIER PERIODO DE TIEMPO
70009 THEN 297029908000
3+N#15r74K—> CALCULO DE LOS SUPERVIVIENTES5000
F4 THEN 30502920
ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
IF M<L1 THEN 3120
IF M<L2 THEN 3140
IF M<L3 THEN 3160
IF M<L4 THEN 3130
APÉNDICE III PAG.25
3180319032003210322032303240325032603270328032903300331033203330334033503360337033803390340034103420343034403450346034703480349035003510352035303540355035603570358035903600361036203630364036503660367036803690370037103720
IF M<L5 THENM~L5IF M<LÓ THENM-Ló •IF M<L7 THENM=L7IF LO=M THENIF L1=M THENIF L2=M THENIF L3=M THENIF L4=M THENIF L5=M THENIF Ló=M THENSCK1+1-K)=X7GO TO 3460
(
S(Ki+l-K)=Xó(GO TO 3460S(K1+1-K)=X5GO TO 3460S( K1+1~H')~X4GO TO 3460S<K1+1-K)=X3GO TO 3460S(K1+1-K)=X2GO TO 3460Sí K1 + 1-K)=X1GO TO 3460S(K1+1-K)=XOFOR 1=1 TO KXO<I)=BO(I+1X1CI)=B1(I-MX2<I)=B2(I+1X3(I)=B3CI+1X4(I)=B4<I4-1X5CI>=B5<I+1Xó( I )~B6(lT-lX7(I)=B7(I+1BO(I)=XO<I)Bl ( I )=X1 ( I )B2(I)=X2(I)B3 ( I) ~X3< I )B4(I)=X4<I)B5(I)=X5(I)Bó ( I )~Xó< I )B7(I)=X7(I)NEXT I
(
(
C
C
(
í
))))))))
3200
3220
3240
34503430341033903370335033301)
1)
1)
1 )
1)
1)
1 )
1)
IF K1=>K2 THEN 3750Kl^Kl+1GOSUB 7000IF N=9 THENGO TO 3710GOSUB 8000N-lMOUE 3-í'NXíl5jPRINT Kl
*j
7
690
4
APÉNDICE III PAG.26
374037503760377037303790380038103820383038403850380038703830389039003910392039303940395039003970398039904000401040204030404040504000407040804090410041.104120413041404150410041704180419042005000501050205030SO 4050505000
GOSUB 5000GO TO 3090
REM -L9=L9+ÍIF L9=K+1 THEN 3850Ki=Kl+l
SALIDA
V2-0REM —GOSUBGO TOPRINTPOR j =PRINTNEXT IPRINTINPUTPRINTPRINTPRINTPRINTIF F3=PRINTGO TOPRINTPRINTPRINTPRINTINPUTIF U* =GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTENDPRINTINPUTIF W$ =PRINTENDREMREMP1=L04
-> INYECCIÓN DE LA COLA DE CEROS71003670"LJJJ1DIBITQS DECODIFICADOS ; "1 TO K231n ? I ? " - ' ? S (I)
"JJIpresione RETURN psra continusr"íU*§32 "LJJJJJIESCUELA POLITÉCNICA NACIONAL'
"J1FACULTAD DE INGENIERÍA ELÉCTRICA'•JIALGORITMO DE VITERBI'•JICODIGO K = 4 R = i/2"
1 THEN 3930•JIDECODIFICACION SUAVE <8 niveles)"
3990@32 1JIDECODIFICACION DURA (2 niveles)
'J1HISTORIA DE LAS TRAYECTORIAS = "ÍF4(?32 'JINUMERÜ DE DATOS. GENERADOS = " ? ¡\DJI OTRA PRUEBA CS/N)ÍGG'?W$nS M THEN 40504100'LJJJJ1 ESCUELA POLITÉCNICA NACIONAL'"JJIALGORITMO DE VITERBI''JJIDEMOSTRACIONES A ESCOGER"•JITecls * 3 • * K - 3"JITecls * 4 , K = A"JITecls * 5 * K = 5"JITecle *' 6 * K = 3'JITecls * 7 , K = 4•JITecls * 8 * K = 5"JITecla * .1. , MENÚ1
R - 1/2'R = 1/2'R = 1/2°R = 1/3'R - 1/3"R .= 1/3'
•LJJJJJ1 o'eses regresar si MENÚ (S/N)
•S' OR W$="s' THEN 4'JJI GRACIAS"
SUBRUTINA DEL CALCULO DE SUPERVIVIENTESD(1)
P2=L2+D(3)
P3-L4 + IK4)
APÉNDICE III PAG*27
5070508050905100511051205130514051505100517051805190520052105220523052405250526052705280529053005310532053305340535053005370538053905400541054205430544054505400547054805490550055105520553055405550550055705580559050005010
R3=L5+D(1)P4=Ló+D(2)R4=L7+D(3)P5=LO+D(4)R5=L1+D<1)PÓ=L2-Ki(2>RÓ = L3-KK3>P7=L44-Ü<1)R7=L5+D(4)P8=LÓ+n<3)R8=L7+D(2>IF PK=R1 THENLO = R1FOR 1=1 TO K-lXO(I)=B1(I)NEXT IHOYE 5+<N-l)#lDRAW 5-f-H*15,ó9GO TO 5320LO = P1FOR 1 = 1 TO. K-lXO(I)=BO<I)NEXT IHOYE 5+<N~imDRAU 5+N#15íó9XOCK)=0IF P2OR2 THENL1=R2FOR .1 = 1 TO K-lX1CI)=B3CI)NEXT IMOUE 5-f(N~l)^lDRAUI 5 + N*15»á2GO TO 5470L1 = P2FOR 1=1 TO K-lX1(I)=B2(I)NEXT I
5200
5» 02
5,09
5410
5*48
HOVE 5+(N-l)*15f55L'iRAW 5JrN*15Jó2X1(K>=0IF P3<=R3 THENL2=R3FOR 1=1 TO K-lX2<I)=B5(I)NEXT :i:MOWE 5-MN~l)#l!DRAW S-í-N^lSíSSGO TO 5Á20L2 = P3FOR 1=1 TO K-lX2CI)=B4<I)NEXT 1Moye 5-}-(N-i)^i:ÜRAU S-l-N^j.5,55
5500
:7>34
5.41
APÉNDICE III PAG,28
5620563056405650566056705680569057005710572057305740575057605770578057905800581058205830584058505860587058805890590059105920593059405950596059705980599060006010602060306040605060606070608060906100611061206130614061506160
X2<K)=0IF P4<=R4 THENL3=R4POR 1=1 TO K-lX3ÍI)=B7(I)NEXT IMO'v>E 5+<N-l)#lDRAU 5"fN#15;4SGO TO 5770L3=P4POR 1=1 TO K-lX3<I)=BÓ<I)NEXT IMOVE 5+ÍN-l)*!DRAW 5+N#15,43X3(K)=0IP P5<=R5 THENL4=R5POR 1=1 TO K-lX4(I)=B1(I)NEXT IhOUE 5+(N-l)#lDRAW 5-fN#15,41GO TO 5920L4=P5POR 1=1 TO K-lX4CI)=BO<I)NEXT IMQVE 5-KN-l)*!.DRAU 5+N#15í41X4(K)=1IP PÓ<=R6 THENL5-R6POR 1=1 TO K-lX5(I)=B3(I)NEXT IMO^E 5-KN-15K1:DRAW 5+N*15í34GO TO 6070L5 = PóPOR 1=1 TO K-lX5a>=B2<3:>NEXT IMOVE 5+(N~l)#i:DRAW 5+N*15í34X5CK)=1I E P7<=R7 THENL6-R7POR 1=1 TO K-lXÓÍI)=B5CI)NEXT IMOUE 5+(N-l)*i:DRAW 5+N*15f27GO TO 6220LÓ = P7
5710
5j20
5 y 27
5800
5?Ó2
5,09
0010
5f43
5/55
Ó1ÓO
5?34
APÉNDICE III PAG.29
617061SO6190620062100220623062406250626062706280629063006310632063306340635063606370638063906400641064206430644064506460647064806490650065106520653065406550656065706580659066006610662066306640665070007010702070307040
FQR 1=1 TO K~lX6CI )~B4< I )NEXT IMOUE'5-Í(M-1>#15?41DRAUI 5ÍN&15.27XÓ<K>=1IF P8<=RS THEN 6310L7-R8FOR 1=1 TO K~lX7<I>=B7<I>NEXT IMOUE 5-KN-l )#15f 20DRAU 5+N#15,20GO TO 6370L7 = P8FOR 1=1 TO K~lX7(I)=Bó<I)NEXT IMOUE 5+(N-l)#15í27ÜRAU 5-fN*15r20X7(K)=1FOR J = l TO KBO(J)=XO(J>B1(J)=X1< J)B2(J)=X2(J)B3C J)=X3C J)B4Í J)=X4(J>B5(J)=X5( J)BÓ(J)=XÓ< J)B7(J)=X7Í J)NEXT J.MOUE 2-i-N#15?65PRINT LOMOUE 2+N#15f58PRINT LlMOUE 2+N*15í51PRINT L2MOUE 2+N^15í44PRINT L3 .MOUE 2+N*15i37PRINT L4MOUE 2+N*l5j30PRINT L5¡"(OUE 2 + N#15f 23PRINT L6MOUE 2+N*15jlóPRINT L7N=N + 1RETURNREM ##############&####:*:#REM CALCULO DE DISTANCIASMOUE 30+N#10flOINPUT UlUl^INTCUl)
*DE HAMMING
APÉNDICE III PAG,30
7050700070707080709071007110712071307140715071008000801-08020303080408050806080708080309081008110812081303140815081608170SI 8,0819082008210822082308240Í3250820082708280829083008310832083308340S3503360337033803390
IF UKO OR U1>F3 THEN 7020MOUE 30-fN*10,7INPUT U2U2=INT(U2)IF U2<0 OR V2>F3 THEN 7000REM DISTANCIAS DE HAMMINGFOR 1=1 TO 40=ABS(A<I,1)~U1>
D(I)=0+TNEXT IRETURNREMREMPAGEMOUEDRAWDRAWDRAWDRAWMOUE
*****TÍTULOS
0,00,100130,100130?00,040,95
PRINT 'ESCUELAhOUE 10.90PRINT 'DEMOSTRACIÓNMOVE 10,85PRINT 'LONGITUD DE LASHOYE 80,85PRINT -BITS A GENERARSE:MOVE 5,10P R I N T " P r i m e r - b i t ( O - ' íMO'vJE 5 ^ 7PRINT 'Seáundo bit (.O-'íMOVE 1,80PRINT "Estedo"
POLITECNICA NACIONAL
DEL DECODIFICADOR
TRAYECTORIAS '?F4
K:
K = 4 R 1/2
MOUE 77PRINT 'í'MOVE 3,76PRINT "! TiempoMOUE 3,74PRINT ' í :MOUE 3,72PRINT 'v"MOUE 1,09PRINT '000aMOUE 1,02PRINT '001'MOUE Iy55PRINT "010"MOUE 1,48PRINT M011fl
MOUE 1*41PRINT '100'
APÉNDICE III PAG,32
1 UUU
1010102010301040t OSOJ- V \J \
1000107010801 090A, \J f \S
1100111011201130114011501160117011801190120012101220:L230:l.2.401250:l.2.óo:l.27012801290:l.3001310:L320133013401350130013701380139014001410142014301440145014001470148014901500.151015201530.1540
r\ n — -~ r r\ u r\ n H u ti r i u c. u- o -01 = 5GO TO 800REM • DEMOSTRACIÓN DE LOS DECODIFICADORESREM CÓDIGO K = 5 R - 1/2T*Í C* í C — T" UT V* f*\I V O "V T V /I V * \ Z, \' *V
DELETE ZQrZl,Z2,Z¿,Z4,Z5fZ¿>,Z7DELETE COíCl,C27C3íC4rC5rCÓ7C7TI r — i r — f r~* T*J i*< H Xí o A f* í" "7 r
J1=F4+1DIM XO(J1) /X1CJ1) íX2(Jl) íX3CJl) rX4(Jl) ,X5(J1) rXó(Jl)DIM BOCJ1) jBKJl) /B2(J1) ?B3(J1) .B4(J1) ?B5( Jl) ,BÓ( Jl)DIM ZO(J1) íZK Jl) íZ2(Jl) /Z3( Jl) rZ4(Jl) íZ5(Jl) íZÓCJl)DIM CO(Jl) fCKJl) ?C2(J1) jC3(Jl) ?C4(J1) 7 C5 ( Jl ) , Có C Jl )DIM DC4) rMKJl) rM2CJl) ?G(5) ?A(4í2)BOCF4+1)^0BKF4 + 1)=0B2 (F4+1 )=0B3(F4+1)=0B4 CF4 + 1 )=0B5(F4+1)=0Bó (F4+1 )=0B7(F44-1)=0CO(F4+1)=0Cl <F4 + :L ) =0C2CF4-f-l)=0C3CF4-M )=0C4(F4-I-1)=0C5CF4-I-1 )=0Có(F4-f 1 )=0C7(F4+1)=0L0 = 0Ll = 0L2=0L3~0L4~0L5~0Ló = 0L7 = 0L9 = 0N0=0Nl-0N2-0N3=0N4 = 0N5 = 0Nó=0N7 = 0G( 1 ) =0G(2)=:0
6(3 )=0GC4)=0G(5)=0
A ( 1 ? 1 ) =0
yX7(Jl)?B7(J1)rZ7(Jl)
•C7CJ1)
i
APÉNDICE III PAG,33
1550150015701580.159010001610162010301040105016001670108016901700171017201730174017501700177017801790180018101820183018401850180018701880189019001910192019301940195019601970198019902000201020202030204020502060207020802090
A(l?2)=0A<27l)=0A(2?2)=1*F3
A < 3 ? 2A(4ílAÍ4,2F'RINTPRINTPRINTPRINTPRINTINPUTDIM SIF K2REMK=lN=lGOSUB
)=0)=l*F3)=1#F3'LJJJJIESCUELA POLITÉCNICA NACIONAL1
' JJJIFACULTAD DE INGENIERÍA ELÉCTRICA0
' JJJIALGORITMO DE UITERBI'' JJJIBEMOSTRACION DE LOS DECODIFICAÜQRES'JJJINUMERO DE BITS A GENERARSE íGG'iK2(K2+F4><F4 TREN 1660
>PRIMER PERIODO DE TIEMPO
SEGUNDO PERIODO DE TIEMPO
100003f85
PRINT 'PERIODO DE TIEMPO ------- >GOSUB 9000LO=D(1)XO(K)=0NO=D(4)ZO(K)=1MO^E 20,75PRINT LOMOV£ 20/43PRINT NOMOVE 32;75PRINT X O C K )MOVE 32;43PRINT 20 (K)REMK=K+1N=2GOSUB 9000GOSUB 10000A1=LOA2=NOLO^Al-fD(l)L4=A2+D(3)NO = AH-D<4)N4=A2+B<2)XO<K)=0X4(K)=0ZO(K)=1Z4<K)=1X4C1)=ZO(1)Z4(,l)=ZOCl)ZO(1)=XO(1)MOUE 20^75PRINT LO
20.59
K
A P É N D I C E I I I PAG,34
21002110212021302140215021002170218021902200221022202230224022502200227022802290o~^oo.£. vJ \J \J
2310232023302340235023002370238023902400241024202430244024502400247024802490250025102520253025402550250025702580259020002610202020302640
PRINT LAMOVE 20,43PRINT NOMQVE '20,27PRINT N4FOR 1=1 TO KBO(I)=XÜ(I)B4(I)=X4<I>CO(I)=20<I)C4CD-Z4CI)MOUE 30+3*1 T 75PRINT XOCI)MOUE 30+3*1,59PRINT X4ÍI)MÜVE 30+3*1,43PRINT ZO(I)MOVE 30+3*1,27PRINT 24(1)NEXT IMOUE 33,35PRTKIT 'ppivTnriri np" TTPMPH ••-. ° * K--j r\L H i r c_ r\. u j-i u 1,1 1 i j. c. n f u .-• ? f\M > TERCER PERIODO HE TIEMPO
K=K+1N = lGOSUB 9000GOSUB 10000Al^LOA2=L4A3-NOA4=N4LO=A1+D(1)L2-A2+DÍ3)L4 = A3 + í!i<3)LÓ-A4+DÍ1)NO=A1+D(4)N2=A2+D(2)N4=A3+DC2)N6-A4+DÍ4)XO(K)=0X2(K)=0X4(K)-0Xó(K)=020(K)=1Z2(K)-124(K)=12Ó(K)=1FOR 1=1 TO 2XO(I)=BOCI)X2(I)=B4(I)X4<I)=CO<I)Xó<I)=C4(I)20(I)=BO(I)22(I)=B4<I)24(I)=CO<I)ZÓ(I)-C4(I)
APÉNDICE III PAG.35
20502ÓÓO26702680269027002710272027302740275027602770278027902800.2810282028302840285028602870288028902900.2910.2920293029402950290029702980299030003010302030303040305030003070308030903100311031203130314031503100317031803190
NEXTMOUEPRINTMOUE.PRINTMOUEPRINTMOUEPRINTMOUEPRINTMOUEPRINTMOUEPRINTMOUEPRINTFOR IBO(I)MOUEPRINTB2CI)MOUEPRINTB4 ( I )MOUEPRINTBó(I)MOUEPRINTCOCÍ)MOUEPRINTC2CI)MOUEPRINT
I20x75LO
20ró7L220/59L420 ?51L6
20? 43NO
2Q>35N220,27N4
20 y 19
No= 1 TO=XO<I)30+3*1XO(I)
=X2(I>30+3*1X2(I)=X4(I)30+3*1X4 ( I )
=XÓ(I)30+3*1X6CI)=20(1)30+3*1ZOCI)=22(1)30+3*122(1)
K
,75
>67
f59
r5l
>43
„ Vt=T7 i_>iJ
C4(I)=24(I>MOUEPRINTC6(I)MOUEPRINTNEXTMDUEPRINTREM -K-K+1N = lA1 = LOA2=L2A3 = L4A4 = L6A5 = NOAó~N2A7=N4
30+3*1Z4(I)=20(1)30+3*120(1)I33,85
i 27
í 19
"PERIODO DE TIEMPO > - ?KCUARTO PERIODO DE TIEMPO
APÉNDICE III PAG,30
32003210322032303240325032003270328032903300331033203330334033503300337033803390340034103420343034403450340034703480349035003510352035303540355035003570358035903600301030203030304030503ÓÓO30703680309037003710372037303740
A8=NóGOSUB 9000GOSUB 10000MOUE • 33r 35PRINT 'PERIODOl_0~Al-í-D(l )L1=A2+D<2)L2=A3+D<3)L3=A4+B(4)L4=A5+BC3)L5=Aó+B(4)LÓ=A7+B(1)L7=A8+D<2)NO=A1+B<4)N1-A2+D(3)N2-A3ÍDC2)N3=A4+D(1)N4-A5+IK2)N5=Aó+ü<l)Nó=A7+D(4)N7=A8+D(3)XO(K)=0X1(K)=0X2(K)=0X3(K)=0X4(K)=0X5(K)=0X6(K)=0X7CK)=0ZO(K)=121CK)=122(K)=1Z3(K)=124(K)=1Z5(K)=1ZÓ(K)=127(K)=1FOR 1=1 TO 3XO(I)=BO(I)X1(I)=B2CI)X2(I)=B4(I)X3(I)-Bó(I)X4(I)=CO(I)X5CI)=C2(I)X6CI)=C4(I)X7(I)=Có(I)ZO(I)=BO(I)Z1(I)=B2(I)Z2(I)=B4(I)Z3(I)=BÓ(I)24(I)=CO(I)Z5CI)=C2CI)Z6(I)=C4(I)Z7(I)-C6<I)NEXT I
DE TIEMPO • ;K
APÉNDICE III PAG,37
3750 GOSUB 110003760 REM >CUALQUIER PERIODO DE TIEMPO3770 K-K+13780 GOSUB 90003790 GOSUB 100003800 MOVE 33,853810 PRINT 'PERIODO DE TIEMPO > 'íK3820 GOSUB 00003830 IF K=F4 THEN 38503840 GO TO 37603850 REM3860 REM ESCOGIMIENTO DEL MENOR SUPERVIVIENTE3870 K1=K3880 K=F43890 M^LO3900 IF M<L1 THEN 39203910 M=L13920 IF M<L2 THEN 39403930 M = L23940 IF M<L3 THEN 39003950 M=L33960 IF M<L4 THEN 39SO3970 M=L43980 IF M<L5 THEN 40003990 M=L54000 IF M<LÓ THEN 40204010 M=Ló4020 IF M<L7 THEN 40404030 M=L74040 IF M<NO THEN 40004050 M=NO4000 IF M<N1 THEN 40804070 M=N14080 IF M<N2 THEN 41004090 M=N24100 IF M<N3 THEN 41204110 M=N34120 IF M<N4 THEN 41404130 M=N44140 IF M<N5 THEN 41004150 M=N54160 IF M<Nó THEN 41804170 M^Nó4180 IF M<N7 THEN 42004190 M=N74200 IF LO=M THEN 49504210 IF L1=M THEN 49104220 IF L2=M THEN 48704230 IF L3=M THEN 48304240 IF L4=M THEN 47904250 IF L5=M THEN 47504260 IF LÓ=M THEN 47104270 IF L7=M THEN 46704280 IF NO-M THEN 40304290 IF N1=M THEN 4590
APÉNDICE III PAG,38
4300431043204330434043504300437043804390440044104420443044404450446044704480449045004510452045304540455045604570458045904000461040204030464040504óóO4670408046904700471047204730474047504760477047SO479048004810482048304840
IF N2=M THENIF N3=M THENIF N4 = M THENIF N5=M THENJF N6=M THENS<K1+1-K)=Z7<MUYE 2,14DRAW 13; 14GO TO 4980S(K1+1-K)=Z6CMOUE 2.18DRAU 13,18GO TO 4980S(Kl+i-K)=Z5(MOUE 2.22DRAW 13.22GO TO 4980S(K1+1-K)=Z4<MQUE 2,26DRAW 13 y 26GO TO 4980S(K1+1-K)=Z3(MOUE 2.30DRAU 13^30GO TO 4980S<K1+1-K)=Z2<MQUE 2.34ÜRAW 13.34GO TO 4980SCKl-fl-K)=Zl(MOUE 2f38DRAW 13.38GO TO 4980S(K1+1-K)=ZO<MOUE 2.42DRAW 13.42GO TO 4980S(K1+1-K)=X7(MOUE 2.46DRAW 13,46GO TO 4980S<K1+1-K)=XÓ<MOUE 2,50DRAW 13.50GO TO 4980S(KÍ+1-K)=X5(MOUE 2?54DRAW 13.54GO TO 4980.S(K1+1-K)=X4(MOUE 2.58DRAW 13.58GO TO 4980S<K1*K-K)=X3<MOUE 2.62
455045104470443043901)
1)
1)
1)
1)
1)
1)
1)
1)
:¡.)
1)
1)
i)
en e
n en
en
w w
w w
O
CO
Xj ¡>
o o
o o
GJ
Cl
TI
3CO
O
71
OCO
M
CH
c 2
: m
O W
H
CO
O
T> •
-ND
O
P
l C
Oo o
73
ent-H
O
en e
n en
en
e-¡ e
n en
e~¡
en L
~\n e
n e~?
en
en O
í c.n
en
en e
n en
en
e=i e
n en
en
en o
í en
en
en e
n en
o¡
en e
n -£•
-t-
-t- -
£• •£•
-t-
w w
w w
w w
ío
to r
o r
o ro
ro
ro f
o ro
ro ^
H^ ^
M-
M H
- H*
h^
H- ^
o o o
o o
o o
o o
o o
-o
xi
-o o
oen
¿.
w r
o i-1
o
o co
x¡
es e
n -t»
w r
o ¡-
o <
¡ co
x¡
o en
-t» w
ro
M- o
-o
co x
i i>
en -t
w f
o ^
o
^o c
o xi
o
en •£
•o
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
o
»
O O
o o
o c
O
H10
U
II 11
II 11
1!
II II
U
II 11
IIM
^N
NN
NN
NX
xx
xxj
es
ei 4
^ w
fo i-
1 o
xi
o
en -t*
II !l
II ¡1
1! II
II !l
II 11
!! II
II II
II II
11 11
IIx
xx
oo
oo
no
nn
ttír
i'^
ww
a?
ww
M
o
xj
o
en -
t^ w
ro
o x
j o en
-£•
w 1
0 H-
o71
3> <:
TTE
r1-
4 II M
t
O
•-
*^> '~
s •'
**
^ •/
- '"*
• -^
-^
v
*^> ^^
**
"*
-*^ ^^
'~
>
*~»
—!
Xl
J>
~—
CO
^-+
+ +
+
-t-+ +
+ 4
- +
+ +
4-4
-+
X
¿>
4^ ¿
> -fc
.•<
l xl
-O
-Oe>
¡ ro
H^
oo o
o o
o 2
: co
CD7^
a -
^ o
3>
<Z T
:.E:
rn
M H
-f- o
M r
o GJ
-
i j>
xj
O
•"-''
CO
O
!t
OX
-^ ,
¿>
O)
03
03-O
CO x
jO
O O
f u:
eo
73 O
'-
2> <
r x
c m
^ +ii
f.J
LJ
W.-
1
•*
CN X
t> O
- CN
I! X ro M-
CO
COCN
en
o o
a o
O 7}
3>H
E:
o J%
CJ
co
oo ro
-io o
ir ~n O
m •z. m -n 1> CT
O
APÉNDICE III PAG.40
5400541054205430544054505400547054805490550055105520553055405550
REML9=L9+1IF L9=K+1 THEN 5520K1=K1+1
(30SUB 9100GOSUB 10000MQVE 33,85PRINT 'PERIODO
SALIDA
DE TIEMPO KlGO TO ;soPRINT 'LJJJJDIGITOS DECODIFICADOSFOR 1=1 TO K2PRINT '1'ÍI?1 = -;S(I)NEXT I
5560557055805590560056105620156305640565056605670568060006010602060300040605060606070608060906100611061206130614061506160617061806190620062106220
PRINT 'JIpINPUT W$PRINT 032PRINT 032PRINT 032PRINT @32PRINT @32PRINT 032PRINT "JIINPUT U$IF W$='S'PRINT 'JJIENDREM ******REMP1=LO+EK1)R1 = L1 + EK4)Q1=LO+D(4)S1-L1+DC1)P2 = L2+EK2)Q2=L2+D<3)R2~L3-f-D(3)S2=L3+D(2)P3=L4+D<3)Q3 = L4 + Ei C 2)R3 = L5-i-D(2)S3 = L5-fD(3)P4-LÓ-f-D(4)Q4=Ló+D(l)R4-L7+DC1)S4=L7+D ( 4 )P5=NO+DC3)Q5-NO + EK2)R5=Nl-fD(2)S5-N1 + D < 3)P6-N2+D (4 )
RETURN continuar
•LJJJJJIESCUELA POLITÉCNICA NACIONAL''JIFACULTAD DE INGENIERÍA ELÉCTRICA1
•JIALGORITMO DE VITERBI''J1CÜDIGO K = 5 R = 1/2"'J1HISTORIA DE LAS TRAYECTORIAS = 'fF4•JINUhERO DE DATOS GENERADOS = 'ÍK2OTRA PRUEBA CS/N):GGu;
THEN 4GRACIAS'
*SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
A P É N D I C E I I I PAG.41
0230024002506200027002800290630003106320633063406350636063706380639064006410642064306440645064606470648064900500651065206530654065506560657065806590660066106620663066406650Ó6ÓO66706080609067006710672067306740675067606770
R Ó = N 3 + f l ( l )S Ó - N 3 + D C 4 )P 7 = N 4 + D U >Q 7 = N 4 + Ü < 4 )R 7 = N 5 + D < 4 >S7=N5+DU>P 8 = N Ó + D ( 2 )Q 8 = N Ó + n < 3 )R 8 = N 7 + D < 3 )S 8 = N 7 + Ü < 2 >1F RK=P1 THEN 6400LO=F1POR 1=1 TO K-lXO(I)=BO(I)NEXT IGü Tu 0440L_0 = R1FÜR 1=1 TO K-lXO<I)=B1(I)NEXT IIF R2OP2 THEN 6500L1=P2FOR 1=1 TO K-lX1(I)=B2(I>NEXT IGO TO 6540L1 = R2FOR 1=1 TO K-lX1CI)=B3(I)NEXT IIF R3<=P3 THEN 6600L2=P3FOR 1 = 1 TO K-.1X2(I)=B4(I)NETXT IGO TO 6040L2=R3FOR 1=1 TO K-lX2CI)=B5(I)NEXT IIF R4<=P4 THEN 6700L3-P4FOR 1=1 TO K-lX3CI)=B6(I)NEXT IGO TO 6740L_3 = R4FOR 1=1 TO K-lX3(I)=B7(I)NEXT IIF R5<=P5 THEN ¿800L4=P5FOR 1=1 TO K-lX4(I)=CO(I)
APÉNDICE III PAG.42
NEXT IGO TO 6840L4 = R5FOR 1=1 TO K-lX4ÍI)=CKI)NEXT IIF RÓ<=PÓ THEN 0900L5=PÓFOR 1=1 TO K-lX5(I)=C2(I)NEXT IGO TO 0940L5=R6FOR 1=1 TO K-lxs (i} ~r^í í T >f\ \- / •"" O O V J- /
NEXT IIF R7<=P7 THEN 7000Ló = P7FOR 1=1 TO K-lXó(I)=C4CI)NEXT IGO TO 7040Ló=R7FOR 1=1 TO K-lXÓ(I)=C5(.I)NEXT IIF R8<=P3 THEN 7100L7=P8FOR 1=1 TO K-lX7(I)=CÓ(I)NEXT IGO TO 7140
FOR 1=1 TO K-lX7(I)=C7íI)NEXT IIF S1OQ1 THEN 7200NO=Q1FOR 1=1 TO K-lZO(I)=BOU>NEXT IGO TO 7240
72207230724072507200727072807290730073107320
FOR 1=1 TO K-lZKI)=B2(I)NEXT IGO TO 7340
FOR 1=1 TO K~lZKI)=B3U>
ro «r +
CD <I
LL
M M UJ
U h-i
Lü ü_ <r
o o Lü X fO c; u'<-
í V fo n
1-
03 C
5X
¡1
Lü U
. C-
J~Z
. t-l
~Z.
o o
ot-3
T m
ro r
o ro
rx N
rx
-i-f
O M
] — v
1! ¡í i-i
f — í ^^
H-i
í—L
¿—
X
O
C-J
Lü
U. N
-Z
.
O O
O-o
rx
coK)
M t
oEX
fx
[x.
E
O
O•3
- 1- II*
o r
o ;-;
(- C
O
II
L£
O
C-J
OCD
2:
U.
o o
of>
- O
i— i
KI "í
"rrx
rx
rx
ÍJl
Íl
M*— .
!-l
h-
~ X
C-J
LüN
-Z
.
O O
c-j r
o*3"
rx f
x
o o in [X Lü
fni
^ O M
O
C5
-0
lil
ü
-M gj
rxü
1¡
M*3
~ í" n
*~*
Oco
cr
u H
H11
C¿
X
M 2:
U_ N
~Z
. C
D
O O
O O
O
O•$•
\f)
-o r
x co
o•
j- <j
- "
"-T ^
"IX
rx |
X N
fx
[X
•3- co ¡E fi")
^ O'
o in rx
_i O n fx
-H C
Oli
II M
hH -
-^ M h-
t¿ —
X
o ro
LÜ
U. N
O O
O-i
c-j
m¡x
rx r
s
o o rx Lü
j O
cr II
T-I ¡E
ID lil
f-i
co.a II
C¿
M 2: li.
O O
O•7
- bl
-Oül
U~3
ü")
rx r
x rx
M
O
O
*Oo
rx
i¡ M
^
oH
I- h-
^ X
"í"
UI
ON
2!
CD
O O
OE
X
CO
C
NIO
lj"3
U"
)rx
r>.
rx
o o fx
• ~
y
l Lü
'~s
1—O
MH
—
-0rH
C
5
i-i 0
11
¡1
El M
V
ID M
-~
- -O
CO
M f-
03
II <Z ^
XT
O
LÜ
U.
-z. u
. N
z: M
o o
o o
oo
IH c
-j ro
'^r
•O x
l *O
*O
xl
rx r
x EX
rx
¡x
xTi
Cu li \D 2 O ID •O N
¡ O M C
-J
í-i U
II
IÍ
MM
-—
^
1— i
[—
C¿ ~
XO
ül Lü
U.
N
-Z.
O O
O^o
rx
co•<
] -O
-O
fx N
rx
o fx fx o o
1 — C
O IIO
ÍO
CD -
Z.
O O
ex o
-o r
xrx
rx
¡
O
f-H
-H b
!l 11
i-t
¡—i
•"•
M [-
u: —
x
O
li"D L
üU
. N
2:
0 O
Ot-<
C-
j M
EX r
x ix
fx r
x rx
O
00
0
CO
CNrx
rx
2:
i-l
iH
2:
Lü
\d
1 —
*^
-^
H-
O K
-i O
O
M¡X
(—
-w
T
í- -
--
CO
a
<•
co
\i-¡
&EI
1-1 u
rx
T-
Í a
liI¡
II ^
¡1
El M
V
ixrx
H--
. o
rx M
coco
co
a
MÍ-
HC
O
MÍ-
CO
G11
C£ ^
X
II tí
— X
11
U-^
OO
-O
UiO
x^
O^
OU
I ü
_rx
•r-:
^:u
,N2
:cD
2:L
uN
3:M
2:
oo
oo
oo
oo
oo
oo
*7"
b"3
xl
|X
CO
CN
O
T-
Í C-
J tO
"
ü"
3¡x
rxrx
rxrx
fxc
oc
oc
oo
Dc
oc
ofx
fxrx
rsrx
fxfx
fxfx
íxrx
N
v;
O M
i —
*-•• -o
1-H
l_
J
1— f
— '
1— Í
¿; *
-^0
EX
U.
fsi
o o
-o r
x03
C
ON
fx
APÉNDICE III PAG.44
7880789079007910792079307940795079607970798079908000801080208030S04080508000307080808090810031109000901090209030904090509000907090809090910091109120913091409150100001001010020100301004010050:LOOÓQ100701008010090101001011010120101301014010150
NEXT. IGO Tu 7940N7=S8FOR 1=1 TO K-lZ7(I)=C7<I)NEXT IXO(K>=0X1(K)=0X2<K)=0X3(K>=0X4(K)=0X5(K>=0Xó(K)=0X 7 < K > = 0ZOCIO-1Z1(K)=1Z 2 < K > = 1Z3(K)=1Z4(K>=1Z5(K)=.lZóCK)=lZ7(K)=1GOSUB 11000RETURNREM *****************************#***#******************#******:REM calculo de las distancias de hsmmináMOVE 30+N*10?10INPUT MI
TREN 9020
THEN 9060
IF VKO OR V1>F3HOYE 30+N*10>7INPUT V2U2-INTÍV2)IF V2<0 OR V2>F3FOR 1=1 TO 40=ABS(ACIr1>~V1)
NEXT IRETURNREM **********************************************************:REM TÍTULOSPRINT -LJIESCUELA POLITÉCNICA NACIONAL"PRINT 'IHEMOSTRACION DE LOS DECODIFICADQRES"PRINT 'ICODIFICADOR K - 5 R - 1/2"MOVE 0»0DRAW O?100DRAW 130f100DRAW 130rODRAW O fOMOUE 0?80DRAW 130í80MOME 130>83DRAW 0/88MOUE 15,88DRAW 15/14
APÉNDICE III PAG*45
.10100 MÜUE 30*8310170 DRAW 30>1410180 HOYE 5r1010190 PRINT 'Primer10200 MOVE 5,710210 PRINT ' Secundo10220 MOVE 0,1410230 DRAW 130,141-0240 MUYE 3,8310250 PRINT ' Estado 3
10260 MOME 17,8310270 PRINT 'Métrica10280 HOYE 5,7510290 PRINT '0000-10300 MOVE 5,7110310 PRINT '0001'10320 HOUE 5,6710330 PRINT -0010"10340 MOVE 5,0310350 PRINT '001 I1
10360 MOUE 5,5910370 PRINT '0100"10380 MOVE 5;5510390 PRINT '0101 J
10400 MOUE 5,5110410 PRINT '0110'10420 HOYE 5/4710430 PRINT "0111 "10440 MOUE 5r4310450 PRINT '1000110460 MDUE 5)3910470 PRINT '1001 "10480 MQVE 5?3510490 PRINT "1010"10500 MOUE 5,3110510 PRINT '1011110520 MQVE 5r2710530 PRINT "1100a
10540 MQVE 5r2310550 PRINT '1101'10560 MOVE Sí 19IL0570 PRINT -1110"10580 MOUE 5x1510590 PRINT "lili'10600 MOVE 30^8410010 ÜRAW 130r8410620 MDUE 33^8110630 PRINT 'Histori10640 RETURN11000 REM **********
bit
bit
•
a de
####11010 REM SUBRUTINA11020 MOUE 20,7511030 PRINT LO11040 MQUE 20,7111050 PRINT Ll
135 trayectorias F4 bits
**********************************************************PARA LA IMPRESIÓN DE LAS MÉTRICAS
APÉNDICE III PAG,40
1106011070110801109011100111101112011130111401115011100.1117011180111901120011210112201123011240112501126011270112801129011300113101132011330113401135011360113701138011390114001141011420114301144011450114601147011480114901150011510115201153011540115501156011570115801159011600
MOUE 20,67PRINT L2MOUE 20,63PRINT L3MQUE 20,59PRINT L4MQUE 20/55PRINT L5MOUE 20*51PRINT L6MOUE 20,47PRINT L7MOUE 20/43PRINT NOMOUE 20,39PRINT NIMOUE 20r35PRINT N2MOUE 20/31PRINT N3hOUE 20/27PRINT N4MOUE 20723PRINT N5MOUE 20,19PRINT NoMOUE 20,15PRINT N7FOR 1=1 TO KBOCI)=XO(I)B1(I)=X1CI)B2(I)=X2<I)B3<I)=X3CnB4(I)=X4(I)B5<I)=X5(I)B6(I)=Xó(I)B7(I)=X7(I>CO(J)=ZO(I)CKI)=Z1(I)C2(I)=Z2(I)C3(I)=Z3(I)C4(I)=Z4(I)C5(I)=Z5(I)C6CI)=Z6CI)C7<I)=Z7(I)MOUE 30+3*I>75PRINT XO(I)MOUE 30+3*1,71PRINT XKI)MOUE 30+3*1,67PRINT X2(I)MOUE 30-1-3*1,63PRINT X3CI)MOUE 30+3*1,59PRINT X4CI)
rx o <r LJ u M Lü ü_ <E
ID IOrx
¡O
M
M
-,
•5t
H
-54
Hí--j
— r
o —
-{-
IO 4
- -O
n
o
in•?-
ro
ro
M •"
* M
•"•
M
-~v
•if£
i—I
•?£
H •;
«;•
¡-I
ro —
ro
ro
—+
O +
-r
H H
-
OJ
ro M
rx OJ
oIO
ro -
ñ
M
. h-í
--
v M
*~
.*í M
3£ n
H
hí ^
- ro
•--
ro —
H-
ID -r
-O
-i-
OX
OX
OX
ON
IO
N!
ON
iO
,X
ÍO
NIO
NO
NO
Nro
ro
ro
r-^
ro
ro
ro
ro
ro
ro
ro
M
2:
H-
l-
í-
H-
[-
l-
l-
t-
I-
I-
I-
üí
Ld
2;u
J2
:Lij^:i
ij2
:LU
2:i
ü2
:Lü
2:i
iJ3
:u^:i
ij^:u
j2:H
riI>
MZ
>M
_>
MI>
MZ
> M
D-M
>M
r>
Ml>
Ml>
MI>
fH
Xí—
Oi^
OK
O^
Oi^
Oi^
O^
OL
¿O
i^
OL
£:O
L¿
OL
¿L
ül.L
J
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
T-Í
c-j
ro T
m -
o fx
co
o- o
•*-
; r-
j ro f
ÜT
-o
rx c
o ex
o
T-Í
c-J r
o -^
-H
t~í
r-H
rH
T-Í
-rH -H
r-í
t-í
-H
APÉNDICE III PAG.48
1000 REM PROGRAMA 'DEMDEC4a1010 01=61020 GO TO 8001030 REM • DEMOSTRACIÓN DE LOS DECODIFICADORES1040 REM CÓDIGO K = 3 R = 1/31050 DELETE XOrXlrX2 JX31000 DELETE BOjBlfB2íB31070 DELETE D,Mi,M2,A,S3,S1080 Jl=F4+31090 DIM XOCJ1)fXi(Jl)rX2<Jl),X3(Ji)1100 DIM BO(Jl),B1(Jl)íB2(Jl)jB3<Jl)1110 DIM A<8,3),n<8)y MI(Jl),M2(J1)»S3(3)1120 BOCF4 + D-01130 B1(F4+1)=01140 B2CF4+1)=01150 B3(F4+1)=01100 M2(F4-fl)=01170 E=01180 El=01190 E2=01200 L0=01210 Ll=01220 L2=01230 L3=01240 L9=01250 S3(l)=01200 S3(2Í=01270 S3(3)=01280 AdrD^O1290 A(lí2)=ü1300 A(lí3)=01310 A(27l)==01320 A(2r2)=01330 A(2»3)=.t#F31340 A(3íl)=01350 AC3í2)=3.#F31300 AC3í3)=01370 AC4fl)=01380 A(4j2)=l#F31390 A(4/3)=1*F31400 A(5íl)1410 AC5r2)=01420 AC5/3)=01430 A(óil)=l1440 A(óí2)==01450 A<óí3)=l1400 AC7íl)1470 A(7j2)=l*F31480 AC7r3)=01490 A(8jl)=l*F31500 A(8T2)=1^F31510 A(8í3)^l^F31520 PRINT 'LJJJJJJJIESCUELA POLITÉCNICA NACIONAL1530 PRINT 'JJJIFACULTAD DE INGENIERÍA ELÉCTRICA1540 PRINT 'JJJIALGORITMO DE UITERDI "
APÉNDICE III • PAG,49
PRINT 'JJJIDEMQSTRACION DE LOS DECQniFICADORESDE BITS A GENERARSE IGG'J
1500
PRIMER PERIODO DE TIEMPO
156015701580159016001610162016301640165016601670:LÓ801690170017101720173017401750176017701780:L790180018101820.1830184018501860187018801890190019101920.193019401950196019701198019902000201020202030204020502060207020802090
PRINT 'JJJIINPUT K2
NUM
IF K2<F4 THENDIM S(K2+F4REMK=lM=lGOSUB 6000GOSUB 5000LO=D<1)XO(K>=0L2=D(4)X2(K)=1MOUE 18,70PRINT KMOUE 13,60PRINT LOMOUE 18,30PRINT L2MOUE 5,65DRAU 20,35MOUE 5,65ÜRAW 20x65DCTW __í\t.nK=K+1M = 2GOSUB 5000A1 = LOA2=L2LO=A1-KK1)Ll=A2+ü(3)L2=A1+D(4)L3=A2+DC2)XO(K)=0XKK)=0X2(K)=1X3(K)=1X1(1)=X2C1)X3(1)=X2(1)X2(1)=XO(1)MOUE 3-I-15KMPRINT LOMOUE 3-fl5#MPRINT LlMOUE 3-f.l5^MPRINT L2MOUE 3+15*MPRINT L3MOUE 3-M5*MPRINT KFOR 1=1 TOBO(I)=XOCI)B1CI)=X1(I)B2<I)=X2(I)
)->
róO
,45
,30
rl5
,70
K
SEGUNDO PERIODO DE TIEMPO
APÉNDICE III PAG,50
210021102120213021402150216021702180219022002210
223022402250226022702280229023002310.23202330234023502300237023802390240.024102420243024402450240024702480249025002510252025302540
B3(I)NEXTMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWM=M+1REM -K=K+1GOSUBT I— >_/ —ir M —GO TOGOSUBM=lMOVEPRINTREM -GOSUBIF K=GO TOREMREMK1 = KK=F4IF LO<L1
=X3(I)I5+15*(M-l> 7 655+15*M,655+15*<M~l) 7055+15#Mr355+15*(M-l) ?355-H5*M,505+15#<M-l> ,35
------- >CUALQUIER PERIODO DE TIEMPO
50009 THEN 226022806000
3+15*M?70K~> CALCULO DE LOS SUPERVIVIENTES4000
F4 THEN 23402210
ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
THEN 2400GOIFGOIFGOIFGOIFGOIFGO
TO 2440LO<L2 THEN 2420TOLO-TOLI-TOLI-TOL2-TO
2480:i._3 THEN2560!L2 THEN2480!L3 THEN2560!L3 THEN2560
S(Kl-fl-K)=XO(l)GO TO 2570S<KÍ+1-K)=X1(1)GO TO 2570S(Kl+i-K)=X2(l)
2500
2460
2540
2550 GO TO 2570250025702580259026002610262026302640
S(K1+1~K)=X3(1)FOR 1=1 TO KXOCI)=BOCI+1)XKD^BKI-fl)X2(I)=B2(I+1)X3(I)=B3(I+1)BOCI)=XOCI)B1(I)=--X1(I)B2CI)=X2(I)
APÉNDICE III PAG.51
.2050206020702080269027002710272027302740275027602770278027902800281028202830284028502860287028802890290029102920293029402950296029702980299030003010302030303040305030603070308030903100311031203130314031503160317031803190
B3CD-X3CI)NEXT IIF K1=>K2 THEN 2780K1=K1+1GQSUB 5000IF M=9 THEN 2720GO TO 2740GOSUB 6000
MOUEPRINT KlGOSUB 4000GO TO 2330REMREML9-L9+1IF L9=K+1 THEN 2880K1=K1+1
SALIDA
REM -GOSUBGO TOPRINTFOR IPRINTNEXTPRINTINPUTPRINTPRINTPRINTPRINTPRINTIF F3PRINTGO TOPRINTPRINTPRINTPRINTINPUTIF W$GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTEND
—> INYECCIÓN DE LA COLA DE CEROS51402700•LJJJiniGITQS DECODIFICADOS :'
==1 TO K2' I' ? I i ' = ' y S (I)
I"JJIpresione RETURN para continuar 3 f
@32:'LJJJJJIESCUELA POLITÉCNICA NACIONAL"032:'JIFACULTAD DE INGENIERÍA ELÉCTRICA'@32; ' JIALGORITMO DE VITERBI"
032:"JJCODIGO K - 3 R = 1/3'=1 THEN 3020(?32t ' JIDECODIFICACION SUAVE (8 niveles)'3020¡2t'JIDECODIFICACION DURA <2 niveles)'¡2Í"JIHISTORIA DE LAS TRAYECTORIAS = "JF4fJINUMERO DE DATOS GENERADOS = " ? K2
•JJI OTRA PRUEBA (S/N)tGG"í
= 'SB THEN 30903200•LJJJJI ESCUELA POLITÉCNICA•JJIALGORITMO DE"JJIDEMOSTRACIONE
NACIONAL
•JITecla'JITecla•JITecla•JITecla•JITecla•JITecla•JITecla
ESCOGER= 3
AKKKKKK = :MENÚ
= D
= 4
1/2"1/2'1/2'1/311/3 '1/31
APÉNDICE III PAG.52
3200 PRINT 'LJJJJJI3210 INPUT W$3220 IF Uí^'S" OR Ul*='s'3230 PRINT 'JJI GRACIAS'3240 END4000 REM *##4010 REM4020 P1=LO+D(1)4030 Q1=L2+D(3)4040 R1=LO+D<4)4050 Sl=L2+n<2)4000 P2=Ll-fnC4)4070 Q2=L3+D(2)4080 R2=L1+D(1)4090 S2=L3+D(3)4100 IF P1<=P2 THEN 41804110 LO=P24120 FOR 1=1 TO K-l4130 XOCI)=B1(I)4140 NEXT I4150 MOVE 5+<M-l>*15j504100 DRAU 5+M*15íó54170 GO TO 42404180 LO=P14190 FOR 1=1 TO K-l4200 XO(I)=BO<I)4210 NEXT I4220 MOVE 5+(M-l>#i5,ó54230 DRAW 5+M*157Ó54240 XO(tO=04250 IF Q1<=Q2 THEN 43304260 L1=Q24270 FOR 1=1 TO K-l4280 XKI)=B3(I)4290 NEXT I4300 MOVE 5+(H-l)*15í204310 DRAU 5+M^15T504320 GO TO 43904330 L1=Q14340 FOR 1=1 TO K-l4350 X1(I)=E2(I)4360 NEXT I4370 MOVE 5+<M-l)#15>354380 DRAUI 5+M*l5*504390 XI (K) -O4400 IF RK=R2 THEN 44804410 L2=R24420 FOR 1=1 TO K-l4430 X2CI)=B1(I)4440 NEXT I4450 MOVE 5+(M~l)*15r504460 DRAW 5+M#15r354470 GO TO 4540
deses regresar si MENÚ (S/N)
THEN 4
^SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
APÉNDICE III PAG*53
4480449045004510452045304540455045004570458045904000401040204030404040504060407040804090470047104720473047404750476047704780479048004810482048304840485050005010502050305040150505000507050805090510051105120513051405150
L2=R1FOR 1=1 TO K-lX2CI)=BO(I)NEXT. IMOVE 5+<M-l)*15,ó5riRAW 5 + MÜC15735X2(K)=1IF SK=S2 THEN 4030
FOR 1X3(I)NEXTMOUEDRAWGO TOL3=S1FOR 1X 3 < I )NEXTMQUEIiRAUX3(K)FOR 1BO(I)BKI)B2(I)B3(I)NEXTMQUEPRINTMOUEPRINTMOUEPRINTMOUEPRINT
=1 TO K-l=B3(I)I5+(M-l)#15i205+M*15>204090
=1 TO K-l=B2(I)I5+(M-l)#15,355+M*15,20=1=1 TO K=XO(I)=XKI)=X2<I)=X3(I)I
LO
Ll+ML2+L3
RETURNREM #*:K################*####:*:tt*^REM SUBRUTINA PARA EL CALCULO HE LAS DISTANCIAS DE HAMMINGMOVE 30+M*10rlOINPUT VIV1=INT(V1>IF UKO OR V1>F3 THEN 5020MOUEINPUT U2
IF V2<0 OR V2>F3 THEN 5060MOUE 30+M*10f4INPUT U3U3-INTÍU3)IF U3<0 OR U3>F3 THEN 5100FOR 1=1 TO 8
APÉNDICE III PAG,54
516051705180519052005210522060006010602060306040605060606070603060906100611061206130614061506160617001806190620062106220623062406250626062706280029063006310632063306340635063606370638063906400641064206430
U=ABS(A(I,3>-"U3)D(I)=0+T+UNEXT -ID(3)=ri(7)D ( 4 ) =D < 8 )RETURNREM **********************REM TIPAGEMOUE 0,0DRAW 0,100IiRAW 130*100DRAW 130.0DRAW 0,0MOUE 40,95PRINT "ESCUELA POLITÉCNICAMOUE 35,90PRINT "DEMOSTRACIÓN BE LOSMOUE 40,85PRINT "CODIFICADOR K = 3MOUE 5,80PRINT "LONGITUD DE LAS TRAMOUE 80,80PRINT -BITS A GENERARSE; aMOUE 5,10PRINT "Primer bit (0-'ÍF3MOUE 5,7PRINT "Secundo bit <0-'?F3MOUE 5,4PRINT "Tercer bit (0-'íF3MOUE 2,69PRINT ' ¡ •MOUE 2,70PRINT ' ! >"MOUE 2,72PRINT ' ¡ Tiempo"MOUE 2,69PRINT 'VaMOUE 1,75PRINT "Estado"MOUE 1,65PRINT '00aMOUE 1,50PRINT a01"MOUE 1,35PRINT "10"MOUE 1,20PRINT "11"RETURNENB
*T
Y
í
T
t
J
NACIONAL"
DECOniFICADORES"
1/3
F4
APÉNDICE III
100010101020103010401050106010701080109011001110112011301140115011601170:L18011901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440.1450146014701480149015001510152015301540
REH PROGRAMA "DEMD01 = 7GO TO 800REM • DEMOSTRACIÓN DE LOSREM CÓDIGO K = 4T"Í tT i C"T"c" "V/"* "Y1 Y Y ~7 Y .A \'cr Y ' Y ~?
DELETE BO f Bl j B2 j B3 , B4 , B5 ? Bó , B7DELETE riíMlíM2jAíS3J1-F4+1DIM XOCJ1) yXKJl) »X2( Jl) íX3CJl)DIM BO(J1) BlCJl) rB2CJl) íB3CJl)DIM A(8f3) rD(8) yMKJl) yM2(Jl) rSBOCF4-fl)=0B1(F4+1)=0B2CF4-fl)=0B3< F4 + 1 )=0B4CF4-fl)=0B5(F4il)=0B6CF4+1 )=0B7 CF4+1 y~0E=0El = 0E2=0L0=0Ll = 0L2=0L3~0L4=0L5=0Ló^OL7-0L9=0S3<1)=0S3(2)=0S3(3)=0S3C4)=0A ( 1 , 1 ) =0AC If2)=0A( 1 y 3)-0A (2 j 1 )=0A<2?2)=0A(2y3)=l*F3AC3? 1 >=0A (3? 2)=1*F3A<3f3)=0A (4j 1 ) =0A (4, 2) =lJ)íF3A(4 r3) = l^F3AC5» 1)=1*F3AC5í2)=0AC5í3)^0A < 6 j 1 )=1*F3A( ó» 2)=0A(6r3)"lX<F3AC7rl)=l*F3
DECODIFICADORESR = 1/3
>XÓ(J1)>B4(J1) ?B5(J1)
APÉNDICE III PAG,56
1550156015701580159016001610102010301640165016601070168016901700171017201730174017501700177017801790180018101820183018401850186018701880189019001910192019301940195019601970198019902000201020202030204020502060207020802090
A(7*2)=1*F3A<7,3)=0
A<8,2)=1#F3
PRINTPRINTPRINTPRINTPRINTINPUTIF K2
'LJJJJJJJIESCUELA POLITÉCNICA NACIONAL "' JJJIFACULTAD DE INGENIERÍA ELÉCTRICA u
' JJJIALGORITMO DE UITERBI B
' JJJIDEMOSTRACION DE LOS HECOÜIFICADORES-JJJINUMERO ÜE BITS A GENERARSE IGG'ÍK2F4 THEN 1640
DIM S(K2+F4)REM -------- > PRIMER PERIODO DE TIEMPOK = lN=lGOSUB 8000GOSUB 7000LO=D(1)XO(K)=0L4=n<8>X4<K)MQUEPRINTMOVEPRINT
1
LO
PRINT L4MOUE 5yó9DRAW 5+N*15,ó9MOUE 5.69DRAW 5rN*15.'41REM > SEGUNDOK=K+1
GOSUB 7000
LO-Al+Dd)L2=A2+D<7)L4=A1-KK8>
XO(K)=0X2(K)=0X4(K)=1Xó(K)=lX2C1)=X4(1)
X4(1)=XO(1)MOUE 2+N*15?ó5PRINT LOMOUE 2 + N*15í5:LPRINT L2MOUE 2+N*15r37PRINT L4
PERIODO DE TIEMPO
APÉNDICE III PAG,57
21002110212021302140215021002170218021902200221022022302240225022002270T O f~\
229023002310232023302340235023002370238023902400241024202430244024502400247024802490250025102520253025402550256025702580259026002610202020302040
MQYE 2+N*15>23PRINT LoMOUE 3+N#15í74PRINT KFOR 1=1 TO 2BO(I)=XO(I)B2(I)=X2(I)B4 C I >~X4 ( I )BÓCI)=Xó<I)NEXT IM (I U F" S-4-ÍW— 1>5f e 1 c r t » ¿ 9IIUVC. i_)T\IX -L.''V--Li_lf<_'7
DRAU 54-N#15ró9MOYE 5-KN~l)#15r69ÜRAU 5+N*15j41MOUE 5+(N-l)*15,41DRALJ 5+N*15í27MOUE 5+(N~l)*15y41DRAW 5+N*15f55C1 cr w '••. T cr D p c r> D tr n T n ri r\\T T T cr xi c> r".K c. n .-•• 1 fc. K U t. h, r h K 1 U J,l u Uc. 1 i h. n r 0K=3N-3GOSUB 7000MOVE 3+N*15í74PRINT KAl-LOA2-L2A3-L4A4-L6LO-Al+DCl )Ll~A2-fDC6)L2-A3+ÜC7)L3=A4+D(4)L4=Al-fD(8)L5=A2+n(3)L6=A3+D<2)L7=A4+D(5)XO(K)-0X1(K)=0X2CK)=0X3<K)=0X4(K)=1X5(K)=1Xó (K)=lX7(K)=1FOR 1=1 TO 2XO(I)-BOCI)X1(I)=B2(I)X2<I)=B4(I)X3(1')=B6(I)X4(I)=BOCI)X5<I)=B2CI)XÓCI)=B4(I)X7( I )=B6C I )NEXT IMOUE 2+N#15ró5
APÉNDICE III PAG. 5:
2650266026702680269027002710272027302740275027602770278027902800281028202830284028502860287028802890290029102920293029402950296029702980299030003010302030303040305030003070308030903100311031203130314031503160317031803190
PRINTMOVEPRINTMOVE .PRINTMOVEPRINTMOVEPRINTMOVEPRINTMOVEPRINTMOVEPRINTFOR IBO(I)B 1 C I )B2(I)B3(I)B4CI)B5CI)BÓ(I)B7ÍI)NEXTMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWMOVEDRAWN=N + 1REM -K=K+1GOSUB
LO2+N#lLl
2+N#lL2
2 + N*lL3
2 + N*lL4
2 + N*lL5
2 + N#lLo
2 + N#lL7
-1 TO= XO(I-XI C I= X2(I= X3(I= X4(I= X5(I= X6(I=X7<II5-H N~5 + N#l5+CN-5 + N#l
5 ?
c-
57
5,
5?
5 j
5 1
K))))))))
1 )5í1)5?
5-KN-l)5+N#l5+ÍN-5+N£l5-HN-5+N&15+(N~5 + N#l5+<N-5 + N#l5-f-CN-5+NK1
7000
•J T
1)
5 ?1 )5 t1 )5/1)5í1)5 í
IF N=9 THENGO TOGOSUBN = lMOVEPRINTREM -GOSUB
31408000
3 + N#lK
5 t
58
51
44
37
30
23
16
#l5r 6969#15,0941* 1 5 > 4 155* 1 5 T 4 127#15,5502\t- -i cr tr críf • i iJ ! O J
34#15j 2748#15? 2720
>CUALQUIER
3120
74
— > CALCULO DE LOS5000
IF K-F4 THENGO TO 3070
3200
PERIODO DE TIEMPO
SUPERVIVIENTES
APÉNDICE III PAG.59
O^V V
321032203230324032503200327032803290330033103320333033403350336033703380339034003410342034303440345034603470348034903500351035203530354035503560357035803590360036103620363036403650366036703680369037003710372037303740
JAC.I 1 ~ ~~ ' •
REM ESCOGIMIENTO DEL MENOR SUPERVIVIENTEKl — KK-F4 •M=LOIF M<L1 THENM=L1IF M<L2 THENM=L2IF M<L3 THENM=L3IF M<L4 THENM=L4IF M<L5 THENM=L5IF M<L6 THENM=L6IF M<L7 THENM=L7IF LO=M THENIF L1=M THENIF L2=M THENIF L3=M THENIF L4=M THENIF L5=M THENIF LÓ=M THENSCK1+1-K)=X7<GO TO 3610S<K1+1-K)=XÓ(GO TO 3610S(K1+1-K)=X5(GO TO 3610SCK1+1-K)=X4ÍGO TO 3010S(K1-H-K)=X3ÍGO TO 3610S(Kl-fl-K)=X2<GO TO 3610S(K1+1-K)=X1(GO TO 3610S(KÍ+1-K)=XO(FOR 1=1 TO KXO < I )~BO( 1 + 1 )XI ( J)=BKI+1)X2(I)=B2(I+1)X3(I)=B3(I+1)X4<I)=B4(I-fl)X5 C I ) ~B5( 1 + 1 )Xó(I)=Bó(I-J-l )X7CI)-B7<I+1)BOCI)-XO(I)B1CI)=X1(I)B2CD-X2CI)B3 < I >=X3( I )B4(I)=X4(I)
3270
3290
3310
3330
3350
3370
3390
36003580356035403520350034801)
1)
1)
1)
1)
1)
1)
1)
APÉNDICE III PAG.00
3750376037703780379038003810382038303840385038003870388038903900391039203930394039503900397039803990400040104020403040404050406040704080409041004110412041304140415041004170418041904200421042204230424042504200427042804290
B5(I)=X5(I)BÓÍI)-Xó(I)B7(I)=X7<I)NEXT - IIF K1=>K2 THEN 3900Kl-K'l-t-1GQSUB 7000IF N=9 THEN 3840GO TO 3800GOSUB 8000
MOMEPRINT KlGOSUB 5000GO TO 3240
REM SALIDA
IF L9=K+1 THEN 4010K1=K1+1
REM -GOSUBGO TOPRINTFOR IPRINTNEXTPRINTINPUTPRINTPRINTPRINTPRINTIF F3PRINTGO TOPRINTPRINTPRINTPRINTINPUTIF LJ$GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINT
—> INYECCIÓN DE LA COLA DE CEROS71403820•LJJIDIGITOS DECODIFICADOS í '
=1 TO K2
I'JJlpresione RETURN psrs continuar
0320320320321 Th032402C032032
1 Jl
•LJJJJJ1ESCUELA POLITÉCNICA NACIONAL'JIFACULTAD DE INGENIERÍA ELÉCTRICA1
•JIALGOR1TMO DE UITERBI'1 JICODIGO K = 4 R = 1/3'
-1EN 4140•JIDECQDIFICAC1QN SUAVE (8 niveles)')"JIDECQDIFICACIQN DURA .(2 niveles)'•JIHISTORIA DE LAS TRAYECTORIAS = 'í•JINUMERO DE DATOS GENERADOS = • ? K2OTRA PRUEBA CS/NKGG"?
>
F4
= 'S' THEN 42104320•LJJJJ1 ESCUELA POLITÉCNICA NACIONAL1
'JJ1ALGORITMO DE MITERBI1
•JJ1DEMOSTRACIONES A ESCOGER '?•JITecls * 3 * K = 3•JITecls * 4 > K = 4
K ~ 5K = 3K = 4
•JITecls *•JITecla * ó•JITecls * 7•JITecls t 8 K ~
1/2'1/2'1/2'1/3'1/311/31
APÉNDICE III PAG,01
430043104320433043404350430050005010502050305040505050005070508050905100511051205130514051505:160517051805190520052105220523052405250520052705280529053005310532053305340535053605370538053905400541054205430544054505400
PRINTENDPRINTINPUTIF W$=PRINTENDREMREMP1=LO+D<1)RÍ=Ll+n<8>P2=L2+D(Ó)R2=L3+D<3)P3=L4+ÜC7>R3=L5+D<2)P4=LÓ+DÍ4)R4=L7+B<5)P5=LO+D(8)R5=LH-DU)PÓ=L2+n<3)Ró=L3+D(ó)P7=L4+D(2)R7=L5+D(7>PS-LÓ+HC5)
JITecls MENÚ1
LJJJJJI desea reáressr si MENÚ CS/N)
Sa OR W$='s'JJI GRACIAS'
THEN 4
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
IF PK=R1 THEN 5200LO=R1FOR 1=1 TO K-lXO(I)=E1CI)NEXT IMOVE 5+<N-l)*157Ó2DRAW 5+N*15fó9GO TO 5320LO = P1FOR 1=1 TO K-lXO(I)=BO<I)NEXT IMOVE 5+(N-l)*15íó9DRAW
IF P2<=R2 THEN 5410L1 = R2FOR 1=1 TO K-lXI (I)=B3CI)NEXT IMOVE 5+<N-l)*15r48DRAW 5+N*15?62GO TO 5470L1 = P2FOR 1=1 TO K-lX1(I)=E*2(I)NEXT IMOVE 5+(N-l)*15,55DRAW 5+N*15?62
APÉNDICE III PAG.62
54705480549055005510552055305540l~ c? cr s\0
55705580559056005610562056305640565056605670568056905700157105720573057405750576057705780579058005810582058305840585058605870588058905900591059205930594059505960597059805990000000 10
X1(K)=0IF P3<=R3 THENL2 = R3FOR 1=1 TO K-lX2CI)=B5<I)NEXT IMQVE 5+<N-l>#15DRAW 5+N#15í55GO TO 5620L2=P3FOR 1=1 TO K-lX2(Í)=B4(I)NEXT IMOUE 5+<N-l)#15DRAW 5+N#15í55X2CK)=0IF P4<=R4 THENL3=R4FOR 1=1 TO K-lX3(I)=B7(I)NEXT IMOUE 5+<N-l)#15DRAW 5+N*15í48GO TO 5770L3=P4FOR 1=1 TO K-lX3(I)=BÓ<I)NEXT IHOYE 5-KN-l)#l5DRAU 5+N#l5j48X3CK)=0IF P5<=R5 THENL4 = R5FOR 1=1 TO K-lX4( I ) =B1 ( I )NEXT IMOUE 5+(N-l)*l5DRAU 5+N^lSr41GO TO 5920L4 = P5FOR 1=1 TO K-lX4U)=BO(I)NEXT IMOUE 5+(N-l)*15DRAW 5+N^15í41X4(K)=1IF P6<=R6 THENL5=R6FOR 1=1 TO K-lX5(I)=B3<I>NEXT 1"MOVE 5+CN-l)*15DRAW 5+N*15734GO TO 6070L5=Pó
5560
j 34
r 41
5710
7 20
7 27
5860
i 62
T 69
6010
r48
APÉNDICE III PAG,03
6020603060406050606000706080609061006110612061306140615061606170618061906200621062206230624062506260627062806290630063106320633063406350636063706380639064006410642064306440645064606470648064906500651065206530654065506560
FOR IX5CI)NEXTMOUE •DRAWX5CK)IF P7L6-R7FOR IX6CI)NEXTMQUEDRAWGO TOL6=P7FOR IXó(I)NEXTMOUEDRAWXó(K)IF P8L7=R8FOR IX7CI)NEXTMQUEDRAWGO TOL7-P8FOR IX7(I)NEXTMOUEDRAWX7CK)
= 1 TO=B2(II5+<N-5+NK1= 1<=R7
= 1 TO=B5(II
K~l)
1 )*155,34
THEN
K-l>
5+<N-l>#155 + N*l6220
-1 TO=B4(II5+<N-5+N#l= 1<=R8
= 1 TO= B7(II5-KN-5-fN#l6370
-1 TO=B6CII5i(N~
5f27
K-l)
1)^155,27
THEN
K-l)
1)#155,20
K-l)
1 )*15
,55
6160
,34
,41
6310
r20
,275+N#15»20-1
FOR J=l TOBOÍ J)=XO<JBKJ)B2(J)B3CJ)B4 C J )B5 C J)B<S< J)B7(J)NEXTMGUEPRINTMOUEPRINTMOUEPRINTMOUEPRINTMOUE
K)
=X1(J)— Y? ( !— AJÍ. \J
"~~ A O ^ \J
=X4(J=X5 C J
\ / / *
))))>
=X7(J)J2 + N*lLO
2 + NíKlLl
2 + N*lL2
2+N*lL3
2+N*l
5/65
5,38
5,51
5,44
5,37
APÉNDICE III PAG. 04
057005806590ÓÓOOÓÓ10ÓÓ20ÓÓ30ÓÓ40ÓÓ5070007010702070307040705070007070708070907100711071207130714071507100717071807190720072108000801080203030804080508060S07090808090810081108120813081403150B1ÓO8170818081908200Í32108220
PRINT L4MOUE 2+N#15,30PRINT L5MOVE '2+N#15,23PRINT LoMOVE 2+N*15, 16PRINT L7N=N+1RETURNREMREM CALCULO DE LAS DISTANCIAS DE HAMMINGMOVE 30+N*10flOINPUT VIV1=INT(V1)IF VKO OR V1>F3 THEN 7020MOVE 30+N*10i7INPUT V2V2=INTCV2)IF V2<0 OR V2>F3 THEN 7000MOVE 30+N*10í4INPUT V3 .V3=INT(V3)IF V3<0 OR V3>F3 THEN 7100REM ----- > CODIFICACIÓNFOR 1=1 TO 80=ABS(A<If D-V1)
D(I)=0+T+UNEXT IRETURNREM ***********************************************************REMPACEMOVEDRAWDRAWÜRAWDRAWMOVEPRINT
TÍTULOS
0,0OflOO130,100130,00,040r95"ESCUELA POLITÉCNICA NACIONAL
F4
MOUE 10,90PRINT 'DEMOSTRACIÓN DEL DECODIFICADOR K = 4MOUE 10,85PRINT 'LONGITUD DE LAS TRAYECTORIASMUYE 80,85PRINT 'BITS A GENERARSE;MOVE 5,10PRINT 'Primer bit (O-' ÍMOVE 5,7PRINT "Secundo bit (0-MOVE 5,4PRINT 'Tercer bit C O- • í F3 í ' )MOVE 1,80
R = 1/3'
K
F3?1)
APÉNDICE III PAG*65
323082408250820032708280329083008310832083308340335033608370838083908400841084208430844084508460847084808490
PRINTHOYE 3PRINTMOVE-3PRINTMQUE 3PRINTMQVE 3PRINTHOYE 1PRINTMGYE 1PRINTMQVE 1PRINTHOUE 1PRINTMOVE 1PRINTMOUE 1PRINTMOUE 1PRINTMQUE 1PRINTRETURNEND
"Estsdo",77I t D
1
,701 ¡ Tiempo*?74* iij 72•v"JÓ9'000',62•001aí 55"010"r4S
•Olí'r41
"100-.34"101a
,27"110'?20•111"
APÉNDICE III PAG*ÓÓ
100010101020103010401050106010701080109011001110112011301140115011001170118011901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440145014001470148014901500151015201530.1.540
REM01 = 8GO TO 800REM •REMDELETE XO,X1,XDELETE BOfBl,BDELETE ZO,Z1>ZDELETE COrCl^CDELETE D,MlrM2J1=F4+1DELETE 8,100DIM XOCJl)7X1(DIM BOCJDíBKDIM ZOÍJ1),Z1<DIM CO(J1),C1(DIM D(8)rMICJlBOCF4+1)=0 •Bl(F4-fl)-0
= 0= 0
B4<F4+1)=0B5(F4+1)=0B6<F4+1)=0B7(F4+1)-0COCF4+1)=0C1CF4+1)=0
C3(F4+1)=0C4(F4+1)=0
C6(F4 + 1)=0'C7(F4+1>=0M2(F4+1)-0
Ll-0
L3=0L4=0L5=0
L7-0
NO^O
N3=0
N5=0
G(l)=0G<2)=0
•PROGRAMA "DEHDECó'
DEMOSTRACIÓN DECÓDIGO K = 5
LOS DECODIFICADORESR = 1/3
S
Jl) ,X2Í Jl)Jl) fB2(Jl)Jl) fZ2CJl)
l) rX4CJl) fX5(Jl) , XOCJl) ?X7(J1)B3<J1) rB4(Jl) jB5<Jl) rBÓCJl) , B7( Jl)Z3CJl) yZ4CJl) íZ5C Jl) 7ZÓÍJ1) -Z7CJ1)
Jl) ?C2(J1) 7C3ÍJ1) JC4CJ1)) íM2(Jl) ?GC5) t A(8?3)
>CÓ(J1) TC7CJ1)
APÉNDICE III PAG,07
1550156015701580159016001010162016301640165016601670168016901700171017201730174017501760177017801790180018101820183018401850186018701880189019001910192019301940195019601970198019902000201020202030204020502060207020802090
G(5) =AdílAC 1 r 2A < 1 r 3A (2 j 1A < 2 > 2A( 2? 3A(3ílA(3f 2A(3?3A ( 4 1 1A ( 4 t 2A<4,3A(5y 1
AC5,2A(5,3A ( 6> 1AC 6 r 2AC6í3A (7í 1AÍ7,2A C7í 3A(8f 1AC8?2A(8>3PRINTPRINTPRINTPRINTPRINTINPUTIF K2DIM SK=lN=lGOSUBMOUEPRINTGOSUBLO = D(XOCK)NO~D<ZOCK)MOUEPRINTMOUEPRINTMOVEPRINTMOVEPRINTK=K+1N=2GOSUBGOSUB
0)-0)~0)=0)=0)=0)-l#F3)=0) = i:KF3)=0)=0)=1#F3)=l:jcF3)=1*F3)=0)=0)=1*F3)=0)=1*F3)=1*F3)=1*F3)=0)=1*F3)=1*F3)=1*F3•LJJJJIE' JJJ1FAC1 JJJIALG' JJJIDEM•JJJINUMK2
<F4 THENCK2+F4)
1000033 » 85"PERIODO9000
1)= 0S)*— 1
20r75LO
20>43NO32;75XOCK)32*43ZO<K)
900010000
SCUELA POLITÉCNICA NACIONAL"ULTAD DE INGENIERÍA ELÉCTRICA'ORITHO DE UITERBI'OSTRACION DE LOS DECODIFICADORESERO DE BITS A GENERARSE tGG'?
1840
DE TIEMPO K
APÉNDICE III PAG,08
21002110212021302140215021602170218021902200221022 0223022402250226022702280229023002310232023302340235023602370238023902400241024202430244024502460247024802490250025102520253025402550256025702580259026002610262026302640
AÍ = LOA2-NOLO=A1+D(1)L4=A2+ní7>NO=A1+B(8)N4=A2+B(2)XO(K)=0X4<K)=0ZO(K)=1Z4(K)=1X4(1)=ZO(1)Z4C1)=ZO(1)ZO<1)~XO<1>MOUE 20,75PRINT LOMQUE" 20,59PRINT L4HOYE 20,43PRINT NOHOYE 20,27PRINT N4FOR 1=1 TOBO(I)=XO(I)B4(I)=X4(I)CO(I)=ZO(I)C4(I)=Z4(I)HOYE 30+3*1PRINT XO<I)MOUE 30+3*1PRINT X4CI)MOVE 30+3*1PRINT ZO(I)MOVE 30+3*1PRINT Z4CI)NEXT IMOUE 33,85
K
,75
r59
,43
r27
PRINT 'PERIODOK-K + 1N=lGOSUB 9000GOSUB 10000A1 = LOA2-L4A3-NOA4-N4LO=A1+B(1)L2-A2+DÍÓ)L4=A3+n<7)LÓ=A4+D(4)NO=A1+B<8)N2=A2+DC3)N4=A3+D(2)N6=A4+D (5)XO(K)~0X2(K)=0
DE TIEMPO — K
APÉNDICE III PAG.69
2050260020702680269027002710272027302740275027602770278027902800281028202830284028502860287028802890290029102920293029402950290029702980.299030003010302030303040305030603070308030903100311031203130314031503160317031803190
X4<K)=0XÓ<K)=0ZO(K)=1Z2(K)=1
FOR -1=1 TO 2xo<r)=Bo<i>X2(1)=B4(I)X4(I)=CO(I)X6(I)=C4CI)ZO(I)=BO(I)Z2(I)=B4(I)Z4(I)=CO(I)Z6CD-C4CI)NEXT IMOVE 20.75PRINT LOMOUE 20.07PRINT L2MÜUE 20.59PRINT L4MOUE 20r51PRINT LoMOVE 20,43PRINT NOMOUE 20.35PRINT N2MOUE 20r27PRINT N4MOYE 20.19PRINT NoFOR 1=1 TO KBO<I)=XO(I)HOUE 30+3*1.75PRINT XO(I)B2(I)=X2(I)MOYE 30+3*1.67PRINT X2CI)B4(I)=X4(I)MOUE 30+3*1.59PRINT X4(I)B6(I)=XÓ(I)MOUE 30+3*1.51PRINT XÓ<I)CO(I)=ZO(I)MOUE 30+3*1.43PRINT ZOCI)C2(I)=Z2(I)HOYE 30+3*1.35PRINT Z2<I)C4<I)=Z4CI)MOVE 30+3*1 r 27PRINT Z4ÍI)C6(I)=Zóí I)
APÉNDICE III . PAG,70
320032103220323032403250320032703280329033003310332033303340335033003370338033903400.3410342034303440345034603470348034903500351035203530354035503500357035803590300036103020303030403650366030703080309037003710372037303740
HOYE 30+3*1, 19PRINT ZÓ(I)NEXT IMOVE. 33,85PRINT 'PERIODOK=K + 1N=lA1 = LOA2-L2A3=L4A4=LÓA5=NOAó = N2A7=N4A8 = N6GOSUB 9000GOSUB 10000MQVE 33,85PRINT 'PERIODO|_0 = Al + ri< 1 )L1=A2+Ü(7)L2-A3+DCÓ)L3=A4+n<4)L4=A5+D(7>L5=AÓ+D(1) 'LÓ=A7+B<4)L7=A8+D(Ó)NO=A1+DC8)N1=A2+Ü(2)N2=A3+DC3)N3=A4+DC5)N4=A5+D(2)N5=A6+n(8)NÓ-A7+DC5)N7=A8+D(3)XOCK)-0X1(K)=0X2<K)-0X3(K)"0X4(K)=0X5(K)=0X6<K)=0X7(K)=0ZOÍK') = 1Z 1 ( K ) = 1Z2(K)=1Z3(K)=1Z4(K)=1Z5(K)=1Zó(K)=lZ7(K) = Í.FOR 1=1 TO 3XOCI)-BO(I)X 1 ( I ) = B 2 ( I )X2( I )=B4 C I )
0E TIEMPO
DE TIEMPO K
APÉNDICE III PAG,71
3750376037703780379038003810382038303840385038603870388038903900391039203930394039503960397039803990400040104020403040404050406040704080409041004110412041304140415041604170418041904200421042204230424042504260427042804290
X3(I)=B6(I)X4(I)=CO<I)X5(I)=C2(I)XÓ(I)=C4CI)X7CI)=CÓ(I)ZO<I)=BO(I>Zl(I)=62a')Z2(I)=EM(I>Z3<I)=BÓ(I>Z4(I)=CO(I)Z5(I)=C2<I)ZÓ(I)=C4<I)Z7CI)=CÓ(I)NEXT IGOSUB 11000D e M — -. '••r\. nK=K+1GOSUB 9000GOSUB 10000HOYE 33rS5PRINT ' PERIOIGOSUB 6000IF K=F4 THENGO TO 3900
^CUALQUIER PERIODO
<n ricr TTtrwc'ni U U t i 1 1 n r U
3990
REH ESCOGIMIENTO DEL MENORK1=KK=F4M^LOIF M<L1 THENM=L1IF M<L2 THENM~L2IF M<L3 THENM=L3IF M<L4 THENM=L4IF M<L5 THENM-L5IF M<Ló THENM^LÓIF M<L7 THENM-L7IF M<NO THENM~NOIF M<N1 THENM=N1IF M<N2 THENM-N2IF M<N3 THENM-N3IF M<N4 THENM-N4IF M<N5 THENM = N5IF M<NÓ THEN
4050
4070
4090
4110
4130
4150
4170
4190
4210
4230
4250
4270
4290
4310
DE TIEMPO
• ;K
IVIENTE
APÉNDICE III PAG,72
4300431043204330434043504360437043804390440044104420443044404450440044704480449045004510452045304540455045604570458045904600461046204630464046504660467046804690470047104720473047404750476047704780479048004810482048304840
M = NÓIF M<N7 THENM=N7IF LO=M THENIF L1=M THENIF L2=M THENIF L3=H THENIF L4=M THENIF L5=M THENIF L6=M THENIF L7=M THENIF NO=M THENIF N1=M THENIF N2 = M THENIF N3=M THENIF N4=M THENIF N5=M THENIF NÓ=M THENS(K1+1-K)=Z7MOVE 2rl4DRAW 13fl4GO TO 5110S(Kl+i-K)=26Mu VE 2, 18DRAW 13; 18GO TO 5110S(K1+1-K)=Z5MOUE 2j22DRAW 13f22GO TO 5110S(K1+1-K)=Z4MOVE 2.26DRAW 13í26GO TO 5110S(K1+1-K)=Z3MO^E 2?30DRAW 13,3000 TO 5110S(K1+1-K)=Z2MOVE 2,34DRAW 13» 3400 TO 5110S<K1-H.-K)=Z1MOUE 2.38DRAW 13,38GO TO 5110SCK1+1~K)=ZOMOUE 2f42DRAW 13i 42GO TO 5110S(K1+1-K)=X7MOVE 2;4ÓDRAW 13746GO TO 5110S(K1+1-K)=XÓ
4330
508050405000496049204880484048004760472040804640460045604520(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
U)
(1)
APÉNDICE III PAG+73
4850480048704880489049004910492049304940495049004970498049905000501050205030504050505000507050805090510051105120513051405150516051705180519052005210522052305240525052605270528052905300531053205330534053505360537053805390
MQVE 2,50DRAW 13,50GO TO 5110S(Kl-fl-K)=X5(lMOVE 2,54DRAW 13,54GO TO 5110S(K1+1-K)=X4<1MQUE 2,58DRAW 13.58GO TO 5110S<K1+1-K)=X3(1MQUE 2,02DRAW 13,02GO TO 5110S(K1+1-K)=X2(1MÜVE 2,óóDRAW 13,00GO TO 5110S(K1+1-K)"X1 ( 1MOVE 2,70DRAW 13,70GO TO 5110S<K1+1-K>=XOC1MOVE 2,74DRAW 13,74FOR 1=1 TO KXO(I)=BO(I-H>X1(I)=BKI + 1)X2CI)=B2<I+1)X3(I)=B3(I+1)X4(I)=B4(I-fl)X5(I)=B5(I+1)X6(I)=B6(I+1)X7(I)=B7<I+1)ZO(I)=CO(I+1)Zl C I )=C1 C 1+1 )Z2(I)=C2(I+1)Z3(I)=C3(I+1 )Z4(I)=C4(I+1)Z5CI)=C5(I+1)ZÓ(I)=Có(I+l)Z7(I)=C7(I+1)BO(I)=XOCI)BKI)=XKI)E¡2 CI ) ~X2 < I )B3(I)=X3(I)B4(I)=X4(I)85(I)=X5(I)BÓ(I)=Xó(I)B7<I)=X7(I)COCD^ZOCI)Cl ( I )=Z1. ( I )C2(I)=Z2(I)C3<I)=Z3(I>
)
)
)
)
)
)
APÉNDICE III PAG,74
558055905000501050205030504050505ÓÓO507056805090570057105720573057405750570057705780579058005810000000100020603000406050ÓOÓO00700080609061000110
C5CI)=Z5(I)C6<I)=Zá(I)C7CI)=Z7CI)NEXT IIF K1=>K2 THENKl=Ki+lGOSUB 9000GOSUB 10000MOVE 33,85PR1NT "PERIODOGOSUB 0000GO TO 4020REn p
5530
DE TIEMPO : Kl
I D A-
IF L9=K+1 THEN 5650K1-K1+1Vl = 0
V3~0GOSUBGOSUBMOVEPRINTGO TOPRINTFOR IPRINTNEXTPRINTINPUTPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF W$PRINTENDREM --
Kl
91301000033,85•PERIODO DE TIEMPO > '5510•LJJIDIGITOS DECODIFICADOS
=1 TO K2• i"; i;" = • í s (i)
"presione RETURN psra continuar
032
032032
"LJJJJJIESCUELA POLITÉCNICA NACIONAL"•JIFACULTAD ,DE INGENIERÍA ELÉCTRICA1
•JIALGORITMO DE VITERBI''JICODIGO K ~ 5 R = 1/31•J1HISTORIA DE LAS TRAYECTORIAS = '?F4•J1NUMERO DE DATOS GENERADOS = '?K2
"JI OTRA PRUEBA (S/NKGG"?WS^"S 1 THEN 4"JJI GRACIAS1
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
Rl=Ll+n<8)Q1=LO+DC8)S1=L1+D<1)P2-L2+DÍ7)Q2-L2+D(2)R2-L3+DC2)
Q3=L4+D(3)
APÉNDICE III PAG,75
0120013001400150616061700180019002000210022002300240025062600270028002900300031003200330034063506 30 O037063806390640064106420643064406450646064706480649065006510652065306540655065606570658065906600661066206630664066506660
S3=L5+D(Ó)
Q4=L6+D(5)R4=L7+D(5)S4 = L7-KK4>P5=NO-KK7>
R5=N1+D(2)S5=N1+D(7)PÓ-N2-KK1)Q6=N2+n(8)R6-N3+DC8)S6=N3+DC1)P7=N4+D(4>Q7=N4H-D(5)R7=N5+D(5)S7=N5+D(4)
Q8 = N6-l-n<3)R8=N7+D(3)S8=N7+DC6)IF RK=P1 THEN 6390LO=P1FOR 1=1 TO K-lXO(I)=BO(I)NEXT IGO TO 6430LO = R1FOR 1=1 TO K-lXOCD-B1CI)NEXT IIF R2<=P2 THEN 6490L1=P2FOR 1=1 TO K-lXKI)=B2(I)NEXT IGO TO 6530L1 = R2FOR 1=1 TO K-i
NEXT IIF R3<=P3 THEN 0590L2=P3FOR 1=1 TO K-lX2(I)=B4<I)NEXT IGO TO 6630L2=R3FOR 1=1 TO K-lX2<I)=B5(I)NEXT IIF R4<==P4 THEN ÓÓ90L3 = P4FOR 1=1 TO K-lX3(I)=BÓ(I)
APÉNDICE III PAG,70
¿¿70¿¿80¿¿90¿700¿7106720¿730¿740¿750Ó7¿0¿770¿7800790¿800¿810¿820¿830¿840¿850Ó8¿0¿870¿880¿890¿900¿9106920¿930¿940¿950696009700980¿9907000701070207030704070507000707070807090710071107120713071407150716071707180'719072007210
NEXTGO TOL3=R4FOR IX3(I)NEXTIF R5L4=P5FOR IX4(I)NEXTGO TOL4 = R5FOR IX4(I)NEXTIF R¿L5=PóFOR IX5(I)NEXTGO TOL5=RóFOR IX5ÍI)NEXTIF R7LÓ=P7FOR IX6(I)NEXTGO TOL6 = R7FOR IX¿(I)NEXTIF R8L7=P8FOR IX7C1)NEXTGO TOL7-R8FDR IX7(I)NEXTIF SINO = Q1FOR IZOCI)NEXTGO TONO = S1FOR I20(1)
I
==
I
==:
I
=
=
I
=
¿730
1B7
-P
1CO
¿8
1Cl
= P
1~C2I
==I
==I
¿9
1C3
= P
1C4
TO(I
5
TO(I
30
TO<I
6
TO(I
30
TOÍI
7
TO(I
K-l)
THEN
K-l)
K-l)
THEN
K-l)
K-l)
THEN
K-l)
7030
r=
=
I
=
=
I
1C5
-P
1C¿
TO(I
8
TO(I
K-l)
THEN
K-l)
7130
=_.
I
=
1C7
= Q
1-BOI
TO(I
1
TO(I
K-l)
THEN
K-l)
7230
==1Bl
TO(I
K-l)
¿790
¿890
¿990
7090
7190
APÉNDICE III PAG»77
7220723072407250720072707280729073007310732073307340735073007370738073907400741074207430744074507460747074807490750075107520753075407550750075707580759070007610762070307640765076607670768076907700771077207730774077507760
NEXT IIF S2<=Q2 THEN 7290
FOR 1=1 TO K-lZ1(I)=B2(I)NEXT IGO TO 7330N1=S2FOR 1=1 TO K-lZ1CI)=B3(I)NEXT IIF S3<=Q3 THEN 7390
FOR 1=1 TO K-lZ2(I)=B4<I)NEXT IGO TO 7430N2=S3FOR 1=1 TO K-lZ2(I)=B5(I)NEXT IIF S4<=Q4 THEN 7490
FOR 1=1 TO K-lZ3(I)=BÓ(I)NEXT IGO TO 7530N3=S4FOR 1=1 TO K-lZ3CI)=B7(I)NEXT IIF S5<=«5 THEN 7590N4=Q5FOR 1=1 TO K-lZ4(I)=CO(I)NEXT IGO TO 7630N4=S5FOR 1=1 TO K-lZ4(I)=C1(I)NEXT IIF S6OQÓ THEN 7690N5=Q6FOR 1=1 TO K-lZ5(I)=C2(I)NEXT IGO TO 7730N5=SÓFOR 1=1 TO K-lZ5CI)=C3(I)NEXT IIF S7<-Q7 THEN 7790
FOR 1=1 TO K-l
APÉNDICE III PAG*78
7770 NEXT I7780 GO TO 78307790 NÓ = S77800 FOR 1=1 TO K-l7810 ZÓ<I)=C5(I)7820 NEXT I7830 IF S3<=Q8 THEN 78907840 N7-Q87850 FOR 1=1 TO K-l7800' Z7(I)=CÓÍI)7870 NEXT I7880 GO TO 79307890 N7-S87900 FOR 1=1 TO K-l7910 Z7(I)=C7(I)7920 NEXT I7930 XO(K)=07940 X1CK)=07950 X2CK)=07900 X3(K)=07970 X4(K)=07980 X5(K)=07990 XÓ(K)=08000 X7(K)=08010 ZO(K)=18020 Z1(K)=18030 Z2(K>=18040 Z3CK)=18050 Z4CK)=18000 Z5(K)=18070 Zó(K)=l8080 Z7(K)=18090 GOSUB 110008100 RETURN9000 REM CALCULO DE LA DISTANCIA DE HAMMING9010 MOVE 30+10#N>109020 INPUT VI9030 V1=INT(V1)9040 IF VKO OR U1>F3 THEN 90109050 MOVE 30+10*N;79000 INPUT V29070 V2=INT(V2)9080 IF U2<0 OR V2>F3 THEN 90509090 MOME 30+10*^/49100 INPUT U39110 V3=INT(V3)9120 IF V3<0 OR U3>F3 THEN 90909130 FOR 1=1 TO 69140 09150 T9100 U=ABS(A(Ii3)-V3)9170 D(I)=0+T+U9180 NEXT I9190 RETURN
APÉNDICE III PAG.79
10000 REM **************10010 PRINT 'LJIESCUELA10020 PRINT '1DEMOST10030 PRINT -1CODIFI10040 MOUE 0.010050 DRAW OrlOO.10060 ÜRAW 130.10010070 DRAW 130,010080 DRAW 0,010090 MOUE OrSO10100 DRAW 130,8010110 MOUE .130)8810120 DRAW 0,8810130 HOYE 15.8810140 DRAW 15,1410150 MQUE 30,8310160 DRAW 30,1410170 MOUE 5.1010180 PRINT 'Primer10190 MOUE 5.710200 PRINT 'Seáundo10210 MOUE 5.410220 PRINT 'Tercer10230 MQUE 0.1410240 DRAW 130.1410250 MOUE 3>3310260 PRINT 'Estado"10270 MOUE 17.8310280 PRINT 'Metrics10290 MQUE 5,7510300 PRINT '0000'10310 MOUE 5.7110320 PRINT "000:1. '10330 MOUE 5.6710340 PRINT '0010'10350 MOUE 5.6310360 PRINT "0011'10370 MOUE 5.5910380 PRINT '0100-10390 MOUE 5.5510400 PRINT '0101-10410 MOUE 5.5110420 PRINT "0110-10430 MOUE 5.47.10440 PRINT -0111 '10450 MOUE 5.4310460 PRINT -1000'10470 MOUE 5.3910480 PRINT "1001 "10490 MOUE 5.3510500 PRINT "1010-10510 MOUE 5.3110520 PRINT '1011110530 MOUE 5.2710540 PRINT "1100'
RACICADO
bit
bit
bit
M
***** TÍTULOS *POLITÉCNICA NACIONAL'ON DE LOS DECODIF1CADORES3
R K = 5 R = 1/3"
APÉNDICE III PAG.80
10550;L05ÓO105701058010590100001001010620100301004010050110001101011020!L1030110401105011000110701108011090111001111011120111301114011150111001117011180111901120011210112201123011240.112501126011270112801129011300113101132011330113401135011300113701138011390114001141011420
MOVE 5r23PRINT '1101'MOVE 5,19PRINT '1110'MOVE 5,14PRINT 'lili1
MOVE 30?84riRAU 130,84MOVE 33,81PRINT "Historie de las trayectorias "íF4í' bits"RETURNREM **#* SUBRUTINA PARA LA IMPRESIÓN DE MÉTRICASMOVE 20.75PRINT LOMOVE 20,71PRINT LlMOVE 20ró7PRINT L2MOVE 20,ó3PRINT L3MOVE 20í59PRINT L4MOVE 20T55PRINT L5MOVE 20,51PRINT LoMOVE 20,47PRINT L7MOVE 20,43PRINT NOMOVE 20,39PRINT NIMOVE 20.35PRINT N2MOVE 20,31PRINT N3MOVE 20,27PRINT N4MOVE 20,23PRINT N5MOVE 20,19PRINT NoMOVE 20,15PRINT N7FOR 1=1 TO KBO(I)=XO(I)Bl(I)=Xi(I)B2(I)=X2<I)B3(I)=X3CI)B4(I)=X4(I)B5(I)=X5CI)Bó(I)=X6(l)B7(I)=X7(I)COCI)=20(I)
APÉNDICE III PAG.81
11430 C1CI)=Z1(I)11440 C2(I)=22(I)11450 C3(I)=23(I)11400 C4(I)=Z4(I)11470 C5(I)=Z5CI)11480 CÓ(I)=Z6(I)11490 C7(I)=27CI)11500 MGVE 30+3*1/7511510 PRINT XOCI)11520 MUYE 30+3*1,7111530 PRINT XI(I)11540 MOUE 30+3*1/0711550 PRINT X2CI)11560 MOVE 30+3*1.6311570 PRINT X3(I)11580 MGVE 30+3*1r5911590 PRINT X4(I)11600 MUYE 30+3*1/5511610 PRINT X5(I)11620 MOVE 30+3*175111630 PRINT Xó(I)11640 MOUE 30+3*1/4711650 PRINT X7(I)11660 MOUE 30+3*1/4311670 PRINT ZOCI)11680 MOUE 30+3*1/3911690 PRINT 21(1)11700 MOUE 30+3*1/3511710 PRINT 22(1)11720 MOUE 30+3*1/3111730 PRINT 23(1)11740 MQVE 30+3*1/2711750 PRINT 24(1)11760 MOVE 30+3*1/2311770 PRINT 25(1)11780 MOVE 30+3*1,1911790 PRINT ZÓ(I)11800 MQUE 30+3*1,1511810 PRINT Z7CI)11820 NEXT I11830 RETURN
APÉNDICE III PAG,82
10001010102010301040105010001070108010901100111011201130:U401150110011701180119012001210122012301240125012001270128012901300131013201330134013501300137013801390140014101420143014401450140014701480149015001510152015301540
REM -01 = 9GO TOREM •REM
DELETEDELETEDELETE
•PROGRAMA "SENCOM1
800SIMULACIÓN DE ENLACES DE COMUNICACIÓN
CÓDIGO K - 3 R = 1/2<F5TlO*(LOG(2)/LOG<10»)/20)
DIH XO(Jl) jXi(JDIM BOCJ1) fBICJDIM A(4»2) yDC4)BOCF4 + D-0B1(F4+1)=0B2(F4+1)=0B3(F4-fl)=0M2(F4+1)-0E^OEl = 0E2==0
L2-0L3=0L9=0S3(l)=0S3(2)=0S3(3>=0A(lf 1)=0A(lf2)=0
rX2ÍJl)?X3(J1>rB2<Jl),B3(Jl>1CJl)íM2ÍJl)rS3(3)
A( )=0A<4il)=l*F3
PRINTPRINTPRINTPRINTPRINTINPUTIF K2
K-lGOSUBGOSUBLO=D<XOCK)L2 = D<X2(K)MOVEPRINTMOVE
'LJJJJJJJIESCUELA POLITÉCNICA NACIONAL *•JJJIFACULTAD DE INGENIERÍA ELÉCTRICA '•JJJIALGORITMO DE VITERBI "•JJJISIMULACION DE ENLACES DE COMUNICACIÓN'JJJINUMERO DE BITS A GENERARSE ÍGQ"?K2<F4 THEN 1410
> PRIMER PERIODO DE TIEMPO •
700050001)-O4)= 1110,80K
20,18
APÉNDICE III PAG,83
15501560157015801590160016101620163016401650166016701630169017001710172017301740175017601770178017901800181018201830184018501860187018801890190019101920:L93019401950.1960197019801990200020102020203020402050206020702080.2090
'presione RETURN para continuar'
> SEGUNDO PERIODO DE TIEMPO
70005000
PRINT LOMOVE 80*18PRINT L2MOVE-10*5PRINTINPUTREM -K=K+1GOSUBGOSUBA1 = LOA2=L2LO=A1+D(1)L1=A2+0<3>L2=A1+0(4)L3=A2+D(2)XO(K)=0Xi(K)=0X2(K>=1X3(K)=1X1(1)=X2(1)X3(1)=X2<1)X2(1)=XO(1)MOVE 20*18PRINT LOMOVE 50*18PRINT LlMOVE 80íl8PRINT L2MOVE IlOyPRINT L3MCVE 110*PRINT KFOR 1=1 TOBO(I)=XO(I)
B2(I)=X2(I)B3(I)=X3(1)NEXT IMOVE 10T5PRINTINPUTREM -GOSUBK=K+1MOVE 110PRINT KGOSUB 5000REM ;:, CALCULOGOSUB 4000IF K=F4 THEN 2100MOVE 10*5PRINT "presione RETURNINPUT W$GO TO 1970
18
80
RETURNpresioneW$
.':' C U A L u UIE R7OOO
80
continuar
PERIODO DE TIEMPO
DE LOS SUPERVIVIENTES
PBTS continuar
APÉNDICE III PAG*84
•") H /-\r\C M ~- -.¿_ i u u r\. n2110 REM ' ESCOC2120 K1=K2130 K=F4 •2140 IF LO<L1 THEN2150 GO TO 22002160 IF LO<L2 THEN2170. GO TO 22402180 IF LO<L3 THEN2190 GO TO 23202200 IF LKL2 THEN2210 GO TO 22402220 IF LKL3 THEN2230 GO TO 23202240 IF L2<L3 THEN2250 GO TO 23202260 S=XO<1>2270 GO TO 23302280 S=X1C1)2290 GO TO 23302300 S=X2C1)2310 GO TO 23302320 S=X3(1)
5IMIE
2160
2180
2260
2220
2280
2300
2330 IF S-MK1) THEN 232340 E2-E2+12350 FOR 1=1 TO K2360 XO<I)=BO(I+1)2370 X1CI)~B3 (T-fl)2380 X2CI)=B2(I+1)2390 X3(I)=B3(I+1)2400 BOÍI)=XO(I)2410 Bl (I )=X1 C I )2420 B2CI)=X2(I)2430 B3(I)=X3CI)2440 M1(I)=M2<I+1)2450 M2( I ) =M1 ( I )2460 NEXT I2470 MOVE 110,802480 PRINT Kl2490 MOVE 50T30
0
2500 PRINT S2510 MOVE 110,302520 PRINT E2.2530 MOVE 10,52540 PRINT 'presione RETURN2550 INPUT W$2500 IF K1=>K2 THEN 26202570 Ki=Kl+l
continuar* í
2580259026002610•~> A "~> r\ o *¿ u
26302040
GOSUB 7000GOSUB 5000GOSUB 4000GO TO 2140O (7 W „r\. nREML9=L9+1
SALIDA
APÉNDICE III PAG,85
265026602670268020902700271027202730274027502760277027802790280028102820283028402850280028702880289029002910292029302940295029002970298029903000301030203030304030503060307030803090310031103120400040104020403040404050
IF L9=K+1 THEN 2740K1=K1+1
REM -GOSUBGOSUBMOVEPRINTGO TOIF FóPRINTINPUTPRINTPRINTPRINTPRINTPRINTIF F3PRINTGO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF U$GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTENDPRINTINPUTIF W*PRINTENDREMREM
™> INYECCIÓN DE LA COLA DE CEROS7000518010,70"inyección de la cola de ceros12000-32 THEN 2770•LJJJJJJJJI ALISTE IMPRESOR R E T U R N PARA CONTINUAR"?
@Fót'LJJJJJIESCUELA POLITÉCNICA NACIONAL@Fó:-JIFACULTAD DE INGENIERÍA ELÉCTRICA"(?Fó: -JIALGORITMO DE VITERBI'@Fó:•JICODIGO K = 3 R - 1/2'@FófJIRELACION SENIAL A RUIDO = 'ÍF5Í1
-1 THEN 2850@Fó:'JIDECODIFICACION SUAVE"2860@F6
dB
JIDECODIFICACION DURA'JINUMERO DE ERRORES EFECTIVOS DELJIERRORES DE NIVEL PRODUCIDOS PORJIHISTORIA DE LAS TRAYECTORIAS =
CANAL = n íEEL CANAL= 'ÍF4
El
•JINUMERO DE ERRORES EN LA DECODIFICACION -•JINUMERO DE DATOS GENERADOS = 'íK2
JI OTRA PRUEBA (S/NKGG'Í
E2
A ESCOGER
= "S' THEN 29503080•LJJJJI ESCUELA POLITÉCNICA•JJIALGORITMO DE VITERBI1
"JJISIMULACIONES'ITecla * 9 *'ITecla * 10 *
11 .12 *13 ,14 *
•• 1 +
NACIONAL"
•ITecls'ITecla'ITecla"ITecla
1/211/2'1/2'1/3"1/3"1/3'
•JITecla =*J estas
MENÚ'simulaciones tienen IBS mismas características
del programa ejecutado si desea variarlas regrese al M
LJJJJJI desea resíressr al MENÚ CS/N) : B Í
='S" OR Wí^'s"'JJI GRACIAS"
THEN 4
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
Ql=L2+n(3)R1-LO+DC4)S1-L2+DC2)
co 4-
CD UJ O M Q :z UJ ü_ <r
o i\o CQ
O Os
M H
I-J
4-
+ 4-
T-Í r
o TH
_l _
1 _J
1! II
IIC-
Í C-
J C-
Jü_
a c
¿
o o
o
o o
o
Lü X h- C-J
li- li
rc -r4
c-j
_l
ü_
O,
il 11
C-J
U.
OC
O M
_
J
o o
o
O i-í
-rH
O M
T-l Ü
j
II II
1-1M
*-
.M
I-
i£L ~
XO
O
UJ
U.
X 2
:
O o C-J
o-H
ÜQ
O
UJ X
o !-O
O iH
h-
ÜL
O O
a -
Jo
oo
oo
o o
uj p
o o
o o
T-í
i~i
i—i
C'J
¡¡
-H IIi-l
C-J M
u_ i-
c a
o o
oC-
J C-
J C-
J
ro P4 ¡l H
(H H
oo
^ü
Tc-
j c-
j
O M
¡—
^>
TH b
II 1!
TH
1-1
a
M
oo
orN
Coc
Nc-
j c-¡
c-j
Lü í- c-¡
O
IIM
!!
V'~
^
TH
h-
J¿ C
¿
O 1-
oo
oO
rHc-
Jro
M r
o
11 1!
C-J u
~C¿
_ i-i
C-J
O
C-J
_J U
. X
o o
o
ro M
KÍ
o C-J
MO
iH
I- 1-
L¿
X
IILÜ
a
c-j
•Z.
CD _
¡
O O
O
ro K
I ro
Q H o
II U t-í
O
C-J
o o
UJ X h- C-i
CO II
:/ Oo to
O M
í—
"^ OJ
t-í
Üj
II II
I! V
^
II
ü 1-
1
•j¿
CO
uO
_i-
i!-H
CO
M
c-j
ü_
roo
rou
joro
oK
i
o TH
r-j
ro--i X
X
X
Xi;
il (I
II II
M M
M
M
O
O
T-Í
C
-J fO
oo
oo
oo
oo
oo
oo
oo
oo
oo
^C
'jK
i^ü
r *r ^
-r ^
^
r t
in u
i u
i in
ID u
i 10
w
co OM
C
-J
H U
Jx
:>
UJ
O~Z
L 3Z
O O
f> O
UT
-O
APÉNDICE III PAG.87
461046204630464040504660407040804690500050105020503050405050506050705080509051005110512051305140515051605170518051905200521052205230524052505200527052805290530053105320533053 4 O5350530053705380539054005410542054305440
PRINT LOMQYE 50,18PRINT LlMOUE -80rl8PRINT L2MOUÉ HOflSPRINT L3RETURNENDREM . ^ c í ; ; í í .' í í ; í c íí. %.%.%. ?f.%.REM SUBRUTINA DE GENERACIÓN -REM > GENERACIÓNF=RND<1)IF F<0*5 THEN 5070F~lGO TO 5080F=0MOVE 35*80PRINT FMOYE 110,00PRINT FMKK)=FM2(K)=M1(K)FOR 1=1 TO KHOYE 10+3*1^70PRINT MKI)NEXT IREM > CODIFICACIÓNZ1=S3(1)Z2=S3<2>S3(1)=FS3(2)=Z1S3(3)=Z2MOUE 40,60PRINT Z1?Z2MQYE 40,55PRINT S3C1) ?S3(2)UI2™S3( 1 )+S3C3)IF W2=2 THEN 5310GO TO 5320U2 = 0W1=S3(2)+U2IF Wl=2 THEN 5350GO TO 5360Wl-0MOVE 110,55PRINT U1ÍW2MOVE 50,45PRINT Ul#F3íW2*F3REM > CANAL Y CUANTIZADORCOSUB 6280Y1=W1+XGOSUB 6280Y2=W2+X
CODIFICACIÓN CANAL
APENÜICE III PAG,
5450.5460547054805490550055105520
IFIFIFIFIFIFIFIF
F3=Yl<Yl<Yl<Yl<Y 1 <Yl<Yl<
10000000
THEN 6130,13 THEN 5550*25 THEN 5570,38 THEN 5590,5 THEN 5610,63 THEN 5630,75 THEN 5650,88 THEN 5670
5540nr rru¡/\0
5570558055905600561056205630-5640565056605670568056905700571057205730574057505760'57705780579058005810582058305840585058605870588058905900591059205930594059505960597059805990
GO TOVl = 0GO TOVl = lGO TOYl=2GO TOVl-3GO TOVl = 4GO TOVl = 5GO TOVl = óIF Y2IF Y2IF Y2IF Y2IF Y2IF Y2IF Y2U2 = 7GO TOU2=0GO TOV2=lGO TOU2=2GO TOV2=3GO TOV2~4GO TOV2 = 5GO TOY2-6IF YlYl = lGO TOYl=0IF Y2Y2 = lGO TOY2=0IF YlE=E+1
5680
5680
5ÓSO
5680
5680
5680
5680
<0,13<0*25<0*38<0 * 5<0*Ó3<0.75<0,88
5900
5900
5900
5900
5900
5900
5900
<0.5 '
5940
<0 * 5
5980
THENTHENTHEN
THENTHENTHENTHEN
THEN
THEN
5770579058105330585058705890
5930
5970
=W1 THEN 6000
APÉNDICE III PAG*89
6000 IF Y2=U2 THEN 00206010 E = E+16020 MOUE HOf-450030 PRINT E6040 IF V1=U1*F3 THEN ÓOÓO0050 E1=E1+1ÓOÓO IF V2=W2*F3 THEN 00800070 E1=E1+10080 MOUE 110,400090 PRINT El0100 MOVE 50.400110 PRINT U1ÍU20120 GO TO 02200130 IF Yl<0*5 THEN 61600140 Ul = l6150 GO TO 01700160 Vl=00170 IF Y2<0*5 THEN 02006180 V2=l6190 GO TO 62100200 ^2=00210 GO TO 59006220 FOR 1=1 TO 40230 0=ABS(A(I.1)-V1)0240 T=ABS(A(I.2)-V2)0250 ri(I)=0+TÓ2ÓO NEXT I0270 RETURN6280 REM *********************************************0290 REM SUBRUTINA PARA EL CALCULO DEL RUIDO6300 C=06310 FOR J=l TO 126320 C=C+RND(1)0330 NEXT J6340 X=V*(C-ó)0350 RETURN
APÉNDICE III PAG*90
700070107020703070407050700070707080709071007110712071307140715071007170718071907200721072207230724072507260727072807290730073107320733073407350736073707380739074007410742074307440745074óO74707480749075007510752075307540
REMREMPAGEMOUEDRAWDRAWDRAWÜRAWMOUEDRAWDRAWDRAWDRAWMOUEDRAWDRAWDRAWDRAW
#*########*##TÍTULOS
DRAWDRAWDRAWDRAWMOUEDRAWDRAWDRAWDRAWMOUE
0,00,100130,100130,00,05,85125,35125,085,08cr o c*u. b,j
5,04125,64125,545,545,045,48125.48125,385,385,485.33125.33l?1:o, 135,13D, ¿¿
40,95PRINT 'ESCUELAMOUE 30,90PRINT 'SIMULACIÓN
80GENERADOR DE05CODIFICADOR49CANAL CON RUIDO
POLITÉCNICA NACIONAL
DATOS SEUDO-ALEATORIO
K = 3 R = 1/2
BLANCO GAUSSIANO'
DE ENLACESMOUE 5,PRINT 'MOUE 5,PRINT 'MOUE 5.PRINT -MOUE 80,49PRINT "S/N -MOUE 5,34PRINT "DECODIFICADOR"MOUE 70.34PRINT -LONGITUD DE LAS TRAYECTORIASMOUE 80,80
A GENERARSE
DE COMUNICACIÓN
F5 dB
F4
PRINT -BITSMOUE 10,80PRINT "Dato ¿enerado:'MOUE 70,80PRINT 'Contador de dstosíMOUE 10,75PRIKT "SECUENCIAS DE DATOSMOUE 10,74DRAW 45,74MOUE 10,60
K
APÉNDICE III PAG.91
75507500757075807590700076107020763076407050766070707080709077007710772077307740775077007770778077907800781078207830784078507800
PRINT 'Estado anterior? "MOVE 10,55PRINT 'Estado .actual ; *MOVE-70,00PRINT "Diáito 3 codificarse:MQVE 70?55PRINT "Secuencia codificadatMOVE 10,45PRINT "Secuencia transmitidaMOVE 10,40PRINT "Secuencia recibidaMOVE 70,45PRINT "Numero de errores i "MOVE 70,40PRINT "Errores de nivel? "MOVE 10,30PRINT 'Dato decodificado ? "MOVE 70,30PRINT " NumeroMOVE 10,25PRINT "ESTADOMOVE 10,24DRAW 50,24MOVE 10*18PRINT "LO = *MOVE 40,18'PRINT "Ll = 'MOVE 70*18PRINT 'l_2 = "MOVE 100,18PRINT 'L3 = 'RETURN
de errores
DE LAS MÉTRICAS"
APÉNDICE III PAG,92
1000101010201030104010501000107010801090110011101120113011401150110011701180119012001210122012301240125012001270128012901300131013201330134013501360137013801390140014101420143014401450140014701480149015001510152015301540
PROGRAMA ' SENCÜM2 '
COMUNICACIÓNR = 1/2
REM01 = 10GO TO 800REM SIMULACIÓN DE ENLACES DEREM CÓDIGO K = 4V=10"(-(F5-i-l<mLOG(2)/LOG(10) ) ) 720 )T"r CT [ f ~T E" Y fl V^ Y YT V./1 Vc* \* X, Y "7
DELETE B O f B l , B 2 I B 3 í B 4 , B 5 , B Ó J B 7DELETE D r M l , M 2 ; A , S 3Jl=F4+3D I M X O ( J 1 ) / X K J 1 ) f X 2 ( J l ) >X3(J1 ) f X 4 ( J l ) i X S C J l )D I M BO(J1 ) 7 B K J 1 ) / B 2 C J 1 ) j B 3 C J l ) í B 4 ( J l ) ? B 5 ( J 1 )D I M A ( 4 í 2 ) » D ( 4 ) » M K J 1 ) í M 2 ( J l ) í S 3 ( 4 )B O ( F 4 + 1 ) = 0BKF4+1)=0B 2 C F 4 - f l ) = 0B 3 C F 4 + 1 ) = 0B4(F4+1)=0B5(F4+1)=0B 6 ( F 4 + 1 ) = 0B7(F4+1)=0M 2 ( F 4 + 1 ) = 0
( J l ) / X 7 C J 1 )( J l ) , B 7 ( J 1 >
Ll = 0L2 = 0L3~0
L5=0
L7 = 0
,S3(1)=0
S3(3 )=0
A ( l ; l ) = 0
A ( l / 2 ) = 0A (2. J. )=0
PRINT "LJJJJJJJIESCUELA POLITÉCNICA NACIONAL 'PRINT 'JJJIFACULTAD DE INGENIERÍA ELÉCTRICA 'PRINT ' JJJIALGORITMO DE «JITERBI "PRINT 'JJJISIMULACION DE ENLACES DE COMUNICACIÓNPRINT -JJJINUMERO DE BITS A GENERARSE ;GG"í .INPUT K2IF K2<F4 THEN 1500REM > PRIMER PERIODO DE TIEMPO
APÉNDICE III PAG.93
155015601570'158015901000a 0101020103010401650-.1660107010801090•| "7 A AS. / \J\s
17101720173017401750170017701780179018001810182018301840185018001870188018901900,1910192019301940195019001970:L98019902000201020202030204020502000207020802090
GOSUB 9000GOSUB 7000L0=n<l>XO(K-)=0L4=D(4)X4(K)=.lMOYE 110,80PRINT KMOUE 20;18PRINT LOMOUE 20rl4PRINT L4MOVE 10 7 5PRINT * presione RETURN psra continuar1 yINPUT W$C' E" M '•-. c cr rc 1 1 >j rt n P ir o T n n n n cr T T c* w c- nh. t. n .-• o t. D u N L¡ u r t r*! J. u u u u c. \ 1. n r UK=K+1GOSUB 9000GOSUB 7000A1 = LOA2-L4LO=AH-DÍ1)L2=A2+D<4)L4=A1+D(4)Ló-A2-Ki(l )XO (K)=0X2<K)=0X4<K)=1X6(K)=1X2(1)=X4(1)Xó(l)=X4(l)X4(1)=XO<1)MOVE 20,18PRINT LOMOVE 80,18PRINT L2MOUE 20rl4PRINT I..4MOUE 80 7 14PRINT LoMOVE HOrSOPRINT KFOR 1=1 TO 2BO(I)=XO(I)B2(I)=X2CI)B4<1)=X4CI)Bó < I ) ~XA< I )NEXT IMOUE 10,5PRINT " presione RETURN pera continuar ' ?INPUT U$REM > TERCER PERIODO ÜE TIEMPOK=3GOSUB 9000GOSUB 7000
APÉNDICE III PAG,94
21002110'212021302140215021602170218021902200221022202230224022502260227022802290230023102320233023402350236023702380239024002410.24202430244024502460247024802490250025102520253025402550256025702580259026002610262026302640
MOME 110,80PRINT KAl^LOA2 = L2A3^L4A4=LÓLO=Al+n(l)Ll=A2+i:K3)L2=A3+B<4>L3=A4-KK2>L4=A1+D<4)L5=A2+D(2)LÓ=A3+rKl)L7=A4-KK3)XO(K)=0X1CK)=0X2(K)=0X3(K)=0X4CK)=1X5CK)=1X6(K)=1X7(K)=1FOR 1=1 TO 2XO(I)=BO(I)X1(I)=B2<I)X2CI)=B4(I)X3(I)=B6(I)X4(I)=BO(I)X5CI)=B2(I)Xó(I)=B4<I)X7(I)=B6(I)NEXT IMO'víE 20,18PRINT LOMOUE 50,18PRINT LlMUYE 80,18PRINT L2MOYE 110,18PRINT L3MOVE 20,14PRINT L4MOVE 50,14PRINT L5MUYE 80,14PRINT LoMOUE 110,14PRINT L7FOR 1=1 TO KBO(I)=XO(I)B1(I)=XKI)B2(I)=X2CI)B3(I)=X3CI)B4(I)=X4(I)B5(I)=X5(I)
APÉNDICE III PAG,95
20502ÓÓO20702680209027002710272027302740275027002770278027902800281028202830284028502800287028802890290029102920293029402950290029702980299030003010302030303040305030003070308030903100311031203130314031503100317031803190
Bó(I)=X6(I)B7(I)=X7(I)NEXT IMOVE • 10>5PRINT " presione RETURN pars continuar ' ?INPUT U$REM ' >GÜSUB 9000K=K+1MOVE 110,80PRINT KGOSUB 7000
CUALQUIER PERIODO DE TIEMPO
REM > CALCULO DE LOS SUPERVIVIENTESGOSUB 5000IF K=F4 THENMOVE 10r5
2840
PRINT " presione RETURN para continuar " íINPUT W$GO TO 2710C'CTM —r\t.n —REM ESCOGIMIENTO DEL MENOR SUPERVIVIENTEK1 = K •K=F4M = LOIF M<L1 THENM=L1IF M<L2 THENM=L2IF M<L3 THENM = L3IF M<L4 THENM-L4IF M<L5 THENM = L5IF M<LÓ THENM=LÓIF M<L7 THENM=L7IF LO=M THENIF L1=M THENIF L2=M THENIF L3=M THENIF L4=M THENIF L5-M THENIF L6=M THENS=X7C1)GO TO 3250S=XÓ(1)GO TO 3250S=X5<1)GO TO 3250S-X4C1)GO TO 3250S=X3(1)GO TO 3250
2910
2930
2950
2970
2990
3010
3030
324032203200318031603.1403120
APÉNDICE III PAG.96
32003210322032303240325032003270328032903300331033203330334033503300337033803390340034103420343034403450346034703480349035003510352035303540355035003570358035903000361030203Ó3O30403050366030703680369037003710372037303740
S=X2(1)GQ TO 3250S=XK.l)GO TO 3250S=XO(1)IF S=M1<1) THEN 3270E2=E2+1FOR 1=1 TO KXO(I)=BO(I+1)X1(I)=B1(I+1 )X2CI)=B2(I+1)X3(I)=B3(I+1)X4(I)=B4(I+1>X5(I)=B5(I+1)XÓCD^BÓCI + l)X7<I)=B7(I+1)BO<I)=XO(I)B1(I)=X1(I) •B2CI)=X2<I>B3CI)=X3(I>B4(I)=X4(I)B5(I)=X5(I)BÓ(I)=XóCI)B7CI)=X7<I)M1.(I)=M2(I + 1)M2(I)=M1ÍI)NEXT IMOVE IlOíSOPRINT KlMOVE 50?30PRINT SMOVE 110f30PRINT E2MOVE lOrSPRINT "presione RETURN pare <INPUT W$IF K1=>K2 THEN 3620K1=K1+1GOSUB 9000GOSUB 7000GOSUB 5000GO TO 2880REMREM SALIDAL9-L9+1IF L9-K+1 THEN 3740K1=K1+1F=0RErH •-, INYECCIÓN DE LA COLA :GOSUB 9000GOSUB 7180MOUE 10^70PRINT "inyección o'e 1 3 cola deGO TO 3600IF F6-32 THEN 3770
continuar'
DE CEROS
ceros
APÉNDICE III PAG*97
375037003770378037903800381038203830384038503800387038803890390039103920393039403950396039703980399040004010402040304040405040604070408040904100411041205000501050205030504050505000507050805090510051105120513051405150
PRINTINPUTPRINTPRINTPRINTPRINTPRINTIF F3PRINTGO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF U$GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTENDPRINTINPUTIF U*PRINTENDREMREM
1LJJJJJJJJI ALISTE IMPRESOR R E T U R N PARA CONTINUAR";
QFÓt'LJJJJJIESCUELA POLITÉCNICA NACIONAL"@Fó:"JIFACULTAD DE INGENIERÍA ELÉCTRICA1
@F6í"JIALGORITMO DE VITERBI"@Fó:"JICODIGO K - 4 R = 1/2*@F6:'JIRELACION SENIAL A RUIDO = 'ÍF5Í' dB1
= 1 THEN 38500F6Í"JIDECODIFICACION SUAVE'3800(?Fó; " JIDECODIFICACION DURA"
•JINUMERO DE ERRORES EFECTIVOS DEL CANAL =•JIERRQRES DE NIVEL PRODUCIDOS POR EL CANAU'JIHISTORIA DE LAS TRAYECTORIAS - 'ÍF4
@Fó:"JINUMERO DE ERRORES EN LA DECODIFICACION -@FÓÍ"JINUMERO DE HATOS GENERADOS - '?K2•JI OTRA PRUEBA CS/NKGG";W$'•S" THEN 39504080•LJJJJI ESCUELA POLITÉCNICA NACIONAL1
"JJIALGORITMO DE VITERBI"'JJISIMULACIONES
El
•ITecla'ITecla"ITecl3•ITecla"ITecl3 *•ITecla *•JITecls"J estas
91011121314
= 1
A ESCOGERK= 4= 5- 3= A
KKKKK = 5MENÚ'
1/2°1/2'1/2"1/3'1/3'I/o1
5Ímul3ciones tienen IBS mismas C3r3cterieticasdel programa ejecutado si desea variarlas reárese si
'LJJJJJI desea reáressr si MENÚ <S/N) I " ?
'S- OR Wí^'s"JJI GRACIAS
THEN 4
**SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
R1=L1+D(4)
R2-L3+BC2)
R3=L5+ri(l)P4=Ló+DC2)R4=L7+D(3)P5=LO+D(4)
PÓ~L2+D(2)RÓ=L3+D(3)P7-L4+DC1)
C'¡
X! o o X -fc. ,-.
M ~~f u w o .— -
M •^
en e
n en
CN
CN C
N^0
C
O X
l0 O
0
•n r
Q
o -
t* o
23
!! T! H
M e
n o
1! i-*
en \-{
ÍO
0
O
Tí 1 "
en e
n en
CN
CN C
NCN
en
-t*O
O
O
•z: X
~r\
-t> o
X
">
73H
H
H•
M
M
¡|
I!¡X
I J--
H1
•"•-
—
{í-
t O
•Tí 1 i-'
en e
n u¡
CN
CN C
NW
fO
í-1
0 O
O
r ¿+
-X-t-
~n
wi!
^23
T T
íen
en •-
A
1!IÍ
O23 en H x m 2: en CN CO O
ui o
¡ en
o- e
n en
o
*o c
oo
o o
2: x
"n
m w
oX -
71
H M ^
M
M
||
||l£
l t-
*CN •—
• —
íM
O^
Tí 1 l— "•
en e
n en
en
en e
nen
en
en e
n en
en
\ C
N e
n •£>
6-j
íoo o
o o
o o
r en
2: x
-n
i~w o
m w
o w
II X ^
73 II
T> —
1 H
M
7?
.£•
O
'-'
M
-C*
n
¡! II
en
w t
---C
N
XI
h-1
*-
s
H
O
M O
— •
Tí 1
Í~L
en o
í uf
en e
n >
l-1 O
"O
O 0
O
M X
2:
"TI
ro m
"~~
X"O
Tí
Hji
•— •
A
II M
1! 0
73 -£>
•H X m 2: en en XI o
L«I e
n en
en
en e
n en
en
en_
t,_
t,.£
,.£
,_K
,.£
>..
£»
,N,_
t>
co x
i C
N e
n -t»
w
ro t
-1
oo
oo
oo
oo
oo
x-n
ro
2:x
-n
rn
fo o
to
o m
ro o
ro
~n
~ 73
I!
X ^
73
1!
HH
TI
H
— ]
M
73 "
ns
-'M
CJ
CD
—
M
C^
IWII
II
M
|¡
11
w- -
^ en
w
M
n4>
en
en
73
— H
O
"s -l
Wt-
í O
O
M
O•—
• '
— i
Tí
Tí
Xi
i m
t. j
LÍ
-^ en -t* O-
O
ui u
i ui
en e
n en
w w
w w
c*j
wo
co \
CN
en
•£>
o o
o o
o o
x 2
: x
~n r
Qt-1
m i-
1 o
i-1
o^
X
73
IIT
í H
M
T>
H
—
--• u
ro o
!I
M
11
11
o w
H-
enro
u
^-s
j
NJ~1
M 0
0-^
Tí 1
H-
en e
n en
WW
Ww
ro
H-O
0 O
-Z.
X
-TI
rn i-
1 o
X
— 7
3H
M^-
l—l
M
1!
II£d
1 —
W •— H
i-H O
v_^
Tí 1
M-
en e
n en
w r
o ro
O
SQ C
Oo
o o
r M
Xh-
1 T
j O
II
—71
-n
T^
ro r
- j *
-A
II
II 0
71 ro — i
x rn 2: en w en o
en e
n en
w r
o fo
\ CN
en
0 0
O
2: x
~n
m o
oX *
PD
-1 M —
• M
M
!!
IIcd
M-
O •"*
— !
M O
s->
Tí 1
|-J-
en e
n en
fo r
o fo
4>
W
tOo o
or
Q ;
zo
o m
II X
TÍ
H H
!->•
O!—
t
en ro co o
en e
n en
en
en e
nro
ro
t-*
H^
t- O
-O
03 x
! CN
0 O
0 O
0 O
x -n
r
M 7
3 ~
oo o
o
~n c
o c
o^
73
II
II
11M
73
T?
r-
r•-
M
M
XI
0-
11 II
A +
+
W
t-1-
I!
C3 f
i-j
71
-.
^-s
•^ H
H--
ro
wM
O
—
^_,
— i
Tí
Xi
mi-*
2: en ro j> o
3> •n 2:
tí O m Q + O CO
APÉNDICE III PAG*99
5710572057305740tT" ~í c~ /\0
577057805790580058105820583058405850586058705880589059OO591059205930594059505900597059805990000060100020603060406050ÓOÓO6070608060906100611061206130614001506160617061806190620062100220623062406250
NEXT IX4<K)=1IF PÓORÓ THEN 5790L5=RóFOR 1=1 TO K-lX5í I)~B3( I )NEXT IGO TO 5830L5=PóFOR 1=1 TO K-lX5(I)=B2CI>NEXT IX5CK)=1IF P7<=R7 THEN 5900LÓ=R7FOR 1=1 TO K-lXóC I )~B5C I )NEXT -IGO TO 5940LÓ=P7FOR 1=1 TO K-lXa ( I >=B4< I )NEXT IXÓCK)=1IF P3OR8 THEN 6010L7-R8FOR 1=1 TO K-lX7(I)=B7(I>NEXT IGO TO 0050L7=P8FOR 1=1 TO K-lX7(I)=B6<I)NEXT IX7 (K)=lFOR J=l TO KBO(J)=XOCJ)B1(J)=X1< J)B2< J)=X2< J)'B3CJ)=X3(J)B4CJ)=X4C J)B5CJ)=X5CJ)Bó C J)=Xó( J)B7(J)=X7< J)NEXT JMQVE 20*18PRINT LOMQUE 50fl8PRINT LlMOUE SO. 18PRINT L2HOYE 110*18PRINT L3MOUE 20» 14PRINT L4
APÉNDICE III PAG.100
Ó2ÓO02706280629063000310032070007010"?m A/ u^u70307040705070607070708070907100711071207130714071507100717071807190720072107220723072407250720072707280729073007310732073307340735073007370738073907400741074207430744074507400
MOUE 50714PRINT L5MOUE 80714PRINT LoMOUE 110,14PRINT L7RETURNREM **************************REM SUBRUTINA DE GENERACIÓN -C'PM '••. r-tTMCTC'AP'T nxiK e. n ..•• btríLKHUlUÍN
F=RND(1)IF F<0,5 THEN 7070F=lGO TO 7080F=0MOUE 35780PRINT FMOUE 1ÍO r 60PRINT FHJL(K)=FM2(K)=hi(K>FOR 1=1 TO KMOUE 10+3*1*70PRINT MIC I)NEXT IREM > CODIFICACIÓN21=33(1)Z2-S3 ( 2)Z3=S3(3)S3(1)=FS3C2)=Z1S3(3)=Z2S3C4)=Z3MOUE 40700PRINT Z1ÍZ2Í23MOUE 40755PRINT S3C1) ÍS3(2) ÍS3Í3)W2^S3(1)+S3C2)+S3C4)IF W2=2 THEN 7360IF W2=3 THEN 7340GO TO 7370UI2 = 1GO TO 7370LJ2-0-U1=S3<3)+W2IF Ul=2 THEN 7400GO TO 7410Wl=0MOUE 110755PRINT W1ÍW2MOUE 50745PRINT U1*F3?W2#F3REM > CANAL Y CUANTIZADORGOSUB 8330
CODIFICACIÓN - CANAL
APÉNDICE III PAG ,101
7470748074907500751075207530754075507560757075807590760076107620763076407650766070707680769077007710772077307740775077607770778077907800781078207830734078507860787078807890790079107920793079407950796079707980799080008010
GOSUB 8330
IF F3IF YIF YIF YIF YlIF YIF YIF YVI = 7GO TOVl = 0GO TOVl = lGO TOVl=2GO TOVI =3GO TOVl = 400 TOVl = 5GO TOVI =6IF Y2<IF Y2<IF Y2IF Y2<IF Y2<IF Y2<IF Y2<
l THEN 81300.13 THEN 7600O + 25 THEN 7620Q.3S THEN 76400*5 THEN 7060CKÓ3 THEN 76800.75 THEN 77000.88 THEN 7720
7730
7730
7730
7730
7730
7730
7730
0>130*25K380*50*630*750*88
THENTHENTHEN
THENTHENTHENTHEN
7820784078007880790079207940
GO TO 7950V2=000 TO 7950V2~lGü TU 7950V2 = 2GO TO 7950V2=3GO TO 7950V2=4GO TO 7950 .V2 = 500 TO 7V50V2 = óIF YKO + 5 THEN 7980Yl = lGO TO 7990Yl-0IF Y2<0»5 THEN 8020Y2 = lGO TO 8030
APÉNDICE III PAG.102
302080308040.805080008070S080809081008110812081308140815031008170318081908200821082208230824082508260827082308290S3008310832083308340835083008370838083908400900090109020903090409050900090709080909091009110912091309140
Y2=0IF Y1 = W1 THEN 8050
IF Y2=W2 THEN 8070
MUYE 110*45PRINT EIF V1=W1#F3 THEN 3110E1=E1+1IF V2=W2#F3 THEN 8130E1=E1+1MOVE 110,40PRINT ElMQUE 50r40PRINT V1JV2GO TO 8270IF YK0.5 THEN 3210Vl = lGO TO 8220Vl = 0IF Y2<0+5 THEN 8250V2 = lGO TO 3260
4GO TO 7950FOR 1=1 TO0=ABS(A(IfT=ABS(A(IfD(I)=0+TNEXT IRETURNREM fc*REM SUBRUTINA PARA EL ^CALCULO DEL RUIDO
FOR J=l TOC=C+RND(1)NEXT J
RETURNREM X*REMPAGEMOVEDRAWDRAWDRAWDRAWMOUEDRAWDRAWDRAWORA UMOVEDRAW
1
***TÍTULOS
0,0OrlOO130rlOO130,00.05,85
85125 7 035r¿85r855ró4125-04
APÉNDICE III PAG*103
915091609170918091909200
' 9210922092309240925092009270928092909300931093209330934093509300937093809390940094109420943094409450940094709480949095009510952095309540955095009570958095909000961090209030964090509660907090809090
DRAUDRAUDRAU.HOYEDRAUDRAUDRAWDRAWMÜUEDRAUDRAUDRAUDRAWMOUEPRINT
125,545,545, 645748125,48125,385,385,485.33125,33125,135,135,3340,95•ESCUELA POLITÉCNICA NACIONAL'
MQUE 30,90IMULACION HE ENLACES DE COMUNICACIÓN
SéGENERADOR65CODIFICADOR49
CON RUIDO
DE DATOS SEUDO-ALEATORIQ'
K = 4 R = I/:
BLANCO GAUSSIANO'
F5 dB
PRINT 'MOUE 5,PRINT 'MÜUE 5,PRINT "MQUE 5,PRINT 'CANALMQUE 80,49PRINT -S/N =MQUE 5/34PRINT 'DECODIFICADOR'HOYE 70,34PRINT 'LONGITUD DE LAS TRAYECTORIASMGUE 80/86PRINT -BITS A GENERARSE; -?K2MOUE 10,80PRINT "Dato generado:*HOUE 70,80PRINT 'Contador de datos: 'MOUE 10,75PRINT 'SECUENCIAS DE DATOS'MOUE 10,74DRAW 45,74MOUE 10,60PRINT "Estado anterior: "MOUE 10,55PRINT 'Es-tsdo actual í 'MOUE 70,00PRINT •Dimito a codificarse: "MOVE 70r55PRINT "Secuencia codificada: "MOUE 10,45PRINT "Secuencia trsnsmitidaí "MOUE 10,40PRINT "Secuencia recibida : "MOUE 70,45PRINT 'Numero de errores I 'MOUE 70,40PRINT "Errores de nivel: '
F4
APÉNDICE III PAG.104
9700 MOUE 10,309710 PRINT 'D3to decodificsdo : •9720 MQUE.70,309730 PRINT 'Numero de errores í '9740 MOVE 10,259750 PRINT 'ESTADO ÜE LAS MÉTRICAS9700 MOUE 10,249770 IiRAW 50,249780 HOYE 10,189790 PRINT 'LO = '9800 MOVE 40,189810 PRINT -Ll = '9820 MOVE 70,139830 PRINT "L2 = '9840 MOUE 100,189850 PRINT 'L3 = '9800 MOVE 10,149870 PRINT -L4 = "9880 MOUE 40,149890 PRINT 'L5 = B
9900 MOUE 70,149910 PRINT 'Lo - "9920 MOVE 100,149930 PRINT 'L7 = '9940 RETURN
APÉNDICE III PAC.105
J-UUU
1010102010301040105010601070108010901100111011201130114011501160117011801190120012101220123012401250126012701280:l.2901300131013201330134013501360137013801390140014101420143014401450146014701480149015001510152015301540
r\e.n01 = 11GO TO 8REMREMU=10~(~DELETEDELETE!DELETEDELETEDELETEDELETEJ1=F4+1DIM XOCDIM B0(DIM ZOCDIM COCDIM DC4BOCF4+1B1CF4+1B2CF4+1B3CF4+1B4CF44-1B5CF4+1BÓCF4+1B7<F4+1COCF4+1Cl CF4+1C2CF4+1C3CF4+1C4 CF44-1C5CF4+1C6CF4-MC7CF4-HM2CF4+1E-OEl = 0E2 = 0L0~0L.l = 0L2=0L3=0L4 = 0L5=0L6 = 0L7~0L9-0NO-0Nl"0N2~0N3-0N4~0N5~0Nó = 0N7-0
1- r\uur\Hi IH oc,(xuuno
00SIMULACIÓN DE ENLACES DE COMUNICACIÓN
CÓDIGO K = 5 R = 1/2<F5+10*(LOG(2)/LOG(1.0) ) ) /20 )XO;XlíX2rX3íX4jX5rXóíX7BO Bl B° B3 P4 B5 B6 B7ZOfZlíZ2fZ3»Z4fZ5,Zóí27CO , Cl r C2 , C3 , C4 , C5 , Có , C7DjMl rM2/ ArG?S38,100
Jl) jXKJl) íX2(Jl) rX3(Jl) f X4<J1) ,X5(J1) jXÓ(Jl) ,X7< Jl)Jl)JBlCJl)íB2(Jl)íB3(Jl)?B4CJl)íB5CJl)rBÓ(Jl)/B7(Jl)Jl) iZK Jl) fZ2(Jl) íZ3( Jl) fZ4<Jl) ,Z5(J1) íZÓ(Ji) íZ7(Jl)Jl) jCK Jl) » C2CJ1) t C3( Jl) íC4(Jl) fC5(Jl) ;CÓ<J1) ?C7CJ1)) íMlCJl)fM2CJl)vGC5)TA(4 I 2))=0)=0)=0)=0)=0)=0)=0)=o)=0) -0)=0)=0) = 0)=0)=0)=0)=0
APÉNDICE III PAG*10Ó
155015001570158015901000101010201630104010501ÓÓO1070108010901700171017201730174017501700177017801790180018101820183018401850186018701880189019001910192019301940195019001970198019902000201020202030204020502000207020802090
GC1)=0G(2)=0
G(5)=0A C l í 1 ) = 0A(lí2)=0
A(3,1)=1*F3A<3,2)=0
A(4>2GOSUBPRINTINPUTIF K2REM -K=lGOSUBPRINTGOSUBLO = D(XO(K)NO = D(ZOCK)PRINTPRINTPRINTINPUTREM -
)=1#F310500•JJJINUMERO DE BITS A GENERARSE ÍGG'ÍK2
<F4 THEN 1090>PRIMER PERIODO DE TIEMPO
10500'JINUMERQ DE BITS GENERADOS! ' í K90001)= 04)= 1•JJILO = 'ÍL.O•IL8 = <?NO"digresione RETURN PBTS continuar"íW$
> SEGUNDO PERIODO DE TIEMPO
GOSUB 10500PRINT 'JINUMEROGOSUB 9000
LO=Al+n<l)
DE BITS GENERADOS,'
NO = A1N4 = A2XO(K)X4CK)ZOC K )Z4(K)X4<1)24(1)ZOC1)PRINTPRINTPRINTPRINTFOR IBOCI)B4 (I)
+ D(4)+ IK2)= 0= 0= 1«. -f
=20(1)=20(1)=XO(1)•JJILO"IL4 =•IL8 :•IL12 :
= 1 TO K=XO(I)=X4(I)
" i LO;i_4;NOÍN4
APÉNDICE: ni PAG,107
2100211021202130214021502100217021802190.220022102220223022402250220022702280229023002310232023302340235023002370238023902400241024202430244024502400247024802490250025102520253025402550256025702580259026002610262026302640
coa>=zo<i>C4(I)=Z4ÍI)NEXT. IPRINT "Jlpresione RETURN PSTS continuar";INPUT U$REM > TERCER PERIODO DE TIEMPOK=K+1GOSUB 10500PRINT 'J1NUMERO DE BITS GENERADOS: 'ÍKGOSUB 9000Al^LOA2 = L4A3=NOA4 = N4LO=A1+D(1)L2 = A2-KK3)L4-A3+DC3)LÓ=A4+D(1)NO=A1+D(4)N2-A2-fD(2)N4=A3+D(2)Nó=A4+D(4)XO(K)=0X2(K)=0X4 (K)=0Xó(K)=0ZO(K)=1Z2CK)=1Z4CK)=1Z6 (K)-lPOR 1=1 TO 2XO(I)=BOCI)X2(I)=B4<I)X4(I)=CO<I)Xó(I)=C4(I)ZO(I)=BO(I)Z2(I)=B4(I)Z4(I)=COCI)Z6(I)=C4(I)NEXT IPRINT ' JJILO = ' ?LOPRINT -IL2 - "ÍL2PRINT 'IL4 = " ÍL4PRINT 'IL6 - "ÍLÓPRINT 'IL8 = "ÍNOPRINT "IL10 = • ÍN2PRINT 'IL12 = ' ÍN4PRINT -IL14 = ' ÍNÓFOR 1=1 TO KBO<I)=XO(I)B2(I)=X2(I)B4(I)=X4(I)B6C I )=Xó ( I )CO(I)=ZOCI)C2<I)=Z2CI)
APÉNDICE III F'AG + 108
2050266020702680209027002710272027302740275027602770278027902800281028202830284028502800287028802890290029102920293029402950290029702980299030003010302030303040305030003070308030903100311031203130314031503160317031803190
C 4 ( I ) = Z 4 ( I )C Ó C I ) = Z á ( I )N E X T - IPRINT 'J lpresione R E T U R N para c o n t i n u a r ' ?I N P U T U$REH > CUARTO PERIODO DE TIEMPOK-K+1
A2=l_2
A4-L6
A7=N4
GOSUB 10500P R I N T " J I N U M E R O HEGOSUB 9000L O = A 1 + D ( 1 )L 1 = A 2 + B ( 2 )L2=A3+D(3)L3=A4+D<4)L 4 = A 5 + D < 3 )L 5 = A 6 + D ( 4 )L 6 = A 7 + D < 1 )L 7 = A 8 + n < 2 >
BITS GENERADOS:
N 1 = A 2 + D ( 3 )N2=A3+n(2)N 3 = A 4 + D ( 1 )N 4 = A 5 + D ( 2 )N 5 = A Ó + D ( 1 )N Ó = A 7 + D ( 4 )N 7 = A 8 + D C 3 )X O C K ) = 0XKtO=0X 2 C K ) = 0X 3 ( K ) ~ 0X 4 ( K ) = 0X 5 ( K ) = 0X Ó ( K ) = 0X 7 ( K ) = 0Z O C K ) = 1Z 1 ( K ) = 1Z 2 ( K ) = 1Z 3 C K ) = 1Z 4 ( K ) = 1Z 5 ( K ) = 1Z Ó C K ' ) = 1Z 7 ( K ) = 1FOR 1=1 TO 3X O < I ) = B O ( I )X 1 ( I ) = B 2 ( I )X 2 ( I ) = B 4 ( I )X 3 ( I ) = B 6 < I )
APÉNDICE III PAG*109
320032103220323032403250320032703280329033003310332033303340335033603370338033903400341034203430344034503460347034803490350035103520353035403550350035703580359036003610362036303640365036 0036703680369037003710372037303740
X4(I)=CO(I>X5(I)=C2(I)Xó(I)=C4CI)X7(I)=C6(I)ZO(I)=BO(I)Z1(I>=B2(I>Z2 (I )Z3CI)Z4(I)Z5CI)ZÓCI)Z7CI)NEXTGOSUBPRINTINPUTREM -GOSUBK=K+1PRINTGOSUBGOSUB
=B4(I)=BÓCI)=CO(I)=C2(I)=C4(I)-COCÍ)I11000"JJpresione RETURN PBTB continuar"?W$
10500CUALQUIER PERIODO DE TIEMPO
•JINUMERO DE BITS GENERADOS: 'JK90006000
IF K=F4 THENPRINTINPUTGO TOREM -REMKl-KK=F4M=LOIF M<M~L1IF M<M=L2IF M<M~L3IF H<'M=L4IF M<M = L5IF M<M=L6IF M<M-L7IF M<M=NOIF M<M=N1IF M<M-N2IF M<M = N3IF M<M-N4
* JJpresU!*3360
3460ione RETURN psrs continuar 3 ?
ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
Ll THEN
L2 THEN
L3 THEN
L4 THEN
L5 THEN
Lo THEN
L7 THEN
NO THEN
NI THEN
N2 THEN
N3 THEN
N4 THEN
3530
3550
3570
3590
3610
3630
3650
3670
3690
3710
3730
3750
APÉNDICE III PAG,110
3750376037703780379038003810382038303840385038003870388038903900391039203930394039503900397039803990400040104020403040404050406040704080409041004110412041304140415041004170418041904200421042204230424042504260427042804290
IF M<N5 THENM-N5IF M<NÓ THENM=NÓIF M<N7 THENM=N7IF LO=M THENIF L1=M THENIF L2=M THENIF L3-M THENIF L4=M THENIF L5=M THENIF LÓ=H THENIF L7=M THENIF NO=^M THENIF N1=M THENIF N2=M THENIF N3=M THENIF N4=M THENIF N5=M THENIF N6=M THENS=Z7<1)GO TO 4270S-ZÓ(l)GO TO 4270S=Z5(1>GO TO 4270S=Z4<1)GO TO 4270S=Z3(1)GO TO 4270S=Z2<1>GO TO 4270S=Z1<1)GO TO 4270S=ZO(1)GO TO 4270S=X7 < 1 )GO TO 4270S=Xó(l)GO TO 4270S=X5(1)GO TO 4270S=X4<1)GO TO 4270S-X3<1>GO TO 4270S 'X2 ( 1 )GO TO 4270S-X1C1)GO TO 4270S=XO(i)
3770
3790
3810
420042404220420041804160414041204100408040004040402040003980
IF S=M1(1) THEN 4290E2=E2+1FOR 1=1 TO K
APÉNDICE III PAG*111
43004310432043304340435043004370438043904400441044204430444044504460447044804490450045104520453045404550450045704580459046004610402040304640'46504660467046804690470047104720473047404750476047704780479048004810482048304840
X2(I)=B2(I+1)X3(I)=B3CI+1 )X4CI>=B4(I+1)X5(I)=B5(I+1>XÓCI)=BÓ(I+1)X7ÍI>=B7ÍI-M>ZO(I)=CO(I+1)
Z2(I)=C2(I+1)
Z4CI)Z5(I)Z6(I)Z7(I)MlCI)BOCI)B1(I)B2<I)B3(I)B4(I)B5<I)BÓ(I)B7CI)coci)Cl(I)C2CI)
C4(I+1>C5CI+1)CÓ(I-M)C7(I+1)M2(I-fl)XO(I)XKI)X2(I)X3(I)X4(I)X5<I)Xó(I)X7(I)zo<r>ZlCI)Z2(I)
C4<I)=Z4a>C5CI)=Z5(I)COCÍ) =26(1)C7(I)=Z7CI)
Jlbit decodificado í fl ?SInLimero de errores en IB decodificscionJIpresione RETURN psrs continuar'?
NEXT IPRINTF'RINTPRINTINPUT W$IF K1=>K2 THEN 4760K1=K1+1GOSUB 10500
nJI NUMERO900060003500
PRINTGOSUBGOSUBGO TO
DE BITS GENERADOS:
REML9=L9+1IF L9=K+1 THEN 4870
SALIDA
GOSUB 10500PRINT -J1NUMERO DE BITS : 'íKlPRINT -JINYECCION DE LA COLA DE CEROS ÍL9
APÉNDICE III PAG.112
48504800487048SO48904900491049204930494049504960497049804990500050105020503050400000601060206030004060506060607060806090610061106120613061406150616061706180619062006210622062306240625062606270623062906300631063206330
GOSUB 9120GQ TO 4740IF F6=-32 TPRINT -LJJINPUT U$PRINT @F6íPRINT @FÓ:PRINT @Fó:PRINT @FÓÍPRINT @FÓ:PRINT @FÓ:PRINT @FÓ:PRINT @FÓ:PRINT 0F6ÍPRINT @Fó:PRINT 'JIINPUT W$IF W^-'S1PRINT 'JJIENDREM ******REMP1=LQ+D< 1 )R1=L1+D<4)Q1=LO+D(4)S1-L1+DC1 )P2=L2+D(2)Q2=L2+D(3)R2=L3+BC3)S2=L3+Ü<2)P3=L4+Ü(3)Q3=L4+D(2)R3=L5+DC2)S3=L5+D(3)P4=L6+D(4)Q4=L6+D(1)R4=L7+DU)S4=L7+D<4)P5=NO+D(3)Q5=NO+D(2)R5=N1+D(2)S5=N1+D<3>Pó-N2+n(4)Q6-N2+IK 1 )RÓ-N3+DU)S6=N3+D( 4)P7=N4+D < 1 )Q7=N4+D(4)R7=N5+n<4)S7=N5+n<l)PS-Nó+D (2)Q8=N6+DC3)R8=N7+n<3)S8=N7+D(2)
PARA CONTINUAR'í
"LJJJJJIESCUELA POLITÉCNICA NACIONAL'•J1FACULTAD DE INGENIERÍA ELÉCTRICA'•JIALGORITMO DE VITERBI1
"JICODIGO K = 5 R = 1/2'MIRELACION SENIAL A RUIDO = 'ÍFS?' dB"•JINUMERO DE ERRORES EFECTIVOS DEL CANAL =•JIERRGRES DE NIVEL PRODUCIDOS POR EL CANAL'"JIHISTORIA DE LAS TRAYECTORIAS = '?F4"JINUMERO DE ERRORES EN LA DECODIFICACION =•JINUMERO DE DATOS GENERADOS = 'íK2OTRA PRUEBA ÍS/N):GG° í
THEN 4GRACIAS"
JE1
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
APÉNDICE III PAG*li:
63406350Ó3ÓO6370638063906400641064206430644064506400647064806490650005106520653065406550656065706580059066006610662066306640ÓÓ5066606670668066906700671067206730674067506700677067806790680068106820683068406350680068706880
IF RK=P1 THEN 6400LO = P1FOR 1=1 TO K-lXO(I)=BO(I)NEXT IGO TO 6440LQ = R1FOR 1=1 TO K-lXO(I)=BKI)NEXT IIF R2<=P2 THEN 6500L1 = P2FOR 1=1 TO K-lX1(I)=B2(I)NEXT IGO TO 0540 .L1=R2FOR 1=1 TO K-lX1(I)=B3(I)NEXT IIF R3<=P3 THEN 6000L2 = P3FOR 1=1 TO K-lX2(I>=B4<I>NEXT IGO TO ÓÓ40L2=R3FOR 1=1 TO K-lX2(I)=B5CI)NEXT IIF R4OP4 THEN 6700L3=P4FOR 1=1 TO K-lX3<I)=BÓ(I>NEXT IGO TO 6740L3=R4FOR 1=1 TO K-lX3(I)=B7(I)NEXT IIF R5<=P5 THEN 6800L4 = P5FOR 1=1 TO K-lX4(I)=CO(I)NEXT IGO TO 6840L4 = R5FOR 1=1 TO K-lX4(I)=C1(I)NEXT IIF RÓOP6 THEN 6900L5 = PÓFOR 1=1 TO K-lX5(I)=C2CI)NEXT I
CD <r M M M UJ U Lü ü. <T
O O O ¡X
O oo o
o o ro ts
o
I Ui
I
'•¿L
X
J¿
O
O H
O*7
\~ -
^ \>.
\-
o
ro
a.-O
TH U
!¡ M
II II M V
II
o -o M
--.
rx rx M
H ü; u
h- c¿ a.
U i¿ *^ X
II
C¿O LH O IO Lü U.
M3 O
a _i u_ x
2: H _
j LL.
oo
oo
oo
oo
o o
-H r
-j ro
*r
LO -
o
O
oo fx
- X
X o o
rx e
n
O n
i— *
—* 10-H
a
ii ii
o
rx M
--.
¡ \-f
¡
i
O O
O
x^tD
_J
U.
X
O O
O O
O-
O
-H
C-J
o- o
o o
•o r
x fx
rx
Id X l- co IIM
V OD
X UJ ü
_"V
* t-J
X_ ^n
O O
ro *
ro
o
-o•H
U
II II
a.
MII
C£
ix o
rx
O
x u
u o
ix
UJ X
^-c
U
1!II
II
M
V
M i
- en
r-^ x
_** %
^o
rx Ú
J u_
LU X -1 —
U
O I!
a II L
¿o
o
M o II H
M
í—•-
XO
LU
OO
M
OM
OO
M
OH
T
i— ^
r-
j i—
^-
*r
h- ^
-* ro
h-
*-•
[X
rH lí
1|
i—!
plí
Px
T-
4 O
j II
T—
1 P
Q
II
I!
r-l
V
II
II
M
II
II
*H
V
II
¡I
M
Mi-
cn
Cj
M H
i—
en
MI-
CO
C
n¡—
^-
X
II
L¿ ^
X
I! L
Í ^
x
II C
£ —
X
OL
üL
L-r
-fO
-MU
O-H
Ov
HL
üL
uC
-iO
C-i
LL
í
OOM
fX
H e
n IIo oO
^ e
sII
¡I H
en
' M H
II CC
—
Xr-
i o
c-j
u
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oo
oui
-o
rx O
D CN
o
T-I c
-j M
r
ÜT x
3 ix
co
o- o
H
r-j
ro -
7- bi
<i
fx o
j o-
o ^
r-j
ro
r ^
xi
fx c
o CN
o
-H r
-í ro
o o
o o
o M
H
-M
r^
M H
r< r
-i r-j
c-j
c-¿ r
-¡ r
-j c-J
r-j
r^^rx rx
rx, N
rx ¡\x fx rx fx fx íx rx rx N
rx rx
rx N N
rx rx
rs, ¡x ¡x
rs. ¡N N
r\x rx ¡\
x ix i
x rx
r% ¡x N
APÉNDICE III PAG,115
7440745074007470748074907500751075207530754075507500757075807590700070107020703076407650766076707080709077007710772077307740775077607770778077907800781078207830784078507860787078SO7890790079107920793079407950796079707980
•IF S4<=Q4 THENN3-Q4FOR 1=1 TO K-lZ3<I)=B6(I>NEXT IGO TO 7540N3=S4FOR 1=1 TO K-lZ3CI)=B7CI)NEXT IIF S5<=Q5 THENN4 = Q5FOR 1=1 TO K-lZ4CI)=CO(I)NEXT IGO TO 7040N4=:S5FOR 1=1 TO K-lZ4(I)=C1CI)NEXT IIF SÓOQÓ THENN5=Q6FOR 1=1 TO K-lZ5(I)=C2(I)NEXT IGO TO 7740H5=S6FOR 1=1 TO K-lZ5(I)=C3(I)NEXT IIF S7<=Q7 THENN6=Q7FOR 1=1 TO K-lZÓCI)=C4(I)NEXT .1GO TO 7840NÓ=S7FOR 1=1 TO K-lZ6CI)=C5CI)NEXT IIF S8OQ8 THENN7 = QOFOR 1=1 TO K-lZ7CI)=C6(I)NEXT IGO TO 7940N7=S8FOR 1=1 TO K-lZ7(I)=C7(I)NEXT IXO(K)=0X1(K)=0X2CK)=0X3(K)=0X4CK)=0
7500
7000
7700
7800
7900
APÉNDICE III PAG.lió
7990800080108020803080408050806080708080309081008110900090109020903090409050906090709080909091009 1109120913091409150916091709.1.809.1.90920092109220923092409250926092709280929093009310932093309340
X5<K)=0X6(K)=0X7(K)=0ZO(K)=1ZKK) = 1Z2(K)=1Z3CK)=1Z4(K)=1Z5<K)=1ZÓ(K)=1Z7<K>=1GOSUB l;RETURNREM ###:REM SUBÍF=RND(i:IF F<0+;F = lGO TO 9(F=0PRINT -.PRINT a:M1(K)=FM2<K)=M:FOR ]>1PRINT 'íUl-GC i )U2=G(2)U3-GÍ3)U4=G<4)G ( .1. ) =FG(2)=U1GÍ3)=U2G(4)=U3G(5)=U4PRINT •;PRINT •:W1 = GCD-IF Ul=2IF Ul =3GO TD 9:UH==0GO TO 9:W 1 = 1w;;=G(i>Hli* U 2-2.1. r W ¿, — \.t
GO TO '•?:
DE GENERACIÓN - CODIFICACIÓN - CANAL
9000
11000
##TI
THEN
0
JGENERADOR DE DATOS PSa I d 3 1 o sí e n erado í " J F
(K)O K
CODIFICACIÓN' ? "
EUDO-ALEATORIO
93507300.9370938093909400
U2 = 0GO TOU 2 = 1
tNTÍ;NT
PR INT
Iestado anteriorlestado sctuslfG<2)-i-GC3)-hGC5)OR Wl=4 THEN 9280THEN 930010
l)-f-G(4)Jí-G(5)THEN 9350THÍIN 9370
9380
9380
" Isecuencis codificada i" Isecuencis transmitida I"CANAL Y CUANTIZADOR -----
? G (1 ) ? G ( 2 ) ; G < 3 ) í G < 4 )
ÍW1ÍW2
S/N d
X X
.•O
-C
en -£
>0 O
-< H
!ÍO
T
I
11 ;-• -
< ro o en -í x m •21 •o •O X!
O
•U X
; -*¿
x;
x¿ x
:.£
-C <
; ^3
CO ~
W r
o
o
>o c
oo
o o
o o
o
-< C
T -<
i-1-
<C
G."
o ¡
- -n
ro
o1!
1! 11
O -i
~<
O
* H
Q
M
O
-o b
-o
^A
-*
xO
x(j
»
'•cj
^
en
o
0
0H T m 2: <3 O W O
~s.:
X=
vj
rfi
m m
xj
0-
enO
C' O
-S~
I~~í
i*1"
<_ G
v.
ro o
ro
![ !!
en H
-*>
o -O •J"i
XJ o o
XJ ce _í> o o -í o xi
¿"1
XJ
O o
•.
-<-:
'-vi
NJ x.!
CO O
o O
? C
O x
iw
ro
-^ o
-c
o o
o o
o
C Q
C
Q -
Cro
o
f o G
íO!!
!I 11
W -i
ro -i
i-1G
0
"•O
Ni
••¿T
t ^ 1
^xí
XJ
0
00
0
X;
••«
X
J X
J X
i X
i X
J X
' X
J "y
"s
. X
.
xj
x' xj
xj
XI x
! X=
xi
xi
tí-
CN C
^CO
X' ¡>
Oi
-í» 0
-í ÍO
H*
O O
CO
xj
oo
oo
oo
oo
oo
oo
Q
<T G
-C
-1-1
- !— ;
:— l
f-í
í— i
i— ;
.M -
<;G
ro
o fo
"n
~n ~
n ~n
"H
"n ~
n r-
1! !!
!!-ÍO
HX
1K
-<
-<
-<
-<
-<
-<
Q-
o
G
ro .'O
ro
ro r
o ro
ro
-3
O
OO
OO
OO
O
o o
co x
j CN
en
c^ r
o M
o o
co o
í w
co
en
wH
H H
-i
X H
H -
Jm
ic x
m x
x o
:m
m m
z: n
m m
^
"2L ^
^¿
. "Z
. "2
--•0
<1 -O
<i
CO
--0 x
l •<
)CO
0-
1 C
O W
C
O x
j \
^ x
i en
o H
1 •<
! xj
o o
o
o o
o
XJ X
Jes
es
CN e
no o
G C
O i-1 1!
H e
no xi
l">*
CN
CO o
X! x
; *u
xi; x
CN .
C-
=> O
- C
N^-
e>:
ro í-
1
oo o
o o
o
O C
G
Í C
QO
i-^
G
i-*
G
11 U
-i
-í- -i
W -5
O
O
O
-0
<!
x3I*N
_
l~*_
fK
.
\J*>
\J^
\J^
CO
CO
COO
0
O
x;
ijen
en
-o c
oO
0
-C
Cj
M O
!i ro H o o i~
x. co o
Xj
-i,.
XJ X
; X
i X
>
•ji
L~I
en e
n w
eq
x!
CN e
n &
r..j
ro
o o
o o
o o
<I
G3
-C G
C
í-í
¡-1 O
G
¡ T
I!í
11 II
M -
1 0 -i
xi
-CO
O
^
-o
^
oCO
CC
! CO
o
o
co -1 ~r m 2t ^0 C^
XI
O
Xí
X;
Xj
X;
^U "
<J
Xi
en e
n >
jt.
¿v ^
J-* o
-o
oo
xi
CN
en
OO
OO
OO
O
M
M f-i
h-i
f-H
• 1-!
i— i
T!
Tí
TJ T!
T)
TJ —
-<-<
-<-;
-<-<
~¡
f^-
M i-4
f-
^ -1- H
' C
>í
oo
oo
oo
^-
1
xi
o-
en
c^ r
o ¡-
-i
en c
-4 OD
en
oí
xH
m
H H
X -i
H H
2C
x x
m x
xx
m r
n 2:
m m
rn 1-
=-3;
2;
2;
2T 2
C
o<!
i-1
•o o
o- o
<i -
o o
ON C
K H"
en
en e
n o
en w
o
xj
xi
en
o o
o
o o
Xí
XJ X
J X
J
4i
4^
-t*
Ji-
-fi w
ro
*-*o
o o
o
-: e
n -<
QÍO
O
«-*
O11
CO
U
COs:
c s:
cro
í3?
¡-1 o
?_L
^_
X "r-
X
M
-
Ox-X
x_J
ro
roD
>
Cr-
O
0
n 2: O m M M M TI
2> Q
APÉNDICE III PAG,118
GO TO 9980
IF Yl=Wi THEN 10000E-E+1IF Y2 = W2 THEN 10020E=E-MPRINT 'le re res producidos por el canal ¡ 'íEIF U1 = LJ1*F3 THEN 10050E1=E1+1IF U2=U2#F3 THEN 10070E1=E1+1PRINT 'lerrores de nivel en el cansí I 'í E.PRINT ' Isecuencis recibida + " í'v'l; V2GO TO 10190IF YK0.5 THEN 10130
GO TO 10140
IF Y2<0*5 THEN 10170U 2=1GO TO 10180V2=0GO TO 9900FOR I~l TO 40=ABS(ACIí1)-Y1)
9900997099SO999010000100101002010030100401005010000:i.oo70Í00301009010100.101101012010130101401015010100101701018010190102001021010220 Ü(I)=0+TII.0230 NEXT I10240 PRINT 'ESTADO DE LAS MÉTRICAS EN EL DECODIFICADOR10250 RETURN•I r\ A n n- P M * íir i* * i1 i* i' *'. L w *„ O \ ] \_ J I -T" frr 'T- -T* T^ fT~ *T" O^ *
10270 REM SUBRUTINA PARA EL CALCULO DEL RUIDO10280 C=01029010300.103101032010330105001031010520105301054010550105001.1.0001101011020 PRINT 'ILO = n ;LO ? -L8 = 'íNO11030 PRINT -IL1 = "ÍL1Í-L9 = 'ÍN111040 PRINT '1L2 = ';L2,flL10 = '?N211050 PRINT 'IL3 - 'ÍUSf-Lll = u;N311000 PRINT aIL4 - -?L4,"L12 = '?N411070 PRINT 'IL5 = 'ÍLS/'LIS ~ U ÍN5110SO PRINT 'ILÓ = 'ÍLÓj'L14 - "JNÓ
FOR J=l TOC=C+RNDC1)NEXT J
RETURNREMREMPRINTPRINTPRINTRETURNENHREMREMPRINTPRINTPRINTPRINTPRINTPRINTPRINT
###^TÍTULOS
L1ESCUELA POLITÉCNICA NACIONAL3
ISIMULACIÓN DE ENLACES DE COMUNICACIÓN1
ZCODIFICAÜOR K - 5 R = 1/2 '
SUBRUTINA PARA LA IMPRESIÓN DE LAS MÉTRICAS
APÉNDICE III PAG.119
11090 PRIHT -IL7 = "ÍL/r'LlS = "fN711100 POR 1=1 TO K11110 B O C D - X O C I )L1120 B l ( I ) - X K I )¡.1130 B 2 ( I ) = X 2 ( I )U 140 B 3 < I > = X 3 C n1.1150 B 4 < I ) = X 4 < I )L11ÓO B 5 ( I ) = X 5 ( I )U170 B Ó C D ^ X ó C I )LUSO B 7 < I ) = X 7 < I )1.1190 C O ( I ) = Z O < I )'.1200 C 1 ( I ) = Z 1 C I )1.1210 C 2 Í I ) = Z 2 ( I ).1220 C 3 ( Í ) = Z 3 ( I ).1230 C 4 < I ) = Z 4 ( I )1.1240 C 5 C I ) = Z 5 C I ).1250 C Ó < I ) = Z Ó < I ).1200 C 7 ( I ) = Z 7 ( I )L1270 NEXT IU280 RETURN
APÉNDICE III PAG,120
-L \J \J V
10101020103010401050106010701080.1090.100.1101.1201.130L1401.150.100.170USO1.1901.2001.2.1.01.220.230L240J 250.2 OJOi. 270280.290,1i..i
300310320330340350
lAtin r r\uon,Mi if-t OC.RL^UI i-t
01 = 12GO TO 800REM SIMULACIÓN DE ENLACES DEREM CÓDIGO K = 3g=10~<-(F5-HO#<LOG(2>/LQG(10) ) )/20)DELETE XOfXl/X2,X3DELETE BO,Bl7B2,B3DELETE DrMÍ rM2rAíS3
DIM XOÍJ1) ,XKJ1) ,X2< Jl) fX3CJl)DXM BOÍJ1) ,B1( Jl) íB2CJl) >B3( Jl )DIM A (8,3) -DCS) ,M1Í Jl) ,M2<J1) r S3 C 3 )BO(F4+1)=0B1CF4+1)=0B2ÍF4-f-l)=0B3<F4+1)=0M2(F4 + D=0
El = 0
L0=0Ll-0L2=0
L9=0S3<1)=033(2) 0S3C3)=0
AAAAAA
(((((c
11n
*?
23
r
y
fj,
,
231231
))))))
= 0-0= 0=0= 1#F3= 0
L3ÓO A(3í2)=l#F3.37013301
.
390400410L420.430
AAAAAAA
((((ccc
•3444555
y!
I
}
,
rj
o1*7j
3io3
)=0))))))
= 0= 1#F3= 1#F3~1#F3= 0~0
t A j\/ H \. -i \is r — 744 0 A(6íl;~l*r3.,L.
450460470400L490L
1
500510520530540
AAAAAAAAP
(((cc(((
6ó777888
j
r
r
y
í,
T
T
231231oVJ
))))))))
RINTPRINT
-0~1#F3= 1#F3= 1*F3= 0= 1#F3= 1#F3= 1*F3•LJJJJJJJ1ESCUELA POLITÉCNICA" JJJIFACULTAD DE INGENIERÍA E
COMUNICACIÓNR = 1/3
NACIONALELÉCTRICA
APÉNDICE III PAG+121
1550 PRINT 'JJJIALGORITMO DE VITERBI »1500 PRINT 'JJJISIHULACION DE ENLACES DE COMUNICACIÓN1
1570 PRINT "JJJINUMERO DE BITS A GENERARSE :GG";1580 INF'UT K2;L590 IF K2<F4 THEN 15701600 REH > PRIMER PERIODO DE TIEMPOlólO K~l1620 GOSUB 7000LÓ30 GOSUB 5000I.Ó40 LO=DC1)1650 XO(K)=0LÓÓO L2=D(4)>70 X2CK)=1
L680 MQVE 110.80.690 PRINT K.700 NOVE 20,18.710 PRINT- LO720 MQUE 80,181730 PRINT L2.740 MÜUE 10,5750 PRINT "presione RETURN FSFS continuar 'í1700 INPUT Uí>.770 REM > SEGUNDO PERIODO DE TIEMPO780 K=K+11790 GOSUB 7000.800 GOSUB 5000¡.810 A1 = LO1.820 A2-L2L830 LO~A14-D(i)1840 L.t = A2 + B(3)L850 L2
.870 XO(K)=0
.880 X.1.(K)=0I.890 X2(K)=1i 900 X3(K)=1I.910 X1(1)=X2<1)¡.920 X3C1)=X2<1)i. 930 X2Í1)=XO<1)1940 MOUE 20T181950 PRINT LO960 MOUE 50.18L970 PRINT LlL980 HO'v'E SGílS990 PRINT L2
2000 MOUE 110,1820,1.0 PRINT L32020 MOUE 110,SO2030 PRINT K2040 POR 1=1 TO K2050 BO(I)=XO<I)2000 m<I)=XlCI)2070 B2(I)=X2<I)20SO B3(I)=X3(I)2090 NEXT I
APÉNDICE III FAG.l:
210021102120213021402.15021602.1702180.2190220022102220223022402250226022702280229023002310232023302340235023002370238023902400241024202430244024502460247024802490250023102520253025402550256025702500259026002610262026302640
MQVE 10;5PRINT 'presione RETURN para continuar1?INPUT W$REM >CUALQUIER PERIODO DE TIEMPOGOSUB 7000
MOVEPRINTGOSUBREM -GOSUBIF K=MOVEPRINTINPUTGO TOREM -REMK1 = KK=F4IF LOGO TOIF LOGO TOIF LOGO TOIF LlGC TOIF LlGO TOIF L2GO TOs=xocGO TOS=X1<GO TO
110,80K5000—> CALCULO DE LOS SUPERVIVIENTES4000F4 THEN 226010,5'presione RETURN para continuar',
2130 .
ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
<L1 THEN 23202360
<L2 THEN 23402400
<L3 THEN 24202430
<L2 THEN 23802400
<L3 THEN 24402480<L3 THEN 246024801)24901)2490
GO TO 2490S = X 3 C 1 )IF S ^ M K l ) THENE2=E2+1FOR 1=1 TO KX O < I ) = B O C I + 1 )
10
X2<I>=B2<I+1>X3(I)=B3(I+1)B0( 3!)=XO(I)B 1 C D - X 1 C I )B 2 C J ) = X 2 ( I )
NEXT IMOVE 110,80PRINT Kl
APÉNDICE III PAG,123
2050206020702080269027002710272027302740275027002770278027902SOO2810282028302840285028002870283028902900293.02920293029402950296029702980299030003010302030303040305030603070308030903100311031203130314031503100317031803190
MOVE 50,30PRINT S
. 110.30PRINT E2MÜVE 10,5PRINT 'presione RETURN PBTS continuar* íINPUT W$IF K1=>K2 THEN 2780
GOSUB 7000GOSUB 5000GOSUB 4000GO TO 2300P; p* M
REML9=L9+1IF L9=K+1 THEN 2900
SALIDA
REM -GOSUBGOSUBNOVEPRINT00 TOIF FóPRINTINPUTPRINTPRINTPRINTPRINTPRINTIF F3PRINTGO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF W<4¿GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINT
> INYECCIÓN DE LA COLA DE CEROS7000518010.70"inyección cíe IB2700=32 THEN 2930'LJJJJJJJJI ALISTEU*@Fót -LJJJJJIESCUELA POLITÉCNICA NACIONAL@Fó; ' JIFACULTAD DE INGENIERÍA ELÉCTRICA1
0F6Í ' JIALGORITMO DE UITERBI'
2F6Í ' JICOBIGO K = 3 R = 1/3'=l THEN 3010
cola de ceros
IMPRESOR R £ T U R N PARA CONTINUAR1
BFÓ:3020
G?FÓ
SFÓI@FÓ:GFÓÍQFÓ:• jji
JIÜECODIFICACION SUAUE'
JIÜECODIFICACION DURA'JIRELACION SENIAL .A RUIDO = 'ÍF5ÍJINUMERO DE ERRORES EFECTIVOS BELJIERRORES DE NIVEL PRODUCIDOS PORJIHISTORIA BE LAS TRAYECTORIAS =
d&'CANAL = '?EEL CANAL- J ÍE1ÍF4
JINUMERO BEJINUMERO DEOTRA PRUEBA
120
ERRORES EN LA DECODIFICACION =BATOS GENERADOS - fl?K2(S/N)ÍGG"5
"S" THEN3250"LJJJJI ESCUELA POLITÉCNICA•JJIALGORITHO DE VITERBI'"JJISIMULACIONES A ESCOGER'•ITecls * 9 , K = 3
10 * K = 4111213 . K - 4
NACIONAL
ITeclaITeclaITeclaITecla
1/21/21/21/31/3
APÉNDICE III PAG*124
3200321032203230324032503200327032803290400040104020403040404050400040704 O SO4090410041104120413041404130416041704180419042004210422042304240425042004270428042904300431043204330.43404350430043704380439044004410442044304440
PRINTPRINTPRINTPRINTENDPRINTINPUTIF W* =PRINTENDREMREMPl=LO+nQ1=L2+DR1=LO+D
ITecla * 14 . K = 5 R = 1/3'.JITecla * 1 . MENÚ'JI estas simulaciones tienen las mismas características*lo'el proársmB ejecutado si desea variarlas regrese al ME
LJJJJJI desea regresar al MENÚ CS/N) í 1 ?V
S' OR W$='s' THEN 4JJI GRACIAS'
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES(l)<3)<4)
S1=L2+D(2)
R2 = L1-KK1)S2=L3+Ü<3)IF PK=P2 THEN 4100LO=P2FOR 1=1 TO K-lXO(I)=B1(I)NEXT IGO TO 4200LO = P1FOR 1=1 TO K-lXO<I)=BO(I)NEXT IXO<K)=0l'F QK=Q2 THEN 4270L1 = Q2FOR 1=1 TO K-lX1(I)=B3(I)NEXT IGO TO 4310L1 = Q1FOR 1=1 TO K-lX1(I)=B2(I)NEXT IX1(K)=0IF R1<=R2 THEN 4380L2=R2FOR 1=1 TO K-lX2CI)=BKI)NEXT I00 TO 4420L2=R1FOR 1=1 TO K-lX2CI)=BO(I)NEXT IX2(K)=1IF SK=S2 THEN 4490L3-S2
A P É N D I C E I I I PAG.125
445044604470448044904500451045204530454045504560457045804590460046104620463046404/>50466040704680469050005010502050305040505050605070508050905100511051205130¡5 1405150516051705180519052005210522052305240¡52505200527052805290
FOR IX3CI)NEXTGO TOL3 = S1FOR IX3CI)NEXTX3CK)FOR IBOCI)BKI)B2(I)B3CI)NEXTMOUEPRINTMOUEPRINTMOUEPRINTMQUEPRINT
= 1=B3I45
= 1= B2I= 1-1=XO= X1=X2= X3I20,LO
507Ll
807
L2110L3
TO K-l(I)
30
TO K-l(I)
TO KCI)CI)CI)(I)
1S
18
18
,18
RETURNENDR E M #**x y* )?•' /f * Jfí rT /TÍ f rf\'
REM SUBRUTINA DEREM -F=RNDIF F<F=lGO TOF=0MOUEPRINTMOUEPRINTMKK)M2ÍK)FOR IMOUEPRINTNEXTREM -Z1=S3Z2-S3S3 C 1 )83 C 2 )S3C3)MOUEPRINTMOUEPRINTU3 = S3IF W3
ÍK * y ÍTÍ Jf " ÍÍC iií *" ík" ¡fc
GENERACIÓN> GENERACIÓN
< 1 )0,5 THEN 5070
5080
35»F
110F
— C""™ f"
= M1= 110 +MII
80
700
(K)TO K3*1 7/0(I)
> CODIFICACIÓN(1)(2 )spr
= Z1=2240.2140.33
C 1 )— o
60?2255(1) ÍS3C2)+S3Í3)THEN 5310
C O D I F I C A C I Ó N - C A N A L
APÉNDICE III PAG.120
530053105320533053405350536053705380539054005410542054305440545054605470548054905500551055205530554055505560557015580559056005010562056305640565056605670SOBO5690570057105720573057405750576057705780579058005810582058305840
GO TO 5320
IF Ul = 2 THEN 5350GO TO 5360Wl = 0W2=W1HOME 110,55PRINT Wi;W2?W3MOVE 50,45PRINT U1*F3? U2*F3?W3#F3REM > CANAL Y CUANTIZADORGOSUS 6680Y1=W1+XGQSUB 6630Y2=U2+XGQSUB 6630Y3=U3+XIF F3=l THEN 6460IF YlIF YlIF YlIF YlIF YlIF YlIF YlVI =7GO TUU 1 = 0GO TOV 1 = 1GO TOU 1 ~ 2GO TOVl=3GO TOVI -4GO TOVI =5GO TOVl-6IF Y2IF Y2IF Y2IF Y2IF Y2IF Y2IF Y2'V2=7GO TOV2=0GO TOV2—1GO Tu^2=2
<0,13<0 + 25<0 ,33<0 , 5<0 , 63<0.75<0 . 83
5710
5710
5710
5710
5710
5710
5710
<0,13<0 , 25<0 , 38<0 , 5<0 , 63<0 , 75<0,83
5930
5930
5930
THENTHENTHEN
THENTHENTHENTHEN
THENTHENTHEN
THENTHENTHENTHEN
55305600562050405ÓÓO56805700
5SOO562058405860588059005920
APÉNDICE III PAG.127
58505360587058805890590059105920393059405950596059705980599060006010602060306040605060¿0607000806090ó 100óno61206X30614061506160617061806190620062.1.0622062306240625062606270623062906300631063206330634063506360637063806390
GOV2GO1 17»GOV2GOU2IFIFIFIFIFIFIFU3GOU3GOV3GOV3GOV 3GOV3GOU3GG<J3IFYlGOYlIF
TO=3TO
=4 .TO
= 5TO~6Y 3Y3Y3Y 3Y3Y3Y3
= 7TO~0TO~ ITO
= 2TO
~3TO
=4TO
=5TO
=6Yl
= 1TO
=0Y2
5930
5930
5930
5930
<0,13<0 , 25<0*33<0 , 5<0 . 03<0 * 75<0*88
6150
6150
6150
6150
6150
6150
6150
<o*s
6190
<o , s
THENTHENTHEN
002060400060
THEN 6030THENTHENTHEN
THEN 6
610061206140
130
THEN 6220Y2 = lGOY2IFY3GOY3IFE~IFE-IFE =
TO= 0Y3
= 1TO
= 0Yl
E-f-1Y 2
E-f 1V~7I
E-f-1MOVEPRIFElIFElIF
INTVI
6230
<0 , 5
6270
THEN 6260
=W1 THEN 62
=W2 THEN 63
=U3 THEN 63
110,4E
5
=Wi#F3 THEN
90
10
30
6370= E1 + 1V2=tJ2*F3 THEN
= E1U 3= W3^F3 THEN
6390
6410
APÉNDICE III PAG,128
640064106420643064406450646064706480649065006510652065306540655065606570658065906600661066206630664066506660667066806690670067106720673067406750700070107020703070407050706070707080709071007 1 1 07120713071407150716071707180
El=ElilMOVE 110,40PRINT ElMOVE .50,40PRINT V1ÍV2ÍV3GO TO 6590IF YK0.5 THEN 0490
GO TO 6500Vl-0IF Y2<0»5 THEN 6530V2=lGO TO 6540V2-0IF Y3<0*5 THEN 6570V3=lGO TO 6580V3 = 0GO TO 6150FOR 1=1 TO 8Q=ABS(A(I * 1 )-Vl )T=ABS<A(I>2)~V2>U=ABS(A(1,3)-V3)D(I)=0+T+UNEXT Iri(3>=EK7)D(4)=D(S)RETURNP E" M '{í ******* '" i* * * * * *REM SUBRUTINA PARAC=0FOR J=l TO 12C~C-f-RND( 1 )NEXT JX~V* (C~6>RETURNREM ***************REMPAGEMOVE 0,0DRAW 0,100DRAW 130? 100DRAW 130.0DRAW 0,0MOVE 5,85DRAW 125,85DRAW 125,68DRAW 5,63DRAW 5,85MOVE 5,64ÜRAW 125x64DRAW 125,54DRAW 5,54DRAW 5,64MOVE 5,48
******************#***************#*******#*######EL CALCULO DEL RUIDO
TÍTULOS
APÉNDICE III PAG,129
7190720072107220723072-10725072007270728072907300731073207330734073507300737073807390740074.1.074207430744074507400747074307490750075107520
DRAWDRAWDRAWÜRAW<MOUEDRAWDRAWLIRA UDRAWMOUE
125,48125,385,385,485,33125,33125,135,13
POLITÉCNICA NACIONAL'
DATOS SEUDO-ALEATORIO '
J 7 wó
30,95PRINT 'ESCUELAMOUE 25,90PRINT 'SIMULACIÓN DE ENLACES DE COMUNICACIÓN'MOUE 5,86PRINT "'GENERADOR DEMOUE 5?65PRINT 'CODIFICADORMOUE 5,49PRINT 'CANAL CON RUIDOMOUE 80,49PRINT 'S/N "ÍF5;1 dB'MOUE 5,34PRINT 'DECODIFICADOR'MOUE 70,34
K = R = 1/3'
BLANCO GAUSSIANO1
PRINT "LONGITUD DE LAS TRAYECTORIASMOUE 80íS6PRINT 'BITS A GENERARSE:' a;K2MOUE 10,80PRINT 'Dato ásnersdoí"MOUE 70,80PRINT 'Contador de datos: 'MOUE 10,75PRINT 'SECUENCIAS DE DATOS1MOUE 10,74
F4
7530 DRAW 7475407550756075707580759070007610762076307640765076607670768076907700771077207730
MOUE 10,60PRINT 'EstadoMOUE 10,55PRINT 'EstadoMOUE 70,60PRINT "DimitoMOUE 70,55PRINT "SecuenciaMDUE 10,45PRINT 'SecuenciaMOUE 10,40PRINT •SecuenciaMOUE 70,45PRINT "Numero deMOUE 70,40PRINT 'Errores
anterior:
actual
a codificarse t
codificada I
transmitida:
recibida
errores
deMOUE 10,30PRINT 'DatoMOUE 70,30PRINT "Numero
ni vel :
decodif icsdo :
de errores-
APÉNDICE III PAG,130
7740 MOUE 10,257750 PRINT 'ESTADO DE LAS7760 MÜVE 10,247770 DRAW 50,247780 HOYE 10? 187790 PRINT "LO = '7SOO iMQUE 40,137810 PRINT -Ll = '7820 MOVE 70,1S7830 PRIHT 'L2 = '7840 MOUE lOOílS7850 PRIHT 'L3 = '7860 RETURN7870 END
MÉTRICAS'
APÉNDICE III PAG,131
1000 REM PROGRAMA 'SENCQMS"1010 01=131020 GO TO 8001030 REM SIMULACIÓN DE ENLACES DE COMUNICACIÓN1040 REM CÓDIGO K = 4 R = 1/31050 V=10"C-CF5+10*CLOGC2)/LOGC10)))/20)1060 DELETE XO,XI,X2,X3tXA,X5TXó,X71070 DELETE BO•El,B2,B3,B4,B5,Bó,B71080 DELETE B,Hl,M2íA?S31090 Jl=F4-fl1100 DIM X O ( J l ) í X K J i ) f X 2 C J l ) , X 3 < J l ) í X 4 ( J l ) í X 5 ( J l ) , X 6 ( J 1 ) , X 7 C J 1 )1110 DIM B O ( J l ) í B I C J l ) , B 2 < J l ) , B 3 ( J l ) ? B 4 ( J l ) ? B 5 ( J 1 ) , B ó C J l ) , B 7 C J i )1120 DIM A C 8 r 3 ) J n C 8 ) í M l C J l ) i M 2 C J l ) , S 3 ( 4 )1130 B O C F 4 + 1 Í = 01140 B i C F 4 + l ) = 01150 B 2 C F 4 + 1 ) = 0l lóO B 3 C F 4 f l ) = 01170 B 4 < F 4 - H ) = 01180 B5CF4+1)=01190 BÓCF4 + D-01200 B7CF4+1)=01210 M2CF4+1)=01220 E=0 '
1240•i OS(").r. .*;. iJ \/
120012701280129013001310132013301340135013001.37013801390140014101420143014 '101450140014701480149015001510152015301540
LO=QLl = 0L2~0L3-0L4 = 0LS-'O1.0=0L7=0L9=0S3C1)=0S3-C2)=0S3(3)=0S3(4)=0AC1>1)=0AC1/2)=0A < 1 y 3)=0AC2? 1 )=0A C 2T 2)~0AC2r 3)=1*F3A C3? 1 ) =0A (3> 2)=1*F3AC3r3)=0AC4j 1)=0A ( 4, 2)=1#F3A (4 j 3>=1#F3A C 5 » 1 ) = 1*F3AC5?2)=0A C 5? 3)=0A C Ó » 1)=1*F3ACÓr2)=0
APÉNDICE III PAG,132
1550156015701530:L590:LÓOO16101020103010401050:L6óo10701080109017001710172017301.74017501700177017 SO17901Í3001 S 1 013201830184018501860187018 SO1890190019101920193019401950190019701930199020002010202020302040¿0502060207020802090
A(Ó73AÍ7/1AC7.2AC7?3ACSjlA<8,2
A(8f3PRINTPRINTPRINTPRINTPRINTINPUTIF K2REH ~K=lGOSUBGOSUBLO=D(XOCK)L4 = n(X4ÍK)MOVEPRINTMu U EPRINTHOYEPRI NTHOYEPRINTINPUTREM -K=K+1GOSUBGOSUBA1 = LOA2=L4LO = A1
)=1*F3)=1*F3)=1*F3)=0)-l*F3)=1*F3)=1#F3•LJJJ•JJJJ*JJJI1 JJJI' JJJIK2<F4 TH
700070001)= 08)-1110,80K20?18LO
20r 14
L410^5
1 p^p3
w$
90007000
-i-n(i)L2-A2-MK7)L4 = A1LÓ = A2XOCK)X2(K)X4CK)Xó<K)X2<1)X6C1)X4 < 1 )MQMEPRINTMOVEPRINTMOV EPRINTMQVE
JrD(8)+ n(2)= 0-0*— ' "1" X— j_=X4<1)=X4(1)=XO(1)20.18LO80 f 18L220, 14L4
80/14
LJJJJJJJIESCUELA POLITÉCNICA NACIONAL 'ÍULTAD DE INGENIERÍA ELÉCTRICA 'ÍORITHO DE VITERBI •1ULACION DE ENLACES DE COMUNICACIÓN'1ERO DE BITS A GENERARSE Í G G D Í
loó OPRIMER PERIODO DE TIEMPO
1 presione RETURN para continuar" ?
—> SEGUNDO PERIODO DE TIEMPO
APÉNDICE III PAG»133
210021102120213021402 1 5 0210021702180219022002210222022302240225022002270228022902300231023202330234023502360237023802390240024102420243024402450240024702480249025002510252025302540.2550256025702580259020002010202026302040
PRINT LoMUYE 110,80PRINT KFOR 1=1 TOBO(I)=XO(I)B2(I)=X2(I)B4CI)=X4(I)B 6 < I ) = X ó ( I )NEXT IHOME 10,5
o
PRINT 'presioneINPUT U$P rr Mr\. nK=3GOSUB 9000GOSUB 7000Í1DUE IlOíSOPRINT KA1 = LOA2-L2A3-L4A4 = LÓLQ-Al-f-D C 1 >Lj.~A2 + nC6)L2=A3+D<7)L3=A4+B<4)L4=A1+D(8)L5=A2JrD(3)Ló=A34-D(2)L7=A4+D<5)XO(K)=0X1(K)=0X2CK)=0X3ÍK)=0X4(K)=1X5(K)=1Xó <K)-1X7(K)=1FOR 1=1 TOXOCI)=BO(I)X1(I)=B2(I)X2(I )~B4CI )X3CI)=BÓ(I)X4CI)=BO(I)X5CI)=B2(I)XÓCI)=B4CI)X7(I)=BÓ(I)NEXT IMOUE 20 7 18PRINT LOMOUE 50,18PRINT LlHOUE 80,13PRINT L2MOVE 110, 18
TERCER
2
RETURN P3ra continuar
PERIODO HE TIEMPO
APÉNDICE III PAG.
26502060.267026SO269027002710272027302740275027002770278027902800281028202830284023502SÓO2870288028902900291029202930294029502960297029302990300030.10302030303040305030603070308030903.10031.10312031303140
PRINT L3MOVE 20rl4PRINT L4MOVE 50^14PRINT L5MOVE 80rl4PRINT L6MOVE 110*14PRINT L7FOR 1=1 TO KBOCI)=XO(I>B1ÍI)=X1(I)B2(I)=X2(I)B3<I)=X3(I)B4(I)=X4(I)B5<I)=X5(I)B6(I)=XÓ(I)B7(I)=X7(I)NEXT IMOVE 10,5PRINT 'presione RETURN par 3 continuar'/INPUT W$REM >CUALQUIER PERIODO DE TIEMPOGOSUB 9000K=K-f-lMQVE 110*80PRINT KGOSUB 7000REM > CALCULO DE LOS SUPERVIVIENTESGOSUB 5000IF K=F4 THEN 3000MOVE 10/5PRINT "presione RETURN psrs continuar'?INPUT Wt>GO TO 2370
REM
K=F4
IF M<L1 THEN 3070
IF M<L2 THEN 3090
IF M<L3 THEN 3110M-L3IF M<L4 THEN 3130
ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
IF M<L5 THEN 3150M=L5
3150 IF M<L6 THEN 31703160317031803190
IF M<L7 THEN 3190M = L7IF LO=M THEN 3400
APÉNDICE III PAG,135
320032103220323032403250,32003270328032903300331033203330334033503360337033303390340034103420:$430344034503400347034803490350035103520.3530354035503560357035803590360030103020363030403650366036703680369037003710372037303740
IF L1=M THEN 3380IF L2=M THEN 3360IF L3=M THEN 3340IF L4=M THEN 3320IF L5=M THEN 3300IF LÓ=M THEN 3280S=X7(1)GO TO 3410S=X6<1)GQ TO 3410fí=X5(l)GO TO 3410S=X4(1)GO TO 3410S=X3C1)(30 TO 3410S=X2U)GO TO 3410S=X1(1)GO TO 3410S=XO(1)IF S=M1<1) THEN 3430E2=E2+1FOR 1=1 TO KXO<I)=BO(I+1)X1(I)=B1(I+1)X2(I)=B2(I+1)X3CI)=B3CI-fl)X4CI) = B4(I-fl)X5(I)=B5CI+1)XÓ(I)=B6a + l)X7<I)=B7<I+1)BO<I)=XO(I)B1(I)=X1(I)B2(I)=X2CI)B3(I)=X3(I)B4CI)=X4(I)B5(I)=X5(I)B6CI)=X6C1")B7CI)=X7(I)Ml(I)=M2a + l)M2(I)-M1C1")NEXT IHOME 110/80l--TaNT KlHOUE 50:30PR1NT SMOUE 110,30PRINT E2HOUE 10; 5PRINT "presione RETURNINPUT U*IF K1=>K2 THEN 3780K1=K1+1GOSUB 9000
continuar" j
APÉNDICE III PAG,130
37503700377037903790380038103820383038403850380038703880389039003910392039303940395039003970398039904000-40:1.0402040304040405040.60407040804090410041104120•41304140415041(60417041804190420042104220423042404250426042704280
GOSUB 7000GOSUB 5000GO TO 3040REMREML9-L9+1IF L9=K+1 THEN 3900
SALIDA
F=0REM —GOSUBGOSUBMOVE 1PRINTGO TOIF Fó =PRINTINPUTPRINTPRINTPRINTPRINTPRINTIF F3 =PRINTGO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTINPUTIF W$ =GO TOPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTPRINTENDPRINTINPUTIF W$s=PRINTENÜ
-> INYECCIÓN DE LA COLA DE CEROS900071800?70'inyección de la cola de ceros'376032 THEN 3930•LJJJJJJJJI ALISTE IMPRESOR R E T U R N PARA CONTINUAR'í
1LJJJJJIESCUELA POLITÉCNICA NACIONAL"GFÓt'JIFACULTAD DE INGENIERÍA ELÉCTRICA"
•JIALGORITMO DE VITERBI"'JICODIGO K = 4 R = 1/3"
GFó:'J1RELACION SENIAL A RUIDO = "?F5;' dB•1 THEN 4010
3JIDECODIFICACION SUAVE <8 niveles)3
'JIDECOÜIFICACION DURA (2 niveles)1
'JINUMERO DE ERRORES EFECTIVOS DEL CANAL = n
'JIERRORES DE NIVEL PRODUCIDOS POR EL CANAL-"JIHISTORIA HE LAS TRAYECTORIAS = 'íF4•JINUMERO DE ERRORES EN LA DECODIFICACION = ";E2•JINUMERO DE DATOS GENERADOS = aíK2OTRA PRUEBA (S/N)ÍGGqí
4020@FÓÍ
GFÓÍE1
0FÓ11 JI
4110•3a THEN4240"LJJJJI ESCUELA POLITÉCNICA"JJIALGORITMO DE VITERBI''JJISIMULACIONES
NACIONAL'
'ITecla•ITecls'ITecls"ITecla'ITecla"ITecla'JITecls" J estas
910111213141
A ESCOGER
K = 4K = 5K = 3K - 4K - 5MENÚ3
1/2"1/2'i/2-1/3'1/3'1/3'
simulsciones tienen las mismas cérsc'teristicss" del programa ejecutado si deses variarlas reárese si ME
"LJJJJJI desea reSressr al MENÚ (S/N) í ' í "U$"S" OR W$-'sn THEN 4°JJX GRACIAS'
APÉNDICE III PAG,137
50005010502050305040505050005070508050905100511051205130
51505.10051705180519052005210522052305240525052005270528052905300531053205330534053505360537053805390540054105420543054405450540054705*480549055005510552055305540
REM **********REM SUBPl=LO-fD(l>Rl = Ll+ri(8)P2=L2+D(Ó)R2=L3+DÍ3>P3=L4+B(7)R3=L5+D<2)F"4 = Ló+B(4>R4=L7+DC5>P5=LO+H C8)R5=LH-D(1)Pó=L2+D(3)RÓ = L3-KK6)
R7=L5+D(7)P8 = L6-}T.!(5)RS = L7-f-tK4)IF PK=R1 THENLO = R1FOR 1=1 TO K-lXO(I)=B1(I)NEXT I00 TO 5280LO=P1FOR 1=1 TO K-lXO<I)=BO(I)NEXT IXO(K)=0IF P2<=R2 THENL1 = R2FOR .1 = 1 TO K-lX1(I)=B3(I)NEXT IGO TO 5390L1 = P2FOR 1=1 TO K-lX1(I)=B2(I)NEXT 1X1CK)=0IF P3<=R3 THENL2 = R3FOR 1=1 TO K-lX2C1)=B5(I)NEXT 1GO TO 5500L2=P3FOR 1=1 TO K-lX2( I )-B4< I )NEXT IX2(K)=0IF P4<=R4 THENL3 = R4FOR 1=1 TO K-lX3(I)=B7(I)
DEL CALCULO DE SUPERVIVIENTES
240
400
APÉNDICE III PAG,138
ircrc-Q
556055705580559050005010502056305640505056605070508056905700571057205730574057505700577057305790580053 1050205830584058505860587058SO58905900591059205930594059505960597059805990600060106020603000406050ÓOÓO607060806090
NEXT IGO TO 5610L3 = P4FOR 1=1 TO K-lX3(I)=BÓ<I)NEXT IX3(K)=0IF P5<=R5 THENL4=R5FOR 1=1 TO K-lX4(I)=B1(I)NEXT IGO TO 5720L4=P5FOR 1=1 TO K-lX4(I>=&0(I)NEXT IX4(K)=1IF P6<=R6 THENL5-RÓFOR 1=1 TO K-lX5(I)=B3(I)NEXT IGO TO 5830L5-PÓFOR 1=1 TO K-lX5(I)=B2(I)NEXT IX5ÍK)=1.IF P7<=R7 THENLó=R7FOR 1=1 TO K-lX6'CI)=B5(I)NEXT IGO TO 5940LÓ=P7FOR 1=1 TO K-lX6(I)=B4<I)NEXT IX6(K)=1IF P8<=R8 THENL7=ÍR8FOR 1 = 1 TO. K-lX7(I)=B7CI)NEXT IGO TO 6050L7 = P8FOR 1=1 TO K-lX7CI)=B6(I)NEXT IX7(K)=1FOR J=l TO KBOCJ)=XOCJ)B1(J)=X1(J)B2(J)=X2CJ)
5680
5790
5900
6010
APÉNDICE III PAG,139
010001100120013001400150Ó1ÓO0170al 800190¿200021062200230024002500260¿270-.62800290.63000310
B3(J)=X3(J>B4(J>=X4(J>E<5< J)=X5( J)E»ÓCJ)=XÓ(J)B7(J)=X7<J)NEXT JMOUE 20,18PRINT LOMOUE 50,13PRINT LlMOUE 80,18PRINT L2MQUE 110,18PRINT L3MOUE 20,14PRINT L4MOUE 50,14PRINT L5MOUE 80,14PRINT LoMCUE 110,14PRINT L7RF.TURN
7000701070207030704070507060707070807090710071107120713071407150710071707180719072007210722072307240725072607270728072907300
REM *******************REM SUDRUTINA DE GENERAREM > GENERACIÓNF=RNfl(l)IF F<0,5 THEN 7070F=lGO TO 7080F = 0MOUE 35, SOPRINT FMOUE 110; 60 'PRINT FMKK)=FM2(K)=M1(K)POR 1=1 TO KMOUE 10+3*1,70PRINT MI (I)NEXT IREM > CODIFICACIÓN21=83(1)22=53(2)Z3=S3(3>S3<1)=FS3<2)=Z1S3(3)=Z2S3(4)=23MÜUE 40,60PRINT Z1?Z2?23-MOUE 40,55PRINT S3(l) ÍS3(2) ÍS3C3)W2-S3(1)+S3(2)+S3(4)
###**^^-- CODIFICACIÓN - CANAL
APÉNDICE III PAG*139
610061106120613061406150610061706.18061906200621062206230624062506260627062Í3G629063006310632070007010702070307040705070007070708070907100711071207130714071507100717071807190720072107220723072 40725072607270728072907300
B3(J)=X3(J>B4(J)=X4(J>B5("J)=X5(J)BÓ(J)=XÓ(J)B7(J)=X7(J)NEXT JMGVE 20,18PRINT LO.MOVE 50.18PRINT LlMOUE 30.18PRINT L2HOUE 110,18PRINT L3HOYE 20.14PRINT L4MOVE 50? 14PRINT L5MOUE 80.14PRINT LoMOUE 110.14PRINT L7RETURNREMREM SUBRUTINA DE GENERACIÓNREM ------ > GENERACIÓNF-RND(l)IF F<0,5 THEN 7070F=lGO TO 70SOF~0MOUE 35; 80PRINT FMQYE 110.00PRINT Fñl<K)=FM 2 C K ) = M K K )FOR 1=1 TO KMOUE 10-f3*1.70PRINT HKI)NEXT IREH ------ > CODIFICACIÓNZ 1=33(1)Z2^S3<2)23=33(3)33 C 1 ) -FS3(2)=Z1S3(3)=Z2S3(4)=Z3MOUE 40.60PRINT Z1ÍZ2ÍZ3MÜUE 40.55PRINT S3(l) ÍS3C2) í 53 ( 3 )W2=S3(l)-fS3C2)+S3(4)
***CODIFICACIÓN - CANAL
APÉNDICE III PAG*140
731073207330734073507360737073807390740074107420743074407450746074707480749075007510- ; cr <-, s\ O l'J
753075407550756075707580759076007610762076307640765076607670763076907700771077207730774077507760777077807790780078107820733078407350
IF W2=2 THEN 7340IF W2=3 THEN 7360GO TO 7370W2-0 •GO TO 7370U2 = lU1=S3(3)+U2IF Ul=2 THEN 7400GO TO 7410W 1 = 0U3=S3(l)+S3<3>+33(4)IF U3-2 THEN 7450IF W3=3 THEN 7470GO TO 7480W3 = 0GO TO 74SOW3 = lMO'JE 110,55PRINT W1ÍW2ÍW3MQ'v'E 50,45F'RINT W1#F3;U2#F3;U3#F3C1 FT M "'-. P ii f\ A ) Y P 1 1 íi M T T 7 A Ti D C1Ktin .-• UHrtr-tL T L-UMP-t 1 1 Z.HI'UK
GOSUB 8770Y1=W1+XGOSUB 8770Y2-W2+XGOSUB 8770Y3=W3+XIF F3=l THEN 8570IF Yl<0*13 THEN 7690IF YK0.25 THEN 7710IF YK0.38 THEN 7730IF Yl<0*5 THEN 7750IF YKO.Ó3 THEN 7770IF YK0.75 THEN 7790IF YK0.8S THEN 7810l I H —"7
GO TO 7320Vl = 0GO TO 7820V 1 = 1GO TO 7820U 1=2GO TO 7820Ml~3GO TO 7820Ul~430 TO 7820Ul = 5GO TO 7820Ul-6IF Y2<0,13 THEN 7910IF Y2<0,25 THEN 7930IF Y2<0,38 THEN 7950IF Y2<0,5 THEN 7970
APÉNDICE III PAG.141
78607870788078907900791079207930794079507960797079807990SOOÜ8010R0208030804080503060807080808090810081108120Í3.13081408150810081 708180SI 9082008210Í32208230824082508260827082808290830083108320Í33308340835083603370838083908400
IFIFIFU2GOV2GOV2GOY2GOU2GOU2GOU2GOU2IFIFIFIFIFIFIFV 3GOy 3GOV3GOy 3GOU 3GOU3GOU3GOY3IFYlGO
Y2<Y2<Y2<
=7 -TO
= 0TO
= 1TO
= 2TO
=3TO
3 4
TO— 5TO
=6Y "• •:''
Y3<Y3<Y3<Y3<Y3<Y3<=7TO
—-1^1
TO= 1TO~2TO
=3TO=4
TO= 5TO-óY 1 <
-1TO
0.630.75:o,ss
8040
8040
8040
8040
8040
8040
8040
:o,i3;o ,25:o,38:o ,5!0,63;o + 75;o.ss
8260
8200
8260
8260
8200
8200
8260
:o,5
8300
THENTHENTHEN
THENTHENTHEN
THENTHENTHENTHEN
THEN
799080108030
313081508170
8190821082308250
8290
Yl=0IFY2GOY2IFY3GOY3IFE=IF
Y2<,.,,, -i
TO= 0Y3<
= 1TO
= 0
0,5
8340
0,5
8380
THEN
THEN
8330
8370
Y1=W1 THEN 8400E-í-1V *~J — •W2 THEN 8420
APÉNDICE III PAG+142
84108420S430844084508460847084808490850085108520853085408550356085708580859086008610862036308640865086608670868086900700871087208730874087508760877087308790880088108820883088409000901090209030904090509060907090809090
E=E+1IF Y3=W3 THEN 8440E=E+1MOVE-110,45PRINT EIF V1=W1#F3 THEN 8480E1=E1+1IF V2=W2#F3 THEN 8500E1=E1+1IF V3=U3*F3 THEN 8520E1=E1+1MOUE 110,40PRINT ElMOVE 50,40PRINT Vl?V2íV3GO TO S700IF YK0.5 THEN 8600Vl = lGO TO SÓ10V 1=0IF Y2<0.5 THEN 8640V2 = l-GO TO 8650U 2=OIF Y3<0.5 THEN 8680V3=lGO TO 8690V3 = 0GO TO 8260FOR 1=1 TO 8
T=ABS<A(Ií2)-V2)
í*****:dPARA EL CALCULO DEL RUIDO
D(I)=0+T+UNEXT IRETURNREM ###*REM SUBRUTINAC=0FOR J=l TO 12C=C+RND(1)NEXT JX=V*CC-Ó)RETURNREM ****************#****#******#******#*************#***#*#***:REMPAGEMOUEDRAUDRAWDRAWDRAWhOVEDRAW
TÍTULOS
OrO
0,100130,100130,00,05,85125,85
APÉNDICE III PAG.143
91009110912091307.1-409 ISO910091709.180919092009210922092309240925092609270923092909300931093209330934093509300937093SO93909400941094209430944094509460947094809490750095109520953093409550956095709580959096009610962096309640
DRAWDRAWDRAWMOVECiRAWÜRAWDRAWÜRAWMOVEIIRAWIiRAWIiRAWDRAWMGVEDRAWDRAWDRAWDRAWMOVE
125,685,685,855,64125,64125,545,545,645,48125,48125,335, 385,485,33125,33125,13
13'.~t.
,
POLITÉCNICA NACIONAL
DE ENLACES DE COMUNICACIÓN
DATOS SEUDO-ALEATORIÜ'
K = 4 R = 1/3
BLANCO GAUSSIANO
%j,30,95
PRINT 'ESCUELAMOVE 25,90PRINT 'SIMULACIÓNMOVE 5*80PRINT "GENERADOR DEMOVE 5,65PRINT 'CODIFICADORMOVE 5,49PRINT "CANAL CON RUIDOMOVE 80r49PRINT 'S/N '? F5 í' dB"MOVE 5,34PRI.MT "DECODIFICADQK"MOVE 70,34PRINT 'LONGITUD DE LAS TRAYECTORIASMOVE 80,86PRINT -BITS A GENERARSE: -?K2MOVE 10,80PRINT 'Dato Generado!"MOVE 70,80PRINT 'Contador de datos; a
MOVE 10,75PRINT 'SECUENCIAS DE DATOS"MOVE 10,74DRAW 45,74MOVE 10,60PRINT "Estado anterior: "
F4
PRINT 'EstadoMOVE 70,60PRINT
actual
3 codificarse
PRINT "SecuenciaMOVE 10,45PRINT 'SecuenciaMOVE 10,40
codificada
transmitida
APÉNDICE III PAG.144
9¿50 PRINT 'Secuencia recibida :9060 MOUE 70,459070 PRINT 'Numero de errores I '9ÓSO MGVE-70,409690 PRINT 'Errores de nivel: '9700 MOVE 10,309710 PRINT 'Hato decodifÍC3QO t '9720 MOUE 70,309730 PRIMT 'Numero de errores t •9740 HOME 10,259750 PRINT 'ESTADO DE LAS MÉTRICAS9700 MOVE .10:249770 DRAW 50,249780 MOUE 10,189790 PRINT 'LO = '9SOO HOUE 10,149810 PRINT 'L4 = '9820 MOVE 40,169830 PRINT "Ll = "9840 MOUE 40,149850 PRINT 'L5 = '78¿>0 HOVE 70,139870 PRINT 'L2 = '9080 MOVE 70,149890 PRINT 'Lo = '9900 MOVE 100,139910 PRINT 'L3 - J
9920 MÜVE 100,149930 PRINT BL7 = '9940 RETURN9950 END
APÉNDICE III PAG,145
J. vuv
1010102010301040105010001070108010901100U. 1 01.12011301140115011601170118011901200-1.2101.220i. 2 3012401.2501.2601.2701.280L2901.300i. 3 1 0L3201.330.3401.350.360.370.380.3901.400.410.4201.4301.440
.400
.470
.480
.490
.500
.510.
.5201.5301540
lAtin r r\uur\HnH ot-píuunt» — —01 = 14GO TO 800REM - SIMULACIÓN DE ENLACES DE COMUNICACIÓNREM CÓDIGO K = 5 R = 1/3V=10"(-<F5+10#(LOG(2)/LQG<10) ) )/20)DELETE XO 7 XI >X2 7X3 7X4 ?X5 7X6 ,X7DELETE BOiBlfB2?B3í B4 ? B5 ; B6 j B7DELETE ZO T Zl f 22 f Z3fZ4jZ5fZójZ7ÜELETE CO 7 Cl 7 C2 7 C3 7 C4 7 C5 7 C6 T C7DELETE 07M17M27A7G7S3J1=F4+1'DELETE 8 7 100DIM XOCJ1) 7XÍÍ Jl) ?X2<J1) 7X3Í Jl) fX4<Jl) * X5( Jl ) ,XÓ < Jl )DIM BO(J1)7B1(J1) 7B2<J1) 7B3(J1) 7B4C Jl) 7B5CJ1) 7BÓ(J1)DIM ZO(J1) 7Z1CJ1) 7Z2CJ1) 7 Z3ÍJ1) j Z4 C Jl )" 7 Z5 ( Jl ) jZÓCJl)DIM CO(Jl) 7Ü1CJ1) 7C2CJ1) ? C3ÍJ1) 7Ü4Í Jl) ?C5(J1) 7C6CJ1)DIM D(S)?MKJl)fM2(Jl)fG(5)íA(Sí3)BO<F4+1 )=0BKF4+1)=0B2CF4+1)=0B3(F4+1)=0£i4CF4 + l )=0B5CF4+1)=0Bó<F4+l)=0B7CF4+1)=0CO(F4+1)=0Cl (F4+1 )=0C2(F4+1)=0C3<F4+1)=0C4(F4+1)=0C5(F4+1 ) ~0Có(F4+l)=0C7CF44-D-0M2(F4-M)=0E~0El = 0E2=~0L0=0í ->«./%U. J_ •** \s
L2=0L3=0L4™0L5-0Ló=0
L9 = 0NO-0Nl=0N2 = 0N3=0N4 = 0N5~0Nó-0N7 = 0
rX7CJl)•B7CJ1)7Z7CJ1)?C7CJ1)
APÉNDICE III PAG
156015701580159016001610162016301640165016601670168016901700171017201730174017501760.17701780179018001810.1820183018401850186018701880IB 9019001910192019301940195019601970198019902000201020202030204020502060207020802090
G(l)=0Gt2>=0GC3)=0G(4)=0G(5)=0A(l,1)=0A(l72>=0AC1,3)=0A(2r1)=0
A(3il)=0A<3j2)=l#F3A( )=0A<4íl)=0
A(4,3)=1#F3A(5»1)=1#F3
A(Ó,1)=1#F3A(6?2)=0
AC7
GOSUBPRINTINPUTIF K2K=lGOSUBPRINTGOSUBLO=D(XOCK)NO = D(20 (K)PRINTPRINTPRINTINPUTK=K+1GOSUBPRINTGOSUB
11000•JJJINUMERO DE BITS A GENERARSE ;GG'?K2<F4 THEN 1850
11000"JINUMERO DE BITS GENERADOS:90001)= 08)~1"JJILO = flíLO•iL8 - U;NO"Jlpresione RETURNWí
ÍK
c o n t i n u s r ' í
11000"JINUMERO HE BITS GENERADOS:9000
í K
A 2=NOLO = A1-KK1)L4=A2+n(7)
APÉNDICE III PAG,147
210021102120213021402.1502160217021802190220022102^20253022402250226022702280229023002310232023302340235023602370238023902-400241024202430244024502460247024802490250025.1.025202530'•)i=- 4 fj«.;. \J~t\J
2S50256025702580259026002610262026302640
XO(K)=0X4(K)=0ZO(K)=1Z4<K)=aX4CL)=ZO<1)Z4<1)=ZO(1)ZO<1)=XO(1)PRINT "JJILO = "?LOPRINT 'IL4 - -i LAPRINT 'IL8 - "ÍNOPRINT 'IL12 = ' ?N4FOR 1=1 TO KBO(I)=XO(I>B4(I)=X4(I)COCI)=ZOCI)C4(I)=Z4(I)NEXT IPRINT "Jlpresione RETURN R3ra continuarINPUT W$K=K + 1GOSUB 11000PRINT "JINUMERO DE BITS GENERADOS! - J KGOSUB 9000A1=LOA2 = l_4A3==NOA4=N4LO=A1+D(1)L2=A2+D(Ó)L4=A3+DC7)L6-A44-DC4)NO=A1+D(B)N2-A2-fD<3)N4«A3+D(2)MÓ-A4+DC5)XO(K)=0X2(K)=0X4CK)=0X6(K)=0ZO(K)=17,2 (Kp)=iZ4(K)=1Z6 (K)-lFOR 1=1 TO 2XO(I)=BO(I)X2<I)=B4(I)X4<I)=CO(I)Xó(I)=C4(I)ZO(I)=BO(I)Z2(I)=B4CI)Z4(I)=CO(I)ZÓ(I)=C4(I)NEXT IPRINT -JILO = a;LOPRINT "IL2 = "ÍL2
APÉNDICE III PAG.148
2050 PRINT "IL4 = "2660 PRINT -IL6 = '2070 PRINT '1LS = '2080 PRINT 'ILIO = '2690 PRINT 'IL12 = '2700 PRINT "IL14 = '2710 FOR 1=1 TO K2720 BO(I)=XO<I)2730 B2(I)=X2U)2740 B4<I)=X4(I)2750 BÓ(I)=X6CI)2700 CO(I)=20<I)2770 C2(I)=22(I)2780 C4(I)=Z4(I)2790 CÓÍI)=Z-ÓCI)2800 NEXT I
ÍL45L6ÍNOÍN2ÍN4;NÓ
2810 PRINT 'JIpresicne2820 INPUT W$2S30 K=K+12840 A1=LO2850 A2=L22800 A3=L42870 A4-L62880 A5=NO2890 A6=N22900 A7=N42910 A8=N62920 GOSUB 110002930 PRINT "JINUh'ERO2940 GOSUB 90002950 LO=Al+n(l) .2900 L1=A2+D(7)2970 L2=A3+D<6)2980 L3=A4+D(4)2990 L4 = A5-K!<7)3000 L5=Aó+n(l)3G10 L6=A7+Ü(4)3020 L7-A8-KKÓ)3030 NO=A1+D<8)3040 N1=A2-Í-D(2)3050 N2=A3iü(3)3000 N3 = A44-B(5)3070 N4 = A5-KK2>3080 N5=AÓ"f-IK8)3090 N6-A7-KK5)3100 N7=A8+n<3)3110 XO(K)=03120 X1CK)=03130 X2CK)=03140 X3(K)=03150 X4(K)=03160 X5CK)=-03170 XÓ(K)=031.80 X7(K)=03:1.90 20<K)-i
DE
RETURN para continuar
BITS GENERADOS:
APÉNDICE III PAG,149
32.003210322032303240325032003270328032903300331033203330334033503300337033303390340034103420343034403450340034703480349035003510352035303540-35503500357035SO359030003610362036303640305030 ó O3070308036903700371037 SO37303740
Z1CK)Z2CK)23 <K)Z4<K)Z5CK)ZÓ(K)Z7CK)POR IXO C I )X1CI)X2CI)X3CI)X4(I)X5CI)Xó<I)X7(I)ZO(I)ZKI)Z2CI)23(1)Z4CI)Z5<I)Z6(I>27(1)NEXTGOSUBPRINTINPUTREH -GOSUBK=K+1PRINTGOSUB
"— "t
„„ *j
_ -*
r-,m -4
— 1
= 1 TO 3=BO(I)=B2(I)=B4(I)=BÓ(I)=CO(I)=C2(I)=C4(I)
=B2(I)=B4(I)
=C2(I)=C4<I)
I11500' Jlpresione RETURN para coptinusr ' ?W*
>CUALQUIER PERIODO DE TIEMPO11000
"J1NUMERO DE BITS GENERADOS: "?K9000
GOSUB 6000F4 THEN 3580
* Jlpresione RETURN psrs continuar " »IF K-PRINTINPUTGO TOREH -K1=KK=F4
3480- ESCOGIMIENTO DEL MENOR SUPERVIVIENTE
IF H<L1 THEN 3640M-L1IF M<L2 THEN 3660M-L2IF hXL3 THEN 3680
IF M<L4 THEN 3700
IF M<L5 THEN 3720
IF h<LÓ THEN 3740
IF M<L7 THEN 3760
A P É N D I C E I I I PAG»150
375037603770378037903800381038203830384038503860387038803890390039103920393039403950396039703980399040004010-10204030404040504000407040804090410041104120413041404.1.5041004170413041904200421042204230424042504260427042804290
M=L7IF M<NQ THENM^MOIF M<Ní THENM=N1IF M<N2 THENM=N2IF M<N3 THENM=N3IF M<N4 THENM = N4IF M<N5 THENM=N5IF M<NÓ THENM=NÓIF M<N7 THENM = N7IF LO^H THENIF L1=M THENIF L2=M THENIF L3=H THENIF L4=M THENIF L5=M THENIF LÓ=M THENIF L7^=H THENIF NO=M THENIF N1 = M THENIF N2 = H THENIF N3=M THENIF N4=M THENIF N5=M THENIF N6=M THENS=Z7(1)GO TD 4380S-ZÓ(l)GO TO 4380S=Z5(1)GO TO 4380S=Z4 C 1 >GO TO 43SOS=Z3U)GO TO 4380S=Z2(1)GO TO 4380S==Zi(l)GO TO 4380S=ZO(1)GO TO 4380S=X7(1)GO TO 4380S=XÓ(1)GO TO 4380S=X5(1)GO TO 4380S=X4(1)
3780
3800
3820
3S40
3860
3SSO
3900
3920
437043504330431042904270425042304210419041704150413041104090
APÉNDICE III PAG,151
430043104320433043404350430043704380439044004410442044304440445044004470443044904500451043204530454045504500457045304590400046.1.0462046304640465046604670468046904700471047204730474047504760477047804790480048104820A £3 304S40
GO TO 4380S=X3(1)GO TO 4380S=X2C1)GO TO 4380S=X1U>GO TO 4380S=XO(1)IF S=M1(1) THEN 4400E2=E2+1FOR 1=1 TO KXO(I)=BOCI+1)XKI)=B1(I + 1)X2(I)=B2CI+1)X3(I)=B3<I+1)X4a>=B4<l + l)X5<I)=B5CI+1)XÓ(I)=BÓ(I+1)X7(I)=B7(I+1)ZO(J)-COa-H)Zl(I)=Cl(I-fl)Z2CD-C2CI-M)Z3(I)=C3(I+1)Z4<I)=C4<I+1)Z5(I)=C5CI+1)ZÓ(I)=CÓ(I+1)Z7(I)=C7(I+1)M1(I)=H2(I+1)r-íO(i)=xo(i>BKI)=X1(I)B2(I)=X2CI)B3CD-X3ÍI)B4(I)=X4CI)B5<I)=X5CI)BÓ(.i:)-X6<I)B7CI)=X7(I)CO(I)=ZO(I)C.KÍ )=Z1(I)C2(I)=Z2<I)C3(I)=Z3(I)C4(I)=Z4(I)C5(]:)=Z5(I)có(r)=z6(i)C7<1)-Z7(I)M2(I)=M1(I)NEXT IPR1NT 'JIbit decodificsdo I 'iSPRINT ' Inumero de errores en laPRINT "JlpresioneINPUT W$IF K1OK2 THEN 4870K1=K1+1GOSUB 11000PRINT "JINUMERO BEGOSUB 9000
RETURN psrs
BITS GENERABO
decooificacioncontinuar"í
E2
APÉNDICE III PAG.152
4S50480048704S80489049004910492049304940495049004970498049905000501050205030504050505000507050SO509051005110512051305140
GOSUB 000GO TC 361p C Mi\t.nL9-L9+1IF 1,9= K+lK1=K1+1F=0GOSUB 110PRINT 'JIPRINT 'JIGOSUB 910GO TO 485IF Fó=32PRINT -LJINPUT U$PRINT @FÓPRINT 0FÓPRINT @FÓPRINT @FÓPRINT @FÓPRINT @FÓPRINT 5FÓPRINT QF6PRINT GFóPRINT @FÓPRINT "JIINPUT U*T P1 1 1 ff" — " Q "
PRINT "JJEND
A L I D A-
THEN 4970
OUMERO DE BITS
JIINYECCIQN DE LA
THEN 5000LJJJJJJJJI ALISTE
COLA DE CEROS L9
IMPRESOR R E T U R N PARA CONTINUAR
"LJJJJJIESCUELA POLITÉCNICA NACIONAL'"JIFACULTAD DE INGENIERÍA ELÉCTRICA1
'JIALGORITMO DE VITERBI''JICOOIGO K = 5 R - 1/3'•JIRELACION SENIAL A RUIDO - a;F5;' dB'"JINUMERO DE ERRORES EFECTIVOS DEL CANAL = 'ÍE"JIERRORES DE NIVEL PRODUCIDOS POR EL CANAL= '•JIHISTORIA DE LAS TRAYECTORIAS = '?F43JINUMERO DE ERRORES EN LA DECODIFICACION = a í iflJINUMERO DE DATOS GENERADOS = '?K2OTRA PRUEBA (S/N):GS'Í
THEN 4: GRACIAS'
El
APÉNDICE III PAG* 15:
U) V W V
¿01060206030604060506060007060SO60906100611061206130614061 5061606170618061906200621062206230
r\ u
P1=LO+D<1)R1-L1 + IK8)Q1=LO+DCS)S1=L1+D(1)P2=L2+BC7>Q2=L2+D(2)R2=L3+B<2)S2=L3+DC7)P3=L4+n(ó>Q3=L4+D<3)R3=L5+D(3)S3=L5+DC6)P4=Ló+D(4)Q-4 = L6+D(5)R4=L7+D(5)S4=L7+D(4)P5=NO+D(7)Q5=NO+D(2)R5==Ni + D(2)S5=N1+D<7)Pó=N2+D(l)QÓ=N2+D(8>Ró=N3+D(8)
SUBRUTINA DEL CALCULO DE SUPERVIVIENTES
APENBICE III PAG*154
624002506260.6270628062906300631063206330634063506360637063806390640064.106420643064406450646064706480649065006510652065306540655065006570658065906600661066206630604066506660667066806690670067106720673067406750676067706780
P7=N4+D<4)G7=N4-KK5>R7 = N5+r¡<5)S7=N5+B(4)P8=NÓ+0(Ó>
R8=N7+Ü<3)S8 = N7-KKÓ>IF RK=P1 TREN 6390LO = P1FOR 1=1 TO K~lXO(I)=BO(I)NEXT IGO TO 0430LO=R1FOR 1=1 TO K-lXO(I)=B1(I)NEXT IIF R2<=P2 THEN 0490L1 = P2FOR 1=1 TO K-lXKI)=B2<I)NEXT IGO TO 6530L1 = R2FOR 1=1 TO K-lXlCr)=B3(I)NEXT IIF R3<=P3 THEN 0590L2=P3FOR 1=1 TO K-lX2CI)=B4(I)NEXT IGO TO 6030L2=R3FOR 1=1 TO K-lX2<I)=B5(I)NEXT IIF R4<=P4 THEN 6690L3 = P4FOR 1=1 TO K-lX3<I)=Efó(I)NEXT IGO TO 6730L3=R4FOR 1=1 TO K-lX3(I>-E<7(I)NEXT IIF R5<=P5 THEN 6790L4 = P5FOR 1=1 TO K-lX4CI)=COCI)NEXT IGO TO 6830
APÉNDICE III
67906800ÓS106820683068406850
687068806890690069106920693069406950696069706980699070007010702070307040705070607070708070907100711071207130714071507.1.6071707180719072007210722072307240725072607270728072907300731073207330
L4=R5FOR 1=1 TO K-lX4(I)=C1(I)NEXT- IIF Ró<=PÓ THEN 6890L5 = F'6FOR 1=1 TO K-lX5CI)=C2(I)NEXT IGO TO 6930L5=R6FOR 1=1 TO K-lX5<I)=C3CI)NEXT IIF R7<=P7 THEN 6990LÓ = P7FOR 1=1 TO K-lX Ó C I ) ^ C 4 C I >NEXT IGO TO 7030
FOR 1=1 TO K-lX Ó ( I ) = C 5 ( I )N E X T IIF R8<=P8 THENL7 = P8FOR 1=1 TO K-lX 7 C I ) = : : C ó ( I )NEXT IGO TO 7130L7=R8FOR 1=1 TO K-lX 7 C I ) = C 7 ( I )N E X T IIF SK=Q1 THENNO=Q1FOR 1=1 TO K-lZ O C I ) = B O ( I )NEXT IGO TO 7230NO = S1FOR 1=1 TO K-lZ O C I ) = B 1 C I >N E X T IIF S2<=Q2 THENN1 = Q2FOR 1 = 1 TO. K-lZ 1 ( I ) = B 2 ( I )NEXT I
7090
7290
NI = 32FOR 1=1 TO K-lZ 1 ( I ) = B 3 ( I )NEXT IIF S3OQ3 THEN 7390
APÉNDICE III PAG.150
73407350736073707390739074007410742074307440745074607470748074907500751075207530
FOR 1=1 TO K-lZ2(I)=B4(I)NEXT -IGO TO 7430
FOR 1=1 TO K-l22(I)=B5(I)NEXT IIF S4OQ4 THEN 7490N3 = Q4FDR 1=1 TO K-l23(I)=BÓ(I)NEXT IGO TO 7530N3=S4FOR 1=1 TO K-lZ3(I)=B7(I)NEXT IIF S5<=Q5 THEN 7590
756075707580759076007610762076307640765076607670768076907700771077207730774077507760777077807790780078107820783078407850786078707880
FOR 1=1 TO K-l24(I)=CO<I>NEXT IC-JO TO 7630N4=S5FOR 1=1 TO K-lZ4(I)=C1(I)NEXT IIF SÓ<=Q6 THEN 7690
FOR 1=1 TO K-l25(I)=C2(I)NEXT IGO TO 7730N5=SÓFOR 1=1 TO K-lZ5(I)=C3(I)NEXT IIF S7<=Q7 THEN 7790
FOR 1=1 TO K-lZó(I)=C4(I>NEXT IGO TO 7830No=3 7FOR 1=1 TO K-lZÓ(I)=C5<I>NEXT IIF S8OG8 THEN 7890N7=Q8FOR 1=1 TO K-lZ7(I)=CÓ(I)NEXT IGO TO 7930
APÉNDICE III PAG,157
78907900791079207930794079507900797079807990800080103020803080408050SO ó O807080808090810090009010902090309040905090009070908090909100911091209130914091509100
71309190920092109220923092409250920092709280929093009310
N7=S8FOR 1=1 TO K-lZ7(I)=C7(I)NEXT • IXO(K>=0XKK)=0X2CK)=0X3(K>=0X4(K)=0X5CK)=0X6CK)=0X7<K>=0ZO<K)=1Z1CK)=1Z2(K)=1Z3(K)=1Z4(K)=1Z5(K)=1Z6(K)=1Z7(K)=1GOSUB 11500RETURNREM ----- SUBRUTINA DE GENERACION-CODIFICACION-CANALPRINT "JGENERADORCDENDATOS PSEUDG-ALEATQRIQ --------F=RND<1)IF F<0,5 TREN 9000
GO TO 9070F=0PRINT "Idato ¿eneradoMKK)=FM2(K)=M1(IOPRINT 'CODIFICACIÓNU1=G(1)
U3=G(3)LJ4-GC4)GC1)=FG(2)=U1Í3(3)=U2GC4)=U3G(5)=U4PRINT "lestsdo anteriorPRINT 'lestado actualW 2 - G C1) -f G (2 ) -f G ( 4 ) i G ( 5 )
W2 = 2 OR UJ2=4 THEN 926W2=3 THEN 9280TO 9290
' ÍF
; G < i >; G (2); G < 3); G c 4)
IFIFGOW2GO TO
= 19290
IF Wl=2 THEN 9320GO TO 9330
APÉNDICE III PAG*158
9320933093409350936093709380939094009410942094309440945094609470948094909500951095209530954095509560957095809590960096109620963096409650966096709680969097009710972097309740975097609770978097909800981098209830984098509800
Wl = 0W3=GC1IF W3 =IF US-GO TOU 3-0GO TOW3=lPRINTPRINTPRINTGOSUEYl~WliGOSUBY2-W2+GOSUBY3=W3+IF F3 =IF Yl<IF Yl<IF Yl<IF Yl<IF Yl<IF Yl<IF Yl<VI = 7GO TOVl = 0GO TOVl = lGG TOi ( -r „_ o
GO TOVl = 3GÜ TOVl = 4GQ TOVI =5GO TOVl~6IF Y2<IF Y2<IF Y2<IF Y2<IF Y2<IF Y2<IF Y2<V2—7GO TOV2-0GO TOV2=>1GO TOV2-2GO TO
)+GC3)+G(2 THEN 93
5)70
3 THEN 93909400
9400
"Isecuencie codificada I"Isecuencis transmitida t•CANAL Y10650X10650
10650f\R1 THEN 104400.13 THEN0*25 THEN0,38 THEN0,5 THEN0.63 THEN0.75 THEN0,88 THEN
9720
9720
9720
9720
9720
9720
9720
0,13 THEN0,25 THEN0,38 THEN0,5 THEN0,63 THEN0.75 THEN0.88 THEN
9940
9940
9940
9940
9590961096309650967096909710
9810983098509870989099109930
S/N =
APÉNDICE III PAG,159
987098809890990099109920993099409950996099709980999010000100101002010030100401005010000100701008010090.1010010110101201013010140101501016010170101801019010200102101022010230102401025010 20010270102801029010300103101032010330103401035010360103701038010390104001.0410
I l^zsTv «i. — >_i
GO TO 9940
GO TO 9940
GO TO 9940
IF Y3<0,13 THEN 10030IF Y3<0,25 THEN 10050IF Y3«K38 THEN 10070IF Y3<0,5 THEN 10090IF Y3<0+Ó3 THEN 10110IF <0,75 THEN 10130IF Y3<0,88 THEN 10150
GO TO 10160
60 TO 10160
GO TQ 10160
GO TO 10160V 3 ~ 3GO TO 10160
GO TO 10100v3=5GO 10160
IF YKO + 5 THEN 10190Yl = lGO TO 10200Yí=0IF Y2<0,5 THEN 10230Y2=lGO TO 10240Y2=0IF Y3<0,5 THEN 10270Y3 = lGO TO 10280Y3 = 0IF Y1=W1 THEN 10300E=E+1IF Y2=U2 THEN 10320
IF Y3=U3 THEN 10340
PRINT "lerrores producidos por el canal i •?EIF vl=Wl#F3 THEN 10370E1=E1+1IF Y2=W2#F3 THEN 10390E1-E1+1IF V3=W3*F3 THEN 10410E1=E1+1PRINT 'lerrores de nivel en el cansí í " í El
APÉNDICE III PAG.100
104201043010440104501046010470104801049010500105101052010530105401055010560105701058010590106001061010620106301064010650106601067010680106901070010710110001101011020110301104011050115001151011520115301154011550115601157011580115901160011 ó 1011620116301:1.640116501166011670
PRINT "Isecuencia recibidaGO TO 10570IF YK0.5 THEN 10470
GO TO 10480
IF Y2<0,5 THEN 10510
GO TO 10520
IF Y3<0*5 THEN 10550
GO TO 10560V3=0GO TO 10160FOR 1=1 TO 8
= ABS(A(I?3)-"v'3)
DE LAS MÉTRICAS EN EL DECODIFICADOR
PARA LA GENERACIÓN DE NÚMEROS ALEATORIOS
NEXT IPRINT 'ESTADORETURNREM SUBRUTINAC=0FOR J=l TO 12C=C+RND(1>NEXT JX=V*<C-ó)RETURNREM ******************* TÍTULOSPRINT 'LIESCUELA POLITÉCNICA NACIONAL1
ISIMULACION DE ENLACES DE COMUNICACIÓN1PRINTPRINTRETURNENDREM ****
ICODIFICADOR K —
SUBRUTINA PARA LAPRINT B
PRINT 'PRINT "PRINT 'PRINT 'PRINT "PRINT "PRINT 'FOR 1=1
ILOIL1IL2IL3IL.4IL5I LoIL7TO
5L1/ÍL2/i L3 jÍL4?ÍL5»
L9LIOLllL12L13
, —, • I J LTL/ } Ll vJ =
i R
IMPRESIÓN;NO
JN2ÍN3ÍN4ÍN5ÍNÓJN7
1/3
DE MÉTRICAS *************;
KBO(I)=XO(I)
B2<I)=X2(I)B3(I)=X3(I)
B5(I)=X5CI)D6(I)=X6CI)D7(I)=X7(I)
BIBLIOGRAFÍA
- TRANTER, William Coding for error detección and correction.-Pre-
tince Hall.- 1983.- pp. 256-291.
- ABRAMSON, N. Teoría_d.e la Información y Codificación.- Para-
ninfo.- 1977.- Madrid.
BHARGAVA, Vijay • Forward error correction schames for
mmunications.- Enero 1983.- IEEE Comunications
Magazine.
VITERBI- A. , OMURA J. Principies of_digital 'icommunication and coding,
McGraw-Hill.- 1979.- New York.
- VITERBI, Andrew Convolucional_Codes and Their Performance in Cea
mmunication Systems.- IEEE Transaction on co-
mmunications technology.- Vol. COM -19.- N-3 5.-
pp. 751.
- FORNEY, David The Viterbi^ñlgorithiTi.- Proceedings of the IEEE,
Vól. 61.-N-2 3.- pp. 268 - 277.
- CONAN, Jean An F8 Microprocessor-Based Breadboard for the si
mulation of Conminunication Links Using "Rate l/2_
Convolutional_Codes and Viterbi Decoding.- IEEE
transactions on Communications.- Vol. COM-31.-
- pp. 165-171.
- RADER, Charles Memory Management in_a Viterbi Decoder.- IEEE
Transactions on comunications.- Vol. COM-29.-
N-°9.- pp. 1399-1401.
HELLER J.,JACOBS I. Viterbi Decoding for Satellite and Space Communi
catión.- IEEE Transactions on comraunicarion tech
nology.- Vol, COM-19.- N-°5.- pp.835-848.
- FEHER, Kamilo. Digijal Communications /Satellite /Earth Sta-
tion engineering.- Pretince Hall.- 1983.- USA,
_ SHANMUGAN, Sam Digital and An_alqg_ _Cpnmiu_nication jiystems. -
Wiley ;.'— 1979.- New York.
- MEYER, P. Probabilidad y aplicacionesestadísticas^.- Fon_
do educativo interamericano S.A.- 1970.- Méxi-
co,
- DORF, R.
- RODRÍGUEZ, Luis
Sistemas automáticos de control ._- Fondo Educa.
tivo interamenricano.- 1974.- México.- pp. 34-
55.
Simulacion Bstadística.- Tesis de Grado.- Escu_e
la Politécnica Nacional.- Facultad de Ingenie-
ría Eléctrica.- 1983.- Quito.
- KOOKAN, Jiro Comunicación Digital por Microondas.- CNCT-IE
TEL.- 1985.- Quito.- pp. 27 - 31.
-. HOWARD H. The Múltiple Stack Algoritrn Implemented on a Zi
2- 8 O Mj-crcompu ter . - IEEE Transactions on co
mmunications.- Vol. COM-28.- N-2!!.- pp. 1876 -
1882.
KOU-HU TZOU,
DUNHAM J.
Slidj ng Block Pecoding of Conyolutional Codes.--
IEEE Transactions on Communications.- Vol. COM
-29.- N*9.- pp.1401 - 1403.
PAR TECHNOLOGY
CORPORATION
Communications Modeling_Solfware £or Pesign, Si
muíation, Análisis.- IEEE Spectrum.- Junio 1983,
pp. 9.