Tratamiento de Seales Digitales
Mediante Wavelets y su
Uso con MATLAB
Flix Martnez Gimnez
Alfredo Peris Manguillot
Francisco Rodenas Escrib
Valencia 2004
Ttulo: Tratamiento de seales digitales mediante wavelets y su uso con Matlat
Autor: Flix Martnez Gimnez
Alfredo Peris Manguillot
Francisco Rodenas Escrib
I.S.B.N.: 84-8454-387-0
Depsito legal: A-950-2004
Edita: Editorial Club Universitario Telf.: 96 567 61 33
C/. Cottolengo, 25 - San Vicente (Alicante)
[Link]
Printed in Spain
Imprime: Imprenta Gamma Telf.: 965 67 19 87
C/. Cottolengo, 25 - San Vicente (Alicante)
[Link]
gamma@[Link]
Reservados todos los derechos. Ni la totalidad ni parte de este libro puede
reproducirse o transmitirse por ningn procedimiento electrnico o mecnico,
incluyendo fotocopia, grabacin magntica o cualquier almacenamiento de
informacin o sistema de reproduccin, sin permiso previo y por escrito de los
titulares del Copyright.
Prlogo
Las wavelets proporcionan un conjunto de herramientas exible para proble-
mas prcticos en ciencia e ingeniera. En la ltima dcada se han aplicado con
xito al anlisis de seales en disciplinas tan diversas como la medicina, la
ingeniera elctrica, teledeteccin y muchas otras. Una de las principales vir-
tudes de las wavelets es que permiten modelar mejor procesos que dependen
fuertemente del tiempo y para los cuales su comportamiento no tiene porqu
ser suave. La transformada wavelet resulta especialmente eciente para extraer
informacin de seales no peridicas o de vida nita. Otra de las ventajas de
dicha transformada frente a otros mtodos es el de poder disponer de una am-
plia familia de wavelets, lo cual permite tratar seales de diversa ndole. La
eleccin de la wavelet depender del tipo de seal que analicemos.
Algunos de los principales problemas que afectan al tratamiento de seales
e imgenes digitales, y en los que las wavelets constituyen una potente herra-
mienta para afrontarlos, son la reduccin del ruido (en seales de audio y en
imgenes), la compresin de seales (de vital importancia tanto en la transmi-
sin de grandes cantidades de datos como en su almacenamiento) o la deteccin
de determinados objetos en imgenes o irregularidades locales en ciertos tipos
de seales (electrocardiogramas, vibraciones de motores, etc.). Esta moderna
teora ha experimentado un gran desarrollo en las dos ltimas dcadas mos-
trndose muy eciente donde otras tcnicas, como por ejemplo la transformada
rpida de Fourier, no resultaban satisfactorias. En esta ltima se maneja una
base de funciones bien localizada en frecuencia pero no en tiempo, mientras
que la mayora de las wavelets interesantes presentan una buena localizacin en
tiempo y en frecuencia, disponiendo incluso de bases de wavelets con soporte
compacto.
Este texto se centra fundamentalmente en la transformada wavelet discre-
ta. Esta transformada est ntimamente ligada al anlisis de multirresolucin,
iii
iv
formulado por Mallat a nales de los 80, y facilita su computacin rpida cuan-
do la familia de wavelets es ortogonal. La transformada wavelet discreta es una
transformacin de la seal que la divide en dos tipos de subseales, la tendencia
y las uctuaciones. La tendencia viene a ser una copia de la seal a menor reso-
lucin y las uctuaciones almacenan informacin referida a los cambios locales
en la seal original. La tendencia y las uctuaciones ms signicativas permi-
ten una compresin de la seal a cambio de descartar informacin irrelevante
y de la eliminacin del ruido producido por los aparatos y las condiciones de
medida. Segn el tipo de medicin realizada el ruido correspondiente se com-
porta matemticamente siguiendo distribuciones de probabilidad gaussianas,
uniformes... El estudio de las uctuaciones permite detectar anomalas o dis-
funciones en el comportamiento esperado de la seal inicial. Tambin permite
la comparacin con patrones para detectar formas en una imagen o una seal
unidimensional de forma automtica. El nuevo formato de JPEG2000 basa la
compresin de imgenes en la transformada wavelet.
La mayor parte de las familias de wavelets que utilizaremos son ortogonales,
los cual nos permite una transformada inversa de fcil computacin, y tan
rpida como la transformada directa.
No existe una transformada wavelet nica, ni que resuelva todos los pro-
blemas, a partir del modelado del proceso y de un anlisis a priori del tipo
de seal tratada y del objetivo que se pretenda (compresin, eliminacin del
ruido, segmentacin de la imagen,...) se busca la familia de wavelets (Haar,
Daubechies, Coiets,...) que mejor coincida con las caractersticas de la seal
a estudiar.
El tratamiento con wavelets discretas permite su aplicacin directa a pro-
cesos computacionales. Las wavelets continuas presentan por una parte la di-
cultad de su manejo al tener que evaluar un gran nmero de integrales y tener
en consecuencia una redundancia de informacin, pero por otra parte permiten
la exibilidad de poder adaptarse a situaciones en las que las discretas no dan
un resultado satisfactorio. Concretamente en el tratamiento de imgenes digi-
tales se precisa realzar detalles y detectar texturas analizando la imagen desde
distintos ngulos, lo cual es posible con las wavelets continuas al disponer de
un mayor nmero de parmetros que posteriormente se pueden discretizar para
su tratamiento computacional. Adems la transformada wavelet continua, al
proveer una alta resolucin temporal y espectral en el espacio transformado,
permite observar aspectos sutiles no estacionarios que pueden ser obviados en
la transformada discreta, lo cual compensa el mayor coste computacional.
v
Este texto es el resultado de la imparticin de la asignatura Tratamiento de
seales e imgenes digitales mediante wavelets, durante los cursos 2001/2002 y
2002/2003, en el marco del Centro de Formacin de Postgrado de la Universitat
Politcnica de Valncia, como Curso de Formacin Especca que versara sobre
el uso de las wavelets para el tratamiento de seales e imgenes digitales. El
pblico al que iba dirigido estaba fundamentalmente formado por ingenieros y
estudiantes de tercer ciclo de la Universitat Politcnica de Valncia.
Este curso pretende ser una introduccin al tratamiento de seales me-
diante wavelets. Los prerrequisitos necesarios son poco exigentes y se reducen
a conocimientos bsicos de algebra lineal y clculo. El objetivo del curso es
claramente prctico y por esa razn se incluyen en el texto (en los apndices
nales) ejercicios y aplicaciones. Para la realizacin de los ejercicios prcti-
cos se us el software comercial Wavelet Toolbox for MATLAB. Las rutinas
de este paquete se ejecutan en el entorno matemtico de computacin MAT-
LAB y por lo tanto tambin necesita estar instalado en nuestro sistema. En
la red se pueden encontrar otros paquetes alternativos de libre distribucin
(como SCILAB) que el lector puede utilizar, bajo los cuales se podrn realizar
los ejercicios propuestos si lo desea pero ser necesario traducir las rdenes y
rutinas descritas al nuevo entorno que se est utilizando.
El texto se estructura en captulos y apndices. Los captulos estn dedi-
cados a la exposicin terica de los conceptos y los apndices son fundamen-
talmente prcticos.
El captulo 2 se dedica a la explicacin bsica de la teora de wavelets
unidimensionales tomando el caso concreto de la wavelet de Haar. Muchas
de las ideas desarrolladas en este captulo para este tipo de wavelets sern
utilizadas en captulos posteriores. Tambin se introducen algunas nociones
bsicas sobre compresin de seales.
En el captulo 3 se introducen otras wavelets ortogonales como las de Dau-
bechies y las Coiets, estudiando sus propiedades fundamentales.
En el captulo 4 se profundiza en las tcnicas de compresin de seales y
de eliminacin de ruido blanco. Se abordan tambin cuestiones importantes a
tener en cuenta en compresin como la cuantizacin y la entropa.
Los dos ltimos captulos estn dedicados a wavelet packets y a la trans-
formada wavelet continua.
Como se ha indicado anteriormente el objetivo de la segunda parte del
texto es la visualizacin prctica de las tcnicas basadas en wavelets para el
tratamiento de seales. Estas prcticas se realizan con el paquete Wavelet
vi
Toolbox for MATLAB que se ejecuta dentro del entorno MATLAB. Por esta
razn el apndice A se dedica a dar unos conceptos bsicos sobre el uso del
programa MATLAB y de la Wavelet Toolbox for MATLAB.
El apndice B contiene la mayora de los ejercicios que se proponen para
su resolucin de forma paralela al estudio del texto. En algunos se incluye
el cdigo MATLAB para su resolucin e incluso se aportan imgenes con los
resultados.
El ltimo apndice C pretende ofrecer al lector un pequeo repertorio de
ejemplos y aplicaciones de tratamiento de seales con wavelets. La mayora
de estas aplicaciones han sido tomadas de el paquete Wavelet Toolbox for
MATLAB y se utilizan seales que se distribuyen con el citado paquete.
Los autores agradecen la nanciacin del Proyecto Interdisciplinar La
Transformada Wavelet en el Tratamiento de Seales e Imgenes Digitales den-
tro del programa INNOVA, por el Vicerrectorada de Investigacin, Desarrollo
e Innovacin de la Universitat Politcnica de Valncia (c.e. 20020629).
Valencia, julio de 2004
Los autores
ndice Abreviado
Prlogo iii
ndice Abreviado vii
ndice General ix
ndice de guras xiii
ndice de cdigos para MATLAB xv
1 Introduccin a las Wavelets y prerrequisitos 1
2 Wavelets de Haar 7
3 Familias de wavelets ortogonales 23
4 Compresin de seales y reduccin de ruido 41
5 Wavelet packets 51
6 La transformada wavelet continua 55
A MATLAB y la Wavelet Toolbox 63
B Ejercicios 79
C Ejemplos y aplicaciones 125
Bibliografa 137
vii
ndice general
Prlogo iii
ndice Abreviado vii
ndice general ix
ndice de guras xiii
ndice de cdigos para MATLAB xv
1 Introduccin a las Wavelets y prerrequisitos de lgebra lineal 1
2 Wavelets de Haar 7
2.1 Scaling y wavelets . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Anlisis de multirresolucin (MRA) . . . . . . . . . . . . . . . . 12
2.3 Transformada de Haar . . . . . . . . . . . . . . . . . . . . . . . 16
3 Familias de wavelets ortogonales 23
3.1 Wavelets de Daubechies . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Daubechies db2 . . . . . . . . . . . . . . . . . . . . . . . 23
Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . 23
Caracterstica de las uctuaciones pequeas . . . . . . . 27
3.1.2 Daubechies db3 . . . . . . . . . . . . . . . . . . . . . . . 29
Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . 29
Caracterstica de las uctuaciones pequeas . . . . . . . 31
3.1.3 Daubechies dbJ . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Coiets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Transformada de Fourier discreta y MRA . . . . . . . . . . . . 34
ix
x
4 Compresin de seales y reduccin de ruido 41
4.1 Cuantizacin y umbralizado . . . . . . . . . . . . . . . . . . . . 42
4.2 Codicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Medidas de la aproximacin . . . . . . . . . . . . . . . . . . . . 49
5 Wavelet packets 51
6 La transformada wavelet continua 55
A MATLAB y la Wavelet Toolbox 63
A.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
A.1.1 Breve (muy breve) introduccin . . . . . . . . . . . . . . 63
A.1.2 Representacin de seales . . . . . . . . . . . . . . . . . 64
Datos en un chero ASCII . . . . . . . . . . . . . . . . . 65
Datos creados a partir de una funcin . . . . . . . . . . 66
A.2 La Wavelet Toolbox . . . . . . . . . . . . . . . . . . . . . . . 68
A.2.1 Wavelets 1-D desde la lnea de comandos (primeros pasos) 68
A.2.2 Wavelets 1-D desde el entorno grco (primeros pasos) . 74
A.3 Programando algunas funciones en MATLAB . . . . . . . . . . 75
B Ejercicios 79
B.1 Transformada de Haar de una seal . . . . . . . . . . . . . . . . 79
B.2 Compresin de seales (primeros pasos) . . . . . . . . . . . . . 80
B.3 Otras wavelets ortogonales: Daubechies y Coiets . . . . . . . . 85
B.4 Dibujando wavelets and scaling . . . . . . . . . . . . . . . . . . 88
B.5 Compresin de seales y cuantizacin . . . . . . . . . . . . . . . 92
B.6 Reduccin del ruido en una seal . . . . . . . . . . . . . . . . . 98
B.6.1 Comportamiento del ruido blanco a travs de una trans-
formada wavelet . . . . . . . . . . . . . . . . . . . . . . 98
B.6.2 Reduccin del ruido en una seal . . . . . . . . . . . . . 100
B.7 Transformada de Fourier Discreta . . . . . . . . . . . . . . . . . 105
B.7.1 Fast Fourier Transform . . . . . . . . . . . . . . . . . . 105
B.7.2 El espectro de seales wavelets y scaling . . . . . . . . . 108
B.7.3 Anlisis de frecuencias y transformada wavelet . . . . . 110
B.8 Deteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
B.9 Wavelets packets . . . . . . . . . . . . . . . . . . . . . . . . . . 120
B.9.1 Analizando una seal . . . . . . . . . . . . . . . . . . . . 120
B.9.2 Comprimiendo la seal . . . . . . . . . . . . . . . . . . . 120
xi
B.9.3 Reduccin de ruido . . . . . . . . . . . . . . . . . . . . . 121
B.10 Transformada wavelet continua . . . . . . . . . . . . . . . . . . 121
B.10.1 Transformada wavelet continua desde la lnea de comandos121
B.10.2 Transformada wavelet continua en el entorno grco . . 123
C Ejemplos y aplicaciones 125
C.1 Deteccin de breakdown points . . . . . . . . . . . . . . . . . 125
C.1.1 Un cambio en la frecuencia . . . . . . . . . . . . . . . . 125
C.1.2 Evolucin a largo tiempo . . . . . . . . . . . . . . . . . 128
C.1.3 Discontinuidad en derivadas . . . . . . . . . . . . . . . . 129
C.2 Identicando frecuencias puras . . . . . . . . . . . . . . . . . . 131
C.3 Anlisis de un caso real . . . . . . . . . . . . . . . . . . . . . . 133
C.4 Deteccin de auto-semejanza (estructura fractal) . . . . . . . . 134
Bibliografa 137
ndice de guras
1.1 Anlisis de multirresolucin de una seal . . . . . . . . . . . . . 3
2.1 Tendencia y uctuacin de una seal a nivel 1 . . . . . . . . . . 9
2.2 Tendencia y uctuacin de una seal a niveles 1 y 2 . . . . . . 11
2.3 Anlisis de multirresolucin de una seal a nivel 2 . . . . . . . 14
2.4 Transformada de Haar y perles de energa acumulada . . . . . 19
3.1 Vectores wavelets y scaling para db2 . . . . . . . . . . . . . . . 25
3.2 Vectores wavelets y scaling para coif . . . . . . . . . . . . . . . 34
3.3 Anlisis de frecuencias con DFT . . . . . . . . . . . . . . . . . . 36
3.4 Espectros de wavelets y scaling . . . . . . . . . . . . . . . . . . 37
3.5 Anlisis de frecuencias con DFT del MRA . . . . . . . . . . . . 38
3.6 Espectros de wavelets y scaling a varios niveles . . . . . . . . . 39
4.1 Eliminacin de ruido blanco . . . . . . . . . . . . . . . . . . . . 44
4.2 Transformada wavelet de un ruido blanco gaussiano . . . . . . . 45
4.3 Cuantizacin de una seal de audio . . . . . . . . . . . . . . . . 49
6.1 Wavelet madre sombrero mejicano . . . . . . . . . . . . . . . 57
6.2 Transformada wavelet continua . . . . . . . . . . . . . . . . . . 58
6.3 Espectros sombrero mejicano . . . . . . . . . . . . . . . . . . . 59
6.4 Wavelet madre Morlet . . . . . . . . . . . . . . . . . . . . . . . 60
6.5 Escalograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.1 Un ejemplo de plot() . . . . . . . . . . . . . . . . . . . . . . . 66
A.2 Creando una seal . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.3 Tendencia y uctuacin de una seal . . . . . . . . . . . . . . . 69
A.4 Seales promedio y detalle a primer nivel . . . . . . . . . . . . 70
xiii
xiv
A.5 Anlisis de tres niveles de una seal . . . . . . . . . . . . . . . 73
A.6 Herramienta grca de la Wavelet Toolbox . . . . . . . . . . . 76
B.1 Transformada de Haar de 1 nivel de una seal . . . . . . . . . . 80
B.2 Transformada de Haar de nivel 2 de una seal y sus perles de
energa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
B.3 Compresin de una seal . . . . . . . . . . . . . . . . . . . . . . 83
B.4 Comparacin Daubechies y Coiets . . . . . . . . . . . . . . . . 88
B.5 Transformadas inversas de Haar . . . . . . . . . . . . . . . . . . 90
B.6 Compresin de una seal con cuantizacin . . . . . . . . . . . . 95
B.7 Transformada wavelet de Haar de un ruido blanco gaussiano . . 100
B.8 Reduccin del ruido blanco en una seal . . . . . . . . . . . . . 103
B.9 Reduccin del ruido blanco en una seal con la orden wden . . . 104
B.10 Transformada discreta de Fourier de una seal . . . . . . . . . . 106
B.11 Anlisis de frecuencias de una seal con DFT . . . . . . . . . . 107
B.12 Espectro de wavelets y scaling . . . . . . . . . . . . . . . . . . . 108
B.13 Anlisis de frecuencias combinando DFT y wavelets . . . . . . . 111
B.14 Deteccin de seales cortas en seales grandes . . . . . . . . . . 115
B.15 Deteccin de seales cortas en seales grandes (manipuladas con
wavelets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
B.16 Transformada wavelet continua de una seal . . . . . . . . . . . 123
C.1 Localizacin de breakdown points . . . . . . . . . . . . . . . . 126
C.2 Evolucin a largo tiempo de una seal . . . . . . . . . . . . . . 128
C.3 Discontinuidad en la segunda derivada . . . . . . . . . . . . . . 130
C.4 Identicando frecuencias puras . . . . . . . . . . . . . . . . . . 132
ndice de cdigos para
MATLAB
Archivo ana_nivel_3.m
Anlisis wavelet de una seal hasta nivel 3 . . . . . . . . . . . . 71
Archivo energy.m
Energa de una seal . . . . . . . . . . . . . . . . . . . . . . . . 77
Archivo cumenergy.m
Energa acumulada (normalizada) de una seal . . . . . . . . . 77
Archivo rms.m
Error RMS entre dos seales . . . . . . . . . . . . . . . . . . . . 78
Archivo compress.m
Compresin de una seal . . . . . . . . . . . . . . . . . . . . . . 81
Archivo daub_coif.m
Mejora Coiets respecto Daubechies . . . . . . . . . . . . . . . 86
Archivo wav_sca.m
Construccin de wavelets y scaling . . . . . . . . . . . . . . . . 89
Archivo compress2.m
Compresin seal con cuantizacin . . . . . . . . . . . . . . . . 93
Archivo comp_audio.m
Compresin seal audio con cuantizacin y codicacin . . . . . 96
Archivo white_noise.m
Transformada wavelet de ruido blanco . . . . . . . . . . . . . . 99
Archivo make_noisy_signal.m
Adicin de ruido blanco gaussiano a una seal . . . . . . . . . . 101
Archivo denoise.m
Reduccin de ruido . . . . . . . . . . . . . . . . . . . . . . . . . 101
xv