Está en la página 1de 18

ELECTRNICA EN TELECOMUNICACIONES

COMUNICACIN Y CODIFICACIN
DIGITAL

Informe de Laboratorio
No. 1
Procesamiento de seales de voz



MANCHENO CHRISTIAN
LOPEZ CHRISTIAN


Instructor:
Dr. Gonzalo Olmedo



15 de Octubre de 2012


Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 2


1. OBJETIVO
1.1. General
Realizar la simulacin de un sistema de comunicaciones que utilice un
canal Gaussiano y que permita transmitir una seal de voz previamente
procesada mediante todos los procesos de la conversin A/D
(muestreo, amplificacin, cuantificacin y codificacin).

1.2. Especficos
Grabar una seal de voz y realizar una amplificacin de la misma
mediante la ley y ley A, luego pasarla por un cuantificador uniforme y
finalmente codificarla para poder transmitirla por el sistema de
comunicaciones prediseado.
Calcular los errores de cuantificacin tanto para el cuantificador
uniforme como tambin para el cuantificador no uniforme (ley y ley A)
y determinar cul de estos es el ms eficiente.
Realizar la simulacin de la transmisin de la seal de voz para
diferentes valores de relacin seal ruido [

], calcular el error para


cada uno de estos y determinar cul es el efecto de aumentar el valor
de [

].
Comprobar si verdaderamente la seal de voz grabada se encuentra
dentro de los 4KHz de frecuencia graficando el espectro de la misma,
luego de esto calcular la frecuencia fundamental de dicha voz de una
forma aproximada y por auto-correlacin.

2. MARCO TERICO
Canal AWGN
Un modelo de canal muy usado en anlisis de sistemas de comunicaciones es el canal
con ruido Gaussiano. En este modelo, la potencia del ruido posee una densidad
espectral uniforme (ruido blanco), el cual se agrega a la seal original. La distribucin
del ruido resultante es un proceso gaussiano con media nula.
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 3


De hecho, la mayora de las curvas de tasa de error (BER) se generan asumiendo que
el canal es con ruido gaussiano.

Figura 1. Ruido Gaussiano Aditivo agregado a una seal senoidal

Conversin Anloga a Digital
La conversin analgica-digital o digitalizacin, consiste bsicamente en realizar de
forma peridica medidas de la amplitud de la seal de entrada y traducirlas a un
lenguaje numrico.
Por qu digitalizar?
Ventajas de la seal digital:
Ante la atenuacin, la seal digital puede ser amplificada y al mismo tiempo
reconstruida gracias a los sistemas de regeneracin de seales.
Cuenta con sistemas de deteccin y correccin de errores que se utilizan
cuando la seal llega al receptor.
Facilidad para el procesamiento de la seal.
La seal digital permite la multi-regeneracin infinita sin prdidas de calidad.

Inconvenientes de la seal digital:
La seal digital requiere mayor ancho de banda para ser transmitida que la
analgica.
Se necesita una conversin analgica-digital previa y una decodificacin
posterior, en el momento de la recepcin.
La transmisin de seales digital requiere una sincronizacin precisa entre los
tiempos del reloj de transmisor, con respecto a los del receptor. Un desfase
cambia la seal recibida con respecto a la que fue transmitida.
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 4


Proceso de conversin analgicodigital:
El proceso de conversin analgico digital consta bsicamente de 4 etapas:
Muestreo de la seal analgica.
Cuantizacin de la propia seal
Codificacin del resultado de la cuantizacin, en cdigo binario.
Recodificacin Digital-Digital para transmisin.


Figura 2. Procesos de conversin A/D
El muestreo
El muestreo consiste en tomar muestras peridicas de la amplitud de onda. La
velocidad con que se toman esta muestra, es decir, el nmero de muestras por
segundo, es lo que se conoce como frecuencia de muestreo y est en funcin del
teorema de Nyquist, que indica:


Figura 3. Seal muestreada
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 5


La cuantificacin
La cuantificacin lo que hace es convertir una sucesin de muestras de amplitud
continua en una sucesin de valores discretos prestablecidos segn el cdigo
utilizado.
Durante el proceso de cuantificacin se mide el nivel de tensin de cada una de las
muestras, obtenidas en el proceso de muestreo, y se les atribuye un valor discreto de
amplitud, seleccionado por aproximacin dentro de un margen de niveles previamente
fijado.

Figura 4. Cuantificacin
Luego de esto, la seal analgica se convierte en una seal digital, ya que los valores
que estn prestablecidos, son finitos. No obstante, todava no se traduce al sistema
binario. La seal ha quedado representada por un valor finito que durante la
codificacin ser cuando se transforme en una sucesin de ceros y unos.
La seal digital que resulta tras la cuantificacin es diferente a la seal elctrica
analgica que la origin, algo que se conoce como Error de cuantificacin. El error de
cuantificacin se interpreta como un ruido aadido a la seal tras el proceso de
decodificacin digital. Si este ruido de cuantificacin se mantiene por debajo del ruido
analgico de la seal a cuantificar la cuantificacin no tendr ninguna consecuencia
sobre la seal de inters.


Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 6


