Está en la página 1de 15

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)
www.ecu.fm
Printed in Spain
Imprime: Imprenta Gamma Telf.: 965 67 19 87
C/. Cottolengo, 25 - San Vicente (Alicante)
www.gamma.fm
gamma@gamma.fm

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 flexible para problemas 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 virtudes 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 eficiente para extraer
informacin de seales no peridicas o de vida finita. Otra de las ventajas de
dicha transformada frente a otros mtodos es el de poder disponer de una amplia 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 herramienta para afrontarlos, son la reduccin del ruido (en seales de audio y en
imgenes), la compresin de seales (de vital importancia tanto en la transmisin 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 mostrndose muy eficiente 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 discreta. Esta transformada est ntimamente ligada al anlisis de multirresolucin,
iii

iv

formulado por Mallat a finales de los 80, y facilita su computacin rpida cuando 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 fluctuaciones. La tendencia viene a ser una copia de la seal a menor resolucin y las fluctuaciones almacenan informacin referida a los cambios locales
en la seal original. La tendencia y las fluctuaciones ms significativas permiten 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 comporta matemticamente siguiendo distribuciones de probabilidad gaussianas,
uniformes... El estudio de las fluctuaciones permite detectar anomalas o disfunciones 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 problemas, 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, Coiflets,...) que mejor coincida con las caractersticas de la seal
a estudiar.
El tratamiento con wavelets discretas permite su aplicacin directa a procesos computacionales. Las wavelets continuas presentan por una parte la dificultad 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 flexibilidad de poder adaptarse a situaciones en las que las discretas no dan
un resultado satisfactorio. Concretamente en el tratamiento de imgenes digitales 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.

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 Especfica 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 mediante 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
finales) ejercicios y aplicaciones. Para la realizacin de los ejercicios prcticos se us el software comercial Wavelet Toolbox for MATLAB. Las rutinas
de este paquete se ejecutan en el entorno matemtico de computacin MATLAB 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 dedicados a la exposicin terica de los conceptos y los apndices son fundamentalmente 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 Daubechies y las Coiflets, 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 transformada 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 financiacin del Proyecto Interdisciplinar La
Transformada Wavelet en el Tratamiento de Seales e Imgenes Digitales dentro 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 figuras

xiii

ndice de cdigos para MATLAB

xv

1 Introduccin a las Wavelets y prerrequisitos

2 Wavelets de Haar

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 figuras

xiii

ndice de cdigos para MATLAB

xv

1 Introduccin a las Wavelets y prerrequisitos de lgebra lineal

2 Wavelets de Haar
2.1 Scaling y wavelets . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Anlisis de multirresolucin (MRA) . . . . . . . . . . . . . . . .
2.3 Transformada de Haar . . . . . . . . . . . . . . . . . . . . . . .

7
7
12
16

3 Familias de wavelets ortogonales


3.1 Wavelets de Daubechies . . . . . . . . . . . . . . .
3.1.1 Daubechies db2 . . . . . . . . . . . . . . . .
Conceptos bsicos . . . . . . . . . . . . . .
Caracterstica de las fluctuaciones pequeas
3.1.2 Daubechies db3 . . . . . . . . . . . . . . . .
Conceptos bsicos . . . . . . . . . . . . . .
Caracterstica de las fluctuaciones pequeas
3.1.3 Daubechies dbJ . . . . . . . . . . . . . . . .
3.2 Coiflets . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Transformada de Fourier discreta y MRA . . . . .

23
23
23
23
27
29
29
31
31
32
34

ix

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

4 Compresin de seales y reduccin de ruido


4.1 Cuantizacin y umbralizado . . . . . . . . . . . . . . . . . . . .
4.2 Codificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Medidas de la aproximacin . . . . . . . . . . . . . . . . . . . .

41
42
46
49

5 Wavelet packets

51

6 La transformada wavelet continua

55

A MATLAB y la Wavelet Toolbox


A.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1.1 Breve (muy breve) introduccin . . . . . . . . . . . . . .
A.1.2 Representacin de seales . . . . . . . . . . . . . . . . .
Datos en un fichero ASCII . . . . . . . . . . . . . . . . .
Datos creados a partir de una funcin . . . . . . . . . .
A.2 La Wavelet Toolbox . . . . . . . . . . . . . . . . . . . . . . .
A.2.1 Wavelets 1-D desde la lnea de comandos (primeros pasos)
A.2.2 Wavelets 1-D desde el entorno grfico (primeros pasos) .
A.3 Programando algunas funciones en MATLAB . . . . . . . . . .

63
63
63
64
65
66
68
68
74
75

B Ejercicios
B.1 Transformada de Haar de una seal . . . . . . . . . . . . . . . .
B.2 Compresin de seales (primeros pasos) . . . . . . . . . . . . .
B.3 Otras wavelets ortogonales: Daubechies y Coiflets . . . . . . . .
B.4 Dibujando wavelets and scaling . . . . . . . . . . . . . . . . . .
B.5 Compresin de seales y cuantizacin . . . . . . . . . . . . . . .
B.6 Reduccin del ruido en una seal . . . . . . . . . . . . . . . . .
B.6.1 Comportamiento del ruido blanco a travs de una transformada wavelet . . . . . . . . . . . . . . . . . . . . . .
B.6.2 Reduccin del ruido en una seal . . . . . . . . . . . . .
B.7 Transformada de Fourier Discreta . . . . . . . . . . . . . . . . .
B.7.1 Fast Fourier Transform . . . . . . . . . . . . . . . . . .
B.7.2 El espectro de seales wavelets y scaling . . . . . . . . .
B.7.3 Anlisis de frecuencias y transformada wavelet . . . . .
B.8 Deteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.9 Wavelets packets . . . . . . . . . . . . . . . . . . . . . . . . . .
B.9.1 Analizando una seal . . . . . . . . . . . . . . . . . . . .
B.9.2 Comprimiendo la seal . . . . . . . . . . . . . . . . . . .

