You are on page 1of 6

463

INSTITUTO MEXICANO DE ACSTICA


UNIVERSIDAD DE GUANAJUATO




14o CONGRESO INTERNACIONAL MEXICANO DE ACSTICA

14th MEXICAN INTERNATIONAL CONGRESS ON ACOUSTICS

LEON, GUANAJUATO, MEXICO
14 - 16 NOVIEMBRE, 2007





M5 - Software para obtener el espectro en
frecuencia de las muestras de un archivo WAV
empleando la TFD
Jimnez-Hernndez, M.
1
, Negrete-Redondo, J.
2
, Pea-Guerrero, M.
3





464

Resumen - El espectro en frecuencia de una seal
permite identificar sus componentes de onda ms
representativos y su energa. Este proceso es general para
cualquier tipo de seal, obteniendo aplicaciones en
diversas reas de la acstica como el anlisis del timbre en
instrumentos musicales y procesos de reconocimiento de
voz. La seal se captura con una frecuencia de muestreo
que permite obtener el espectro sin prdidas de
informacin, esta seal se almacena en un archivo WAV, se
realiza su anlisis en una porcin de su intervalo de
muestras empleando el proceso de ventaneo digital, y por
ltimo se realiza un algoritmo de Transformada de Fourier
en las muestras. Este articulo presenta los elementos
utilizados en la elaboracin de un software desarrollado en
lenguaje C#, que permite graficar las muestras de dos
archivos WAV y obtener sus espectros en frecuencia de las
primeras 512 muestras empleando la Transformada de
Fourier Discreta (TFD).

Palabras clave Archivo RIFF, Archivo WAV, Espectro en
Frecuencia, Transformada de Fourier Discreta, Ventana de
Hamming.

Abstract - The spectrum in frequency of a signal allow
identify the wave components in frequency more
representatives and their energy. This process is general
for whatever signal, we can find applications in some fields
of acoustics like the analysis of tones in musical
instruments and speech recognition. The signal is captured
with a sampling frequency, that allow get the spectrum
without loss information, the signal is store in a file WAV,
the signal is analyzed in a interval of samples using the
method of digital windowing, finally a algorithm of Fourier
Transform is realized in the samples. This paper present
the different elements employed in the elaborating of a
software design in C# language, it get graphic the samples
of two WAV files and get the spectrum in frequency of the
first 512 samples using the Discrete Fourier Transform.


1
Jimnez Hernndez M. Academia de Fsica.
2
Negrete Redondo J.,
3
Pea Guerrero M., Academia de Acstica.

Escuela Superior de Ingeniera Mecnica y Elctrica Zacatenco,
Instituto Politcnico Nacional de Mxico. Av. IPN s/n. UPALM. Col.
Lindavista. Mxico 07738, D. F. Mxico.
E-mail: mjimenezh@ipn.mx
1
, josejnegreter@yahoo.com.mx
2
,
mpenag@ipn.mx
3
Key words RIFF File, WAV File, Frequency Spectrum,
Discrete Fourier Transform, Hamming Window.
I. INTRODUCCIN
En la actualidad, el anlisis de seales en el dominio
de la frecuencia esta presente en muchos avances
tecnolgicos que el ser humano utiliza en su vida diaria,
desde los reproductores de msica en formatos
comprimidos, hasta en trasmisiones de seales en
sistemas analgicos y digitales como son la radio, la
televisin y celulares. Su gran utilizacin se basa en el
hecho de que permite poder conocer el comportamiento
de una seal en el dominio de la frecuencia, logrando
con esto poder reconstruir las seales a partir de sus
componentes, sin tener que conocer las muestras de la
seal en el dominio del tiempo.

El avance tecnolgico de los microprocesadores,
permite una mayor velocidad de procesamiento de datos
en tiempo real, logrando con esto que procesos
analgicos en seales, sean implementados en forma
digital. El empleo de estos procesos digitales permite que
una vez que ha sido muestreada la seal a tratar, no
exista prdida de informacin en procesos de
transmisin y recepcin, adems de poder conocer sus
caractersticas ms significativas como su espectro en
frecuencia y su contenido de energa.
II. MUESTREO DE SEALES EN TIEMPO DISCRETO
Para poder convertir las seales analgicas a seales
digitales, se deben capturar muestras de la seal
analgica en espacios de tiempo iguales y continuos, de
tal manera que la forma de onda de la seal original se
pueda recuperar mediante interpolacin [1]. La eleccin
de la frecuencia de muestreo para una seal dada
depende de que tan rpido cambia la seal con el
tiempo. La Figura 1 representa el muestreo de una seal
analgica en una seal digital discreta.

