Sei sulla pagina 1di 14

PROYECTO FINAL

CURSO: Procesamiento Digital de Seales y Aplicaciones


Embebidas en FPGA (13-17 de Abril, San Luis)
Flix Gustavo Emilio Safar

1.Titulo: Evaluacin de la Envolvente Instantnea utilizando la Transformada


Discreta de Hilbert y su implementacin sobre FPGA Spartan6

2. Resumen:
Este informe describe el desarrollo e implementacin sobre FPGA de un procesador
digital de seales capaz de computar la envolvente instantnea de una seal analgica
muestreada a 625 Kmuestras/s mediante la Transformada Discreta de Hilbert. Se eligi
esta temtica en virtud de su valor acadmico para la teora de seales, como tambin
por su espectro de aplicaciones de procesamiento digital en el dominio temporal. El
sistema se model desde alto nivel con Matlab/Simulink, y se implement sobre una
plataforma Xilinx Spartan 6 (Digilent Nexis3 con AD1 y DA1 PMODs). Se eligi un
diseo basado en filtro FIR de orden 32 con aproximacin equiripple, utilizando la
herramienta de diseo de filtros FDATool. Se utilizaron las herramientas System
Generator y ISE Design Suite 14.3 de Xilinx. Las pruebas de simulacin muestran una
performance satisfactoria, conforme a lo diseado. Gracias a las caractersticas del filtro
adoptado, el uso de slices DSP se redujo a 8, un 25% del orden del filtro.
3. Introduccin:
El procesamiento digital de seales en tiempo real es de sumo inters tanto en
las comunidades cientfico/tecnolgicas como en las empresariales, y se ha vuelto parte
de nuestra vida cotidiana. Desde hace ya algunos aos, la capacidad y la velocidad de
los circuitos FPGA han permitido abordar nuevas y demandantes aplicaciones realtime,
e incorporar herramientas matemticas de anlisis de seales en sus versiones de tiempo
discreto, las que previamente eran impracticables.
Este es el caso de la Transformada de Hilbert, la cual se mantuvo en un segundo
plano en la era analgica, pero que ahora digitalmente puede aportar nuevos enfoques
de procesamiento de seales en el dominio temporal para un espectro aplicativo mucho
ms amplio. Algunos ejemplos actuales de su uso progresivo son: el anlisis acstico de
auditorios [3,4], aplicaciones de anlisis de imgenes ultrasnicas y rumores cardacos
en medicina [7,6], anlisis de vibraciones en molinos elicos [9], deteccin de fallas en
rodamientos de maquinarias [8], parlantes direccionales [11], modulacin y
demodulacin de banda lateral nica [10], etc.

Para varias de las aplicaciones mencionadas, se requiere una capacidad de


procesamiento digital importante, la cual en muchos casos excede la disponible en
sistemas de cmputo basados en el paradigma Von Neumann de mquina secuencial,
pero que desde hace un tiempo est disponible bajo las formas de paralelismo ofrecidas
por la lgica programable basada en FPGA.
Por lo tanto este trabajo tiene por un lado el propsito acadmico de acercar esta
herramienta de slidos fundamentos matemticos al mbito de desarrollo de las
aplicaciones, y por otro lado el de utilizar la tecnologa de FPGA y toda la cadena de
herramientas para desarrollo de procesamiento digital de seales en un contexto de alto
nivel de abstraccin y modelado con un caso de uso no habitual.

4. Equipamiento para el desarrollo de los laboratorios:


El siguiente diagrama esquemtico muestra en alto nivel la configuracin del
equipamiento dispuesto para el desarrollo de los laboratorios.

La placa de desarrollo es una Digilent Nexys3, con FPGA Spartan6 (xc6slx16-3csg324)

La configuracin de entradas y salidas analgicas se muestra en el siguiente cuadro:

El PMOD AD1 tiene: 2 x conversores A/D 12 bits, 1 msps c/u, 0 a 3,3 volt, salida SPI
El PMOD DA1 tiene: 2 x conversores D/A 8 bits, 0 a 3,3 volt, salida SPI
En los dos casos la conversin de SPI a paralelo se lleva a cabo mediante el protocolo
wishbone. Los mdulos VHDL que implementan las conversiones son adap_AD1.vhd,
fsm_ad1.vhd, adap_DA1.vhd, fsm_da1.vhd, y los de manejo de reloj son div1.vhd y
div2.vhd (provistos por el instructor).

