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
© Copyright 2024