Codificación e información
GUSTAVO NOVOA OSPINA
Facultad de Ingeniería, Fundación Universitaria Área Andina
Teoría de la información
Ing. Gustavo Enrique Tabares
Septiembre de 2020
Ejercicio
La Frecuencia, la entropía de cada símbolo, la entropía del mensaje los bits de código, los
bits del mensaje y realizar la tabla de 0 y 1 de acuerdo a lo que propone Shannon-Fano.
“Ingeniería de Sistemas”.
1. Creamos la tabla correspondiente a ceros y unos con la probabilidad
Ingeniería de Sistemas
Símbolo Frecuencia Probabilidad División 1 División 2 División 3 División 4 División 5
e 4 0,19047619 0 00
i 4 0,19047619 0 01 010
a 2 0,095238095 0 01 011
% 2 0,095238095 1 10 100
n 2 0,095238095 1 10 101 1010
s 2 0,095238095 1 10 101 1011
d 1 0,047619048 1 11 110 1100
g 1 0,047619048 1 11 110 1101 11010
m 1 0,047619048 1 11 110 1101 11011
r 1 0,047619048 1 11 111 1110
t 1 0,047619048 1 11 111 1111
Tabla 1de ceros y unos
2. Creamos la tabla correspondiente a la entropía de cada símbolo, la entropía del
mensaje los bits de código y los bits del mensaje.
Calculo de los Bits
Símbolo Frecuencia Entropía Entropía en el mensaje Bits Código Bits Mensaje
e 4 0,720159303 2,880637214 2 8
i 4 0,720159303 2,880637214 3 12
a 2 1,021189299 2,042378598 3 6
% 2 1,021189299 2,042378598 3 6
n 2 1,021189299 2,042378598 4 8
s 2 1,021189299 2,042378598 4 8
d 1 1,322219295 1,322219295 4 4
g 1 1,322219295 1,322219295 5 5
m 1 1,322219295 1,322219295 5 5
r 1 1,322219295 1,322219295 4 4
t 1 1,322219295 1,322219295 4 4
total 21 12,13617228 20,54188529 41 70
3. Construir los árboles binarios para representar los códigos de los Símbolos de la
fuente.
Raíz
0 1
0 1 0 1
0 1 0
e 1
0 1
i a % 0 1 0 1 0 1
n s d 0 1 r t
g m
Figura 1 Árbol Binario
4. Mostrar los códigos binarios resultantes de cada mensaje.
Símbolo Código
e 00
i 010
a 011
% 100
n 1010
s 1011
d 1100
g 11010
m 11011
r 1110
t 1111
5. Se genera código en Pytho para la ejecución de la tabla y se genera la suma de la frecuencia.
import pandas as pd
Simbolo = ['e', 'i', 'a', '%', 'n', 's', 'd', 'g', 'm', 'r', 't']
Frecuencia = [4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 1]
Bits = [2, 3, 3, 3, 4, 4, 4, 5, 5, 4, 4]
indice = [1,2,3,4,5,6,7,8,9,10,11]
Ingenieria = {'Simbolo':Simbolo,'Frecuencia':Frecuencia, 'Bits': Bits}
df = [Link](data=Ingenieria, index=indice)
print(df)
df['Frecuencia']. sum()
Segunda frase
“FUNDACION UNIVERSITARIA DEL AREA ANDINA”
6. Creamos la tabla correspondiente a ceros y unos con la probabilidad
FUNDACION UNIVERSITARIA DEL AREA ANDINA
Simbolo Frecuencia 1 Division 2 Division 3 Division 4 Division 5 Division 6 Division
A 7 0 00 000
N 5 0 00 001
I 5 0 01 010
% 4 0 01 011
D 3 1 10 100
E 3 1 10 101 1010
R 3 1 10 101 1011
U 2 1 11 110 1100
F 1 1 11 110 1101 11010
C 1 1 11 110 1101 11011
O 1 1 11 111 1110 11100
V 1 1 11 111 1110 11101
S 1 1 11 111 1111 11110
T 1 1 11 111 1111 11111 111110
L 1 1 11 111 1111 11111 111111
7. Creamos la tabla correspondiente a la entropía de cada símbolo, la entropía del
mensaje los bits de código y los bits del mensaje.
Calculo de los Bits
Entropia en el
Simbolo Frecuencia Entropia Bit Codigo Bits Mensaje
mensaje
A 7 2,48 17,35 3 21
N 5 2,96 14,82 3 15
I 5 2,96 14,82 3 15
% 4 3,29 13,14 3 12
D 3 3,70 11,10 3 9
E 3 3,70 11,10 4 12
R 3 3,70 11,10 4 12
U 2 4,29 8,57 4 8
F 1 5,29 5,29 5 5
C 1 5,29 5,29 5 5
O 1 5,29 5,29 5 5
V 1 5,29 5,29 5 5
S 1 5,29 5,29 5 5
T 1 5,29 5,29 6 6
L 1 5,29 5,29 6 6
TOTAL 39 64,07 139,00 64 141
8. Construir los árboles binarios para representar los códigos de los Símbolos de la
fuente.
Raíz
0 1
0 1
0 1
1 0 1 0 1
0 0 1
0 1 0 1 0 1
A N I % D
0 1 0 1 0 1
E R U
F C O V S 0 1
T L
9. Mostrar los códigos binarios resultantes de cada mensaje.
Simbolo Codigo
A 000
N 001
I 010
% 011
D 100
E 1010
R 1011
U 1100
F 11010
C 11011
O 11100
V 11101
S 11110
T 111110
L 111111
10. Se genera código en Pytho para la ejecución de la tabla y se genera la suma de la frecuencia.
import pandas as pd
Simbolo = ['A', 'N', 'I', '%', 'D', 'E', 'R', 'U', 'F', 'C', 'O', 'V', 'S', 'T', 'L']
Frecuencia = [7, 5, 5, 4, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1]
Bits = [3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
indice = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
Ingenieria = {'Simbolo':Simbolo,'Frecuencia':Frecuencia, 'Bits': Bits}
df = [Link](data=Ingenieria, index=indice)
print(df)
df['Frecuencia']. sum()
Tercera frase
“SEGURIDAD INFORMATICA”
11. Creamos la tabla correspondiente a ceros y unos con la probabilidad
SEGURIDAD INFORMATICA
Simbolo Frecuencia 1 Division 2 Division 3 Division 4 Division 5 Division
A 3 0 00 000
I 3 0 00 001
D 2 0 01 010
R 2 0 01 011 0110
% 1 0 01 011 0111
C 1 1 10 100 1000
E 1 1 10 100 1001
F 1 1 10 101 1010
G 1 1 10 101 1011 10110
M 1 1 10 101 1011 10111
N 1 1 11 110 1100
O 1 1 11 110 1101
S 1 1 11 111 1110
T 1 1 11 111 1111 11110
U 1 1 11 111 1111 11111
12. Creamos la tabla correspondiente a la entropía de cada símbolo, la entropía del
mensaje los bits de código y los bits del mensaje.
Entropia en
Simbolo Frecuencia Entropia Bit Codigo Bits Mensaje
el mensaje
A 3 2,807 8,422 3 9
I 3 2,807 8,422 3 9
D 2 3,392 6,785 3 6
R 2 3,392 6,785 4 8
% 1 4,392 4,392 4 4
C 1 4,392 4,392 4 4
E 1 4,392 4,392 4 4
F 1 4,392 4,392 4 4
G 1 4,392 4,392 5 5
M 1 4,392 4,392 5 5
N 1 4,392 4,392 4 4
O 1 4,392 4,392 4 4
S 1 4,392 4,392 4 4
T 1 4,392 4,392 5 5
U 1 4,392 4,392 5 5
Total 21 60,715 78,729 61 80
13. Construir los árboles binarios para representar los códigos de los Símbolos de la
fuente.
Raíz
0 1
0 1 0 1
0 1 0 1 0 1
A I D 0 1 0 1 0 1 0 1
R % C E F 0 1 0 1
0 1 N O S 0 1
G M T U
14. Mostrar los códigos binarios resultantes de cada mensaje.
Simbolo Codigo
A 000
I 001
D 010
R 0110
% 0111
C 1000
E 1001
F 1010
G 10110
M 10111
N 1100
O 1101
S 1110
T 11110
U 11111
15. Se genera código en Pytho para la ejecución de la tabla y se genera la suma de la frecuencia.
import pandas as pd
Simbolo = ['a', 'i', 'd', 'r', '%', 'c', 'e', 'f', 'g', 'm', 'n', 'o', 's', 't', 'u']
Frecuencia = [3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Bits = [9, 9, 6, 8, 4, 4, 4, 4, 5, 5, 4, 4, 4, 5, 5]
indice = [1,2,3,4,5,6,7,8,9,10,11, 12, 13, 14, 15]
Ingenieria = {'Simbolo':Simbolo,'Frecuencia':Frecuencia, 'Bits Mensaje': Bits}
df = [Link](data=Ingenieria, index=indice)
print(df)
df['Frecuencia']. sum()