Para lograr esto, se utiliza el criterio de Nyquist [2], que
establece que para que en una seal no exista perdida
de informacin, esta debe ser muestreada al doble de su
frecuencia mxima de trabajo. Un ejemplo claro, es la
frecuencia de muestreo del audio digital, debido a que la
frecuencia mxima que escucha un humano en promedio
M5 - Software para obtener el espectro en
frecuencia de las muestras de un archivo
WAV empleando la TFD
Jimnez-Hernndez, M.
1
, Negrete-Redondo, J.
2
, Pea-Guerrero, M.
3





465
es de 20 Khz. [3], bastar con tomar muestras al doble,
el estndar establecido es de 44,100 muestras por
segundo [4].

Fig. 1. Muestreo Digital de una Seal Analgica.

Si no se realiza el muestreo utilizando este criterio y se
hace con una frecuencia menor, se produce el fenmeno
de alisamiento [5], el cual proporciona una
representacin errnea de la seal. Una vez capturada la
seal con este error no se puede reconstruir o corregir de
ninguna manera. La Figura 2 representa el muestreo de
la seal analgica de la Figura 1 con una frecuencia de
muestreo menor a la requerida, lo que produce
alisamiento en la seal reconstruida al aplicarle
interpolacin a sus muestras. La expresin del teorema
de Nyquist es la siguiente:

fm Vm 2 = (1)


Donde:
= Vm Velocidad de muestreo a la cual se toman las
muestras digitales de la seal.
= fm Frecuencia mxima de trabajo contenida en la
seal de prueba.


Fig. 2. Alisamiento Digital de una seal Analgica.
III. TIPOS DE VENTANAS DIGITALES
Una seal puede tener una duracin finita en un
intervalo de tiempo muy grande, sin embargo un anlisis
de la seal en todas sus muestras resultara inadecuado.
Para evitar este problema se utilizan intervalos de
muestras de la seal denominados ventanas [6]. El
mecanismo de ventaneo, consiste en dividir la seal a
analizar en intervalos de duracin finitos, los cuales son
tomados de manera consecutiva a lo largo de la seal.

Las muestras de la seal que se encuentran en los
extremos de una ventana tienen menor peso que las que
se encuentran en medio, esto permite que las
caractersticas de las muestras en los extremos no
causen una mala interpretacin de lo que ocurre en la
parte central dentro de un proceso especfico. Las
ventanas pueden ser colocadas de manera que existan
solapamientos [7] en sus extremos analizando
nicamente los intervalos centrales, logrando con esto
una mejor calidad en los resultados. La Figura 3 muestra
el solapamiento de una seal utilizando ventanas tipo
Hamming.


Fig. 3. Solapamiento de ventanas en una seal.

La duracin de una ventana determina la cantidad de
cambios que se pueden obtener, para una duracin
temporal larga se omiten los cambios locales producidos
en la seal, mientras que con una duracin demasiado
corta se reflejan los cambios puntuales y se reduce la
resolucin espectral [8].

Al utilizar una ventana se hace que se convolucione la
transformada de Fourier de la seal con la transformada
de Fourier de la ventana [9], debido a esto se debe de
elegir la ventana que produzca menos distorsin durante
el proceso que se realiza. La tabla 1 muestra las
principales ventanas utilizadas en el tratamiento de
seales discretas.

La ventana rectangular (Rectangle) permite trabajar
con un intervalo de la seal de manera natural sin
realizar ningn proceso sobre las muestras, sin embargo
tiene la desventaja de que al convolucionar el espectro
de su Transformada de Fourier genera distorsin en el
resultado, otros tipos de ventanas producen menos
distorsin; en el caso de este proyecto se elige la
ventana de Hamming, porque al convolucionar su
transformada de Fourier con la seal de prueba no
distorsiona los resultados dentro del lbulo principal de





466
trabajo. La tabla 2 muestra las caractersticas de cada
ventana.

TABLA 1. TIPOS DE VENTANAS DIGITALES.

Ventanas w(n), 0 < n < M 1


Bartlett
1
2
1
2
1

M
m
n


Blackman
1
4
cos 08 . 0
1
2
cos 45 . 0 42 . 0

M
n
M
n

Hamming
1
2
cos 46 . 0 54 . 0

M
n


Hanning
1
2
cos 5 . 0 5 . 0

M
n


Rectangl
e
2
1
0
T
n =

TABLA 2. CARACTERISTICAS DE LAS VENTANAS DIGITALES.

