FORMACIÓN DE IMÁGENES ACÚSTICAS …148.206.53.84/tesiuami/UAMI12558.pdf · Ciencias Básicas e...

47
Ciencias Básicas e Ingeniería FORMACIÓN DE IMÁGENES ACÚSTICAS PULMONARES DE SUPERFICIE MEDIANTE UN SISTEMA MULTICANAL Albuerne Sánchez Lidia Licenciatura en Ingeniería Biomédica Asesor: Dra. Sonia Charleston Villalobos Lugar y fecha de realización: Laboratorio de Investigación en Procesamiento de Señales e Imágenes Biomédicas Departamento de Ingeniería Eléctrica Trimestres: 2005-I y 2005-P

Transcript of FORMACIÓN DE IMÁGENES ACÚSTICAS …148.206.53.84/tesiuami/UAMI12558.pdf · Ciencias Básicas e...

Ciencias Básicas e Ingeniería

FORMACIÓN DE IMÁGENES ACÚSTICAS

PULMONARES DE SUPERFICIE MEDIANTE UN

SISTEMA MULTICANAL

Albuerne Sánchez Lidia

Licenciatura en Ingeniería Biomédica

Asesor: Dra. Sonia Charleston Villalobos

Lugar y fecha de realización: Laboratorio de Investigación en Procesamiento de Señales e Imágenes Biomédicas

Departamento de Ingeniería Eléctrica Trimestres: 2005-I y 2005-P

1

ÍNDICE 1 INTRODUCCIÓN....................................................................................................... 3

1.1 Los sonidos respiratorios y su importancia. ........................................................... 3

1.2 Los sonidos respiratorios y la formación de imágenes acústicas. ......................... 3

2 PLANTEAMIENTO DEL PROBLEMA .................................................................. 5

3 OBJETIVO .................................................................................................................. 5

4 ANTECEDENTES ...................................................................................................... 5

4.1 La Técnica de Interpolación. ............................................................................... 5

4.1.1 Interpolación lineal. ......................................................................................... 6

4.1.2 Interpolación polinómica................................................................................. 6

4.1.3 Interpolación de Hermite. ................................................................................ 7

4.1.4 Interpolación Spline......................................................................................... 9

4.1.5 Superficie Hermite......................................................................................... 12

4.1.6 Interpolación por vecinos más cercanos (nearest neighbour)........................ 14

4.2 La Aplicación SONRESP (SonidoRespiratorio).............................................. 14

5 METODOLOGÍA...................................................................................................... 17

5.1 La Interfaz Gráfica de Usuario. ........................................................................ 18

5.1.1 Ambiente de desarrollo de la GUI (GUIDE)................................................. 18

5.1.2 Controles de interfaz de usuario. ................................................................... 19

5.1.3 Pasos para desarrollar una GUI. .................................................................... 20

5.1.4 Ejemplos de GUIs creadas en Matlab........................................................ 21

5.1.4.1 GUI con dos ejes gráficos................................................................... 21

5.1.4.2 GUI con edit text y slider. .................................................................. 25

5.4.1.3 GUI para confirmar una acción. ......................................................... 25

2

5.2 Las Imágenes Acústicas Pulmonares de Superficie(RATHI) ......................... 26

5.2.1 Los requerimientos de la GUI. ...................................................................... 26

5.2.2. GUI para la formación de imágenes acústicas ............................................. 27

5.2.3 Imágenes acústicas de actividad promedio.................................................... 29

5.2.4 Imágenes de actividad individual .................................................................. 31

5.2.5 Imágenes acústicas del ciclo respiratorio ...................................................... 32

6 IMÁGENES ACÚSTICAS PULMONARES.......................................................... 35

6.1 Imágenes acústicas de actividad promedio........................................................... 35

6.2 Imágenes acústicas de actividad individual.......................................................... 37

6.3 Imágenes acústicas del ciclo respiratorio ............................................................. 39

7 DISCUSIÓN.............................................................................................................. 44

8 BIBLIOGRAFÍA ....................................................................................................... 45

3

1 INTRODUCCIÓN

1.1 Los sonidos respiratorios y su importancia.

Desde que Laënnec inventó el estetoscopio con la idea de mejorar la auscultación

del tórax humano en 1819, los sonidos producidos por la actividad respiratoria humana

se consideraron relevantes por contener información clínica acerca del funcionamiento

pulmonar. Sin embargo, en décadas recientes se ha realizado diferentes esfuerzos para

eliminar la subjetividad que caracteriza a la auscultación mediante el análisis por

computadora, procesamiento digital y visualización de los sonidos respiratorios [2].

Con base en diferentes investigaciones, actualmente se conoce que los sonidos

respiratorios o pulmonares, escuchados sobre la superficie torácica de una persona

saludable, presentan un contenido en frecuencia con un pico máximo por debajo de los

100 Hz, en donde sus características se mezclan con las características en frecuencia de

sonidos musculares y cardiovasculares. Por lo tanto, los sonidos respiratorios no son

fácilmente distinguibles de estos sonidos de interferencia. Por otro lado, la energía de

los sonidos pulmonares por arriba de 1 kHz puede detectarse con micrófonos sensibles

dentro de un cuarto silencioso.

Presumiblemente, los sonidos pulmonares se generan por turbulencias en las vías

aéreas y éstas dependen de la densidad del medio; Pasterkamp y Sánchez concluyeron

que el flujo turbulento produce el sonido en el rango más alto de frecuencias. Por otra

parte, no se ha entendido el mecanismo que produce el sonido pulmonar normal en

frecuencias menores a 300 Hz [1].

1.2 Los sonidos respiratorios y la formación de imágenes acústicas.

En la práctica clínica, la auscultación se realiza moviendo el estetoscopio sobre la

superficie torácica de una persona en una secuencia que permite la comparación

acústica entre el hemitórax derecho y el izquierdo. Sin embargo, la interpretación de los

sonidos respiratorios ha sido subjetiva, dependiente de la experiencia del médico.

La auscultación clínica involucra tres limitaciones técnicas bien conocidas. Primera,

la interpretación es esencialmente subjetiva; segunda, los sonidos originales y la señal

4

de flujo asociada no se almacenan, limitando la evaluación actual así como posteriores;

y tercera, la auscultación torácica se lleva a cabo por comparación de la información

acústica que se escucha en diferentes momentos o tiempos [2].

Como se mencionó, diversas investigaciones se han enfocado en la eliminación de la

naturaleza subjetiva de la auscultación extrayendo características cuantitativas de los

sonidos respiratorios. Los estudios involucran la recopilación de información en

diferentes lugares sobre la superficie torácica utilizando uno y hasta cuatro micrófonos.

Por ejemplo, Dosani y Kraman analizaron la variabilidad de la intensidad del sonido

pulmonar (SP) en las bases pulmonares en sujetos normales, utilizando dos micrófonos

localizados simétricamente en la superficie torácica. Los micrófonos se movieron a

diferentes posiciones y valores de amplitud no simultáneos fueron colocados juntos para

formar un mapa de contorno [2].

Otro aspecto importante es la relación de la intensidad del SP con la ventilación. En

el medio clínico, los SP más intensos se correlacionan con una mayor ventilación

pulmonar. Diferentes trabajos han tratado de corroborar este supuesto estudiando el

pulmón con radionúclidos, sin embargo, estos estudios presentan posiblemente

problemas metodológicos relacionados con el número de sensores acústicos así como

una adquisición de la información de forma no simultánea. Recientemente, se ha

sugerido un incremento de los puntos de adquisición simultánea de información

acústica.

Estudios nuevos que utilizan más de cuatro sensores continúan con limitaciones

espacio–temporales, ya que excluyen áreas importantes del tórax humano como

