muestreo de voz

Upload: yhorcy-beto-a-diaz

Post on 13-Jul-2015

563 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

MUESTREO DE VOZINTRODUCCION:En el presente documento veremos la transformada de Fourier (discreta) mediante MatLab, con el comando FFT. Como se va a trabajar en el dominio de las frecuencias, podremos analizar y observar los diferentes espectros de frecuencias y modificar la seal para luego filtrar con el filtro digital Butterworth(n, Wn).

OBJETIVOS: Se propuso los siguientes objetivos para el desarrollo del proyecto. Verificar y analizar las caractersticas ms importantes de las seales de

sonido y audio. Aplicar la transformada discreta de Fourier para analizar el espectro de

frecuencia de la seal de audio. Demostrar las aplicaciones de la transformada de Fourier. Implementar todos los conocimientos adquiridos en la materia a travs del

semestre transcurrido. Disear y desarrollar el software para el presente proyecto.

MARCO TEORICO:La Transformada de Fourier es una herramienta matemtica que tiene un uso muy amplio en lo referente al tratamiento digital de seales, se encuentra implementada bajo la forma de dispositivos electrnicos de reconocimiento de voz e imagen; puede ser aplicada a varios campos como anlisis espectral, ecuaciones diferenciales, resolucin de problemas elsticos estacionarios y dinmicos, etc. El presente trabajo, enlaza los aspectos tericos con la aplicacin prctica de la Transformada de Fourier en el procesamiento digital de SEALES mediante el desarrollo de aplicaciones que implementan los algoritmos de la Transformada Discreta de Fourier,

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

Importancia El desarrollo matemtico de la transformada de Fourier fue explicado por Jean Baptiste Joseph Fourier, en su libro la Teora Analtica del Calor, publicado en 1822; posteriormente, en 1965 Cooley y Tukey publicaron su artculo Un algoritmo para calcular las Series de Fourier Complejas, el cual es conocido como algoritmo FFT (Fast Fourier Transform) y que con el desarrollo acelerado de las computadoras digitales ha permitido la aplicacin de la FFT a diferentes campos. Su aplicacin al procesamiento de imgenes se encuentra documentado en los libros especficos sobre la materia a un nivel terico, en los que no se expone directamente, la forma de implementacin de los diferentes algoritmos, y en el mejor de los casos presentan una descripcin narrativa del algoritmo, como ejemplo se puede revisar el libro Digital Image Processing de Gonzlez y Woods. Por otra parte, los libros especficos sobre la Transformada Rpida de Fourier, se centran su aplicacin mayormente a la fundamentacin matemtica y explicacin de los algoritmos, presentando aplicaciones ms orientadas al Procesamiento Digital de Seales, que corresponde al campo de la Electrnica. Transformada Discreta de Fourier:En matemticas, la transformada discreta de Fourier o DFT (del ingls, discrete Fourier transform) es un tipo de transformada discreta utilizada en el anlisis de Fourier. Transforma una funcin matemtica en otra, obteniendo una representacin en el dominio de la frecuencia, siendo la funcin original una funcin en el dominio del tiempo. Pero la DFT requiere que la funcin de entrada sea una secuencia discreta y de duracin finita. Dichas secuencias se suelen generar a partir del muestreo de una funcin continua, como puede ser la voz humana. Al contrario que la transformada de Fourier en tiempo discreto (DTFT), esta transformacin nicamente evala suficientes componentes frecuenciales para reconstruir el segmento finito que se analiza. Utilizar la DFT implica que el segmento que se analiza es un nico perodo de una seal perodica que se extiende de forma infinita; si esto no se cumple, se debe utilizar una ventana para reducir los espreos del espectro. Por la misma razn, la DFT inversa (IDFT) no puede reproducir el dominio del tiempo completo, a no ser que la entrada sea peridica indefinidamente. Por estas razones, se dice que la DFT es una transformada de Fourier para anlisis de seales de tiempo discreto y dominio finito. Las funciones sinusoidales base que surgen de la descomposicin tienen las mismas propiedades. La entrada de la DFT es una secuencia finita de nmeros reales o complejos, de modo que es ideal para procesar informacin almacenada en soportes digitales. En particular, la DFT se utiliza comnmente en procesado digital de seales y otros campos relacionados dedicados a analizar las frecuencias que contiene una seal muestreada, tambin para resolver ecuaciones diferenciales parciales, y para llevar a cabo operaciones como convoluciones o multiplicaciones de enteros largos. Un factor muy importante para este tipo de aplicaciones es que la DFT puede ser calculada

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTOde forma eficiente en la prctica utilizando el algoritmo de la transformada rpida de Fourier o FFT (Fast Fourier Transform). Los algoritmos FFT se utilizan tan habitualmente para calcular DFTs que el trmino "FFT" muchas veces se utiliza en lugar de "DFT" en lenguaje coloquial. Formalmente, hay una diferencia clara: "DFT" hace alusin a una transformacin o funcin matemtica, independientemente de cmo se calcule, mientras que "FFT" se refiere a una familia especfica de algoritmos para calcular DFTs. Definicin La secuencia de N nmeros complejos x0, ..., xN1 se transforma en la secuencia de N nmeros complejos X0, ..., XN1 mediante la DFT con la frmula:

