Está en la página 1de 6

1

Efectos de Audio Digital en Tiempo Real Mediante


un FPGA
Juan Orellana(jorellana@est.ups.edu.ec), William Pauzhi(wpauzhi@est.ups.edu.ec), Edgar
Loja(eloja@est.ups.edu.ec), Diego Cabrera (dcabrera@ups.edu.ec)
Universidad Politcnica Salesiana - Sede Cuenca
Ingeniera Electrnica

ResumenEn el presente documento s implementan diferentes efectos de audio digital y tcnicas de filtrado en tiempo real
mediante un FPGA tipo Xilinx Zynq-7010 utilizando para ello un
lenguaje de alto nivel como es NI Labview que generara el cdigo
VHDL a implementarse en el hadware mencionado, previamente
se exponen las caractersticas matemticas de cada uno de los
efectos y el proceso que cumplen en el tratamiento de la seal,
anlogamente se programa y compar los resultados obtenidos
con los logrados utilizando Simulink en una computadora de
propsito personal, en los que se pueden apreciar claramente el
predominio del FPGA en cuanto a procesamiento en tiempo real
se refiere.
Index TermsProcesamiento, Efecto de audio, Filtro, Retardo,
FPGA.
AbstractIn this document we implemented several digital
and filtering techniques in real time using Xilinx Zynq-7010
FPGA. To achieve this we use a high level programming
language like NI LabView to generate the VHDL that will
be recorded in the hardware. We expose the mathematic
characteristics of each one of the effects and the impact
in the processing of the audio signal. We also compare
the results that we got with the FPGA and compare them
with those we obtained using Simulink in a personal computer
and we can apreciate the power of FPGA in real time processing.
Key TermsProcessing, Audio Effects, Filters, Delay, FPGA.

I.

I NTRODUCCIN

Los procesadores digitales como los de la familia


Xilinx Zynq-7010 estn especialmente diseadas con una
arquitectura apropiada para el tratamiento de la seal [10].
Siendo ampliamente utilizadas en comunicaciones, audio e
imagen dada su gran capacidad y rapidez de clculo, de
igual forma brinda gran versatilidad al ser reprogramable
y puede ser utilizada para diferentes aplicaciones [10][11],
por lo que ha sido seleccionada para la implementacin
de los diferentes efectos de audio digital, que bsicamente
se consiguen sumando a la seal original varias copias
retardadas y modificadas de diversas formas, entre los efectos
mas utilizados tenemos el eco, reverberacin y flanging
[3][9]. Actualmente existe software de edicin de audio
implementado en computadores multipropsito, que requieren
que se posea la seal grabada dndose una apreciacin tarda
de los efectos aplicados, por lo cual en el presente trabajo
se plantea conseguir un sistema de procesamiento de audio
digital en tiempo real mediante un FPGA [5][7].

El presente documento esta estructurado de siguiente


forma, en la seccin 2 se encuentra la Metodologa donde se
abordan los conceptos y teoras utilizadas para llevar a cabo
la investigacin planteada, posteriormente en la seccin 3 se
presenta lo resultados obtenidos y el correspondiente anlisis
de cada uno de ellos, finalmente en la seccin 4 se presentan
las conclusiones de los aspectos mas relevantes del presente
trabajo.

II.

M ETODOLOGA

En primera instancia se abordan los conceptos tericos de


los efectos de audio a utilizar y de igual forma la estructura
matemtica de cada uno de ellos, entorno a la implementacion
de dichos algoritmos en una FPGA se describen algunas
consideraciones tomadas para el correcto funcionamiento
tanto del software como hadware.

II-A.

Eco

Cuando se emite una seal en un espacio fsico cerrado, la


