FORMACIÓN DE IMÁGENES ACÚSTICAS …148.206.53.84/tesiuami/UAMI12558.pdf · Ciencias Básicas e...
-
Upload
dinhnguyet -
Category
Documents
-
view
222 -
download
0
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