donde i es la unidad imaginaria y es la N-sima raz de la unidad. (Esta expresin se puede escribir tambin en trminos de una matriz DFT; cuando se escala de forma apropiada se convierte en una matriz unitaria y Xk puede entonces ser interpretado como los coeficientes de x en una base ortonormal.) La transformada se denota a veces por el smbolo . , igual que en o o

La transformada inversa de Fourier discreta (IDFT) viene dada por

Una descripcin simple de estas ecuaciones es que los nmeros complejos Xk representan la amplitud y fase de diferentes componentes sinusoidales de la seal de entrada xn. La DFT calcula Xk a partir de xn, mientras que la IDFT muestra cmo calcular xn como la suma de componentes sinusoidales con una frecuencia de k / N ciclos por muestra. Escribiendo las ecuaciones de este modo, estamos haciendo un uso extensivo de la frmula de Euler para expresar sinusoides en trminos de exponentes complejas, lo cual es mucho ms sencillo de manipular. Del mismo modo, escribiendo Xk en forma polar, obtenemos una sinudoide de amplitud Ak / N y fase k a partir del mdulo y argumento complejos de Xk, respectivamente:

donde atan2 es la forma bi-argumental de la funcin arcotangente. Ntese que el factor de normalizacin que multiplica a la DFT y la IDFT (que son 1 y 1/N) y los signos de los exponentes se colocan meramente por convenio, y varan dependiendo de la aplicacin. El nico requisito para este convenio es que la DFT y la IDFT tengan exponentes de signo opuesto y que el producto de

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

sus factores de normalizacin sea 1/N. Una normalizacin de para ambas DFT y IDFT hace las transformadas unitarias, lo cual tiene ciertas ventajas tericas, pero suele ser ms prctico a la hora de efectuar operaciones numricas con el ordenador efectuar el escalado de una sla vez (y un escalado unitario suele ser conveniente en otras ocasiones). (El convenio del signo negativo en el exponente suele ser adecuado porque significa que Xk es la amplitud de una "frecuencia positiva" 2k / N. De forma equivalente, la DFT se suele considerar como un filtro adaptado: cuando se busca una frecuencia de +1, se correla la seal de entrada con una frecuencia de 1.) En adelante, los trminos "secuencia" y "vector" sern considerados equivalentes.

Filtro digital: Como regla general, cualquier algoritmo o sistema de tratamiento puede interpretarse como un filtro. Aqu se entiende por filtro aquel sistema lineal e invariante que permite el paso de las componentes de la seal existentes en un determinado intervalo frecuencial, y elimina las dems. De forma ideal, el mdulo de la respuesta frecuencial del filtro toma un valor constante en el margen de frecuencias que queremos conservar, que se denomina banda de paso. El intervalo de frecuencias complementario al anterior en que la respuesta en magnitud es nula se denomina banda de rechazo o atenuada. La banda de transicin es aquella que se sita entre dos bandas cuyas atenuaciones estn especificada, por tanto, se caracteriza porque no imponemos al filtro ningn requisito en dicho intervalo frecuencial dando libertad de esa forma al diseo del filtro siempre y cuando se cumplan los requisitos impuestos en la banda de paso y de rechazo. Los cuatro filtros bsicos, desde el punto de vista ideal del comportamiento del mdulo de la respuesta frecuencial, segn sea la posicin relativa de bandas de paso y bandas atenuadas, reciben el nombre de paso bajo, paso alto, paso banda y elimina banda, dependiendo de la parte del espectro de frecuencias en la que se centra la banda de paso. Por ejemplo, el paso bajo se caracteriza porque deja pasar todas las componentes frecuenciales de la seal en el rango bajo de las Frecuencias, por debajo de una determinada frecuencia de corte, siendo el resto de componentes atenuadas por el filtro. Es el tpico filtro que en amplificacin se emplea en una etapa previa al amplificador para que el ruido no se amplifique y llegue a saturar al mismo. El filtro paso alto presenta el comportamiento complementario al paso bajo; el filtro paso banda cancela las bajas y las altas frecuencias (bandas atenuadas inferior y superior), y conserva una banda determinada de frecuencias; el ltimo, presenta bandas de paso en baja y alta frecuencia, y una banda atenuada en un margen de frecuencias intermedio. 13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO En resumen los filtros ms importantes son estos:

