You are on page 1of 9

Universidad Autnoma de Zacatecas

Unidad Acadmica de Ingeniera Elctrica


Ingeniera en Comunicaciones y Electrnica

Procesamiento Digital de Voz

Ing. Ernesto Garca Domnguez

Prctica 3 Anlisis de Ventana

Alumno: Vctor Manuel Gonzlez Villagrana

Zacatecas, Zacatecas, Mxico

22-Febrero-2012

Introduccin.

En el procesamiento digital de seales puede ser mas til analizar solo una porcin de la seal de inters para poder obtener los parmetros mas importantes con una mayor validez. A su vez en el procesamiento digital de voz se hace esto mediante tramas sonoras, donde una trama tiene una duracin aproximada de 20-30ms en donde se dice que los parmetros mas importantes de la voz permanecen invariantes y por tanto se tiene una gran confiabilidad de los datos. Existen tambin otras formas de analizar simplemente un fragmento de la seal, y esto se hace mediante una funcin llamada ventana. Las cuales son funciones usadas frecuentemente en el procesamiento de seales, para evitar discontinuidades al principio y al final de los bloques analizados. Una ventana se utiliza cuando solo una porcin de la seal es de inters para el anlisis, y la longitud de la ventana ser preestablecida por aqul que vaya a hacer el anlisis de la seal. Una seal tiene que ser de tiempo finito; adems, un calculo solo es posible a partir de un numero finito de puntos. Y para poder observar una seal en un tiempo finito la multiplicamos por la funcin ventana. La utilizacin de una ventana cambia el espectro en frecuencia de la seal. Es importante saber que existen distintos tipos de ventanas, cada una para diseada para distinto tipos de requerimientos de la seal. En est prctica se har uso de las 2 ventanas mas importantes dentro del procesamiento digital de voz, y son: Ventana Rectangular y Ventana Hamming.

Objetivos.
- - - Elaborar un algoritmo para obtener una ventana rectangular y otro para una ventana tipo hamming. Hacer el anlisis con ambas ventanas para una seal sinusoidal y para un sonido vocalizado (vocal). Elaborar un cdigo que despliegue un men donde se pueda escoger el tipo de ventana y el tipo de seal a analizar.

Desarrollo y Resultados.
El anlisis se hizo para 4 diferentes caso, de los cuales se obtuvieron los siguientes resultados: 1er. Caso Ventana Rectangular con Seal Sinusoidal

Figura 3-1 Anlisis con la ventana rectangular para una seal sinusoidal.

2do. Caso Ventana Rectangular con Seal de Voz

Figura 3-2 Anlisis con la ventana rectangular para una seal de voz (Vocal a).

3er. Caso Ventana Hamming para una Seal Sinusoidal

Figura 3-3 Anlisis con la ventana hamming para una seal Sinusoidal.

4to. Caso Ventana Hamming para una Seal de Voz

Figura 3-4 Anlisis con la ventana hamming para una seal de voz (Vocal a).

Conclusiones.
El uso de ventanas es muy importante dentro del procesamiento digital de voz, ya que nos ayuda a eliminar muchas componentes indeseadas como el ruido, creo que esta prctica me deja mucho aprendizaje ya que el uso de ventanas es algo nuevo para mi. A pesar de que existen mas tcnicas para poder optimizar las seales, el uso de ventanas creo yo que es una de las mejores. Se tuvieron problemitas a la hora de centrar el espectro de frecuencias para que se pudiera apreciar de una forma mas clara como es que se desempean las ventanas en frecuencia.

Finalmente, es importante mencionar que aunque no hayamos visto mas tipos de ventanas, con estas dos fue suficiente al menos para entender el funcionamiento de las ventanas aplicada a una seal ya sea de voz o sinusoidal. Se debe mencionar que para hacer el anlisis con seales de voz, se tomo solamente una trama sonora de 20ms para obtener un confiabilidad de los datos, ya que como sabemos dentro de una trama sonora los parmetros mas importantes de la voz permanecen constantes. Anexos Programa en MatLab para la prctica de Ventanas.
%Ventanas Temporales %Elaborado por Victor Gonzalez N=160; Fs=8000; TT=0.020; NMT=Fs*TT; %Frecuencia de Muestreo %Tiempo de Trama %Numero de Muestras por Trama

tv=menu('Elige ventana','Rectangular','Hamming'); switch(tv) case 1, %Ventana Rectangular ventana=ones(1,NMT); case 2, %Ventana Hamming n=0:NMT-1; ventana=0.54-0.46*cos(2*pi*n/(NMT-1)); end %Tipo de Senal ts=menu('Tipo de Senal','Sinusoidal','Voz'); switch(ts) case 1, %Senal Sinusoidal f=400; t=0:1/Fs:(20e-3)-1/Fs; x=sin(2*pi*f*t); case 2, %Senal de Voz voz=wavread('C:\PDV\a'); %Utilizando una trama para optimizar el analisis x=voz(10000:10159); t=0:1/Fs:(159/8000); x=x';

end figure; subplot(3,2,1); plot(t,x); title('Seal de entrada (Sinusoidal/Voz)'); xlabel('Tiempo'); ylabel('Amplitud'); grid on subplot(3,2,3); stem(t(1:length(ventana)),ventana); title('Ventana(Rectangular/Hamming)'); xlabel('Tiempo'); ylabel('Amplitud'); grid on %Ponderacion en tiempo sp=x.*(ventana); subplot(3,2,5); plot(t,sp); title('Respuesta de la seal al aplicar la ventana'); xlabel('Tiempo'); ylabel('Amplitud'); grid on %Analisis en Frecuencia de la Senal es=abs(fft(x,512)); es=fftshift(es); frec=(Fs*(0:255)/512); %Analisis en frecuencia de la ventana ev=abs(fft(ventana,512)); ev=fftshift(ev); frec=(Fs*(0:255)/512); %frecaux=[-frec(length(frec):-1:2) frec ] %La frecaux comentada tambien es una forma de centrar el espectro de %frecuencia. frecaux=-4000:8000/511:4000; %Grafica del espectro de la senal subplot(3,2,2); plot(frecaux,es); title('Espectro de seal de entrada(Sinusoidal/Voz)'); xlabel('Frecuencia (Hz)'); ylabel('Magnitud'); grid on %Grafica del espectro de la ventana subplot(3,2,4); plot(frecaux,ev);

title('Espectro de la ventana(Rectangular/Hamming)'); xlabel('Frecuencia (Hz)'); ylabel('Magnitud'); grid on %Ponderacion de espectros sp=es.*(ev); subplot(3,2,6); plot(frecaux,sp); title('Respuesta de la seal al aplicar la ventana'); xlabel('Frecuencia (Hz)'); ylabel('Magnitud'); grid on

You might also like