79
79
80
85
88
92
98
98
100
105
105
108
110
112
120
120
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 grfico . . 123
C Ejemplos y aplicaciones
C.1 Deteccin de breakdown points . . . .
C.1.1 Un cambio en la frecuencia . . .
C.1.2 Evolucin a largo tiempo . . . .
C.1.3 Discontinuidad en derivadas . . .
C.2 Identificando frecuencias puras . . . . .
C.3 Anlisis de un caso real . . . . . . . . .
C.4 Deteccin de auto-semejanza (estructura
Bibliografa

. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
fractal)

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

125
125
125
128
129
131
133
134
137

ndice de figuras
1.1

Anlisis de multirresolucin de una seal . . . . . . . . . . . . .

2.1
2.2
2.3
2.4

Tendencia y fluctuacin de una seal a nivel 1 . . . . .


Tendencia y fluctuacin de una seal a niveles 1 y 2 .
Anlisis de multirresolucin de una seal a nivel 2 . .
Transformada de Haar y perfiles de energa acumulada

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

9
11
14
19

3.1
3.2
3.3
3.4
3.5
3.6

Vectores wavelets y scaling para db2 . . . . . .


Vectores wavelets y scaling para coif . . . . . .
Anlisis de frecuencias con DFT . . . . . . . . .
Espectros de wavelets y scaling . . . . . . . . .
Anlisis de frecuencias con DFT del MRA . . .
Espectros de wavelets y scaling a varios niveles

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

25
34
36
37
38
39

4.1
4.2
4.3

Eliminacin de ruido blanco . . . . . . . . . . . . . . . . . . . .


Transformada wavelet de un ruido blanco gaussiano . . . . . . .
Cuantizacin de una seal de audio . . . . . . . . . . . . . . . .

44
45
49

6.1
6.2
6.3
6.4
6.5

Wavelet madre sombrero mejicano


Transformada wavelet continua . . .
Espectros sombrero mejicano . . . .
Wavelet madre Morlet . . . . . . . .
Escalograma . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

57
58
59
60
61

A.1
A.2
A.3
A.4

Un ejemplo de plot() . . . . . . . . . . .
Creando una seal . . . . . . . . . . . . .
Tendencia y fluctuacin de una seal . . .
Seales promedio y detalle a primer nivel

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

66
67
69
70

xiii

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

xiv

A.5 Anlisis de tres niveles de una seal . . . . . . . . . . . . . . .


A.6 Herramienta grfica de la Wavelet Toolbox . . . . . . . . . . .

73
76

B.1 Transformada de Haar de 1 nivel de una seal . . . . . . . . . .


B.2 Transformada de Haar de nivel 2 de una seal y sus perfiles de
energa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.3 Compresin de una seal . . . . . . . . . . . . . . . . . . . . . .
B.4 Comparacin Daubechies y Coiflets . . . . . . . . . . . . . . . .
B.5 Transformadas inversas de Haar . . . . . . . . . . . . . . . . . .
B.6 Compresin de una seal con cuantizacin . . . . . . . . . . . .
B.7 Transformada wavelet de Haar de un ruido blanco gaussiano . .
B.8 Reduccin del ruido blanco en una seal . . . . . . . . . . . . .
B.9 Reduccin del ruido blanco en una seal con la orden wden . . .
B.10 Transformada discreta de Fourier de una seal . . . . . . . . . .
B.11 Anlisis de frecuencias de una seal con DFT . . . . . . . . . .
B.12 Espectro de wavelets y scaling . . . . . . . . . . . . . . . . . . .
B.13 Anlisis de frecuencias combinando DFT y wavelets . . . . . . .
B.14 Deteccin de seales cortas en seales grandes . . . . . . . . . .
B.15 Deteccin de seales cortas en seales grandes (manipuladas con
wavelets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.16 Transformada wavelet continua de una seal . . . . . . . . . . .

80

C.1
C.2
C.3
C.4

Localizacin de breakdown points . .


Evolucin a largo tiempo de una seal
Discontinuidad en la segunda derivada
Identificando frecuencias puras . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

81
83
88
90
95
100
103
104
106
107
108
111
115
118
123
126
128
130
132

ndice de cdigos para


MATLAB
Archivo ana_nivel_3.m
Anlisis wavelet de una seal hasta nivel 3 . . . . . . . .
Archivo energy.m
Energa de una seal . . . . . . . . . . . . . . . . . . . .
Archivo cumenergy.m
Energa acumulada (normalizada) de una seal . . . . .
Archivo rms.m
Error RMS entre dos seales . . . . . . . . . . . . . . . .
Archivo compress.m
Compresin de una seal . . . . . . . . . . . . . . . . . .
Archivo daub_coif.m
Mejora Coiflets respecto Daubechies . . . . . . . . . . .
Archivo wav_sca.m
Construccin de wavelets y scaling . . . . . . . . . . . .
Archivo compress2.m
Compresin seal con cuantizacin . . . . . . . . . . . .
Archivo comp_audio.m
Compresin seal audio con cuantizacin y codificacin .
Archivo white_noise.m
Transformada wavelet de ruido blanco . . . . . . . . . .
Archivo make_noisy_signal.m
Adicin de ruido blanco gaussiano a una seal . . . . . .
Archivo denoise.m
Reduccin de ruido . . . . . . . . . . . . . . . . . . . . .
xv

. . . .

71

. . . .

77

. . . .

77

. . . .

78

. . . .

81

. . . .

86

. . . .

89

. . . .

93

. . . .

96

. . . .

99

. . . . 101
. . . . 101

También podría gustarte