Filtro paso bajo: atena las frecuencias altas y mantiene sin variaciones las bajas. El resultado en el dominio espacial es equivalente al de un filtro de suavizado, donde las altas frecuencias que son filtradas se corresponden con los cambios fuertes de intensidad. Consigue reducir el ruido suavizando las transiciones existentes. Filtro paso alto: atena las frecuencias bajas manteniendo invariables las frecuencias altas. Puesto que las altas frecuencias corresponden en las imgenes a cambios bruscos de densidad, este tipo de filtros es usado, porque entre otras ventajas, ofrece mejoras en la deteccin de bordes en el dominio espacial, ya que estos contienen gran cantidad de dichas frecuencias. Refuerza los contrastes que se encuentran en la imagen. Filtro paso banda: atena frecuencias muy altas o muy bajas manteniendo una banda de rango medio.

Filtro Butterworth: En diversas aplicaciones de los filtros pasa bajas se necesita que la ganancia en lazo cerrado se aproxime lo ms posible a 1 dentro de la banda de paso. Para este tipo de aplicacin lo mejor es el filtro Butterworth. A este tipo de filtro tambin se le conoce como filtro mximamente plano o planoplano. Los filtros Butterworth no se disean para mantener un ngulo de fase constante en la frecuencia de corte. EI filtro pasa bajas bsico de 20 dB/dcada tiene un ngulo de fase de 45 en la frecuencia wc. EI filtro Butterworth de 40 dB/dcada tiene un ngulo de fase de 90 en cl valor wc y el filtro de 60 dB/dcada tiene un ngulo de fase de 135 en wc. Por lo tanto, por cada aumento de 20 dB/dcada, el ngulo de fase aumenta en 45 en cl valor wc. Caractersticas: Tiene una respuesta mximalmente plana en f = 0 y f = 1. Banda de transicin es relativamente ancha.

Fig 3: Filtro Butterworth. 13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

Tcnica de diseo del Filtro Pasa bajos Butterworth. La tcnica que emplearemos ser la de disear un filtro Butterworth analgicamente, seguido de una transformacin del plano s al z. Los parmetros con las especificaciones de diseo los podemos encontrar en la fi Partimos de un prototipo de filtro pasabajos normalizado en el que usamos una frecuencia w normalizada. Para otro tipo de filtro se requerir la consiguiente transformacin de frecuencia. Para este tipo de filtro pasabajos normalizado la funcin de transferencia es: donde es un polinomio de grado n. El objetivo del diseo de un filtro es encontrar que mejor cumple la especificaciones. Para ello se utilizan algunas aproximaciones. 3.2.1 Aproximacin de Butterworth.: Existen 4 etapas de diseo: Normalizar la frecuencia de acuerdo a las especificaciones. Determinar el orden del prototipo de filtro pasabajos. Determinar la funcin de transferencia normalizada. Desnormalizar a travs de las transformaciones en frecuencia en 3. y 1. Aproximacin de Butterworth: Consiste en hacer .Esta aproximacion es tal que: Por lo tanto: Normalizaremos las frecuencias por la frecuencia limite de pasabanda fp, de forma que y A partir de y , podemos calcular los valores de y n. 3.2.2.- Ejemplo: Disear un filtro de Butterworth de pasabajos con las siguientes especificaciones: Una atenuacin de pasabanda que sea menor a 1dB a , una atenuacin de parabanda que sea mayor a 20dB para Desarrollo: Frecuencia normalizada:

Tomaremos como orden del filtro el entero ms cercano, en este caso n=5 Filtro de Butterworth normalizado: Se normaliza respecto a la frecuencia . Funcin de transferencia normalizada: Se trata de determinar a partir de . -Reemplazamos w2N por -s2. 13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