5. Fundamentos tericos:
Existen varias formas matemticas para derivar las expresiones de la
transformada de Hilbert de tiempo contnuo [5]. Por una cuestin del contexto y de
simplicidad, se elige evaluar la transformada directa e inversa de Fourier de la funcin
signo, ya sea signo(t) o signo(), las cuales se muestran en la Figura 1:

Figura 1.
Es decir, el kernel (-1/.t ) o (-2i/) representa la antitransformada de Fourier de
la funcin signo en el dominio de la frecuencia o del tiempo, respectivamente.
Se define a la transformada de Hilbert como la convolucin de la funcin con el
kernel (-1/ .t):

Es decir, convolucionar en el tiempo con (-1/.t ) equivale a multiplicar en


frecuencia con la funcin signo(), por tanto no modificamos el espectro de amplitud,
slo estamos aplicando un corrimiento de fase de +/2 para las frecuencias positivas y
de /2 para las frecuencias negativas. La transformada de Hilbert produce un adelanto
de fase de /2, por lo cual se dice que una funcin y su transformada de Hilbert estn en
cuadratura. Ergo, si la funcin es un coseno, su transformada de Hilbert ser un seno.
De la observacin de la Figura 1 se desprende la no causalidad, la discontinuidad
en el origen, y el soporte infinito del kernel de Hilbert, lo cual pone en evidencia la
necesidad de aproximar y adaptar esta funcin terica para llevarla al mundo fsico
donde slo existen las seales causales y de extensin limitada.
Se define como seal analtica g(t):

La seal analtica es una funcin compleja que tiene como parte real a la funcin
f(t)y como parte imaginaria a su transformada de Hilbert, que est en cuadratura.
Como ejemplo simple se toma el caso f(t)=cos( .t):

Entonces la seal analtica resulta una exponencial compleja como muestra la


Figura 2. Se puede apreciar que la composicin de la funcin con su transformada
genera una hlice de dimetro unitario que se desarrolla a lo largo del tiempo.
Teniendo presente que cualquier funcin se puede expresar como una suma
escalada de exponenciales complejas, se desprende que la seal analtica genrica ser
la sumatoria instantnea de exponenciales complejas de distintas frecuencias,
amplitudes y fases.

De la seal analtica se desprenden algunas definiciones de inters para el


estudio de la seal original:

Envolvente instantnea:

Representa el mdulo instantneo de la seal analtica

Fase instantnea:

En el caso de la Figura 2 estara representado por el ngulo de avance de la


hlice con el correr del tiempo.

Frecuencia instantnea:

Este concepto conlleva un punto de vista distinto al anlisis de frecuencias


tradicional de Fourier. De esta forma, la funcin original y su transformada admiten la
siguiente representacin:

La siguiente Figura 3 ilustra la importancia de esta representacin en el anlisis


de imgenes mdicas ultrasnicas [7]:

La seal real del sensor ultrasnico (azul) se ve complementada por la


transformada de Hilbert en cuadratura (rojo) para lograr una envolvente instantnea con
un nivel de detalle temporal muy elevado (negro).
6.Implementacin de la transformada de Hilbert en forma digital: existen varias
tcnicas de discretizacin de la transformada contnua de Hilbert a una versin discreta
[5], las cuales deben resolver los aspectos singulares de esta transformada. Las dos ms
usadas son va FFT con truncamiento de frecuencias negativas (MATLAB) y la otra
basada en el diseo de un filtro digital aproximante. La tcnica con FFT es muy rpida
pero presenta oscilaciones en el dominio del tiempo producto del truncamiento en
frecuencia. Se eligi la tcnica de filtro digital que aproxima a la transferencia ideal
(mdulo=1, fase=/2 radianes). Partiendo de un kernel analgico no causal de soporte
infinito, el filtro causal deber retrasar la salida para lograr una buena aproximacin
realizable. Se eligi una estructura FIR, en virtud de que imponiendo simetras puede
garantizar el cumplimiento exacto del desplazamiento de fase de 90 grados en todas las
frecuencias.

