Tratamiento de Señales Digitales Mediante Wavelets y su Uso con

Tratamiento de Señales Digitales
Mediante Wavelets y su
Uso con MATLAB
Félix Martínez Giménez
Alfredo Peris Manguillot
Francisco Rodenas Escribá
Valencia 2004
Título:
Tratamiento de señales digitales mediante wavelets y su uso con Matlat
Autor: © Félix Martínez Giménez
Alfredo Peris Manguillot
Francisco Rodenas Escribá
I.S.B.N.: 84-8454-387-0
Depósito 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
[email protected]
Reservados todos los derechos. Ni la totalidad ni parte de este libro puede
reproducirse o transmitirse por ningún procedimiento electrónico o mecánico,
incluyendo fotocopia, grabación magnética o cualquier almacenamiento de
información o sistema de reproducción, sin permiso previo y por escrito de los
titulares del Copyright.
Prólogo
Las wavelets proporcionan un conjunto de herramientas flexible para problemas prácticos en ciencia e ingeniería. En la última década se han aplicado con
éxito al análisis de señales en disciplinas tan diversas como la medicina, la
ingeniería eléctrica, teledetección 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
información de señales no periódicas o de vida finita. Otra de las ventajas de
dicha transformada frente a otros métodos es el de poder disponer de una amplia familia de wavelets, lo cual permite tratar señales de diversa índole. La
elección de la wavelet dependerá del tipo de señal que analicemos.
Algunos de los principales problemas que afectan al tratamiento de señales
e imágenes digitales, y en los que las wavelets constituyen una potente herramienta para afrontarlos, son la reducción del ruido (en señales de audio y en
imágenes), la compresión de señales (de vital importancia tanto en la transmisión de grandes cantidades de datos como en su almacenamiento) o la detección
de determinados objetos en imágenes o irregularidades locales en ciertos tipos
de señales (electrocardiogramas, vibraciones de motores, etc.). Esta moderna
teoría ha experimentado un gran desarrollo en las dos últimas décadas mostrándose muy eficiente donde otras técnicas, como por ejemplo la transformada
rápida 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 mayoría de las wavelets interesantes presentan una buena localización 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 análisis de multirresolución,
iii
iv
formulado por Mallat a finales de los 80, y facilita su computación rápida cuando la familia de wavelets es ortogonal. La transformada wavelet discreta es una
transformación de la señal que la divide en dos tipos de subseñales, la tendencia
y las fluctuaciones. La tendencia viene a ser una copia de la señal a menor resolución y las fluctuaciones almacenan información referida a los cambios locales
en la señal original. La tendencia y las fluctuaciones más significativas permiten una compresión de la señal a cambio de descartar información irrelevante
y de la eliminación del ruido producido por los aparatos y las condiciones de
medida. Según el tipo de medición realizada el ruido correspondiente se comporta matemáticamente siguiendo distribuciones de probabilidad gaussianas,
uniformes... El estudio de las fluctuaciones permite detectar anomalías o disfunciones en el comportamiento esperado de la señal inicial. También permite
la comparación con patrones para detectar formas en una imagen o una señal
unidimensional de forma automática. El nuevo formato de JPEG2000 basa la
compresión de imágenes en la transformada wavelet.
La mayor parte de las familias de wavelets que utilizaremos son ortogonales,
los cual nos permite una transformada inversa de fácil computación, y tan
rápida 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 análisis a priori del tipo
de señal tratada y del objetivo que se pretenda (compresión, eliminación del
ruido, segmentación de la imagen,...) se busca la familia de wavelets (Haar,
Daubechies, Coiflets,...) que mejor coincida con las características de la señal
a estudiar.
El tratamiento con wavelets discretas permite su aplicación directa a procesos computacionales. Las wavelets continuas presentan por una parte la dificultad de su manejo al tener que evaluar un gran número de integrales y tener
en consecuencia una redundancia de información, 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 imágenes 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 número de parámetros que posteriormente se pueden discretizar para
su tratamiento computacional. Además la transformada wavelet continua, al
proveer una alta resolución 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 impartición de la asignatura “Tratamiento de
señales e imágenes digitales mediante wavelets”, durante los cursos 2001/2002 y
2002/2003, en el marco del Centro de Formación de Postgrado de la Universitat
Politècnica de València, como Curso de Formación Específica que versaría sobre
el uso de las wavelets para el tratamiento de señales e imágenes digitales. El
público al que iba dirigido estaba fundamentalmente formado por ingenieros y
estudiantes de tercer ciclo de la Universitat Politècnica de València.
Este curso pretende ser una introducción al tratamiento de señales mediante wavelets. Los prerrequisitos necesarios son poco exigentes y se reducen
a conocimientos básicos de algebra lineal y cálculo. El objetivo del curso es
claramente práctico y por esa razón se incluyen en el texto (en los apéndices
finales) ejercicios y aplicaciones. Para la realización de los ejercicios prácticos se usó el software comercial “Wavelet Toolbox for MATLAB”. Las rutinas
de este paquete se ejecutan en el entorno matemático de computación MATLAB y por lo tanto también necesita estar instalado en nuestro sistema. En
la red se pueden encontrar otros paquetes alternativos de libre distribución
(como SCILAB) que el lector puede utilizar, bajo los cuales se podrán 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 capítulos y apéndices. Los capítulos están dedicados a la exposición teórica de los conceptos y los apéndices son fundamentalmente prácticos.
El capítulo 2 se dedica a la explicación básica de la teoría de wavelets
unidimensionales tomando el caso concreto de la wavelet de Haar. Muchas
de las ideas desarrolladas en este capítulo para este tipo de wavelets serán
utilizadas en capítulos posteriores. También se introducen algunas nociones
básicas sobre compresión de señales.
En el capítulo 3 se introducen otras wavelets ortogonales como las de Daubechies y las Coiflets, estudiando sus propiedades fundamentales.
En el capítulo 4 se profundiza en las técnicas de compresión de señales y
de eliminación de ruido blanco. Se abordan también cuestiones importantes a
tener en cuenta en compresión como la cuantización y la entropía.
Los dos últimos capítulos están 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 visualización práctica de las técnicas basadas en wavelets para el
tratamiento de señales. Estas prácticas se realizan con el paquete “Wavelet
vi
Toolbox for MATLAB” que se ejecuta dentro del entorno MATLAB. Por esta
razón el apéndice A se dedica a dar unos conceptos básicos sobre el uso del
programa MATLAB y de la “Wavelet Toolbox for MATLAB”.
El apéndice B contiene la mayoría de los ejercicios que se proponen para
su resolución de forma paralela al estudio del texto. En algunos se incluye
el código MATLAB para su resolución e incluso se aportan imágenes con los
resultados.
El último apéndice C pretende ofrecer al lector un pequeño repertorio de
ejemplos y aplicaciones de tratamiento de señales con wavelets. La mayoría
de estas aplicaciones han sido tomadas de el paquete “Wavelet Toolbox for
MATLAB” y se utilizan señales que se distribuyen con el citado paquete.
Los autores agradecen la financiación del Proyecto Interdisciplinar “La
Transformada Wavelet en el Tratamiento de Señales e Imágenes Digitales” dentro del programa INNOVA, por el Vicerrectorada de Investigación, Desarrollo
e Innovación de la Universitat Politècnica de València (c.e. 20020629).
Valencia, julio de 2004
Los autores
Índice Abreviado
Prólogo
iii
Índice Abreviado
vii
Índice General
ix
Índice de figuras
xiii
Índice de códigos para MATLAB
xv
1 Introducción a las Wavelets y prerrequisitos
1
2 Wavelets de Haar
7
3 Familias de wavelets ortogonales
23
4 Compresión de señales y reducción 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
Bibliografía
137
vii
Índice general
Prólogo
iii
Índice Abreviado
vii
Índice general
ix
Índice de figuras
xiii
Índice de códigos para MATLAB
xv
1 Introducción a las Wavelets y prerrequisitos de álgebra lineal
1
2 Wavelets de Haar
2.1 Scaling y wavelets . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Análisis de multirresolución (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 básicos . . . . . . . . . . . . . .
Característica de las fluctuaciones pequeñas
3.1.2 Daubechies db3 . . . . . . . . . . . . . . . .
Conceptos básicos . . . . . . . . . . . . . .
Característica de las fluctuaciones pequeñas
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
4 Compresión de señales y reducción de ruido
4.1 Cuantización y umbralizado . . . . . . . . . . . . . . . . . . . .
4.2 Codificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Medidas de la aproximación . . . . . . . . . . . . . . . . . . . .
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) introducción . . . . . . . . . . . . . .
A.1.2 Representación de señales . . . . . . . . . . . . . . . . .
Datos en un fichero ASCII . . . . . . . . . . . . . . . . .
Datos creados a partir de una función . . . . . . . . . .
A.2 La “Wavelet Toolbox” . . . . . . . . . . . . . . . . . . . . . . .
A.2.1 Wavelets 1-D desde la línea de comandos (primeros pasos)
A.2.2 Wavelets 1-D desde el entorno gráfico (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 señal . . . . . . . . . . . . . . . .
B.2 Compresión de señales (primeros pasos) . . . . . . . . . . . . .
B.3 Otras wavelets ortogonales: Daubechies y Coiflets . . . . . . . .
B.4 Dibujando wavelets and scaling . . . . . . . . . . . . . . . . . .
B.5 Compresión de señales y cuantización . . . . . . . . . . . . . . .
B.6 Reducción del ruido en una señal . . . . . . . . . . . . . . . . .
B.6.1 Comportamiento del ruido blanco a través de una transformada wavelet . . . . . . . . . . . . . . . . . . . . . .
B.6.2 Reducción del ruido en una señal . . . . . . . . . . . . .
B.7 Transformada de Fourier Discreta . . . . . . . . . . . . . . . . .
B.7.1 “Fast Fourier Transform” . . . . . . . . . . . . . . . . . .
B.7.2 El espectro de señales wavelets y scaling . . . . . . . . .
B.7.3 Análisis de frecuencias y transformada wavelet . . . . .
B.8 Detección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.9 Wavelets packets . . . . . . . . . . . . . . . . . . . . . . . . . .
B.9.1 Analizando una señal . . . . . . . . . . . . . . . . . . . .
B.9.2 Comprimiendo la señal . . . . . . . . . . . . . . . . . . .
79
79
80
85
88
92
98
98
100
105
105
108
110
112
120
120
120
xi
B.9.3 Reducción de ruido . . . . . . . . . . . . . . . . . . . . . 121
B.10 Transformada wavelet continua . . . . . . . . . . . . . . . . . . 121
B.10.1 Transformada wavelet continua desde la línea de comandos121
B.10.2 Transformada wavelet continua en el entorno gráfico . . 123
C Ejemplos y aplicaciones
C.1 Detección de “breakdown points” . . . .
C.1.1 Un cambio en la frecuencia . . .
C.1.2 Evolución a largo tiempo . . . .
C.1.3 Discontinuidad en derivadas . . .
C.2 Identificando frecuencias puras . . . . .
C.3 Análisis de un caso real . . . . . . . . .
C.4 Detección de auto-semejanza (estructura
Bibliografía
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
fractal)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
125
125
128
129
131
133
134
137
Índice de figuras
1.1
Análisis de multirresolución de una señal . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
Tendencia y fluctuación de una señal a nivel 1 . . . . .
Tendencia y fluctuación de una señal a niveles 1 y 2 .
Análisis de multirresolución de una señal a nivel 2 . .
Transformada de Haar y perfiles de energía 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 . . . . . .
Análisis de frecuencias con DFT . . . . . . . . .
Espectros de wavelets y scaling . . . . . . . . .
Análisis 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
Eliminación de ruido blanco . . . . . . . . . . . . . . . . . . . .
Transformada wavelet de un ruido blanco gaussiano . . . . . . .
Cuantización de una señal 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 señal . . . . . . . . . . . . .
Tendencia y fluctuación de una señal . . .
Señales promedio y detalle a primer nivel
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
67
69
70
xiii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
xiv
A.5 Análisis de tres niveles de una señal . . . . . . . . . . . . . . .
A.6 Herramienta gráfica de la “Wavelet Toolbox” . . . . . . . . . . .
73
76
B.1 Transformada de Haar de 1 nivel de una señal . . . . . . . . . .
B.2 Transformada de Haar de nivel 2 de una señal y sus perfiles de
energía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.3 Compresión de una señal . . . . . . . . . . . . . . . . . . . . . .
B.4 Comparación Daubechies y Coiflets . . . . . . . . . . . . . . . .
B.5 Transformadas inversas de Haar . . . . . . . . . . . . . . . . . .
B.6 Compresión de una señal con cuantización . . . . . . . . . . . .
B.7 Transformada wavelet de Haar de un ruido blanco gaussiano . .
B.8 Reducción del ruido blanco en una señal . . . . . . . . . . . . .
B.9 Reducción del ruido blanco en una señal con la orden wden . . .
B.10 Transformada discreta de Fourier de una señal . . . . . . . . . .
B.11 Análisis de frecuencias de una señal con DFT . . . . . . . . . .
B.12 Espectro de wavelets y scaling . . . . . . . . . . . . . . . . . . .
B.13 Análisis de frecuencias combinando DFT y wavelets . . . . . . .
B.14 Detección de señales cortas en señales grandes . . . . . . . . . .
B.15 Detección de señales cortas en señales grandes (manipuladas con
wavelets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.16 Transformada wavelet continua de una señal . . . . . . . . . . .
80
C.1
C.2
C.3
C.4
Localización de “breakdown points” . .
Evolución a largo tiempo de una señal
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 códigos para
MATLAB
Archivo ana_nivel_3.m
Análisis wavelet de una señal hasta nivel 3 . . . . . . . .
Archivo energy.m
Energía de una señal . . . . . . . . . . . . . . . . . . . .
Archivo cumenergy.m
Energía acumulada (normalizada) de una señal . . . . .
Archivo rms.m
Error RMS entre dos señales . . . . . . . . . . . . . . . .
Archivo compress.m
Compresión de una señal . . . . . . . . . . . . . . . . . .
Archivo daub_coif.m
Mejoría Coiflets respecto Daubechies . . . . . . . . . . .
Archivo wav_sca.m
Construcción de wavelets y scaling . . . . . . . . . . . .
Archivo compress2.m
Compresión señal con cuantización . . . . . . . . . . . .
Archivo comp_audio.m
Compresión señal audio con cuantización y codificación .
Archivo white_noise.m
Transformada wavelet de ruido blanco . . . . . . . . . .
Archivo make_noisy_signal.m
Adición de ruido blanco gaussiano a una señal . . . . . .
Archivo denoise.m
Reducción de ruido . . . . . . . . . . . . . . . . . . . . .
xv
. . . .
71
. . . .
77
. . . .
77
. . . .
78
. . . .
81
. . . .
86
. . . .
89
. . . .
93
. . . .
96
. . . .
99
. . . . 101
. . . . 101