´ Instituto Tecnologico y de Estudios Superiores de Occidente Departamento de Electr´nica, Inform´tica y Sistemas o a

Tutorial Matlab/Octave Introducci´n al procesamiento de audio o
L. M. Bazdresch

Agosto 2009

y chan es el n´ mero de canales deseados. Utilizando el paquete aaudio. la instalaci´n de Octave incluye un paquete de procesamiento o de audio y de se˜ ales con los comandos que usaremos aqu´ En Linux. c h a n n e l s .WAV: [ x . El paquete de audio es viejo. M. f s .uio. b i t s ] = wavread ( f i l e n a m e ) .Tutorial Octave: Procesamiento de audio L. y filename u e es el nombre del archivo . El c´digo presentado en este tutorial o ha sido probado s´lo en Octave. chanu ] = a u r e c o r d ( t . bits es el n´ mero de bits por muestra (tambi´n tomado del encabezado). la grabaci´n se puede hacer con el comando: o Y = a r e c o r d ( fr a mes . en Matlab pudiera ser necesario hacer algunos o ajustes.WAV). f s . Las muestras de audio se regresan en la matrix x. instalar los paquetes a mano. o Lectura de archivo Octave incluye un comando para leer un archivo . Es posible que la u tarjeta de sonido no soporte la frecuncia de muestreo o el n´mero de canales u que se pidieron. donde t es el tiempo que se desea que dure la grabaci´n.shtml. utilizando la tarjeta de sonido. En Windows. Bazdresch Este tutorial presenta algunas de las herramientas b´sicas para iniciarse en el a procesamiento de audio en Matlab/Octave. Grabaci´n o Para grabar directamente de un micr´fono.WAV entre comillas simples. 1 . Fuentes de audio Octave tiene dos formas generales de leer una fuente de audio. se recomienda instalar en su lugar el paquete aaudio disponible en http://folk. se puede usar el comando aurecord o del paquete de audio: [ x . en las variables fsu y chanu regresa los valores que realmente se usaron.no/fl/aaudio. f s u . Una es leyendo un archivo con las muestras de audio (por ejemplo. un archivo . donde x es una matriz con una columna por cada canal de audio. es necesario n ı. Otra es grabando audio directamente de un micr´fono. fs es la frecuencia de muestreo (especificada en el encabezado del archivo . fs es la frecuencia de o muestreo deseada.WAV). Los que se necesitan son audio y signal. f s ) . chan ) .

Audacity. etc´tera). y la canci´n n o contiene frecuencias hasta unos 22kHz. la siguiente figura n o muestra el espectro de magnitud de nueve segundos de una cancion. Windows Media Player. Con una se˜ al que generalmente contiene muchas frecuencias y es n de larga duraci´n (decenas o centenas de segundos). No se puede observar gran cosa: las frecuencias bajas tienen m´s energ´ que las altas. An´lisis en frecuencia a Junto con el procesamiento del audio. se pueden usar los comandos sound ( x . u Destinos del audio Una vez que el audio ha sido le´ y procesado.WAV La forma m´s f´cil de escribir un archivo de audio es con wavwrite: a a wavwrite ( x . e Reproducci´n o Para reproducir el audio desde Octave. vlc. e Escritura de archivos .donde frames es el n´ mero de muestras que se quiere capturar. WinAmp. f s . a ıa y a partir de unos 5000-8000Hz la se˜ al tiene pocas componentes.WAV que resulta puede ser reproducido fuera de Octave con cualquier programa de audio (mplayer. Por ejemplo. Sin embargo. f s ) del paquete audio o bien aplay (x . iTunes. y fs es la frecuencia de muestreo. b i t s . la transformada de Fourier pierde la informaci´n o de c´mo cambian las frecuencias con el tiempo. se pueden hacer dos cosas ıdo con ´l: grabarlo en un archivo o reproducirlo. f s ) del paquete aaudio. es conveniente poder analizarlo en frecuencia. que es lo que se espera de una se˜ al n tomada de un CD. f i l e n a m e ) donde las variables tienen el mismo significado que en wavread. o 2 . la transformada de Fourier o directa de la se˜ al no da mucha informaci´n. El archivo . channels es el u n´ mero de canales.

014 Espectro de Magnitud 0. La siguiente o figura muestra el espectrograma de la misma canci´n. o n=16.01 Amplitud 0. fs=44.004 0.012 0.0. la n informaci´n frecuencial de cada intervalo se aprecia con colores.002 0 -30000 -20000 -10000 0 Frecuencia (Hz) 10000 20000 30000 El espectrograma suele ser m´s util para el an´lisis de audio. Es una figura a a tridimensional que rescata la din´mica temporal de la canci´n.1e3 20000 15000 frecuencia 10000 5000 0 0 1 2 3 4 tiempo 5 6 7 8 9 El c´digo para generar este espectrograma es el siguiente: o 3 .008 0.006 0. La se˜ al se divide a o n en intervalos muy peque˜ os y se obtiene la transformada de cada intervalo.

t ] = specgram ( x .1 e3 ’ ) . e n t r e c o m i l l a s s i m p l e s function s p e c g r ( f i l e n a m e ) %%% % l e e r un c a n a l d e l a r c h i v o o r i g i n a l [ y . % print −c o l o r b1 6 r 4 4 1 . log10 ( S ) ) . : ) ) . % pa r a metr o s que n e c e s i t a specgram s t e p = f i x ( 5 ∗ Fs / 1 0 0 0 ) . % s i g u i e n t e p o t e n c i a de dos [ S . % mo str a r en e s c a l a ´l o g a r t m i c a ı s et ( gca ( ) . cl ear y . f . eps % pa r a g r a b a r l a imagen en a r c h i v o 4 . ylabel ( ’ f r e c u e n c i a ’ ) . % venta na de d a t o s de 20 f f t n = 2ˆnextpow2( window ) . Fs ]=wavread ( f i l e n a m e ) . xlabel ( ’ tiempo ’ ) . % n o r m a l i z a r magnitud pa r a que e l ´mximo s e a 0 d a S = max( S . 1 0 ˆ ( − 6 0 / 1 0 ) ) . x=y ( : . wav que c o n t i e n e e l a udio % hay que p a s a r e l nombre como s t r i n g . 1 0 ˆ ( 0 / 1 0 ) ) . f f t n . t i t l e ( ’ n=16 . % graficacion fi gure ( 1 ) . f . imagesc ( t . Fs . % magnitud en e l r a ng o 0<=20000 Hz S = S/max( S ( : ) ) . S = abs ( S ( 2 : f f t n ∗20000/ Fs .% ´ f u n c i n pa r a g e n e r a r e s p e c t r o g r a m a s de una n s e a l de a udio o ˜ % argumento de e n t r a d a : e l nombre d e l a r c h i v o . % r eba na da s e s p e c t r a l e s de 5ms window = f i x (2 0 ∗ Fs / 1 0 0 0 ) . window . window−s t e p ) . % c l i p a r r i b a de 0 dB . f s =44. ” normal ” ) . e s d e c i r . 1 ) ’ . ” y d i r ” . % c l i p a b a j o de −60 dB S = min( S .

Sign up to vote on this title
UsefulNot useful