-Los polos los calculamos de: Estos resultados muestran que: Los polos normalizados estn sobre un circulo de radio 1 en el plano s. Los polos estn equidistantes a radianes con donde

se mide con respecto al eje positivo jw. Los polos nunca estarn sobre el eje jw. Si n es impar, siempre hay un par de polos reales en

FUNCIONAMIENTO: El funcionamiento y la sintaxis usada en el proyecto selo describe con detalle aqu.%Programa graba una voz en matlab, y la mezcla con un tono luego %con un filtro le quita el ruido y queda la voz limpia. %proyecto final. clear all clc tiempoReg = 5; %-Periodo de la grabacin fs = 44100; %-Frecuencia de muestreo NO MODIFICAR farm = 200; %-Frecuencia fundamental samples = fs*tiempoReg; %-Num de muestras display('************ ================================== **************'); display('************ MENU DE OPCIONES DE SEAL DE AUDIO **************'); display('****-------------- SISTEMAS LINALES I --------------------****'); display('**************** UNIV.:YORCY APAZA DIAZ **********************'); display('************ ===== PROYECTO FINAL ===== **********************'); display('.'); display('a) Muestreo de voz'); display('b) Recuperar una muestra de voz ya grabada'); display('c) Leer el archivo de sonido.wap'); display('.'); opcion=input('Elija una opcin xfavor: '); %debes oprimir una tecla if (opcion=='a'||opcion=='A') display('.'); display('Se muestrear a 44100Hz por 5 segundos'); input('Presiona cualquier tecla para empezar a grabar'); signal = wavrecord (samples,fs,1,'double'); display('.'); input('Presiona cualquier tecla para reproducir lo grabado'); wavplay ( signal,fs) %Para escuchar lo grabado display('.'); display('El registro de voz quedar en un archivo de disco: voz.dat'); [fid,message] = fopen ('voz.dat','wt'); fprintf(fid,'%f\n',signal);

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTOfclose(fid); elseif (opcion=='b'||opcion=='B') %debers oprimir b o B display('.'); display('Se tomar una frase ya grabada en disco') load voz.dat %Crea la variable vozQ12 signal=voz; clear voz; opcion=input('para escuchar el archivo oprima S:'); if (opcion=='s'||opcion=='S') wavplay ( signal,fs) %Para escuchar lo grabado end elseif (opcion=='c'||opcion=='C') %debers oprimir b o B display('.'); display('Se leera un archivo.wap en el disco') [y FS]=wavread('chimes.wav'); %yy=5*y(:,1); signal=y; clear y; opcion=input('para escuchar el archivo oprima M:'); if (opcion=='m'||opcion=='M') wavplay ( signal,fs) %Para escuchar lo grabado end else display('Error..! Argumentos incorrectos'); break end %******************************************************** % seal: oscilograma y espectro % % VARIABLES % signal : contiene oscilograma % signalw : contiene espectro % frecDomain : contiene dominio frecuencia %******************************************************** display('.'); display('*******************=============================***************' ); display('****************** SEAL: oscilograma y espectro **************'); display('*******************=============================***************' ); display('.'); display('Presione ENTER para observar el oscilograma y el espectro'); input('de la seal de voz'); %subplot(2,2,1); plot(Y); %subplot(2,2,2); plot(YY);

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTOfigure(1); plot(signal); title('Oscilograma de la seal de voz'); ylabel('Amplitud'); signalw=fft(signal,samples); %Clculo de la DFT frecDomain=fs*(0:samples-1)/samples; %Dominio de la frecuencia en Hz figure(2);plot(frecDomain(400:44100),abs(signalw(400:44100)));%exhibicin del espectro title('Espectro de la seal de voz'); display('.'); display('****************=====================================*********** '); display('*************** SEAL + RUIDO: oscilograma y espectro **********'); display('****************=====================================*********** '); display('.'); display('Presione ENTER para observar el oscilograma y el espectro'); input('de la seal + ruido'); t=(0:1/fs:tiempoReg); t=t(1:samples); % signall es la seal de entrada pero monofonico signall=6*signal(:,1); % en la variable u se almacena el tamao de la seal de entrada u=length(signall); % se genera un ruido de dimencion n igual a signall ruido=0.8*rand(u,1); %ruido=0.01*sin(2*pi*farm*t); noisySignal = (signall + ruido); figure(3);plot(noisySignal(1:samples)); title('Oscilograma de la seal + ruido'); ylabel('Amplitud'); noisySignalw=fft(noisySignal,samples); %Clculo de la DFT frecDomain=fs*(0:samples-1)/samples; %Dominio de la frecuencia en Hz figure(4);plot(frecDomain(400:44100),abs(noisySignalw(400:44100))); %exhibicin del espectro title('Espectro de la seal + ruido'); ylabel('Amplitud'); xlabel('Frecuencia en Hz'); opcion=input('Desea escuchar el archivo de la seal+ruido? oprima P: '); if (opcion=='p'|| opcion=='P') wavplay ( noisySignal,fs) %Para escuchar lo grabado con ruido end %******************************************************** % filtrado( seal + ruido): oscilograma y espectro %******************************************************** display('.'); display('********===============================================********' );

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTOdisplay('******* FILTRADO(seal + ruido): oscilograma y espectro *******'); display('********===============================================********' ); display('.'); %display('Presione una tecla para observar el oscilograma y el espectro'); %input('de la seal + ruido'); %Filtro supresor de banda orden=6; [b,a] = butter(orden,((farm+30)*2)/fs,'low'); filteredSignal=filter(b,a,noisySignal); display('Presione ENTER para observar el oscilograma y el espectro'); input('de la seal + ruido filtrada'); figure(5);plot(filteredSignal(1:samples)); title('Osilograma de la seal + ruido filtrada'); ylabel('Amplitud'); filteredSignalw=fft(filteredSignal,samples); %Clculo de la DFT frecDomain=fs*(0:samples-1)/samples; %Dominio de la frecuencia en Hz figure(6);plot(frecDomain(400:44100),abs(filteredSignalw(400:44100))); %exhibicin del espectro title('Espectro de la filtro seal + ruido'); ylabel('Amplitud'); xlabel('Frecuencia en Hz'); opcion=input('Desea escuhcar el archivo de la seal filtrada? oprima G: '); if (opcion=='g'||opcion=='G') wavplay ( 3*filteredSignal,fs) %Para escuchar lo grabado end %******************************************************** display('.'); display('Presione una tecla para observar la respuesta'); input('en frecuencia del filtro'); [H,W]=freqz(b,a,256); %256 muestras W=W*fs/(2*pi); figure(7);plot(W(1:128),abs(H(1:128))); display('************* El Programa a finalisado ************************** '); %++++++++++++++++++++ ++++++++fin +++++++++++++++++++++++++++++++++++

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

