tdi wavelets y matlab

15
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

Upload: pandre

Post on 23-Nov-2015

82 views

Category:

Documents


3 download

TRANSCRIPT

  • 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 [email protected]

    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 proble-mas prcticos en ciencia e ingeniera. En la ltima dcada se han aplicado conxito al anlisis de seales en disciplinas tan diversas como la medicina, laingeniera elctrica, teledeteccin y muchas otras. Una de las principales vir-tudes de las wavelets es que permiten modelar mejor procesos que dependenfuertemente del tiempo y para los cuales su comportamiento no tiene porquser suave. La transformada wavelet resulta especialmente eficiente para extraerinformacin de seales no peridicas o de vida finita. Otra de las ventajas dedicha 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. Laeleccin de la wavelet depender del tipo de seal que analicemos.

    Algunos de los principales problemas que afectan al tratamiento de sealese 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 enimgenes), la compresin de seales (de vital importancia tanto en la transmi-sin de grandes cantidades de datos como en su almacenamiento) o la deteccinde determinados objetos en imgenes o irregularidades locales en ciertos tiposde seales (electrocardiogramas, vibraciones de motores, etc.). Esta modernateora ha experimentado un gran desarrollo en las dos ltimas dcadas mos-trndose muy eficiente donde otras tcnicas, como por ejemplo la transformadarpida de Fourier, no resultaban satisfactorias. En esta ltima se maneja unabase de funciones bien localizada en frecuencia pero no en tiempo, mientrasque la mayora de las wavelets interesantes presentan una buena localizacin entiempo y en frecuencia, disponiendo incluso de bases de wavelets con soportecompacto.

    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 finales de los 80, y facilita su computacin rpida cuan-do la familia de wavelets es ortogonal. La transformada wavelet discreta es unatransformacin de la seal que la divide en dos tipos de subseales, la tendenciay las fluctuaciones. La tendencia viene a ser una copia de la seal a menor reso-lucin y las fluctuaciones almacenan informacin referida a los cambios localesen la seal original. La tendencia y las fluctuaciones ms significativas permi-ten una compresin de la seal a cambio de descartar informacin irrelevantey de la eliminacin del ruido producido por los aparatos y las condiciones demedida. Segn el tipo de medicin realizada el ruido correspondiente se com-porta matemticamente siguiendo distribuciones de probabilidad gaussianas,uniformes... El estudio de las fluctuaciones permite detectar anomalas o dis-funciones en el comportamiento esperado de la seal inicial. Tambin permitela comparacin con patrones para detectar formas en una imagen o una sealunidimensional de forma automtica. El nuevo formato de JPEG2000 basa lacompresin 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 tanrpida 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 tipode seal tratada y del objetivo que se pretenda (compresin, eliminacin delruido, segmentacin de la imagen,...) se busca la familia de wavelets (Haar,Daubechies, Coiflets,...) que mejor coincida con las caractersticas de la seala estudiar.

    El tratamiento con wavelets discretas permite su aplicacin directa a pro-cesos computacionales. Las wavelets continuas presentan por una parte la difi-cultad de su manejo al tener que evaluar un gran nmero de integrales y teneren consecuencia una redundancia de informacin, pero por otra parte permitenla flexibilidad de poder adaptarse a situaciones en las que las discretas no danun resultado satisfactorio. Concretamente en el tratamiento de imgenes digi-tales se precisa realzar detalles y detectar texturas analizando la imagen desdedistintos ngulos, lo cual es posible con las wavelets continuas al disponer deun mayor nmero de parmetros que posteriormente se pueden discretizar parasu tratamiento computacional. Adems la transformada wavelet continua, alproveer una alta resolucin temporal y espectral en el espacio transformado,permite observar aspectos sutiles no estacionarios que pueden ser obviados enla transformada discreta, lo cual compensa el mayor coste computacional.

  • vEste texto es el resultado de la imparticin de la asignatura Tratamiento deseales e imgenes digitales mediante wavelets, durante los cursos 2001/2002 y2002/2003, en el marco del Centro de Formacin de Postgrado de la UniversitatPolitcnica de Valncia, como Curso de Formacin Especfica que versara sobreel uso de las wavelets para el tratamiento de seales e imgenes digitales. Elpblico al que iba dirigido estaba fundamentalmente formado por ingenieros yestudiantes 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 reducena conocimientos bsicos de algebra lineal y clculo. El objetivo del curso esclaramente prctico y por esa razn se incluyen en el texto (en los apndicesfinales) ejercicios y aplicaciones. Para la realizacin de los ejercicios prcti-cos se us el software comercial Wavelet Toolbox for MATLAB. Las rutinasde este paquete se ejecutan en el entorno matemtico de computacin MAT-LAB y por lo tanto tambin necesita estar instalado en nuestro sistema. Enla red se pueden encontrar otros paquetes alternativos de libre distribucin(como SCILAB) que el lector puede utilizar, bajo los cuales se podrn realizarlos ejercicios propuestos si lo desea pero ser necesario traducir las rdenes yrutinas 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 waveletsunidimensionales tomando el caso concreto de la wavelet de Haar. Muchasde las ideas desarrolladas en este captulo para este tipo de wavelets sernutilizadas en captulos posteriores. Tambin se introducen algunas nocionesbsicas sobre compresin de seales.

    En el captulo 3 se introducen otras wavelets ortogonales como las de Dau-bechies y las Coiflets, estudiando sus propiedades fundamentales.

    En el captulo 4 se profundiza en las tcnicas de compresin de seales yde eliminacin de ruido blanco. Se abordan tambin cuestiones importantes atener 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 deltexto es la visualizacin prctica de las tcnicas basadas en wavelets para eltratamiento de seales. Estas prcticas se realizan con el paquete Wavelet

  • vi

    Toolbox for MATLAB que se ejecuta dentro del entorno MATLAB. Por estarazn el apndice A se dedica a dar unos conceptos bsicos sobre el uso delprograma MATLAB y de la Wavelet Toolbox for MATLAB.

    El apndice B contiene la mayora de los ejercicios que se proponen parasu resolucin de forma paralela al estudio del texto. En algunos se incluyeel cdigo MATLAB para su resolucin e incluso se aportan imgenes con losresultados.

    El ltimo apndice C pretende ofrecer al lector un pequeo repertorio deejemplos y aplicaciones de tratamiento de seales con wavelets. La mayorade estas aplicaciones han sido tomadas de el paquete Wavelet Toolbox forMATLAB y se utilizan seales que se distribuyen con el citado paquete.

    Los autores agradecen la financiacin del Proyecto Interdisciplinar LaTransformada Wavelet en el Tratamiento de Seales e Imgenes Digitales den-tro del programa INNOVA, por el Vicerrectorada de Investigacin, Desarrolloe 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 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 figuras xiii

    ndice de cdigos para MATLAB xv

    1 Introduccin a las Wavelets y prerrequisitos de lgebra lineal 1

    2 Wavelets de Haar 72.1 Scaling y wavelets . . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2 Anlisis de multirresolucin (MRA) . . . . . . . . . . . . . . . . 12

    2.3 Transformada de Haar . . . . . . . . . . . . . . . . . . . . . . . 16

    3 Familias de wavelets ortogonales 233.1 Wavelets de Daubechies . . . . . . . . . . . . . . . . . . . . . . 23

    3.1.1 Daubechies db2 . . . . . . . . . . . . . . . . . . . . . . . 23

    Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . 23

    Caracterstica de las fluctuaciones pequeas . . . . . . . 27

    3.1.2 Daubechies db3 . . . . . . . . . . . . . . . . . . . . . . . 29

    Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . 29

    Caracterstica de las fluctuaciones pequeas . . . . . . . 31

    3.1.3 Daubechies dbJ . . . . . . . . . . . . . . . . . . . . . . . 31

    3.2 Coiflets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.3 Transformada de Fourier discreta y MRA . . . . . . . . . . . . 34

    ix

  • x4 Compresin de seales y reduccin de ruido 414.1 Cuantizacin y umbralizado . . . . . . . . . . . . . . . . . . . . 42

    4.2 Codificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    4.3 Medidas de la aproximacin . . . . . . . . . . . . . . . . . . . . 49

    5 Wavelet packets 51

    6 La transformada wavelet continua 55

    A MATLAB y la Wavelet Toolbox 63A.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    A.1.1 Breve (muy breve) introduccin . . . . . . . . . . . . . . 63

    A.1.2 Representacin de seales . . . . . . . . . . . . . . . . . 64

    Datos en un fichero 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 grfico (primeros pasos) . 74

    A.3 Programando algunas funciones en MATLAB . . . . . . . . . . 75

    B Ejercicios 79B.1 Transformada de Haar de una seal . . . . . . . . . . . . . . . . 79

    B.2 Compresin de seales (primeros pasos) . . . . . . . . . . . . . 80

    B.3 Otras wavelets ortogonales: Daubechies y Coiflets . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . 121B.10 Transformada wavelet continua . . . . . . . . . . . . . . . . . . 121

    B.10.1 Transformada wavelet continua desde la lnea de comandos121B.10.2 Transformada wavelet continua en el entorno grfico . . 123

    C Ejemplos y aplicaciones 125C.1 Deteccin de breakdown points . . . . . . . . . . . . . . . . . 125

    C.1.1 Un cambio en la frecuencia . . . . . . . . . . . . . . . . 125C.1.2 Evolucin a largo tiempo . . . . . . . . . . . . . . . . . 128C.1.3 Discontinuidad en derivadas . . . . . . . . . . . . . . . . 129

    C.2 Identificando frecuencias puras . . . . . . . . . . . . . . . . . . 131C.3 Anlisis de un caso real . . . . . . . . . . . . . . . . . . . . . . 133C.4 Deteccin de auto-semejanza (estructura fractal) . . . . . . . . 134

    Bibliografa 137

  • ndice de figuras

    1.1 Anlisis de multirresolucin de una seal . . . . . . . . . . . . . 3

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

    2.2 Tendencia y fluctuacin 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 perfiles 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 fluctuacin 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 . . . . . . . . . . . . . . . 73A.6 Herramienta grfica de la Wavelet Toolbox . . . . . . . . . . . 76

    B.1 Transformada de Haar de 1 nivel de una seal . . . . . . . . . . 80B.2 Transformada de Haar de nivel 2 de una seal y sus perfiles de

    energa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81B.3 Compresin de una seal . . . . . . . . . . . . . . . . . . . . . . 83B.4 Comparacin Daubechies y Coiflets . . . . . . . . . . . . . . . . 88B.5 Transformadas inversas de Haar . . . . . . . . . . . . . . . . . . 90B.6 Compresin de una seal con cuantizacin . . . . . . . . . . . . 95B.7 Transformada wavelet de Haar de un ruido blanco gaussiano . . 100B.8 Reduccin del ruido blanco en una seal . . . . . . . . . . . . . 103B.9 Reduccin del ruido blanco en una seal con la orden wden . . . 104B.10 Transformada discreta de Fourier de una seal . . . . . . . . . . 106B.11 Anlisis de frecuencias de una seal con DFT . . . . . . . . . . 107B.12 Espectro de wavelets y scaling . . . . . . . . . . . . . . . . . . . 108B.13 Anlisis de frecuencias combinando DFT y wavelets . . . . . . . 111B.14 Deteccin de seales cortas en seales grandes . . . . . . . . . . 115B.15 Deteccin de seales cortas en seales grandes (manipuladas con

    wavelets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118B.16 Transformada wavelet continua de una seal . . . . . . . . . . . 123

    C.1 Localizacin de breakdown points . . . . . . . . . . . . . . . . 126C.2 Evolucin a largo tiempo de una seal . . . . . . . . . . . . . . 128C.3 Discontinuidad en la segunda derivada . . . . . . . . . . . . . . 130C.4 Identificando frecuencias puras . . . . . . . . . . . . . . . . . . 132

  • ndice de cdigos paraMATLAB

    Archivo ana_nivel_3.mAnlisis wavelet de una seal hasta nivel 3 . . . . . . . . . . . . 71

    Archivo energy.mEnerga de una seal . . . . . . . . . . . . . . . . . . . . . . . . 77

    Archivo cumenergy.mEnerga acumulada (normalizada) de una seal . . . . . . . . . 77

    Archivo rms.mError RMS entre dos seales . . . . . . . . . . . . . . . . . . . . 78

    Archivo compress.mCompresin de una seal . . . . . . . . . . . . . . . . . . . . . . 81

    Archivo daub_coif.mMejora Coiflets respecto Daubechies . . . . . . . . . . . . . . . 86

    Archivo wav_sca.mConstruccin de wavelets y scaling . . . . . . . . . . . . . . . . 89

    Archivo compress2.mCompresin seal con cuantizacin . . . . . . . . . . . . . . . . 93

    Archivo comp_audio.mCompresin seal audio con cuantizacin y codificacin . . . . . 96

    Archivo white_noise.mTransformada wavelet de ruido blanco . . . . . . . . . . . . . . 99

    Archivo make_noisy_signal.mAdicin de ruido blanco gaussiano a una seal . . . . . . . . . . 101

    Archivo denoise.mReduccin de ruido . . . . . . . . . . . . . . . . . . . . . . . . . 101

    xv