onda emitida se refleja en algn cuerpo y al retornar puede ser
percibida por la fuente sonora, en este caso el odo humano
[1].
La seal reflejada X(n) tendr un retraso (K) medido en
muestras, y un escalamiento (), dichos parmetros simulan
la distancia a la que la seal se reflejara, establecindose la
siguiente representacin matemtica[1].
X[n] = x[n k]
La sumatoria de la seal emitida con la reflejada generan
el efecto de eco, que se representa matemticamente como se
muestra a continuacin [2] .
y[n] = x[n] + X[n]
Donde:
x(n): Seal Emitida
X(n): Seal Reflejada
y(n): Seal obtenida con Eco
El digrama de bloques de la implementacin se puede
observar en la figura 1.

II-B2. Filtro Pasa-Todo: Es una modificacin de un filtro


peine que presenta una respuesta plana en amplitud, pero
no plana en fase provocando distintos retardos para distintas
frecuencias, la estructura de un Filtro Pasa-Todo se muestra a
continuacin en la figura 4 [2].

Figura 1. Eco

II-B.

Reverberacin

Este fenmeno se genera ya que al momento de emitir una


seal en un lugar cerrado por efectos de reflexin la seal
que percibe el odo humano es la suma total de las seales
reflejadas en las diferentes estructuras de un espacio fsico en
donde se emite la seal, las seales reflejadas contienen un
retardo que se genera por la distancia entre fuente del sonido
y las paredes u objetos donde se produce la reflexin [3].
El modelo utilizado para lograr dicho efecto se lo har
considerando el Reverberador Tardo de Schroeder [4], dicha
estructura esta basada en Filtros Peine y Filtros-Pasatodo,
como se puede observar en la figura 2.

Figura 4. Filtro pasa todo.

Agregando varios Filtros peine en paralelo el sonido de las


reflexiones llegan a la salida en periodos cortos de tiempo,
por lo cual no podremos distinguir cada rebote por separado
pero si podremos apreciar el efecto de todos los rebotes juntos,
que al pasar por dos filtros pasa todo generaran el efecto de
reverberancia natural [3].
La ecuacin del filtro pasa-todo es la siguiente:
y[n] = x[n N ] + g y[n N ] gx[n]

Figura 2. Reverberador de Schroeder

II-B1. Filtro Peine: Un filtro peine genera un retardo de


valor constante en la seal de audio original, y esto se usan
para crear rplicas de la seal en trayectoria directa, estas
replicas estn retrasadas en el tiempo y reducidas en amplitud,
caracterizado por la siguiente estructura matemtica [5].
y[n] = x[n] + g y[n N ]
Donde:
x(n): Seal Emitida.
g: Ganancia del Filtro.
N : Retraso medido en muestras.
y(n): Respuesta del Filtro Peine.
El diagrama de bloques de un filtro peine IIR se muestra
en la figura 3.

Donde:
x(n): Seal Emitida.
g: Ganancia del Filtro.
N : Retraso medido en muestras.
y(n): Respuesta del Filtro Pasa-Todo.
Para el diseo de la reverberacin tarda de Schroder se
debe tomar en cuenta el tiempo de retardo tanto para el Filtro
Pasa-Todo como del Filtro Peine, que puede ser calculado a
partir de la siguiente ecuacin [5].
=

N
fs

Donde:
: Tiempo de Retardo
N : Representa el orden del retardo en muestras
fs : Frecuencia de muestreo
Otro parmetro temporal importante en la reverberacin, es
el tiempo necesario para que el nivel de presin dentro de un
cuarto decaiga 60 dB de su nivel inicial, por lo cual se tiene
una relacin directa con el tiempo de retardo y el escalamiento,
sea para el Filtro Peine o Pasa Todo, y puede ser calculado
mediante la siguiente ecuacin [5].
3

g = 10 T r

Figura 3. Filtro Peine

Donde:
g: Facto de Escalamiento, ganancia del reverberador
: Tiempo de retardo.
Tr : Tiempo de reverberacin, el cul depende del espacio
fsico que se desee emular, algunos valores recomendados se
pueden observar en el cuadro 1.

Tipo de Sala
Sala de Conferencias
Cine
Sala Polivalente
Teatro de opera
Sala de Conciertos
Iglesia
Locutorio de Radio