Tipos de cuantificacin
Para minimizar los efectos negativos del error de cuantificacin, se utilizan distintas
tcnicas de cuantificacin:
Cuantificacin uniforme: Se utiliza un bit rate constante. A cada muestra se
le asigna el valor inferior ms prximo, independientemente de lo que ocurra
con las muestras adyacentes.
Cuantificacin no uniforme: Divide los niveles de cuantificacin de tal
manera que las amplitudes ms pequeas no sean perdidas. Se basa en un
proceso compresin y expansin llamado companding. Se aplica una
compresin/expansin de las amplitudes y posteriormente una cuantificacin
uniforme. Las amplitudes de la seal de audio pequeas son expandidas y las
amplitudes ms elevadas son comprimidas.
Este modelo de cuantificacin usa dos tipos de algoritmo estandarizados, definidos en
el estndar ITU-
Estados Unidos y la relacin entrada salida se define generalmente para un valor de


() ()
( || )
( )


Observe que para =0, se obtiene una cuantificacin lineal.
La ley A es utilizada en Europa y la relacin entrada salida se define generalmente
para un valor de A=87,6 con la siguiente expresin:

() ()
{

||
()
||

(||)
()

||



Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 7


La codificacin
La codificacin consiste en la traduccin de los valores de tensin elctrica analgicos
que ya han sido cuantificados al sistema binario, mediante cdigos prestablecidos. La
seal analgica va a quedar transformada en un tren de impulsos digital.

Figura 5. Codificacin

3. IMPLEMENTACIN
Muestreo de la seal de Voz.
1. Para iniciar el anlisis se requiere una seal de voz de muestra, para lo que se
va a grabar el sonido de una letra en el programa MATLAB, con las siguientes
instrucciones:

segundos=2;
[x , fm ]=daqrecord(segundos); %Graba audio
soundsc( x , fm ); %Se repdroduce seal original

2. A continuacin obtenemos la seal de voz en el dominio de la frecuencia para
comprobar que la seal se encuentra entre los 4KHz. Se debe tomar en cuenta
que la transformada de Fourier provoca nmeros complejos, por esta razn,
cuando se grafica se debe colocar el valor absoluto de la transformada:

%Espectro de la seal de voz
y=fft(x);

%Graficamos el espectro
figure(2);
plot(abs(y));
grid on;

Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 8


3. El espectrograma es una representacin visual de las variaciones de la
frecuencia en el eje vertical y de la intensidad mediante los niveles de colores o
grises del sonido que se est representando a lo largo del tiempo en el eje
horizontal. Y mediante el siguiente cdigo se puede lograr esta grfica.

%Espectrograma
figure(3);
specgram(x,256,8000);
xlabel('Amplitud')
ylabel('frecuencia[Hz]')
title('Espectrograma de la seal de voz')

%Seal de voz en funcin al numero de muestras'
figure(4);
plot(x(5000:5200)),grid on
xlabel('Tiempo')
ylabel('Amplitud')
title('Senal de voz en funcion al numero de muestras')

4. Ahora se debe calcular la frecuencia fundamental, que es la tasa de vibracin
de las cuerdas vocales, es decir el nmero de veces que vibran las cuerdas
vocales por segundo. Para determinar la frecuencia fundamental se va a utilizar
la auto correlacin.

%Obtenemos la frecuencia fundamental
N=floor(0.02*fm); %Obtenemos el numero de muestras
C=xcorr(x,N,'coeff'); %Obtenemos la correlacion
figure(6),plot(C),grid on
title('Correlacion espacio 20 ms')
N1=floor(0.002*fm); %Encontramos pico ams alto
[x0,vmax]=max(C(N+N1:2*N+1));
t0=(vmax+N1)/fm;
f0=1/t0;


Codificacin de la seal de Voz.
5. Una vez que se tiene la seal de voz analgica, se seguir el siguiente
procedimiento.
Muestreo
Cuantificacin
Codificacin
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 9


Cuando se almacena la seal, automticamente se muestrea la seal de voz.
Para comenzar hacer la codificacin de la seal muestreado, primero se debe
determinar el nmero de niveles de cuantificacin y su rango dentro de la
seal. El primer error que se produce es en el muestreo de la seal.

% Se obtienen los niveles de cuantifacin uniformes
dif=(max(x)-min(x))/(nivel-1);
val=[min(x):dif:max(x)]; %Creamos matriz de los niveles

6. A continuacin para tener una mayor claridad de la cuantificacin, se grafica
los niveles de cuantificacin junto con la seal de audio muestreada, esto se
logra con el siguiente cdigo.

%Gafica la seal original con los niveles de cuantificacin
figure(7);
plot(x);
hold on
for vv=1:nivel
hold on
plot(y(vv,:));
end
grid on
xlabel('muestras');
ylabel('x(t)');
title('Seal de voz, frecuencia de muestreo = 8000 muestras/s');

7. Antes de seguir, se debe determinar si se quiere realizar una cuantificacin
uniforme o no uniforme, mediante el uso de la Ley u y Ley A. Para realizar la
cuantificacin no uniforme se debe colocar el siguiente cdigo para la Ley U.

%LEY U
u=255;
mu=[-1:0.001:1];
ley_u=sign(x).*(log(1+u*abs(x))/log(1+u));

8. Y si se requiere con ley A, se debe amplificar la seal utilizando el siguiente
cdigo.

%LEY A
A= 87.6;
lA=[-1:0.001:1];

for i = 1:length(lA)
if (abs(lA(i))) < (1/A)
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 10



A_ejm(i)=sign(lA(i)).*((A*abs(lA(i)))/(1+log(A)));
end

if( (abs(lA(i))) >= (1/A) && ((abs(lA(i)))<= (1) ) )
A_ejm(i)=sign(lA(i)).*((1+log(A*abs(lA(i))))/(1+log(A)));
end
end
for i= 1:length(x)
if(abs(x(i))<(1/A))
ley_A(i,1)=sign(x(i)).*((A*abs(x(i)))/(1+log(A)));
end

if( abs(x(i)) >= (1/A) && ( abs(x(i))<= (1) ) )
ley_A(i,1)=sign(x(i)).*((1+log(A*abs(x(i))))/(1+log(A)));
end
end

9. Despus se determina los niveles de cuantificacin de la seal, mediante el
clculo de la distancia mnima de la seal con los niveles. Se determina
mediante cul es la mnima distancia para la toma de decisin de la seal, y
ah se forma la seal cuantificada. Finalmente se grafica para y se reproduce
para determinar la seal cuantificada. Es aqu donde se produce el segundo
error. Error de cuantificacin.

array= repmat(x',nivel,1);
x1=abs(y-array);
[distancia x2]=min(x1);

10. Finalmente se realiza la codificacin de la seal, el calculo del error de
cuantificacin y se procede a transmitir por un canal AWGN.

%Error
x3=x2-1;
pendiente=2/(max(x3)-min(x3));
q=pendiente*x3-1;
q=q;
for i=1:length(x)
error(i)=abs(q(i)-x(i))/x(i);
end

er=mean(error)

%CODIFICACION
bits=dec_bin(x3,log2(nivel));


Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 11


Transmisin a travs de un canal gaussiano.
11. Se realiza la codificacin de la seal de voz cuantificada haciendo uso de la
funcin dec_bin, que se encarga de transformar los valores decimales de la
seal de voz en valores binarios. Se obtiene en las variables m y n el tamao
de muestras de la seal de voz as como tambin el nmero de bits con que
estn siendo representadas cada una de estas muestras.

12. En el vector bits se almacenan los bits de forma consecutiva (tren de pulsos),
de cada uno de los smbolos de la seal de voz ya cuantificada y codificada
que se encuentran en la variable bits_u.

13. Se define un vector con los diferentes valores en [dB] que va a tomar la
relacin seal ruido y se inicia un bucle de repeticin para cada uno de estos
valores, a ms de esto se transforma este valor ingresado en [dB] a una
cantidad decimal, y se define el valor sigma para generar el ruido Gaussiano.

14. En esta parte se realiza lo siguiente:
Se hace la modulacin BPSK, es decir se obtiene valores de energa de 1
para valores digitales de 1 y -1 para valores digitales de 0
Se genera una variable aleatoria gaussiana para el ruido, del mismo
tamao de la seal que va a ser transmitida con media 0 y sigma definido
anteriormente
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 12


Se simula la transmisin de la seal por el canal Gaussiano, sumando los
valores de ruido generados a la seal original.
Se hace la demodulacin de la seal transmitida primero transformndola a
valores de energa de 1 y -1, y luego a 1 y 0 digitales respectivamente.

15. Se toma la seal transmitida como tren de pulsos y se vuelve a formar la seal
de voz original asignando a cada muestra de la seal el mismo nmero de bits
que fue utilizado para su representacin antes de la transmisin

16. Se realiza la decodificacin de la seal recibida usando la funcin int_state la
cual convierte el valor en bits que se utiliza para representar cada muestra de
la seal en un nmero entero en base 10.

17. Se calcula el error de transmisin comprobando cuantas muestras de la seal
de voz recibida estn erradas y sacando el valor porcentual del mismo
considerando el nmero total de muestras de la seal original. Esto se hace
para cada uno de los valores que toma la relacin seal ruido.
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 13




18. Se grfica y escucha la seal recibida para cada uno de los valores de relacin
seal ruido.










Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 14


4. ANLISIS DE RESULTADOS
Mediante la funcin fft() se puede determinar el espectro de la seal, y comprobar
que la voz se encuentra entre los 4KHz; y que es una seal peridica, adems se
puede determinar el espectrograma.

Figura 6. Espectro de la seal de voz

Figura 7. Espectrograma de la seal de voz

Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 15


Mediante la correlacin se puede determinar la frecuencia fundamental, y esto se
define como la distancia entre puntos que tengan un gran parecido. Para observar
esto se debe realizar un zoom de la seal para verificar que cumple un patrn.

Figura 8. Correlacin de la seal en espacio de 20ms
Mediante el cdigo implementado se puede graficar los niveles de cuantificacin,
en la imagen siguiente se puede observar que se realiz para un nivel de 8.

Figura 9. Niveles de cuantificacin
Ahora se puede amplificar la seal o no para realizar una cuantificacin uniforme o
no uniforme. Esto se lo realiza mediante la aplicacin de las respectivas formulas
de la Ley u y la Ley A.

Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 16



Figura 10. Ley U y ley A
Se puede verificar que la Ley U y la ley A son casi iguales, pero cumplen una
diferencia pequea en las partes del cero. Al aplicar una de estas seales se crean
un efecto sobre la seal original.

Figura 11. Seal amplificada por Ley u y seal cuantificada de la seal de voz
Al cuantificar la seal con ley U o ley A, se puede escuchar la voz ms clara que
con la cuantificacin uniforme; el ruido aun persiste debido a que solo se hizo a 8
niveles.
Mediante el error de cuantificacin se puede verificar cual de los tres distintos tipos
de cuantificacin son mejores que otros. Adems se puede comprender de mejor
manera porque la Ley u y la Ley A son tan tiles para la codificacin de seales.

Figura 12. Errores de Cuantificacin
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 17


Despus de realizar la codificacin de la seal ya cuantificada, se procede a
transmitir por el canal AWGN, que cumple con una funcin de densidad de
probabilidad gaussiana.
Para transmitir se define la relacin seal a ruido en [db], se puede verificar de
forma grafica como al aumentar el SNR, la seal que se transmite se hace mas
clara y llega con menos error de transmisin.

Figura 13. Seal recibida con SNR de 1 [db] con error de transmisin de 16.4875


Figura 14. Seal recibida con SNR de 7 [db] con error de transmisin de 0.2375
Informe de Laboratorio No. 1
Comunicacin y Codificacin Digital


Pgina 18


6. CONCLUSIONES Y RECOMENDACIONES
Se cumpli el objetivo principal realizando la simulacin del sistema de
comunicaciones y transmitiendo la seal de voz luego de que esta fue
procesada y modulada mediante BPSK, adems se realiz la simulacin
para diferentes valores de relacin seal ruido y se obtuvo las seales
recibidas para cada uno de estos luego de haber pasado la seal original
por el canal Gaussiano.
Se observ claramente que a medida que se aumenta el valor de la
relacin seal ruido [

] se comete un menor error de transmisin, lo


que tambin se pudo apreciar al escuchar la seal recibida y al apreciar las
grficas de las mismas.
Concluimos que cuando se aumentan los niveles de cuantificacin se va
disminuyendo el error de cuantizacin cometido, ya que todos los valores
de la seal anloga tendrn siempre valores digitales ms cercanos a los
cuales podrn ser aproximados dependiendo la distancia mnima que
tengan con estos.
Mediante el error de cuantificacin se verifica que la Ley tiene un poco
menos error que el de la Ley A, y estos dos tienen mucho menos error que
la cuantificacin uniforme, esto se debe que estas dos leyes tienen mucha
semejanza, y que pueden recuperar valores de seales pequeos.
Se concluy que efectivamente el rango de frecuencias de la seal de voz
se encuentra por debajo de los 4KHz, y que dependiendo del origen de la
misma (masculina femenina), esta ir variando sus componentes
principales en frecuencia.
Mediante el clculo de la frecuencia fundamental se puede determinar de
manear aproximada la frecuencia con la que vibran las cuerdas vocales de
las personas, ya que esto es nico para cada individuo.
7. BIBLIOGRAFA
FRIES, Bruce y FRIES, Marty. Audio digital prctico. Ed. Anaya Multimedia.
2005
RUMSEY, Francis y McCORMICK, Tim. Sonido y grabacin. Introduccin a
las tcnicas sonoras. 2004.
Simons Haykin, Digital Coplica communications, LIMUSA WILEY, 2001.