Se utiliz la herramienta de diseo FDATool para el diseo del transformador de


Hilbert, utilizando la aproximacin equiripple para la respuesta de magnitud. Con el
orden 32 seleccionado se puede apreciar una respuesta virtualmente plana entre el 10%
y el 90% de la frecuencia mxima.
En cuanto a la respuesta de fase, se observan dos componentes: una
predominante que es un retardo fijo y exacto de 16 muestras (pendiente de la recta de
fase) ms un giro de /2 radianes (cuadratura) que apenas se observa en el grfico
(marcado con rojo en la esquina superior izquierda).
El cuadro siguiente muestra la respuesta al impulso y al escaln del filtro diseado.

En la respuesta al impulso se observa el beneficio de elegir un orden par: la mitad de los


coeficientes del filtro resultan nulos, reduciendo el requerimiento de productos a la
mitad (Figura 4a). Si adems se considera la naturaleza antisimtrica de la respuesta, se
pueden reducir las multiplicaciones nuevamente a la mitad (Figura 4b), lo cual se
implementa directamente en los slices DSP48A1 del Spartan6 que cuentan con un presumador/restador (Figura 4c).

7.Modelo en Simulink del Procesador de Envolvente Instantnea:


La Figura 5 muestra el diagrama en bloques del procesador de envolvente. El bloque
FIR Compiler 5.0 [2] es responsable del cmputo de transformador de Hilbert, El
bloque Delay introduce el retardo necesario para equiparar en el tiempo las salidas en
fase y en cuadratura. Los bloques Mult y Mult1 elevan al cuadrado la salida en
cuadratura y en fase respectivamente, el bloque AddSub1 est configurado para sumar
las salidas de Mult y Mult1. Hasta este punto el tratamiento es totalmente en punto fijo
(Fix_YY_ZZ) donde YY es el nmero total de bits de la palabra, y ZZ son los bits de la
parte fraccionaria. Sin embargo, el cmputo de la raz cuadrada para obtener la
envolvente se realiza en punto flotante a travs del IP denominado Floating Point
Operator v6.0 [1], el cual adems tiene funciones para el casting de punto fijo a flotante
y viceversa (punto fijo es necesario para salir al conversor D/A). El cuadro se completa
con gateways de entrada y salida (en amarillo, que hacen interfaz entre los mdulos
bsicos de Simulink (generadores de seales, visualizadores, etc., en blanco) y las
libreras de Blocksets de Xilinx (en celeste). La frecuencia de muestreo configurada es
de 625000 muestras/seg.

Para evaluar el comportamiento del sistema en simulacin, se dispusieron de 2 tipos de


entradas: 1) Escaln, y 2) Chirp sinusoidal con un rango de frecuencias de 1 a 20.
Los cuadros siguientes muestran el resultado de la simulacin con excitacin al escaln.
De las 3 seales mostradas, la seal superior muestra la respuesta al escaln del
transformador de Hilbert (seal en cuadratura), la cual coincide perfectamente con la
graficada por la herramienta de diseo FDATool, la seal inferior es el escaln de
entrada debidamente retrasado para estar centrado con la salida de Hilbert (seal en
fase). La seal del medio es el clculo de la envolvente instantnea, la cual brinda el
correcto resultado antes y despus del escaln, mostrando un transitorio alrededor del
flanco del escaln (esperable porque el filtro de Hilbert no se ajusta al ideal en todas las
frecuencias, especialmente en las muy bajas o muy altas).

El siguiente cuadro muestra las mismas 3 seales pero ahora con el sistema excitado por
un chirp de amplitud unitaria y frecuencia variable en un rango 1 a 20 (se muestra la
mitad del rango bajo solamente). Se puede apreciar que, superado el transitorio del
inicio de la excitacin, la seal en cuadratura y en fase se mantienen a 90 grados de
separacin entre s en todo el rango de frecuencias del chirp. Consecuentemente, la
envolvente instantnea se establece rpidamente en el valor 1 que se mantiene hasta el
final del barrido. En simulacin, el sistema se comporta como estaba previsto.

Cabe mencionarse que, en virtud de que la salida de envolvente instantnea es siempre


