0% encontró este documento útil (0 votos)
208 vistas11 páginas

Codificación Shannon-Fano: Ejercicios y Tablas

El documento presenta un resumen de la teoría de la codificación de información y Shannon-Fano. Explica cómo crear tablas de códigos binarios para dos cadenas de texto diferentes basadas en la frecuencia de símbolos, y cómo calcular la entropía y longitud de los códigos. También muestra cómo construir árboles binarios para representar los códigos y genera código en Python para implementar los métodos.

Cargado por

Gustavo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
208 vistas11 páginas

Codificación Shannon-Fano: Ejercicios y Tablas

El documento presenta un resumen de la teoría de la codificación de información y Shannon-Fano. Explica cómo crear tablas de códigos binarios para dos cadenas de texto diferentes basadas en la frecuencia de símbolos, y cómo calcular la entropía y longitud de los códigos. También muestra cómo construir árboles binarios para representar los códigos y genera código en Python para implementar los métodos.

Cargado por

Gustavo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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()

También podría gustarte