Seal de entrada:

Seal de entrada ms ruido:

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

Seal de entrada ms ruido filtrado:

Espectro de frecuencia del filtro de orden 5

13Universitario: Apaza Daz Yorcy Email: [email protected]

Sistemas Lineales I Y LABTorres

Doc.: Ing. Mximo

UNIVERSIDAD PBLICA AUTONOMA DE EL ALTO

CONCLUSIONES Y OBSERVACIONES:

La utilizacin de programas de simulacin y diseo como Matlab, tienen las ventajas primordiales de facilitar un entorno visual para un profundo anlisis matemtico y por sobre todo la capacidad de minimizar el tiempo de trabajo del diseo y anlisis del comportamiento de las seales espectrales. Es especialmente til poder visualizar con un programa como Matlab y sus herramientas, las diferentes seales al mismo tiempo para darnos una idea de lo que realmente est haciendo nuestro software. El presente trabajo nos sirvi para las aplicaciones prcticas de las transformadas de Fourier ya sea en tiempo continuo o discreto de un sistema real como es el caso de grabar en tiempo real la voz para luego aplicar un Filtro pasa bajos Butterworth y muestrear la seal en el dominio de la frecuencia. Llegndose as a concluir el proyecto con xito.

BIBLIOGRAFIA: Gonzalez, C., Woods, R. (2008). Digital Image Processing (3ra. Ed). New

Jersey. EE.UU: Prentice Hall Russ, J. (2006). The Image Processing Handbook, (5ta. Ed). EE.UU. CRC

Press Burger, W., James,M. (2007). Digital Image Processing: An Algorithmic

Introduction using Java. EE.UU.: Springer. James , J. (2003). Student's Guide to Fourier Transforms. EE.UU.

Cambridge University Press. Brigham, E. (1988). Fast Fourier Transform and Its Applications. New York.

Prentice Hall. James, G. (2002). Matemticas avanzadas para ingeniera. EE.UU..

Prentice Hall. 13Universitario: Apaza Daz Yorcy Email: [email protected]