Ventanas Ancho del
Lbulo
Pico del
Lbulo (dB)
Bartlett
m / 8
- 27
Blackman
m / 12
- 58
Hamming
m / 8
- 43
Hanning
m / 8
- 32
Rectangle
m / 4
- 58
IV. TRANSFORMADA DE FOURIER DISCRETA
La transformada de Fourier es una herramienta
matemtica que permite representar una seal dada en
el dominio del tiempo en sus componentes armnicos en
el dominio de la frecuencia. La seal original se
descompone en seales ortogonales de senos y csenos
con amplitudes respectivas para cada uno de los
componentes, con lo que se logra conocer el espectro en
frecuencia de cualquier seal dentro de un intervalo de
frecuencias previamente definido.

La Transformada de Fourier discreta (TFD) es el
equivalente de la Transformada de Fourier en tiempo
continuo, pero aplicada a seales en el dominio del
tiempo discreto [9]. Igual que su contraparte permite
tener una representacin en el dominio de la frecuencia
de una seal muestreada en forma discreta. La TFD se
representa por la siguiente ecuacin:

( )

1
0
2
1
N
k
N
nk
j
e kT m
N NT
n
F

(2)

Donde:
= N Nmero de muestras que componen la ventana.
= T Periodo de muestreo.
= n ndice de la frecuencia que se desea calcular.
( ) = kT m Valor de la muestra en el instante KT.
V. FORMATO DE AUDIO DIGTAL WAV
El formato WAV (Waveform Audio File Format) es un
formato creado por Microsoft. Es un subconjunto de
especificaciones RIFF (Resourcen Interchange File
Format) de Microsoft para formatos multimedia. El
formato RIFF almacena segmentos (Chunks) de
informacin multimedia, su descripcin, su formato, y su
lista de reproduccin. El formato WAV se almacena
dentro de un archivo con formato RIFF, en el cual se
definen todos los segmentos que puede contener [4].

El archivo RIFF lleva una cabecera de 8 bytes, los
primeros 4 bytes forman un campo que identifican al
archivo teniendo en su contenido el identificador RIFF;
los otros 4 bytes especifican la longitud de los datos a
partir de la cabecera (esto es, la longitud total del archivo
menos 8). Despus de la cabecera RIFF hay 4 bytes que
identifican el tipo de datos que contiene el archivo, para
el caso de un archivo tipo WAV estos 4 bytes contienen
el identificador WAVE.

Del conjunto de segmentos que definen el formato
WAV dos son obligatorios: el segmento de formato y el
segmento de datos. El segmento de formato debe
aparecer antes que el segmento de datos. La tabla 3
muestra los componentes que forman la cabecera de un
archivo WAV.

TABLA 3. CABECERA DE UN ARCHIVO WAV.

Bytes Contenid
o
Descripcin
00 - 03 RIFF Cabecera
04 - 07 ----- Tamao
08 - 11 WAVE Formato
12 - 15 Fmt Extensin
16 - 19 16 Formato 1
20 - 21 1 Formato 2
22 - 23 1, 2 Num. Canales
24 - 27 ----- Frec. Muestreo
28 - 31 ----- Bytes x Seg.
32 - 33 1, 2, 4 Bytes x Captura
34 - 35 8, 16 Bits x Muestra
36 - 39 Data Nom. Segmento
40 - 43 ------ Num. Muestras
44 - n ------ Muestras

Al final del segmento del contenido de la cabecera,
comienza el rea de datos donde se almacena la
informacin de audio. El almacenamiento de los datos en
un archivo WAV se realiza sin hacer algoritmos de
comprensin a diferencia de otros formatos como es el





467
caso del MP3. La estructura de la secuencia de datos
depende de la frecuencia de muestreo, el nmero de
canales y el nmero de bytes por muestra en que fueron
capturados.

Cuando un archivo se encuentra en formato
monoestero las muestras se almacenan en forma
consecutiva, si el archivo esta en formato estreo se
almacenan en forma alternada una muestra por cada
canal. Si cada muestra es de 8 bits entonces representa
un byte de informacin y si es de 16 bits dos bytes. La
informacin de las muestras se guarda en forma de
caracteres ASCII (American Standar Code for Information
Interchange).
VI. SOFTWARE DESARROLLADO
El software desarrollado en este proyecto es una
herramienta computacional que permite obtener el
espectro en frecuencia de las primeras 512 muestras de
un archivo WAV previamente almacenado en una
computadora. Las muestras de las seales contenidas
en los archivos se almacenan en memoria, se genera
una ventana de Hamming y se convoluciona en el
dominio del tiempo con las muestras de la seales
originales, a los valores resultantes se les aplica la
Transformada de Fourier Discreta.