Tiempo de Reverberacion (s)


0.7-1.0
0.9-1.0
1.0-1.2
1.2-1.5
1.8-2.0
2.0-3.0
0.2-0.4
Cuadro I
M ARGENES DE VALORES R ECOMENDADOS DEL TIEMPO DE
REVERBERACION EN FUNCIN DEL TIPO DE SALA .

II-C.

determinaran el ancho de banda a suprimir, vase figura 6,


y que dependiendo del orden este se estrechara o alargara,
Mediante el FPGA se ha implementado un filtro elimina banda
para poder discriminar interferencias que pueden presentarse
en las seales de audio [7].

Flanging

El efecto Flanging se produce cuando el orden de un


retardo Z N se modula con una baja frecuencia. La variacin
del orden del retardo da lugar a que se de un incremento
de las componentes armnicas ya sea pares o impares de la
seal, lo que se traduce en un efecto como si el sonido se
escuchara a travs de una tubera o bajo el agua [6].
Para la implementacin del efecto se utiliza el modelo
propuesto en [6], cuya ecuacin de salida es:
y[n] = a1 x[n] + a2 Z[n]
Z[n] = x[n d[n]] + a3 Z[n d[n]]
En donde:
y[n] : Representa la seal de salida
x[n] : Representa la seal de entrada
Los coeficientes a1 , a2 , y a3 son los coeficientes de
atenuacin y sus valores se encuentran entre 0 y 1 [6].
La frecuencia de la seal de modulacin debe ser de un
mximo de 1 Hz y se pueden usar seales de cuatro tipos:
senoidales, triangulares, logartmicas y exponenciales [6], la
estructura utilizada se representa en la figura 5.

Figura 6. Respuesta de un Filtro Elimina Banda

Donde:
fc1: frecuencia de corte inferior(filtro pasa-bajo)
fc2:frecuencia de corte superior(filtro pasa alto)
BW: Ancho de banda suprimido
Fo: frecuencia eliminada
III. I MPLEMENTACIN
III-1. Frecuencia de muestreo: Se considero ajustar la
frecuencia de muestreo a 50000 muestras/s que es cercana a
la utilizada para sistemas de audio digital, forzando el lazo
principal de adquisicin y escritura de datos a un periodo de
20 microsegundos. Esto se hizo debido a que no se puede
forzar al periodo exacto correspondiente a la frecuencia de
44100 Hz utilizado en la mayora de sistemas de audio [8].
III-2. FIFO: Se utilizaron variables FIFO en este caso
implementadas como bloques en la memoria interna del
FPGA, las cuales estn programadas para guardar una
cantidad de hasta 1023 posiciones de memoria [11].
III-3. Pipeline: La prealimentacion se da en la primera
etapa, se alimenta una instruccin de memoria y se guarda en
la FIFO de lectura, la segunda etapa toma la instruccin y la
ejecuta, la primera etapa aprovecha los ciclos que se ejecuta
la segunda etapa para leer la siguiente instruccin y guardarla
en la FIFO, lo cual permite un procesamiento en paralelo de
tipo serial, permitiendonos aumentar la velocidad de reloj y
reducir el consumo de energa [12].

Figura 5. Flanning.

II-D.

Filtro elimina banda

Un filtro elimina banda se caracteriza por rechazar una frecuencia determinada que este interfiriendo en una seal dada,
estn constituidos por un filtro paso bajo y un filtro paso alto,
donde la frecuencia de corte de los filtros que lo conforman

III-4. Generacin de retardo: La generacin de retardo


se lo realiza mediante la memoria RAM, implementando para
ello una estructura secuencial de dos etapas, en la primera
etapa se escriben y guardan los datos de ingreso de la seal en
la memoria RAM, el valor dado por el registro Index Memory
se encarga de direccionar la memoria para la escritura y
lectura, gracias a esto se evita el desbordamiento de la misma.

