Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3. DESARROLLO Y RESULTADOS
3.1.1 Diseñar una función en MATLAB que permita modelar una fuente de información discreta
sin memoria binaria X = {x1, x2}={0, 1} con estadísticas P(X = x1) = Px1 y P(X = x2) = Px2 y que emita
símbolos estadísticamente independientes. Cada símbolo de salida puede ser 0 ó 1.
● Datos de entrada: Probabilidades de los símbolos Px1 y Px2 donde Px1 + Px2 = 1.
La función debe invocarse desde un procedimiento que servirá como programa principal.
Figura 2.2 Diagrama de flujo para modelar una fuente de información binaria.
Inicio
Datos de entrada:
Px1 y Px2
No Si
Si U<=Px1
X = 1; X = 0;
Nota: Para desarrollar la función en MATLAB que permita modelar la fuente de información, utilizar la declaración functi
Regresa
X
T
abla 2.1 Descripción de las variables Termina
Variable Descripción
PX1 Probabilidad de que la fuente emita un símbolo X1=0 ó P(X=0)
PX2 Probabilidad de que la fuente emita un símbolo X2=1 ó P(X=1)
U Almacena un valor aleatorio entre 0 y 1 con distribución uniforme
X Variable donde se guarda el símbolo X1 = 0 ò X2 = 1 emitido por la fuente binaria
Cuerpo de la función:
• Comandos
• Expresiones
• Variables, etc.
Donde Arg 1, Arg 2,……, ArgN son argumentos de salida de la función y arg1, arg2,
………, argM son los argumentos de salida. El intercambio de variables con el espacio de
trabajo se realiza mediante los argumentos de entrada y los argumentos de salida.
3.1.4 Abrimos el editor de MATLAB el cual se muestra en la barra menú debajo de File
Fig. 2.3
Fig. 2.4
3.1.6 Para invocar a la función que modela a la fuente binaria, nos vamos a la ventana
de comandos de MATLAB y tecleamos la siguiente secuencia de comandos:
¿Que se observa cada vez que la función se invoca desde la ventana de comandos?
¿Al observar la secuencia de símbolos reportados en la tabla 2.2, existe forma alguna
de predecir el símbolo siguiente que emitirá la fuente de información? Argumentar.
>> proc_invoca_fuente_binaria
Tabla 2.3 Secuencia de Símbolos generados por la fuente binaria desde un procedimiento
1 1 0 1 0 0 1 1 1 1
Valores de X
Comparar los resultados obtenidos en este punto con los obtenidos en el punto 4.1.7, ¿Qué es
lo que se puede observar?
Para determinar la probabilidad de los símbolos generados por la fuente de información, aplicar
el concepto de frecuencia relativa o a posteriori, que de manera general nos dice:
lim NA
P( A )≈ ( )
N →∞ N
(2.1)
PX1 = input('Probabilidad de ceros P(X=0): '); % Ingresa valor numérico para PX1
PX2 = 1-PX1; % Calcula el valor de la probabilidad para X2
N = input('Numero de simbolos a generar (N): '); %Ingresa el numero de símbolos
n_ceros = 0; % Inicializa el contador de ceros
n_unos = 0; % Inicializa el contador de unos
for k = 1:N,
[X] = fuente_binaria(PX1, PX2); % Invoca a la función editada N veces
Xi(k)=X; % Guarda la secuencia de símbolos emitidos
if X ==0, % Si la fuente emite un 0, incrementa contador de ceros
n_ceros = n_ceros+1;
else % Si la fuente emite un 1, incrementa contador de unos
n_unos = n_unos+1;
end;
end;
n_ceros
PX1fr = n_ceros/n % Calcula laProf.
probabilidad
José Ernesto Rojas de
Lima ceros por frecuencia relativa
5
n_unos
PX2fr = n_unos/n % Calcula la probabilidad de unos por frecuencia relativa
Teoría de codificació n y manejo de informació n 2020
3.1.12 Una vez editado el procedimiento anterior guardarlo en el directorio de trabajo como en
el punto 4.1.9 con algún nombre. En este caso se le asigno el nombre de
“estadisticas_fuente_binaria”. Invocar desde la ventana de comandos al procedimiento
>> estadísticas_fuente_binaria
Tabla 2.4 Valores de las estadísticas de la fuente de información obtenidas mediante el modelo de MATLAB
Valores obtenidos por Valores obtenidos por Valores obtenidos por
Valores teóricos frecuencia relativa para frecuencia relativa para frecuencia relativa para
100 símbolos 1000 símbolos 10000 símbolos
P(X=0 P(X=1) P(X=0) P(X=1) P(X=0) P(X=1) P(X=1) P(X=0)
)
0.1 0.9 8 92 97 903 8988 1012
3.2.1.1 Para realizar la lectura de un archivo de texto, supongamos que tenemos el archivo
“texto1.txt”, cuyo contenido puede visualizarse desde el bloc de notas de Windows, como se
muestra en la siguiente figura
>> fid = fopen('texto1.txt') %Abre un canal para lectura del archivo texto1.txt
>> contenido = fscanf(fid,'%c') %Realiza lectura por caracter del contenido
>> st = fclose(fid) %Cierra el canal de lectura
X =
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Con lo anterior quedaría definida la fuente de información X. Para determinar el número total de
letras ó símbolos de la fuente invocamos el comando: >>length(X). Reportar el resultado en la
tabla 2.6
Tabla 2.6 Total de letras o símbolos del alfabeto
Total de letras o símbolos (M)
3.2.1.5 También es posible obtener una correspondencia entre el conjunto de caracteres ASCII
(de la A-Z) y su valor numérico.
Carácter A B C D E F G H I J
ASCII
Valor
numérico
Carácter K L M N O P Q R S T
ASCII
Valor
numérico
Carácter U V W X Y Z
ASCII
Valor
numérico
3.2.1.6 Suponer que se quiere determinar el número de veces que se repite la letra A en el
archivo “texto1.txt”. Para realizar lo anterior editar el siguiente procedimiento.
3.2.1.7 Con el ejemplo anterior programar ahora una rutina que permita obtener el número de
veces que se repite cada una de las letras del alfabeto de la fuente de información. Utilizar
ciclos iterativos. Para iniciar y comprobar que la rutina realiza el conteo de manera adecuada,
se puede utilizar el archivo de texto1. txt.
Para realizar los incisos anteriores utilizar los siguientes archivos: texto2.txt, texto3.txt y
texto4.txt. Determinar la frecuencia con la cual se presenta cada letra del alfabeto en el
texto y reportarlo en las tablas 2.4, 2.5 y 2.6.
Tabla 2.4 Frecuencia con la que se presenta cada letra del alfabeto en el archivo texto2.txt
nA nB nC nD nE nF nG nH nI nJ nK
nL nM nN nO nP nQ nR nS nT nU nV
nW nX nY nZ Total de símbolos
Tabla 2.5 Frecuencia con la que se presenta cada letra del alfabeto en el archivo texto3.txt
nA nB nC nD nE nF nG nH nI nJ nK
nL nM nN nO nP nQ nR nS nT nU nV
nW nX nY nZ Total de símbolos
Tabla 2.6 Frecuencia con la que se presenta cada letra del alfabeto en el archivo texto4.txt
nA nB nC nD nE nF nG nH nI nJ nK
nL nM nN nO nP nQ nR nS nT nU nV
nW nX nY nZ Total de símbolos
Para calcular la probabilidad a posteriori de cada letra o símbolo, dividir los resultados de las
tablas 2.4, 2.5 y 2.6 entre el número total de letras o símbolos de cada uno de los textos
analizados y reportar los resultados en la tablas 2.7, 2.8 y 2.9.
Tabla 2.7 Probabilidad con la que se presenta cada letra del alfabeto en el archivo texto2.txt
P(A) P(B) P(C) P(D) P(E) P(F) P(G) P(H) P(I) P(J) P(K)
P(L) P(M) P(N) P(O) P(P) P(Q) P(R) P(S) P(T) P(U) P(V)
Tabla 2.8 Probabilidad con la que se presenta cada letra del alfabeto en el archivo texto3.txt
P(A) P(B) P(C) P(D) P(E) P(F) P(G) P(H) P(I) P(J) P(K)
P(L) P(M) P(N) P(O) P(P) P(Q) P(R) P(S) P(T) P(U) P(V)
Tabla 2.9 Frecuencia con la que se presenta cada letra del alfabeto en el archivo texto4.txt
P(A) P(B) P(C) P(D) P(E) P(F) P(G) P(H) P(I) P(J) P(K)
P(L) P(M) P(N) P(O) P(P) P(Q) P(R) P(S) P(T) P(U) P(V)
¿Qué ocurre con las probabilidades de los símbolos al aumentar el número de caracteres en el
texto? Realizar observaciones
4. PREGUNTAS
5. CONCLUSIONES
6. BIBLIOGRAFÍA
1.- Haykin, Simon. Sistemas de Comunicación , Limusa, México, 2002, 685 págs.
2.- Sklar, Bernard, Digital Communications Fundamental and Applications,2ª ediciòn, Prentice Hall, USA,
2001 450 págs.
3. John G. Proakis, Digital Communications,. 3rd Edition, Mc Graw-Hill, Inc. International Editions 1995,
928 págs.
4. MATLAB, Manual del usuario