Para realizar el software se uso el lenguaje de
programacin C# [10], utilizando el compilador Visual
Studio.NET 7.1 y la herramienta .NET Framework 1.1. El
programa se realizo en una PC COMPAQ Presario 2100
bajo el sistema operativo Windows XP Home Edition. La
interfaz grfica est desarrollada en base a una
aplicacin tipo formulario [11], est dividida en dos reas,
la primera muestra la ruta y el nombre de los archivos
WAV que se van a analizar junto con los elementos que
forman su cabecera (tabla 3). La segunda rea se divide
en cuatro secciones: la primera y la segunda muestran la
grfica de las primeras 512 muestras de las seales
contenidas en los archivos de trabajo, en la Figura 4 se
muestran las dos secciones.



Fig. 4. Graficas de las muestras de dos archivos WAV.

La primera seccin muestra la vocal a, la segunda
seccin muestra la seal de un armnico a 500 Htz
generado de manera digital. Se hace esta comparacin
para observar la diferencia entre un armnico puro
dentro del intervalo de frecuencias del espectro de la
vocal a, con el espectro de la misma vocal.

Los archivos presentados en este artculo estn en
formato monoestereo con muestras de 8 bits y una
frecuencia de muestreo de 11,025 Htz.
VII. RESULTADOS
El resultado de la convolucin en tiempo de la ventana
de Hamming con las muestras de las seales originales
se guarda en memoria para obtener su Transformada de
Fourier Discreta. La tercera y cuarta seccin de la
segunda rea de la interfaz grfica muestran el espectro
en frecuencia de las muestras convolucionadas para
cada archivo. nicamente se grafica el intervalo de
frecuencias positivas. Debajo del eje x, se colocan los
indicadores para 10 intervalos de frecuencia, estos se
determinan a partir de la frecuencia de muestreo del
archivo de prueba.La Figura 5 presenta los espectros en
frecuencia de las muestras de los archivos de la Figura
4, la parte superior corresponde al espectro de las
muestras del archivo de la vocal a y la parte inferior al
espectro de las muestras del archivo del armnico a 500
Htz.



Fig. 5. Espectro en frecuencia de las muestras de
los archivos WAV de la Figura 4.







468

Fig. 6. Interfaz grfica del software desarrollado.



La interfaz grfica completa del software desarrollado
se observa en la Figura 6, las secciones derecha e
izquierda presentan la informacin contenida en las
cabeceras de los archivos WAV utilizados para este
articulo, en la parte superior central se encuentra la
ubicacin de los archivos dentro de la PC y las secciones
centrales presentan las grficas de las muestras de los
archivos de prueba y sus espectros en frecuencia.
VIII. CONCLUSIONES
La frecuencia de muestreo que proporciona menor
perdida de informacin en el procesamiento digital de
seales de voz, es de 11,025 muestras por segundo.

La ventana Hamming presenta las caractersticas mas
apropiadas para obtener el espectro en frecuencia de
una seal de voz.

El espectro en frecuencia que se obtiene por medio de
la Transformada de Fourier Discreta, tiene una
resolucin espectral definida por el nmero de muestras
que forman la ventana de trabajo elegida.

El formato WAV permite usar las muestras capturadas
en forma directa, sin realizar ningn proceso de
descompresin
REFERENCIAS
[1] Chapra Steven C., Canale Raymond P., Numerical
Methods for Engineers: With Software and Programming
Applications, Fourth Edition, Mc Graw Hill, USA, 2002.

[2] Hayes Monson H., Digital Signal Processing. Mc Graw
Hill, USA, 1999.

[3] Yost William A., Fundamentals of Hearing: An
Introduction, Fourth Edition, Academic Press, USA, 2000.

[4] Bernal Bermdez Jess, Bobadilla Sancho Jess, Gmez
Vilda Pedro, Reconocimiento de Voz y Fontica Acstica,
RA-MA, Espaa, 2000.

[5] Proakis John G., Manolakis Dimitris G., Digital Signal
Processing: Principles, Algorithms and Applications,
Third Edition, Prentice Hall, USA, 1996.

[6] Oppenheim Alan V., Schafer Ronald W., Digital Signal
Processing, Prentice Hall, USA, 1975.

[7] Oppenheim Alan V., Schafer Ronald W., Buck John R.,
Discrete Time Signal Processing, Prentice Hall, USA,
1999.

[8] Meade M. L., Dillon C. R., Signals and Systems: Models
and Behavior, Second Edition, Chapman & Hall,
Inglaterra, 1991.

[9] Kalouptsidis Nicholas. Signal Processing Systems: Theory
and Design, Wiley Interscience, USA, 1997.

[10] Schildt Herbert, C# The Complete Reference, Mc Graw
Hill, USA, 2002.

[11] Petzold Charles, Programming Microsoft Windows with
C#, Mc Graw Hill, USA, 2002.

You might also like