Práctica 1: Reconstrucción de Señales de Voz

1. Descripción

Esta práctica explora la transmisión de señales de voz digitalizadas sobre un canal con pérdidas. Se construirán dos modelos estadísticos para reconstruir las muestras de voz perdidas durante la transmisión.

Base de Datos

Se utilizarán los siguientes archivos de audio como base de datos:

  • “aage3201R.8bi”
  • “tsge3270R.8bi”
  • “euge0013R.8bi”
  • “vege1850R.8bi”

Cada archivo contiene enteros de 8 bits que representan los valores de las muestras de voz.

Primer Modelo Probabilístico

Este modelo asigna probabilidades a cada muestra en función de su frecuencia de aparición en la base de datos. Los pasos para construir el modelo son:

  1. Cargar los archivos de audio en variables de MATLAB.
  2. Crear un vector de probabilidades para cada valor de muestra posible (de -127 a 128).
  3. Utilizar la función hist de MATLAB para contar las ocurrencias de cada valor de muestra.
  4. Dividir el número de ocurrencias por el número total de muestras para obtener las probabilidades.
  5. Reemplazar las probabilidades de 0 por un valor pequeño (por ejemplo, 10^-6) para evitar sucesos imposibles.
  6. Normalizar las probabilidades para que sumen 1.

La siguiente imagen muestra la distribución de probabilidades del primer modelo:

[Insertar imagen de la distribución de probabilidades]

Segundo Modelo Probabilístico

Este modelo crea una matriz de probabilidad condicional, donde cada elemento representa la probabilidad de que ocurra una muestra j-128 dado un valor i-128 anterior.

La siguiente imagen muestra la fila de la matriz correspondiente a la probabilidad condicional de cada muestra dado el valor -18:

[Insertar imagen de la fila de la matriz]

2. Evaluación de las Estimaciones

Se realizarán cuatro estimaciones estadísticas para evaluar los modelos propuestos, utilizando el archivo de voz “euge0019R.8bi” como referencia.

Estimación 1 (Primer Modelo)

Se reemplaza la muestra perdida por la muestra con mayor frecuencia de aparición (valor 0). El SNRQ resultante es de 10.0722 dB.

Estimación 2 (Primer Modelo)

Se calcula la media de todos los valores de muestra ponderados por sus probabilidades. El SNRQ resultante es de 10.0184 dB.

Observación: Se nota un ruido de fondo en la señal reconstruida, especialmente durante el habla.

Estimación 3 (Segundo Modelo)

Se elige la muestra con mayor probabilidad de aparición dado el valor de la muestra anterior. El SNRQ resultante es de 18.2258 dB.

Estimación 4 (Segundo Modelo)

Se calcula el valor promedio de la fila de probabilidades correspondiente al valor de la muestra anterior. El SNRQ resultante es de 18.1665 dB.

Observación: Las estimaciones 3 y 4 producen una calidad de sonido significativamente mejor que las estimaciones 1 y 2, con una voz más clara y menos ruido.

3. Discusión sobre el Cambio de Matriz

Se analiza el cambio de la matriz de probabilidad condicional de n dado n-1 a una matriz que refleja la probabilidad de n dado n+1. Se concluye que la nueva matriz es la traspuesta de la matriz original.

La siguiente gráfica muestra la diferencia entre las dos matrices, que es prácticamente nula:

[Insertar imagen de la diferencia entre las matrices]

Código MATLAB

A continuación, se presenta el código MATLAB utilizado para implementar los modelos probabilísticos y las estimaciones:


% Modelo probabilístico 1
Ntotal = length(s);
x = -127:128;
frec = hist(s, x);
p = frec / Ntotal;
for i = 1:256
  if p(i) == 0
    p(i) = 10^-6;
  end
end
p = p / sum(p);

% Modelo probabilístico 2
p = zeros(256);
for i = 1:length(s)-1
  m = s(i) + 128;
  n = s(i+1) + 128;
  p(m, n) = p(m, n) + 1;
end
% ... (resto del código)