un nmero positivo, no fue necesario adicionar un offset de contnua para ajustar el
rango dinmico al del conversor D/A (PMOD DA1)
El archivo Simulink fir_tutorial.mdl generado se compil para la Spartan6 objetivo con
el sistema System Generator de Xilinx (opciones NGC Netlist, VHDL, Expose Clock
Ports, 10 ns FPGA clock period). Como resultado se generaron, entre otros, los archivos
fir_tutorial_mcw.ngc, fir_tutorial_mcw.vhd y el proyecto Xilinx ISE
fir_tutorial_mcw.xise . El siguiente reporte resume el uso de dispositivos de la FPGA

Una vez dentro del proyecto ISE (Project Navigator), se incorporaron los
archivos del proyecto top_tutorial.vhd, los otros de manejo de los A/D, D/A, y reloj
(div1.vhd, div2.vhd, fsm_ad1.vhd, fsm_da1.vhd, adap_AD1.vhd, adap_DA1.vhd) y de
pinout (pinout.ucf) para formar un nico proyecto integrando el diseo de
procesamiento realizado, con la estructura de hardware y de manejo de los perifricos
de entrada y salida analgica, el reloj, previstos por los profesores para el curso en la
placa Nexys3/PMODs.
Se procedi siguiendo las etapas: Synthesize XST > Implement (Translate, Map, Place
and Route) > Generate Programming File sin errores hasta generar sin errores el archivo
de programacin top_tutorial.bit

8. Discusin de resultados:
Los resultados del diseo y simulacin fueron satisfactorios, y concuerdan plenamente
con las especificaciones para el problema. Se lleg a generar el archivo de
programacin y se baj a la placa Nexys3 pero no hubo tiempo material para hacer las
pruebas de funcionamiento que confirmaran la correcta ejecucin en la plataforma
target.

9. Conclusiones:

La conclusin tcnica ms importante del trabajo y del curso es que hoy es posible
desarrollar aplicaciones de procesamiento de seales de alta performance y complejidad
a partir de un diseo algortmico en herramientas de diseo de alto nivel. Y que estas
herramientas tambin pueden ayudar en la docencia para bajar a tierra conceptos
abstractos de procesamiento digital de seales.

10. Referencias:
[1] Xilinx, Floating-Point Operator v6.0. DS816 January 18, 2012
[2] Xilinx, IP LogiCORE FIR Compiler v5.0. DS534 March 1, 2011
[3] Thrane, N. (1984). The Hilbert Transform. B&K Technical Review, (3-1984).
[4] Thrane, N., Wismer, J., Konstantin-Hansen, H., & Gade, S. (1999). Practical use of the
Hilbert transform. B&K Application Note No. bo0437-11.
[5] Liu, Y. W. (2012). Hilbert transform and applications. INTECH Open Access Publisher.

[6] Hernndez Esteban, A., Toledo Moreo, F. J., Martnez lvarez, J. J., & Ruiz Merino, R. J.
(2004). FPGA-based implementation of the instantaneus frequency estimation of
phonocardiographic signals. International Federation of Automatic Control.
[7] Hassan, M. A., & Kadah, Y. M. (2013). Digital Signal Processing Methodologies for
Conventional Digital Medical Ultrasound Imaging System.American Journal of Biomedical
Engineering, 3(1), 14-30.
[8] Alegranzi, S. B., Gonalves, J. F., & Gomes, H. M. (2014). BALL BEARING VIBRATION
MONITORING FOR FAULT DETECTION BY THE ENVELOPE TECHNIQUE. Blucher
Mechanical Engineering Proceedings, 1(1), 4113-4125.
[9] Teng, W., Wang, F., Zhang, K., Liu, Y., & Ding, X. (2014). Pitting fault detection of a wind
turbine gearbox using empirical mode decomposition.Strojniki vestnik-Journal of Mechanical
Engineering, 60(1), 12-20.
[10] Basit, A., Aziz, W., & Zafar, F. (2012). Implementation of SSB Modulation/Demodulation
using Hilbert Transform in MATLAB. Journal of Expert Systems, 1(3), 79-83.
[11] Liang, J., Gao, S., & Li, Y. (2011, December). Design of audio directional system based on
FPGA. In Transportation, Mechanical, and Electrical Engineering (TMEE), 2011 International
Conference on (pp. 613-616). IEEE.

Potrebbero piacerti anche