resultado de un reducido número de micrófonos. Posiblemente, más importante sea el

hecho de que omiten posibles correlaciones entre diferentes puntos de auscultación.

Algunos investigadores han analizado la distribución de la intensidad de los SP

inspiratorios y espiratorios por medio del mapeo del tórax usando un arreglo de

micrófonos de 2 x 4. Estos estudios incluyen mapas de la superficie torácica anterior y

posterior usando un código en escala de grises para la intensidad del sonido; sin

embargo, estos mapas aparecen con baja resolución espacial y omiten el uso de

funciones de interpolación [2].

5

2 PLANTEAMIENTO DEL PROBLEMA

De acuerdo con los estudios anteriores, la visualización acústica de diferentes áreas

de la pared torácica, en forma simultánea, podría ser de ayuda para analizar por

ejemplo, la distribución de los SP, el contenido en frecuencia y la relación de la

ventilación en sujetos sanos y enfermos [2]. En este sentido, este trabajo de seminario

de proyectos enfoca sus esfuerzos a obtener imágenes acústicas 2D utilizando la

información proveniente de la superficie torácica adquirida de forma simultánea por

medio de un arreglo de micrófonos de 5 X 5.

Es necesario hacer notar que los antecedentes directos de este trabajo lo representan

una tesis de maestría [5] y un artículo publicado en un journal internacional [2]. Sin

embargo, el enfoque en estos antecedentes fue el de proponer la formación de imágenes

acústicas sin integrar la metodología desarrollada en un marco de referencia como lo es

la aplicación específica SONRESP, la cual se discutirá en las subsecciones siguientes.

3 OBJETIVO

Crear una interfaz gráfica en plataforma Matlab que permita al usuario adquirir

información acústica pulmonar multicanal y generar la correspondiente imagen acústica

de superficie.

4 ANTECEDENTES

4.1 La Técnica de Interpolación.

El proceso de interpolación es una de las operaciones fundamentales en el

procesamiento digital de imágenes y en visión por computadora. La interpolación se

refiere al proceso de recuperar valores intermedios de una curva, una superficie o una

función a partir de información parcial conocida [5]. Existen diferentes formas para

clasificar los procedimientos de interpolación:

a) Interpolación global versus local.

La interpolación global determina una función única la cual se aplica a todos

los datos de interés. En contraste, la interpolación local aplica un algoritmo

repetitivo a una pequeña porción de un grupo de puntos [5].

6

b) Interpolación determinística versus estadística.

En la interpolación determinística, la superficie pasa a través de todos los

puntos cuyos valores son conocidos, mientras que las técnicas de interpolación

estadísticas hacen referencia a un proceso de aproximación. Los datos y las

aproximaciones son comparados y dependiendo de las diferencias se realizan

algunos ajustes. Esto también implica que el valor sobre los valores originales no

sean siempre una réplica exacta [5].

En este seminario de proyectos, se aplicaron técnicas determinísticas.

4.1.1 Interpolación lineal.

Una de las técnicas más sencillas para recuperar valores intermedios es la

interpolación lineal. Si se quiere estimar los valores en el intervalo x0, x1, el método de

interpolación lineal ajusta un polinomio de primer orden a dos puntos dados de acuerdo

a:

)()()()(

)( 1010

10 xfxxxx

xfxfxP +−

−−

= (2)

en donde P(x) es la función lineal por tramos que interpola los puntos conocidos f(x0) y

f(x1), por lo tanto se aproxima la función desconocida mediante una línea recta [5].

4.1.2 Interpolación polinómica.

Una de las clases de funciones reales, de variable real, más útiles y conocidas es la

clase de los polinomios algebraicos definidos como: n

nn xaxaaxP +++= ...)( 10 (3)

donde n є Z+ y a0, ..., an son constantes reales por determinar. Su importancia consiste

en que aproximan uniformemente funciones continuas; esto es, dada una función

definida y continua en un intervalo cerrado, existe un polinomio que se encuentra tan

“cerca” de la función dada como se desee (Ver figura 4.1) [6].

7

Figura 4.1. P representa un polinomio que aproxima la función f.

4.1.3 Interpolación de Hermite.

Sean x0, x1, ... , xn, n+1 números distintos en [a, b] y mi un entero no negativo

asociado a xi para i =0,1,...,n. Sean

inimm

≤≤=

0max y ],[ baCf m∈

El polinomio osculante que aproxima a f es el polinomio P de menor grado tal que

ki

k

ki

k

dxxfd

dxxPd )()(

= para cada i = 0,1,...,n y k = 0, 1, ... ,mi

La situación que se presenta cuando mi = 1 para cada i = 0, 1, ... , n proporciona los

llamados polinomios de Hermite. Para una función dada f, estos polinomios coinciden

con f en x0, x1, ... , xn, y con sus primeras derivadas. Por lo tanto, los polinomios tienen

la misma apariencia que la función en (xi, f(xi)) en el sentido de que las líneas tangentes

al polinomio y a la función coinciden [6].

Teorema. Si y x],[1 baCf ∈ 0, ..., xn ],[ ba∈ son distintos, el único polinomio de menor

grado que coincide con f y f’ en x0, ...,xn es un polinomio de grado a lo más 2n+1 dado

por:

∑ ∑= =

+ +=n

j

n

jjnjjnjn xHxfxHxfxH

0 0,,12 ),()(')()()( (4)

con n = 1 entonces:

∑ ∑+

=

+

=

+=1 1

,1,13 ),()(')()()(i

ij

ni

ijjjjj xHxfxHxfxH (5)

donde

(6)

[ ] )()()(21)( 2

,1',1,1 xLxLxxxH jjjj −−=

(7) )()()( 2,1,1 xLxxxH jjj −=

8

En este contexto, Ln,j denota al j-ésimo coeficiente polinomial de Lagrange de grado

n. Se puede demostrar que H3(xi) = f(xi) y H’3(xi) = f’(xi) si y sólo si H1,j y

cumplen ciertas condiciones [6].

jH ,1

Ahora se mostrará una implementación del polinomio de Hermite que no requiere

del cálculo del polinomio de Lagrange. Desarrollando las expresiones (5), (6) y (7) se

tiene:

)()(')()(')()()()()( 1,11,11,11,13 xHxfxHxfxHxfxHxfxH iiiiiiii +

+

++ +++= (8)

donde:

[ )()(')(21)( 2,1,1,1 xLxLxxxH iiiii −−= ]

] (9)

[ )()(')(21)( 21,111,111,1 xLxLxxxH iiiii +++++ −−= (10)

)()()( 2,1,1 xLxxxH iii −=

(11)

)()()( 21,111,1 xLxxxH iii +++

−= (12)

y

∏+

≠= −

−=

1

,1 ,)()(

)(i

klil lk

lk xx

xxxL k=i,i+1 (13.i)

Definiendo ∆xi = xi+1 - xi y sustituyendo la ecuación (13) en las ecuaciones (9)-(12) se

tiene:

[ ]

[ ]

2

21

1,1

2

21

,1

31

2

1,1

3

21

,1

))(()(

))(()(

)(2)()(

)(2)()(

i

iiii

i

iii

i

iiii

i

iiii

xxxxx

xH

xxxxx

xH

xxxxxx

xH

xxxxxx

xH

∆−−

=

∆−−

=

∆∆+−−

=

∆∆+−−

=

++

+∧

++

+

Realizando el cambio de variable i

i

xxx

∆t

−= , si x = xi entonces t = 0 y si x = xi+1

entonces t = 1. Por lo tanto el rango [xi, xi+1] se transforma en el intervalo [0, 1].

Considerando además que:

9

ixtHttHxtH

dxdH

∆===

1)()())(( '3

''33

'3 y ,0)( fxf i =

,11 )( fxf i =+

,'

0' )( ii xfxf ∆= ii fxfxf == ++

'11

'1

' )() ix∆(

el polinomio de Hermite dado por (10):

[ ]2

21

'

31

21

31

3))()(((2))(()(

)()(i

iii

i

iiii

i

iii x

xxxxxfx

xxxxxxfx

xxxxftH

∆−−

+∆

∆+−−+

∆∆+−

= ++++

se puede rescribir como:

)1()1()23()1)(21()( 2'1

2'0

21

203 −+−+−+−−= ttfttfttfttftH

)()2()32()132()( 23'1

23'0

231

2303 ttftttfttfttftH −++−++−++−= (13.ii)

Por lo tanto H3 queda definido por HH GMTtH ⋅⋅=)(3 en donde:

= 123 tttT y (14)

−−−

=

0001

0100

1233

1122

HM

=

'1

'0

1

0

f

f

ff

GH

En resumen, la forma Hermite de un segmento de curva polinomial cúbica se

determina por restricciones sobre los puntos finales f0 y f1 y vectores tangenciales en los

puntos finales f0 y f’1 [5].

4.1.4 Interpolación Spline.

La interpolación polinómica se basa en un ajuste simultáneo (global) y exacto del

polinomio con la función en puntos específicos. Cuando este número de puntos

aumenta, el ajuste se consigue a base de aumentar al grado del polinomio que introduce

oscilaciones importantes en el polinomio de interpolación y sus derivadas, que implica

un aumento del error de interpolación [5]. Las funciones spline son una alternativa que

permiten construir el polinomio de interpolación por “segmentos” considerando un

número reducido de puntos y por lo tanto, un polinomio de grado inferior. Esto requiere

10

imponer condiciones adicionales de continuidad en las derivadas sucesivas de los

polinomios para garantizar la suavidad de la conexión de los segmentos [5].

Definición: Sean ,...10 bxxxa n =<<= n + 1 abscisas y f valores.

Una función spline de orden p, que interpola los datos

1n,f,...,f, n10 +

{ }nifx ii ,...,0),,( = es una

función real S definida en [a, b] que satisface:

1) S es clase C . ],[1 bap−

2) En cada subintervalo [xi, xi+1], i = 0, ..., n-1, S es un polinomio Si de grado p.

3) S(xi) = fi para todo i = 0, ..., n.