Se posee adems un algoritmo que permite ajustar la memoria en caso de que el orden del retardo sea mayor que la
posicin actual dada por el registro mencionado anteriormente.
El algoritmo funciona mediante una comparacin y si el valor
pedido para el retardo es mayor la posicin actual de la
memoria se procede a tomar la diferencia del valor mximo
de la direccin de la memoria RAM. El algoritmo utilizado
es:

Direccion =
IndexM emory
N < IndexM emory
32767 (N IndexM emory N > IndexM emory

Debido a que la frecuencia de muestreo corresponde a 50


kHz, cada posicin de retardo que se tiene corresponde a un
tiempo de retardo de 20 microsegundos, pudiendose realizar
como mximo un retardo de 0.65534 segundos.
III-5. Estructura General del Software: El software consta
de una primera etapa en donde se realiza la adquisicin y
escritura de datos, para posteriormente pasar a la etapa de
procesamiento donde estan implementados todos los filtros
que efecturan los diferentes efectos, para optimizar el codigo
implementado cada efecto esta integrado de SubVis, y de
esta manera se consigue realizar la programacion de forma
ordenada.
El programa a grandes rasgos est estructurado como
tres bucles while, el primero se encarga de la adquisicin
y estructura de datos, el segundo procesa los efectos y el
tercero se encarga de monitorear la frecuencia del muestreo
y el procesamiento en Hz a los que se computan los efectos.

IV.

Figura 7. Eco

Para el efecto de Reverberacion, se toma de igual forma


que en el efecto Eco un tiempo de retardo de 0.3 (s), y para
determinar la ganancia utilizada en la estructura de Schroeder
se consideran los valores de tiempo de reverberancion especificados en el cuadro 1 que se dan funcin del espacio fsico a
implementar dicho efecto.
Dado esto se determina utilizar un valor de Tr=0.9 (s),
Resultando:

g = 10

30,3
0,9

= 0,1

Una vez configurados los parmetros temporales se obtiene


la repuesta presentada en la figura 8, donde se observa la
exactitud con la que los retardos y atenuacin se generan
cada 0.3(s) a partir de la interrupcin de la fuente sonora,
y cada 0.17(s) dada por los desfases de los Filtros Pasa-Todo,
percibiendo una respuesta auditiva de reverberacin natural.

R ESULTADOS O BTENIDOS

A continuacin se presentan los resultados obtenidos en


este caso aplicando una seal sinusoidal de 800 Hz con una
duracin de 100 ms a una frecuencia de muestreo de 44100,
para la generacin de la misma se utiliz el Software Matlab.
La medidas temporales obtenidas coinciden con el retardo
generado ya que se fijo un valor de k=15000, Obteniendo

15000
N
=
= 0,3(s)
=
fs
50000

El cual es obteniendo mediante el FPGA , como se puede


observar en la figura 7.

Figura 8. Reverberacin

Con respecto al flanging se trabaja con con las 30 muestras


variables moduladas por la onda seno se obtienen retardos de
variables de entre 0.6 ms y 1.2 ms. Obteniendose un resultado
como se muestra en la figura 9, se observa que se obtiene
la seal de audio modulada, y se aprecia en este caso como
la envolvente de la seal de audio tiene un comportamiento
similar a la de una onda seno.

Figura 9. Flanging
Figura 11. Procesamiento en Computador Multiproposito

V.
La implementacion de un Flitro Elimina Banda Butterwhort
mediante un FPGA se caracteriza por tener una respuesta en
frecuencia de paso plana y luego disminuye a razn de 20n dB
por dcada , donde n es el nmero de polos del filtro, En este
caso se implementa un filtro elimina banda con un ancho de
banda suprimido de 5Khz entre la frecuencia de corte inferior
de 7.5 kHz y superior de 12.5 kHz, obtenindose un resultado
optimo al eliminar las interferencias de frecuencias altas como
por ejemplo 10KHz, como se muestra en la figura 10.

Figura 10. Filtro Elimina Banda

El tiempo de procesamiento en el FPGA, durante las pruebas realizadas ronda los 0.01(s) a partir de una seal de audio
dada a la entrada, que no es apreciable auditivamente, si no
solo al procesar los datos obtenidos mediante el software
Matlab, Anlogamente se realizan los efectos mediante el
software Simulink de Matlab implementado en un computador
multiproposito, Obteniendose un retardo en el procesamiento
de aproximadamente 200 ms a partir de una entrada de audio
dada, como se muestra en la figura 11.

C ONCLUSIONES

Aunque se presentaron inconvenientes con la generacin del


retardo en un principio, estas fueron subsanadas mediante el
empleo de la memoria RAM que posee el dispositivo, con lo
que se logro efectos de audio en tiempo real y de gran calidad.
El manejo de la memoria RAM y de las diferentes FIFOs
permiten sincronizar la escritura y lectura de variables ya que
se trabaja con bucles que operan a distintas velocidades.
En funcion de las graficas obtenidas se puede apreciar que
los retardos generados por el FPGA son de gran precision y
calidad, lo cual nos permitio apreciar los efectos de audio bien
definidos y en tiempo real.
El resultado obtenido del efecto flanning se puede apreciar
con frecuencias de vco menores a 1Hz, o superiores en caso
de reproducir pistas de audio rtmicas o instrumentales.
El tiempo de procesamiento de un computador
multiproposito para efectuar los efectos es muy superior
a un FPGA, diferencindose claramente el rendimiento
de cada uno de ellos, lo cual nos permite proyectarnos a
diferentes campos de investigacin para el procesamiento de
seales.
Los avances continuos en la rea presentada son de gran utilidad para la industria de la msica y arte, siendo ampliamente
utilizada para corregir factores desagradables a la sensibilidad
auditiva, que dan paso a plantearse trabajos futuros en cuanto a
efectos de audio digital se refiere, como por ejemplo el poder
cambiar el tono de la voz, o suavizar un espectro auditivo,
logrando alta fidelidad en las seales procesadas al igual que
efectos de mayor complejidad.
R EFERENCIAS
[1] LabView FPGA implementation of digital reverberators Ioan catuna
Erwin Szopos Marina D. Topa Technical University of Cluj-Napoca.
[2] M. Kahrs and K. Brandenburg, Applications of Digital Signal Processing to Audio and Acoustics, Kluwer Academic Publishers, 2002, pp.
85-131
[3] F. Alton Everest, The Master Handbook of Acoustics, 4 ed., McGrawHill, 2001, pp.129-164
[4] SCHROEDER, Manfred R. Natural sounding artificial reverberation.
Journal of the Audio Engineering Society, 1962, vol. 10, no 3, p. 219223.

[5]

I. Dornean, M. D. Topa,

B. S. Kirei, Digital Implementation of Artificial


Reverberation Algorithms, Acta Technica Napocensis, Electronics and
Telecommunications, vol. 49, Number 4/2008, pp.
[6] Chen, J., Ji, X., Gu, X., & Zhou, J. (2009). An Improved Design for
Digital Audio Effect of Flanging. In Signal Processing, Image Processing
and Pattern Recognition (pp. 65-71). Springer Berlin Heidelberg.
[7] Ifeachor, E., Jervis, B. (1993) Digital Signal Processing: a practical
approach, Addison-Wesley Longman Ltd, Edingburg Gate, Harlow,
England.
[8] Watkinson, J., Advanced digital audio processing, Cap. 4 en The
Art Of Digital Audio, Focal Press Eds., pp. 85-139, Londres y Boston
(1988).
[9] Arch, C.L., Audio fundamentals, Cap. 3 en Principles of Digital Audio
and Video, Artech House, Inc., pp. 59-75, Londres y Boston (1997).
[10] Coulter, D., Amplitude effects, Cap. 12 en Digital Audio Processing,
CMP Books, pp. 281-287, Kansas (2000).
[11] NI myRIO-1900 User Guide and Specifications
[12] Pipelining and Parallel Processing Lan-Da Van, Ph. D. Department of
Computer Science National Chiao Tung University.

También podría gustarte