El polinomio Si puede ser distinto en cada subintervalo. Esta sección se enfoca en la

existencia de estas funciones interpolantes para p = 3.

Teorema: Dado el conjunto de datos { }nifx ii ,...,0),,( = existen dos únicos spline

cúbicos interpoladores de los datos y que satisfacen respectivamente las condiciones

siguientes:

1) 0)('')('' 0 == nxSxS

2) siendo e datos. ''00 )(';)(' nn fxSfxS == '

0f 'nf

El spline cúbico se obtiene como [5]:

)()()(6

)(6

)( 13

''13

1

''

xxbxxaxxh

fxx

hf

xS iiiiii

ii

i

ii −+−+−+−= +

++ (15)

donde ai y bi son constantes de integración. Para que S(x) sea continua y satisfaga las

condiciones de interpolación se tiene que verificar:

,)( ii fxS = ,)( 11 ++ = iii fxS 0 1−≤≤ ni

Sustituyendo estas condiciones en (15) se tiene:

6

''11 ii

i

ii

hfhf

a ++ −= y 6

''ii

i

ii

hfhf

b −=

y por lo tanto,

11

)x(

6)(

6)(

6)(

6)( 1

''''113

''13

1

''

xhf

hf

xxhf

hf

xxh

fxx

hf

xS iii

i

ii

ii

i

ii

i

ii

i

ii −

−+−

−+−+−= +

++++ (16)

para todo 0 1−≤≤ ni . Diferenciando (16) se obtiene:

)(6

)(2

)(2

)( ''''1

2''12

1

'''

iii

i

ii

i

ii

i

ii ff

hhy

xxh

fxx

hf

xS −−∆

+−+−−= ++

+ (17)

para todo 10 −≤≤ ni con iii fff −=∆ +1 . Puesto que debe ser continua, los

coeficientes deberán verificar las condiciones:

)(' xS i

''''0 ,..., nff

11,)( '1

' −≤≤= − niSxS iii

Sustituyendo las condiciones anteriores en (17) dan lugar al sistema de (n-1)

ecuaciones lineales:

iiiiiiii cfhfhhfh =+++ +−−−''1

''1

''11 )(2 11 −≤≤ ni (18)

con:

∆−

∆=

1

16i

i

i

ii h

fhf

c

Asumiendo la condición 1) del teorema, entonces y los restantes

coeficientes serán la solución del sistema tri-diagonal:

0''''0 == nff

''1

''1 ,..., −nff

=

−−−−

−−−

1

1

''1

''1

12

223

221

11

0...000

...000

...

000...

000...0

nnnn

nnn

c

c

f

f

dh

hdh

hdh

hd

M

M

M

M

M

M

MMMMMM

donde 11),(2 1 −≤≤+= − nihhd iii . La matriz A del sistema anterior posee una única

solución. Si se satisface 2) debe cumplirse

'0

0

0''0

0''1

0

36f

hf

fh

fh

−∆

=+

y

12

1

1''1

''1

1''1

63 −

−−−

−− ∆=+

n

nnn

nn

n

hf

ffh

fh

que en conjunto con (17) formando un sistema de ecuaciones lineales (n+1)x(n+1) cuya

matriz también es tridiagonal y diagonalmente dominante [5].

4.1.5 Superficie Hermite.

Generalizando el tratamiento de las curvas paramétricas cúbicas de la sección

anterior, incluyendo ahora s y t, se tiene que la superficie Hermite está definida por:

==

)()()()(

*)(**),(

4

1

4

1

tRtRtPtP

MStGMStxs HHH (19)

en donde y definen los componentes x de los puntos iniciales y finales para

la curva en el parámetro. De manera similar, y son los vectores

tangenciales para esos puntos. Es decir, el vector G

)(1 tP )(4 tP

)(1 tR

1P

)(4 tR

,0( tQ

H no es constante. La superficie del

parche es esencialmente una interpolación cúbica entre ))(t = y ,

o bien, entre y .

),1()(4 tQtP =

)0, Q(sQ )1,(s

Asumiendo que cada se puede representar en forma Hermite

como:

)(),(),(),( 4141 tRtRtPtP

⋅=

14

13

12

11

1 *)(

gggg

MTtP H , , (20)

⋅=

24

23

22

21

4 *)(

gggg

MTtP H

⋅=

34

33

32

31

1 *)(

gggg

MTtR H ,

⋅=

44

43

42

41

4 *)(

gggg

MTtR H

en donde gij están en términos de los valores usados en la descripción 1D de la sección

anterior (21) ,**)()()()( 4141THH GMTtRtRtPtP =

donde

13

=

44434241

34333231

24232221

14131211

gggg

gggg

gggg

gggg

GHx (22)

Trasponiendo ambos lados de (21) se tiene:

TTHH

TTH TMGTM

gggg

gggg

gggg

gggg

tR

tR

tP

tP

***

)(

)(

)(

)(

44434241

34333231

24232221

14131211

4

1

4

1

=

=

, (23)

y sustituyendo (23) en (19) TT

HHxH TMGMStsx ****),( =

en forma similar: TTHHyH TMGMStsy ****),( =

TTHHzH TMGMStsz ****),( =

en donde GHx se escribe como

)1,1()0,1()1,1()0,1(

)1,0()0,0()1,0()0,0(

)1,1()0,1()1,1()0,1(

)1,0()0,0()1,0()0,0(

22

22

dsdtfd

dsdtfd

dsdf

dsdf

dsdtfd

dsdtfd

dsdf

dsdf

dtdf

dsdfff

dtdf

dtdfff

GHx

La parte superior izquierda 2x2 de la matriz GHx corresponde a las coordenadas x de

las cuatro esquinas del parche, la parte superior derecha e inferior izquierda de 2x2 a las

coordenadas x del vector tangencial en cada una de las direcciones s, t, la porción

inferior derecha 2x2 tiene las derivadas parciales con respecto a s y t. [5].

14

4.1.6 Interpolación por vecinos más cercanos (nearest neighbour).

En este método, la salida en la posición del píxel toma el valor

del píxel más cercano en la imagen [2].

),( npf IkI

S

Ikp f

kp )),);( nPfP

4.2 La Aplicación SONRESP (SonidoRespiratorio).

Dada la importancia de los sonidos respiratorios y la información que de ellos se

puede obtener al procesarlos, en la Universidad Autónoma Metropolitana-Iztapalapa, en

el Departamento de Ingeniería Eléctrica, se ha creado una aplicación denominada

SONRESP, el cual es una GUI diseñada en ambiente Matlab, la cual pretende ser una

herramienta médica auxiliar para la investigación, docencia y detección de problemas

respiratorios. [4]

SONRESP es una aplicación, con software aún en desarrollo, enfocada al análisis de

la información obtenida a partir de un sistema de adquisición multicanal [4]. Para

reconocer las señales adquiridas se utiliza una nomenclatura creada con letras y

números. Las letras se eligen según el lugar de la superficie torácica en que se haya

colocado el micrófono y el número corresponde al del micrófono. La siguiente lista

contiene la s letras utilizadas y su significado:

Letra

utilizada Significado

P Superficie posterior A Superficie anterior L Lado izquierdo R Lado derecho M Línea media vertebral C Línea media clavicular X Línea axilar

SONRESP está constituido por varias funciones entre las que destacan:

• Lectura de información multicanal. Inicialmente SONRESP poseía dos modos de

apertura de archivo de datos: sin encabezados y con encabezados. Esta función se

modificó en este trabajo y se agregó una nueva forma de abrir los archivos: sin

encabezados, donde es posible introducir la nomenclatura de los canales o bien

15

leerlos desde un archivo de texto; formato UAM, que corresponde al formato

desarrollado para el sistema de adquisición de la UAM y, finalmente, formato ACQ

generado por un sistema de adquisición BIOPACK. Los datos se grafican en la

interfaz, colocando la nomenclatura de los canales y eliminando el valor medio a los

datos.

Figura 4.2. Pantalla principal de SONRESP donde se muestra la barra de menús, el área gráfica de visualización de las señales acústicas multicanal, la barra de iconos (selección y reproducción acústica de un canal, espectrograma, cálculo de PSD, etc) (Figura tomada de

[4]).

• Procesamiento en el dominio del tiempo:

o Posibilidad de seleccionar una sola señal y observar su gráfica en una figura

adicional con la señal de flujo respiratorio como referencia temporal. Una

nueva función, que fue integrada en este seminario de proyectos, es la

posibilidad que se le da al usuario de seleccionar un intervalo de tiempo y de

expanderlo en tiempo; un slider permite hacer un recorrido hacia atrás y hacia

delante de toda la gráfica con la expansión actual. Si se desea observar la

imagen original, simplemente se activa el botón para restablecer (ver figura

4.3).

16

Figura 4.3. Vista de una señal graficada con el flujo como referencia temporal.

o Incorporación de funciones para filtrar, segmentar y parametrizar las señales

de sonidos respiratorios. Además, es posible enviar a una base de datos

existente los datos obtenidos con la parametrización (ver barra de iconos en

la figura 4.2)

o Capacidad de seleccionar un intervalo de interés de todas las señales

respiratorias (ver figura 4.4).

Figura 4.4. Ventana paravisualizar un intervaloseleccionado por elusuario de todos loscanales.

o Capacidad para seleccionar una señal y escucharla a través de una salida de

audio.

17

• Procesamiento en el dominio de la frecuencia:

o Obtención de la densidad de potencia espectral (PSD) mediante el método de

Burg así como la visualización gráfica del error del modelo en función del

orden del modelo autorregresivo (AR).

• Procesamiento tiempo-frecuencia: capacidad para seleccionar una señal y

obtener el espectrograma correspondiente a la misma.

Figura 4.5. Espectrograma de una señal (dominio tiempo-frecuencia)

5 METODOLOGÍA

La metodología que se siguió en el desarrollo del presente seminario de proyectos

incluyó:

a. Estudio de la plataforma Matlab.

b. Análisis y desarrollo de GUIs (Interfaz Gráfica de Usuario).

c. Comprensión y análisis de la estructura de programación SONRESP.

d. Desarrollo de la programación necesaria para realizar la formación de

imágenes acústicas a través de la interpolación 2D de la información acústica

multicanal.

e. Definición de requerimientos de la interfaz de usuario para la formación de

imágenes acústicas.

18

f. Inserción de la programación desarrollada en SONRESP.

g. Generación de elementos gráficos para el manejo de señales de información

acústica.

A continuación se presenta en detalle los incisos b., d., f. y g. dado que los incisos c. y

d. forman los antecedentes de este trabajo.

5.1 La Interfaz Gráfica de Usuario.

Una interfaz gráfica de usuario (GUI: Graphical User Interface) es una interfaz

creada con objetos gráficos como botones, campos de texto, barras deslizantes y menús,

entre otros. Si la GUI está bien diseñada debe ser intuitivo para el usuario la función que

desempeña cada uno de sus componentes. Afortunadamente, la mayoría de los usuarios

de computadoras están familiarizaos con las GUIs y conocen el uso estándar de los

componentes que la conforman [3].

Las GUIs permiten al usuario operar la aplicación sin necesidad de tener

conocimiento de las instrucciones requeridas en interfazs de líneas de comando dado

que proveen un enlace entre el usuario y el código fundamental de la aplicación. Por

esta razón, las aplicaciones que proveen las GUIs son más fáciles de aprender y usar que

aquellas que se ejecutan desde una línea de comando [3].

La plataforma Matlab implementa las GUIs como una ventana que contiene varios

objetos de control. Cada objeto se debe programar para llevar a cabo la acción que se

desee cuando el usuario active el componente. La creación de una GUI involucra dos

tareas:

• Diseñar los componentes de la GUI.

• Programar los componentes de la GUI.

5.1.1 Ambiente de desarrollo de la GUI (GUIDE)

GUIDE (GUI Development Environment) es un conjunto de herramientas que

permite la creación sencilla de GUIs, también genera un archivo *.m que contiene el

código para la inicialización y el lanzamiento de las mismas. Este archivo *.m

19

proporciona un marco de referencia para la implementación de los callbacks (funciones

que se ejecutan cuando el usuario activa los componentes en la GUI).

Así, GUIDE crea dos tipos de archivos:

• Archivo *.fig: archivo que contiene una descripción completa de la GUI y de

todos sus componentes (controles y ejes), así como también los valores de todas

las propiedades de los objetos.

• Archivo *.m: archivo que contiene las funciones para ejecutar y controlar la GUI

y los callbacks.

5.1.2 Controles de interfaz de usuario.

La paleta de diseño de GUIDE contiene los controles de interfaz de usuario que se

pueden utilizar al diseñar la GUI. Estos componentes son objetos de control de Matlab

programables por medio de sus correspondientes callbacks. A continuación se explican

brevemente algunos de los más importantes que influyeron la interfaz desarrollada para

contender con los requerimientos de la interfaz para la formación de imágenes acústicas

[3].

• Push buttons: Generan una acción cuando se presionan los botones del ratón.

• Toggle buttons: Generan una acción e indican un estado binario.

• Radio buttons: Son similares a los check boxes, pero con la diferencia de que

sólo un botón puede permanece en selección en cualquier momento.

• Check boxes: Generan una acción cuando son seleccionados e indican su estado

como seleccionado o no seleccionado.

• Edit text: Controla campos que permiten al usuario agregar o modificar cadenas

de texto.

• Static text: Permiten desplegar líneas de texto, se pueden usar para nombrar

objetos, dar instrucciones, etc.

• Sliders: Aceptan entradas numéricas dentro de cierto intervalo, establecido por

el programador, por medio del movimiento de una barra deslizante o slider.

• Frames: Permiten delimitar algunas regiones de la GUI.

• List boxes: Despliegan una lista de elementos y permiten al usuario seleccionar

uno o más de sus elementos.

20

• Pop-up menus: Despliegan una lista de opciones cuando el usuario selecciona

mediante una flecha el componente.

• Axes: Permiten a la GUI desplegar gráficas en ellos.

• Figure: Ventana que contiene a la GUI y que ha sido diseñada previamente [3].

5.1.3 Pasos para desarrollar una GUI.

1. Planteamiento del problema.

Es necesario conocer el problema a resolver y se deben identificar las variables

de entrada y de salida, así como los parámetros necesarios para llegar al

resultado deseado.

2. Diseño en papel.

Antes de comenzar la programación de la GUI, resulta muy provechoso hacer un

bosquejo de la misma en papel, de esta forma se tiene una idea general de los

componentes que han de utilizarse y del aspecto que se quiere dar a la interfaz.

3. Diseñar la GUI.

Con GUIDE, el diseño en Matlab de la interfaz de usuario es sencillo y se puede

hacer de forma expedita. Para ello se seleccionan los componentes necesarios y

se disponen según lo deseado o requerido. GUIDE cuenta con herramientas para

alinear los objetos o bien para cambiar sus propiedades (nombre, color, tamaño,

etc.), haciendo que el proceso sea ágil y fácil.

4. Creación de los archivos *.m y *.fig.

Una vez que se ha diseñado la GUI y se le han hecho los cambios o ajustes

pertinentes, es necesario acceder a la opción de guardar y asignar un nombre

para identificar la GUI; Matlab genera automáticamente el archivo con extensión

.fig y el archivo con extensión .m. El primero de ellos guarda el aspecto físico de

la interfaz y en el segundo se generan los callbacks para cada uno de los objetos

con que cuenta la interfaz.

21

5. Programación de la GUI.

En este paso es necesario agregar al archivo *.m las funciones que se desea

ejecutar con cada uno de los elementos que componen la interfaz. La realización

de este paso es más natural si se cuenta con las funciones en pseudo-código,

pues así se requiere sólo escribir las funciones en lenguaje Matlab.

6. Probar la GUI.

Se debe ejecutar la GUI y probar su funcionamiento y de encontrarse con alguna

falla, ya sea de diseño o de programación, ésta deberá identificarse y corregirse

revisando los pasos descritos anteriormente.

7. Retroalimentación.

Es necesario que el usuario interactúe con la interfaz y haga ver al diseñador los

puntos en que pueda malinterpretarse el diseño de la GUI, siempre y cuando esto

último sea posible, de lo contrario se deberá pasar al siguiente punto.

8. Ejecución final de la interfaz de usuario.

5.1.4 Ejemplos de GUIs creadas en Matlab.

A continuación se profundiza en los puntos anteriores a través del desarrollo paso a

paso de algunos ejemplos de interfazs creadas con el fin de comprender mejor lo que

implica la puesta en marcha de una GUI.

5.1.4.1 GUI con dos ejes gráficos.

1. Planteamiento del problema. Este ejemplo crea una GUI que contiene dos

ejes para graficar datos. Por simplicidad, los datos se obtienen por evaluación de

la expresión matemática )tf2sin()tf2sin(x 21 π+π= , usando los parámetros

dados por el usuario. Por lo tanto, las entradas serán los valores que provee el

usuario (en este caso serán dos valores de frecuencia, f1 y f2, así como el valor de

inicio, el incremento y el valor de fin del tiempo en segundos, t). La salida

corresponde a dos gráficas: una, la gráfica de la expresión matemática

22

)tf2sin()tf2sin(x 21 π+π=

)tf2sin()tf2sin(x 21 π+π=

con respecto a la frecuencia y la otra, la gráfica de

con respecto al tiempo.

2. Diseño en papel. La GUI tiene 2 áreas gráficas (Axes), una para el dominio del

tiempo y la otra para el dominio de la frecuencia, cada una debe presentar un

cuadro de texto indicando las unidades del eje x. Son necesarios 3 editores de

texto (edit text) para los valores proporcionados por el usuario y por lo tanto,

deben considerarse las etiquetas para cada uno de ellos con el fin identificarlos.

Finalmente, es necesario un push button, el cual tiene la función de evaluar la

expresión y graficar el resultado.

3. Diseñar la GUI. Este paso se realizó con ayuda de GUIDE, el diseño de la GUI

se observa en la figura 5.1 en la que se muestran los tres campos de texto, el

push button y las áreas gráficas.

Figura 5.1. Visualización de la GUI diseñada para graficar )tf2sin()tf2sin(x 21 π+π= en el dominio del tiempo y en el dominio de la frecuencia.

Para modificar las propiedades de los objetos insertados en la figura se utiliza la

herramienta property inspector, que es otra de las ventajas de utilizar GUIDE para el

diseño de la GUI. En la figura 5.2 se muestra la apariencia de esta herramienta y se

realza la propiedad Tag que permite identificar al objeto gráfico.

23

Figura 5.2. Herramienta PropertyInspector, permite cambiar los atributosde los objetos de la GUI.

4. Creación de los archivos *.m y *.fig. Para realizar este paso se oprime la

opción para guardar y se coloca el nombre deseado, tal y como se muestra en la

figura 5.3.

Figura 5.3. Cuadro de diálogo paraguardar la GUI. Al oprimir el botónaceptar se genera automáticamente elarchivo M.

5. Programación de la GUI. En el archivo *.m se agrega el código necesario para

la puesta en marcha de la GUI, en este ejemplo se programó el push button con

las líneas de código que se muestran a continuación:

function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)

% Obtiene los datos del usuario f1 = str2double(get(handles.f1_entrada,'String')); f2 = str2double(get(handles.f2_entrada, 'String')); t = eval(get(handles.t_entrada, 'String'));

24

% calcula la expresión matemática x = sin(2*pi*f1*t) + (sin(2*pi*f2*t)); y = fft(x,512); m = y.*conj(y)/512; f = 1000*(0:256)/512; % Crea la gráfica de frecuencia axes(handles.ejes_frecuencia) stem(f,m(1:257)) set(handles.ejes_frecuencia, 'XMinorTick','on') grid on % Crea la gráfica de tiempo axes(handles.ejes_tiempo) stem(t,x) set(handles.ejes_tiempo, 'XMinorTick','on')

6. Prueba de la GUI. La GUI resultante satisface las expectativas del ejercicio,

por lo que no fue necesario hacer correcciones. La interfaz final se observa en la

figura 5.5.

Figura 5.5. Interfase final. Lagráfica superior corresponde aldominio de la frecuencia y lagráfica inferior al dominio deltiempo.

De la misma forma que el ejemplo anterior se diseñaron y programaron otras

interfazs, que más tarde servirían como una guía para la expansión de SONRESP, entre

las que se encuentran:

25

5.1.4.2 GUI con edit text y slider.

Esta interfaz cuenta con un edit text donde el usuario introduce un valor y un slider

se mueve hasta el dato introducido, o bien, el slider se mueve y en el edit text aparece el

valor actual del slider. El rango de valores que se puede introducir va de 1 hasta 100; si

el usuario teclea un número fuera de ese rango o algún otro caracter entonces el

programa le indica al usuario que se ha cometido un error.

Figura 5.6. Interfase de usuario para mover un slider y observar el valor actual, o bien hacer que se mueva hasta un valor deseado desde el principio.

5.4.1.3 GUI para confirmar una acción.

Esta interfaz se asocia a otras interfases (p. Ej., GUIs de figuras 5.5 y 5.6) mediante

una función denominada CloseRequest. Su función es preguntar al usuario si desea salir

de la GUI cuando se oprime el botón para cerrar, esto evita que el programa se cierre

cuando el botón es oprimido accidentalmente.

Figura 5.7. Interfase de usuario paraconfirmar que se desea salir delprograma en curso.

26

5.2 Las Imágenes Acústicas Pulmonares de Superficie(RATHI)

5.2.1 Los requerimientos de la GUI.

Dado que la aplicación SONRESP esta dirigida al personal médico de alguna

institución para realizar investigación, docencia o en un futuro, procedimientos clínicos

es necesario definir los requerimientos de la GUI en cuanto a la opción de la formación

de imágenes acústicas. Se requiere que la opción sea accesible fácilmente desde el menú

principal de SONRESP y que se habilite o deshabilite de acuerdo al número necesario

de micrófonos para formar una imagen, dado que por el momento se utilizan arreglos

rectangulares.

Además, debe de ofrecer la posibilidad de generar diferentes tipos de imágenes

acústicas. Estos tipos de imágenes se han denominado imágenes de actividad promedio,

individual o de actividad del ciclo respiratorio [5]. Las imágenes de actividad promedio

requieren la selección, en relación al flujo respiratorio, de un número de muestras de la

información acústica multicanal y obtención del promedio, canal por canal, de esa

sección para posteriormente, realizar la interpolación. Este procedimiento permite tomar

en cuenta el hecho de que los sonidos respiratorios se consideran señales estocásticas y

al mismo tiempo, disminuir el ruido que posiblemente se encuentre presente en las

señales. El número de muestras a considerar en la sección debe ser una opción que el

usuario pueda escoger.

Las imágenes de actividad individual reflejan la actividad acústica muestra a

muestra de la información acústica multicanal, nuevamente en relación al flujo

respiratorio. La imagen posiblemente permitirá identificar cambios rápidos que se

presenten en la información acústica como en el caso de sujetos enfermos.

Por otro lado, la imagen de la actividad del ciclo respiratorio, refleja la actividad

acústica de todo el ciclo respiratorio y permitirá analizar la distribución de la

información acústica en las fases inspiratorias y espiratorias. En este caso, la interfaz

debe de permitir al usuario seleccionar el ciclo del cual hay que obtener la imagen

correspondiente. Además, la interfaz debe de presentar las múltiples imágenes de este

caso de una forma que puedan interpretarse fácilmente.

27

5.2.2. GUI para la formación de imágenes acústicas

La creación de imágenes acústicas se realizó mediante la inserción de funciones a la

aplicación SONRESP con ayuda de la herramienta GUIDE. Para generar las imágenes

de la actividad pulmonar utilizando la aplicación SONRESP, el menú RATHI (del

inglés: Respiratory Acoustic Thoracic Imaging) se incluyó en la aplicación, ver figuras

5.8 y 5.9. Es necesario abrir un archivo que contenga 25 canales adquiridos con

información respiratoria acústica, de lo contrario el menú (RATHI) aparecerá

deshabilitado.

Figura 5.8. Herramienta Menu Editor que permite crear menús o insertar submenús en los ya creados.

Al usuario se le da la opción de escoger tres formas de imágenes acústicas de

actividad: promedio, individual o mediante la selección de un ciclo respiratorio; a su

vez, en cada opción es posible que el usuario decida el método de interpolación con el

que desea llevar a cabo la formación de las imágenes.

28

Figura 5.9. Vista de la pantalla principal de SONRESP donde se muestra un archivo de 16 canales, por lo tanto el menú RATHI se encuentra deshabilitado.

Figura 5.10. Menú RATHI con todas las opciones posibles, tipo de imagen (promedio, ciclo o individual) y métodos de interpolación. La técnicas de interpolación generan imágenes

donde el negro representa áreas de silencio acústico y el rojo representa zonas de sonido más intenso [2].

Una vez que se tiene un archivo con el número de canales adecuado es posible

acceder al menú RATHI, donde la primera opción es Superficie. En un futuro cercano,

también se podrá contar con imágenes de profundidad de la actividad respiratoria. El

29

submenú Superficie tiene tres opciones posibles: Actividad promedio, Actividad

Individual y Ciclo Respiratorio (ver figura 5.10). Al hacer cualquier elección entre las

tres anteriores se despliega, entonces, los métodos de interpolación que el usuario puede

elegir: Spline, Hermite, Lineal, Cúbico y Nearest; en la figura 5.10 se puede ver el menú

RATHI completamente desplegado.

5.2.3 Imágenes acústicas de actividad promedio.

Las generación de imágenes de actividad promedio se lleva a cabo a través del

ratón, seleccionando los valores máximos y mínimos de la señal de flujo respiratorio a

partir de los cuales se puede asumir que el flujo es constante (de acuerdo al protocolo de

adquisición) y promediar la señal respiratoria utilizando un cierto número de puntos.

Los valores máximos y mínimos se hacen disponibles notificando al usuario mediante la

ayuda de cuadros de diálogo. A continuación se indica la metodología en la formación

de imágenes de este tipo:

• Obtener los máximos y mínimos por medio de la interacción del usuario con la

aplicación SONRESP (ver Figura 5.11 y 5.12). Dentro de la programación se

realiza una pausa que tiene como fin dar oportunidad al usuario de leer y cerrar

el mensaje. Una vez transcurrida la pausa, si el usuario no cerró el mensaje éste

se minimiza y SONRESP espera a que se marquen los puntos de trabajo; si el

usuario abre alguna otra ventana entonces se genera un error dado que no conoce

los valores para generar las imágenes.

• Llamar a la función denominada sistemapromedio donde se llevan a cabo las

siguientes acciones:

Crear una matriz 5x5xnumerodedatos que contenga las señales para crear las

imágenes. La selección se hace por medio de los nombres de las señales.

Eliminar del valor medio con el fin de normalizar los datos.

Filtrar los datos mediante un filtro pasa altas con frecuencia de corte de 75

Hz, con el fin de eliminar ruido de baja frecuencia y parte del contenido en

frecuencia del ruido cardiaco existente en las señales adquiridas.

Obtener el número de puntos a promediar (ver figura 5.12).

Aplicar la trasformada de Hilbert para obtener la envolvente de la señal

respiratoria de los diferentes canales de información.

30

Llamar a la función paleta_roja, la cual crea una matriz Nx3 con los valores

desde 1/N hasta 1 en incrementos de 1/N. La matriz generada se utiliza para

obtener la escala de color de las imágenes.

Llamar a la función actpromedio donde se crea una matriz con datos para

inspiración y otra para espiración, se obtiene el promedio de cada dato en

dichas matrices y, según el tipo de interpolación se llama a las siguientes

funciones:

o mapa o MapaHermif. La función mapa es para las interpolaciones

spline, lineal, cúbica y nearest neighbour; utiliza el comando interp2

de Matlab al que se le indica el tipo de interpolación que eligió el

usuario para interpolar los datos en 2D. En MapaHermif se calcula la

superficie Hermite.

• Finalmente se despliega, con el comando image, una imagen de la actividad

promedio de inspiración y otra de espiración con los datos calculados por los

interpoladores, la escala de color se aplica con el comando colormap y la matriz

calculada en la función paleta_roja.

(b)

(a)

Figura 5.11. (a) Cuadro de diálogo que indica al usuario que el programa está listo para elegir los puntos máximos o los mínimos (b) que se desee trabajar.

31

Figura 5.12. Cuadro de diálogo que permite introducir el número de puntos para realizar la

promediación. El valor predeterminado corresponde a 100 muestras.

5.2.4 Imágenes de actividad individual

La generación de imágenes de actividad individual es similar a las imágenes de

actividad promedio, excepto que para esta modalidad se obtiene una imagen por cada

muestra que selecciona el usuario.

• Obtener los máximos y mínimos por medio de la interacción del usuario con la

aplicación SONRESP.

• Llamar a la función denominada sistemapromedio donde se llevan a cabo las

siguientes acciones:

Crear una matriz 5x5xnumerodedatos que contenga las señales para crear las

imágenes. La selección se hace por medio de los nombres de las señales.

Eliminar el valor medio con el fin de normalizar los datos a la matriz

obtenida.

Filtrar los datos mediante un filtro pasa altas con frecuencia de corte de 75

Hz.

Aplicar la trasformada de Hilbert para obtener la envolvente de la señal

respiratoria en los diferentes canales.

Llamar a la función paleta_roja, la cual crea una matriz Nx3 con los valores

desde 1/N hasta 1 en incrementos de 1/N. La matriz generada se utiliza para

definir la escala de color de las imágenes.

32

Llamar a la función actindividual donde se crea una matriz con los datos

para cada uno de los máximos y los mínimos seleccionados por el usuario.

De acuerdo con el tipo de interpolación se llama a las siguientes funciones:

o mapa o MapaHermif. La función mapa es para las interpolaciones

spline, lineal, cúbica y nearest neighbour; utiliza el comando interp2

de Matlab al que se le indica el tipo de interpolación que eligió el

usuario para interpolar los datos en 2D. En MapaHermif se calcula la

superficie Hermite.

• Finalmente se despliega, con el comando image, una imagen para la fase de

inspiración y otra para espiración con los datos calculados por los

interpoladores; la escala de color se aplica con el comando colormap y la matriz

calculada anteriormente.

5.2.5 Imágenes acústicas del ciclo respiratorio

Este tipo de imágenes se generan a partir de un ciclo respiratorio seleccionado por el

usuario mediante el ratón de la computadora. En la figura 5.13 se muestra el cuadro de

diálogo empleado para solicitar al usuario que elija el intervalo deseado. Debido a que

la selección puede variar en tamaño y de número de ventanas ( dependiente del número

de muestras a promediar en cada ventana), el número de imágenes también varía. El

siguiente paso es pedir al usuario que introduzca el número de datos que desea

promediar.

Figura 5.13. Cuadro de diálogo que pide al usuario que elija el ciclo respiratorio que desee para generar las imágenes acústicas.

33

La metodología que sigue la programación de imágenes para este caso es:

• Obtener, con ayuda del ratón, el ciclo respiratorio deseado.

• Llamar a la función sistemaciclo, donde se ejecutan las siguientes instrucciones:

Crear una matriz 5x5xnumerodedatos con las señales para crear las

imágenes. Las matriz contiene los datos de las señales que constituyen el

intervalo dado por el usuario.

A la matriz obtenida se le elimina el valor medio con el fin de normalizar los

datos.

Filtrar los datos con un filtro pasa altas con una frecuencia de corte de 75 Hz.

Llamar a la función detecciondemaximosminimos, cuyo cometido es detectar

los máximos y los mínimos del ciclo seleccionado.

Pedir al usuario que introduzca el número de puntos a procesar.

Llamar a la función paleta_roja, para obtener la matriz para la paleta de

color.

Aplicar la transformada de Hilbert con el fin de obtener la envolvente de las

señales.

Llamar a la función actciclo para obtener el número de ciclos seleccionados,

el número de imágenes por ciclo que se crearán y los datos interpolados.

Estos últimos son el resultado de llamar a las funciones mapa o mapaHermif,

según la elección del usuario.

Graficar en una nueva figura, las señales acústicas multicanal en el intervalo

que el usuario seleccionó previamente.

Llamar a la GUI denominada ciclo1 (ver figura 5.14), que tiene como

objetivo desplegar las imágenes obtenidas con los datos de los interpoladores.

Las principales funciones de esta GUI se describen a continuación.

Creación de un “parche”, a través del comando patch, que se mueve sobre

la figura donde se grafica el intervalo seleccionado; su fin es indicar al

usuario la posición en el ciclo respiratorio que corresponde a la imagen

acústica que observa en pantalla.

34

Figura 5.14. Ejemplo de graficación de un intervalo seleccionado arbitrariamente. Es posible observar el parche en gris que se agrega a la figura.

Desplegar las imágenes acústicas pulmonares utilizando el comando

imagesc los datos obtenidos con las funciones de interpolación (mapa o

mapaHermif) y colormap, para la paleta de colores. Las imágenes se

despliegan una por una, con una pausa de un segundo entre ellas.

La GUI cuenta con dos botones: uno tiene la función de desplegar todas las

imágenes en una sola figura (botón Desplegar serie en la figura 5.15). Al

oprimir el segundo botón (botón Animar en la figura 5.15) se observan,

nuevamente, una por una todas las imágenes generadas. Además, un

cuadro de texto indica el número de la imagen que se esta desplegando, o

bien, el usuario puede teclear un número y la GUI muestra la imagen

correspondiente a ese número. El slider permite que el usuario recorra las

imágenes y detenerse en alguna que sea de interés para él.

35

Figura 5.15. Vista de diseño de los elementos que conforman la GUI que grafica las imágenes acústicas generadas a partir de un ciclo respiratorio.

Adicionalmente a la generación de imágenes, se hicieron algunos cambios en la

aplicación SONRESP con el fin de optimizar algunas de sus funciones, así mismo se

agregaron nuevos elementos que hicieran más amigable a la interfaz.

6 IMÁGENES ACÚSTICAS PULMONARES

En esta sección se mostraran los resultados de cada tipo de imagen creada por la

aplicación SONRESP.

6.1 Imágenes acústicas de actividad promedio.

Debido a que SONRESP proporciona al usuario la opción de seleccionar de entre

cinco formas diferentes para llevar a cabo la interpolación, en esta sección los resultados

se presentan utilizando dos técnicas de interpolación con el fin de indicar diferencias a

nivel de comparación visual entre las imágenes generadas.

En la figura 6.1 se observa una imagen obtenida mediante interpolación de Hermite

(seleccionando un punto máximo y un mínimo con base en la señal de flujo respiratorio)

36

mientras que en la figura 6.2 se presenta la imagen para los mismo puntos mediante

interpolación de nearest neighbour (nn). Observando ambas imágenes es posible notar

la diferencia existente entre las imágenes generadas por un interpolador y otro. La

imagen obtenida mediante la interpolación de Hermite proporciona una imagen que

presenta transiciones más suaves entre zonas de gran actividad acústica, representadas

por un color rojo intenso y las zonas de silencio, representadas por zonas en negro. Por

otro lado, la técnica de nn proporciona una imagen que muestra transiciones abruptas y

que, podría ser considerada como una imagen de menor calidad con respecto a la

proporcionada por la técnica Hermite. En la parte superior de las figuras de esta sección

se muestra una radiografía del paciente con el fin de contar con una referencia

anatómica para la imagen acústica.

Figura 6.1. Imágenes de actividad respiratoria promedio obtenidas con interpolación de Hermite. Se obtiene una imagen promedio para la fase de inspiración y otra para la

espiración.

37

Figura 6.2. Imágenes de actividad respiratoria promedio obtenidas con interpolación nn.

6.2 Imágenes acústicas de actividad individual

Se seleccionaron dos puntos máximos y dos mínimos (los puntos se escogieron de

tal forma que fueran iguales a los puntos utilizados en las imágenes de actividad

promedio), por lo que se obtuvieron dos imágenes para los puntos máximos y dos para

mínimos por cada método de interpolación. La figura 6.3 presenta las imágenes

resultantes para la técnica Hermite y la figura 6.4 presenta los resultados para la nn.

Nuevamente, la imagen obtenida mediante la interpolación de Hermite proporciona

una imagen con transiciones suaves entre zonas de gran actividad acústica,

representadas por un color rojo intenso y las zonas de silencio, representadas por zonas

en negro. La técnica nn proporciona una imagen que muestra transiciones abruptas y

que, podría ser considerada como una imagen de menor calidad con respecto a la

proporcionada por la técnica Hermite.

38

Figura 6.3. Imagen obtenida para el máximo seleccionado (a) y en (b) se observa la imagen para el mínimo, el método de interpolación utilizado corresponde a la superficie

H i

(b) (a)

(b) (a)

Figura 6.4 Imagen obtenida para el máximo seleccionado (a) y en (b) se observa la imagen para el mínimo, el método de interpolación utilizado corresponde a nn.

39

6.3 Imágenes acústicas del ciclo respiratorio

En esta sección se muestra la GUI creada para desplegar las imágenes acústicas que

se generan cuando el usuario opta por un ciclo respiratorio.

En las figura 6.5 a 6.7 se muestran varios las imágenes resultantes en tres instantes

de tiempo de las señales acústicas multicanal obtenidas por la técnica de interpolación

de Hermite. A la izquierda de la figuras se observa el intervalo seleccionado para crear

las imágenes acústicas; la barra gris marca los puntos con los que se genera la imagen.

En la derecha de cada figura se observa la imagen acústica correspondiente creada con

interpolación Hermite.

Figura 6.5. A la izquierda de la figura se observa el intervalo seleccionado para crear las imágenes acústicas; la barra gris marca los puntos con los que se genera la imagen. En la derecha de la figura de se observa la imagen acústica creada con interpolación Hermite.

40

Figura 6.6. En este caso se muestra un punto intermedio en el ciclo seleccionado (nótese el avance del parche); la imagen generada es distinta que en la figura

anterior.

Figura 6.7. Esta imagen corresponde a una de las últimas generadas para el ciclo seleccionado.

41

Una vez que se han presentado al usuario todas las imágenes generadas en la GUI se

habilitan otra opciones que permiten tener un control sobre dichas imágenes (ver figura

6.8). En la figura 6.8 se muestra la GUI con todos sus elementos habilitados: un slider

para moverse hacia atrás o hacia delante en las imágenes, un botón denominado “Ver

animación” para observar todas las imágenes con espacio de 1 segundo entre cada una,

un cuadro de texto donde se observa el número de imagen y otro botón denominado

“Desplegar serie” que despliega todas las imágenes generadas.

Figura 6.8. Interfase para el despliegue de las imágenes acústicas de un ciclo respiratorio.

La figura 6.9 presenta el resultado al oprimir el botón para desplegar toda la serie de

imágenes creadas, la desventaja de esta opción es que si el número de imágenes es

elevado, entonces no se aprecian los detalles en cada una de ellas.

Figura 6.9. Despliegue de todas las imágenes generadas para el intervalo que se muestra en las figuras 6.5 a 6.7.

42

En las figuras 6.10 a 6.11 se presentan las imágenes generadas mediante

interpolación de nearest neighbour con el fin de comparar dos de los métodos

programados durante este seminario.

Figura 6.10 En esta figura se observa la primer imagen generada con interpolación nn para el

intervalo mostrado a la izquierda de la imagen.

Figura 6.11. Aquí se muestra un instante intermedio del despliegue de las imágenes creadas a partir del intervalo elegido.

43

Figura 6.12. En este punto se muestra la última imagen generada con nn para este intervalo en particular.

Figura 6.13. Serie de imágenes generadas con nn para el intervalo que se muestra en las figuras 6.10 a 6.12

Las opciones que ya fueron explicadas con anterioridad (slider, desplegar serie y

animar) se tienen disponibles para todas las funciones de interpolación programadas, es

44

decir aunque el usuario cambie de interpolador el despliegue y manejo de las imágenes

es siempre el mismo.

7 DISCUSIÓN

En este seminario de proyectos se incluyó en la aplicación denominada SONRESP

la programación necesaria para crear imágenes acústicas pulmonares de superficie; así

como los cambios que se consideraron pertinentes con el fin de mejorar el desempeño

del programa. Sin embargo, la inclusión de funciones cubrió sólo una parte de las

imágenes generadas por superficie, que corresponde a: imágenes por actividad

promedio, imágenes por actividad individual e imágenes por ciclo respiratorio. Un paso

posterior a este trabajo consistiría en permitir al usuario las formación de imágenes

acústicas por medio de frecuencia o bien obtener las señales sobre el tórax; así como

crear imágenes de profundidad.

En SONRESP se hicieron cambios que agilizan el programa, como son: un slider

para mover una señal en el tiempo, apertura más rápida de los datos en formato UAM,

se agregó la opción para poder abrir archivos en formato ACQ y se modificó la lectura

de los datos sin encabezado. Se varió, también, la función que calcula la potencia

espectral a diferentes porcentajes de las señales y envía los resultados a una base de

datos creada en Access.

En cuanto a la generación de imágenes acústicas pulmonares se encontró que la

mejor función de interpolación es la de Hermite ya que la transición entre zonas de

diferente intensidad es continua y suave [2], mientras que para el método de nearest

neighbour es posible observar que las imágenes están formadas por bloques, lo cual

hace que se pierdan detalles y que su interpretación visual sea más difícil. Para el resto

de los interpoladores también se obtienen imágenes con transiciones continuas pero no

tan suaves como con la interpolación de Hermite.

Se requiere trabajar aún en la aplicación SONRESP para que quede completamente

terminado y para ello se debe contar con el apoyo del personal médico que hará uso de

la aplicación, ya que, siendo ellos los usuarios finales del software siempre pueden

45

aportar ideas y opiniones para mejorar tanto las funciones como el desempeño final del

mismo.

8 BIBLIOGRAFÍA [1] H. Pasterkamp, S. Kraman, G. Wodicka, “Respiratory sounds: Advances beyond the

stethoscope”, Am. J. Respir. Crit. Care Med., vol. 156, pp. 974-987, 1997. [2] S. Charleston-Villalobos, S. Cortés-Rubiano, R. González-Camarena, G. Chi-Lem, T.

Aljama-Corrales, “Respiratory acoustic thoracic imaging (RATHI): assessing deterministic interpolation techniques”, Med. Biol. Eng. Comput., vol. 42, no. 5, pp. 618-626, 2004.

[3] Manual de Matlab “Creating Graphical User Interfaces” versión 6.5, 2002, The MathWorks, Inc .

[4] B. Reyes, “Desarrollo de un sistema multicanal de análisis de sonidos respiratorios en plataforma Matlab”, Reporte de servicio social. Universidad Autónoma Metropolitana-Iztapalapa. 2005.

[5] S. Cortes Rubiano. “Imagenología Acústica Pulmonar”, Maestría en Ingeniería Biomédica. Universidad Autónoma Metropolitana, pp. 21-37. 2001

[6] R. Burden, J.D. Faires, “Análisis Numérico”, Capítulo 3, editorial Iberoamericana, pp. 93-140, 1985