Sei sulla pagina 1di 12

Transformada Wavelet

Cucho Diaz, Eder 15190108/ Huarocc Bonifacio, David Alonso 15190146

Facultad De Ingeniería Electrónica Y Eléctrica, Universidad Nacional Mayor De San Marcos, Lima, Perú

Resumen—. En este paper abordaremos el tema de wavelets que se pueden mencionar se encuentran: ofrece
Transformada Wavelet, sus teoremas y propiedades. Se información en tiempo frecuencia instantánea para cada
mostrará la aplicación de esta transformada el punto de la señal, satisface condiciones de multiresolución,
tratamiento de señales sísmicas. El procesamiento de es ajustable y adaptable, entre otras.
señales es una de las necesidades más importantes en
aplicaciones como la codificación y transmisión de
grandes cantidades de información, dichas aplicaciones ¿Qué hace la wavelet?
han motivado el surgimiento y ampliación de Permite realizar análisis localizados en el tiempo de una gran
herramientas que se han hecho fundamentales para el señal, brindando la posibilidad de encontrar discontinuidades
procesamiento de señales como lo son la transformada de o picos de corta duración que de otra manera seria
Fourier Discreta(DFT), la transformada Coseno Discreta complicado detectar y tratar. El análisis FFT por sí solo no
(DCT) y la transformada Waveles Discreta (DWT). detecta estos eventos y debe recurrir a la transformada corta
quien a través de la escogencia de una ventana de ancho
Abstrac—. In this report we will address the issue of adecuado permiten el estudio de manera aceptable. El
Transformed Wavelet, its theorems and properties. The análisis Wavelet es capaz de mostrar aspectos de los datos
application of this transformed seismic signal treatment que con otras técnicas del análisis de señales no pueden ser
will be shown. Signal processing is one of the most apreciadas y se dejan pasar por alto, como son: la tendencia,
important needs in applications such as coding and puntos de ruptura y discontinuidades en las derivadas de
transmission of large amounts of information, such orden superior.
applications have motivated the emergence and
expansion of tools that have become fundamental for INICIOS
signal processing such as the transformation of Discrete Limitaciones del Análisis de Fourier
Fourier (DFT), the Discrete Cosine Transform (DCT) La Transformada de Fourier es ampliamente utilizada en el
and the Discrete Waveles Transform (DWT). procesamiento y análisis de señales y con resultados
satisfactorios en los casos en que estas señales son periódicas
Palabras claves—. TW, CTW, ICTW, STFT, Wavelets y lo suficientemente regulares, pero no ocurre lo mismo para
el análisis de señales cuyo espectro varía con el tiempo
I. OBJETIVO: (señales no estacionarias).
El objetivo de este informe es desarrollar de una manera La Transformada de Fourier detecta la presencia de una
sencilla y pedagógica la teoría de la Transformada Wavelet, determinada frecuencia, pero no brinda información acerca
para medir la calidad de compresión de una imagen a través de la evolución en el tiempo de las características espectrales
de procesamientos de señales. de la señal. Muchos aspectos temporales de la señal, tales
como el comienzo y el fin de una señal finita y el instante de
II. INTRODUCCIÓN: aparición de una singularidad en una señal transitoria, no
En la ingeniería usualmente se representan las señales pueden ser analizados adecuadamente por el análisis de
mediante funciones del tiempo f(t) o, alternativamente, en el Fourier.
dominio de la frecuencia a través de su Transformada de
Fourier F(w). Ambas representaciones contienen TRANSFORMADA WAVELET
exactamente la misma información sobre la señal, Se pueden definir las Wavelet como familias de funciones
respondiendo a enfoques distintos y complementarios. Las que se encuentran definidas en el espacio y se emplean como
Wavelets son una extensión del análisis de Fourier; y al igual funciones de análisis, examinando la señal de interés en el
que ocurre con el análisis de Fourier, las Wavelets no son lo plano tiempo-frecuencia para obtener sus características
realmente importante, lo verdaderamente importante es el periódicas o no periódicas
objeto para lo que son creadas; tal que su objetivo es Esta Transformada es eficiente para el análisis local de
convertir en números la información contenida en una señal, señales no estacionarias y de rápida transitoriedad y, al igual
números conocidos como coeficientes, que se pueden que la Transformada de Fourier con Ventana, mapea la señal
manipular, almacenar, transmitir, analizar o utilizar para en una representación de tiempo-escala. El aspecto temporal
reconstruir la señal original. Dentro de las ventajas de las de las señales es preservado. La diferencia está en que la
1

Figura1. Análisis de la Transformada


Transformada Wavelet provee análisis de multiresolución escala a y del parámetro traslación b, de forma diferente. Se
con ventanas dilatadas. El análisis de las frecuencias de toma la escala a de la forma 2^−� y la traslación b con la
mayor rango se realiza usando ventanas angostas y el estructura �2^−�, donde �, �∈�.
análisis de las frecuencias de menor rango se hace utilizando Ahora se discretiza la función �(�), que por simplicidad se
ventanas anchas. toma una frecuencia de muestreo de 1. La ecuación anterior
se convierte en la siguiente:
El algoritmo de la transformada Wavelet Discreta (DWT) es
como sigue:
Transformada Wavelet Continua (CWT)
La Wavelet continua (CWT) es la suma sobre todos los
tiempos de versiones desplazados y escalados de la � Dada una señal � de longitud �, la DWT consiste de 𝑙𝑜�2�
(función Wavelet). El CWT, cuando se aplica sobre la señal
original f (t), se expresa como:

El cálculo de la CWT a través de una señal nos da resultados Figura2. Etapas de la DWT para una
en muchos coeficientes, que son funciones del parámetro de señal S.
traslación � y el parámetro de escala s. De hecho, � es etapas a lo mucho. La primera etapa produce, partiendo de �,
proporcional a la información de tiempo. dos conjuntos de coeficientes: coeficientes de aproximación
Se especifica la ubicación de la Wavelet en el tiempo; � por 𝐶�1, y coeficientes de detalle 𝐶�1 Estos vectores son
la variación de la Wavelet puede ser desplazado sobre la obtenidos mediante la convolución de � con el filtro pasa
señal. La escala � es inversamente proporcional a la
frecuencia de la información. La variación de � modifica no
sólo la frecuencia central de la Wavelet, sino también la
longitud de la ventana.
Grandes escalas están relacionadas con las frecuencias bajas,
dando la información global de la señal. Considerando que,
escalas pequeñas corresponden a altas frecuencias, revelando
los detalles más finos de la señal. Por otra parte, la energía
de la señal se mantiene constante en cada escala, ya que se
normaliza por 1/√|�|.
A pesar de la alta precisión proporcionada por el CWT en el
análisis de una señal, el cálculo de CWT es redundante y
hace mucho consumo de tiempo al procesarlo. Por lo
general, el cálculo de la CWT se lleva a cabo mediante la
adopción de valores discretos para el parámetro de escala � y Figura3. Etapas de la DWT para una señal
el parámetro � de traslación. con nivel j.
En la figura 1, se puede observar de manera representativa el bajas 𝐿𝑜_� para la aproximación,
resultado de Wavelet Transform (WT), se aprecia que la
representación es tiempo-frecuencia es a través de ventanas Y con el filtro pasa altas 𝐻�_� para los detalles, seguido por
de diferentes proporciones de distribución es aquí donde se una decimación diática (downsampling). La longitud de cada
diferencia de otros algoritmos. filtro es igual a 2 �. Si � es igual a la longitud de �, las
señales � y � son de longitud � + 2� − 1.
Transformada Wavelet Discreta (DWT)
Se trata de reconstruir una señal original usando una suma
infinita de coeficientes Wavelet discretos en contraposición PROPIEDADES WAVELET:
de la integral continua que requiere CWT. Esta suma Momentos de desvanecimiento: Es una propiedad
conduce a una Transformada Wavelet Discreta (DWT). importante para la TW, esta relaciona con la suavidad de la
De forma similar a la transformada de Fourier Discreta y a la wavelet. El orden de las wavelets es típicamente dado por el
Transformada de Fourier Discreta de tiempo número de momentos de desvanecimiento (indica el orden de
reducido(Gabor), se tiene la Transformada Wavelet Discreta la transformada).
(DWT). A diferencia del tiempo y frecuencia discretos en los Soporte Compacto: Esta propiedad significa, que las
análisis de Fourier, se tienen valores discretos del parámetro funciones wavelets se desvanecen o se anulan fuera de un
2
intervalo finito, es decir, que la wavelet con soporte Wavelet Daubechies.
compacto tiene una duración finita. Esta propiedad le Son una familia de wavelets ortogonales ilustradas desde los
permite a la TW trasladar una función desde el dominio niveles 2 al 5, las cuales definen una transformación discreta
temporal hasta el dominio de frecuencias, de tal manera que y están caracterizados por un número máximo de momentos
posea la localización de ambos dominios. de desvanecimiento en cierto soporte dado.
Simetría: En muchas aplicaciones de filtrado se necesitan Las Db se definen de la misma manera que la transformada
filtros con coeficiente de simetría para lograr fase lineal, wavelet Haar, calculando las medias y las diferencias que se
debido a que los filtros de característica de fase no lineal ejecutan a través de productos escalares con señales de
originarán una distorsión de fase, puesto que las escala, la única diferencia entre ellas consiste en cómo se
componentes de distinta frecuencia al ser procesadas por el definen estas señales de escala y pequeñas ondas.
filtro tendrán un retraso que no será proporcional a la
frecuencia y por lo tanto se alterará la relación original entre En comparación con otras ondas ortogonales como Haar y
los distintos armónicos que la forman. Por lo tanto, la symlet, Db da un mayor rendimiento en términos de
simetría en el uso de filtros de reconstrucción, significa que complejidad de cálculo y respuesta del filtro.
la TW tenga fase lineal (La simetría es útil para evitar
desfase en el procesamiento de señales).

Regularidad: La regularidad de la wavelet, representa la


característica de obtener una señal o imagen reconstruida con
suavidad, es decir, es la propiedad que le permite a la
wavelet reconstruir fielmente una señal a partir los
coeficientes calculados.
En síntesis, la importancia de una propiedad sobre otra
depende fundamentalmente de las necesidades de la
aplicación.

CLASES DE WAVELET:
Las clases de TW son definidas por las propiedades que cada Figura6. Familia wavelet
una de ellas poseen, entre las más importantes, se tiene: la
Daubechies
función de escala, el número de momentos de
desvanecimiento, el soporte compacto, la regularidad y la
simetría.

Wavelet Haar:
La Haar es la primera y más sencilla de las wavelets
ortogonales, tiene una estructura simple de onda cuadrada, su
característica más distintiva radica en el hecho de que se Figura7. Función de escala (db4) asociada a la f.
presta fácilmente a cálculos simples, wavelet (db4)

Wavelet Gaussiana
La familia wavelet Gaussiana, se define como la primera
derivada de la función de densidad de probabilidad
gaussiana; si se deriva a un orden superior, se tiene la
segunda derivada gaussiana.

Figura4. Función Wavelet


Haar 3

Figura8. Familia wavelet


Figura5. Función de escala asociada a la Gaussian.
Figura9. Wavelet Gaussian. a=1 y b=0
Ahora veremos la diferencia de una Transformada Corta de
Fourier (STFT) y la transformada Wavelet (CWT), esto se
verá en la Figura 18.

III. PROCEDIMIENTO

A) PARTE 1
Verificamos los dos tipos de transformaciones que se
pueden hacer con la transformada de Wavelet:

a) ESCALAMIENTO
El factor de escalamiento se denota con la letra a. El
escalamiento se puede ilustrar fácilmente a través del
siguiente ejemplo (aplicado a la Wavelet Gaussiana de
segundo orden).
Figura12. Diferencia entre STFT y
Para a=5 y b =0 tenemos: CWT

B) PARTE 2
Recuperación de una señal con los comandos wavelet
Cargamos una Señal con Ruido del archive de MatLab
llamada “noisysig.mat”

Figura10. Wavelet Gaussian.para


escalonamiento a=5
b) DESPLAZAMIENTO
Para a=1 y b=2 tenemos:

Figura13. Señal Original y Señal con


Ruido

Figura11. Wavelet Gaussiano.para


Creamos una función plotDetCoefHelper que nos En la figura 16 veremos dos señales más luego de aplicarles
permite extraer los detalles de los coeficientes y los ejecuta un filtro suavizado de impulso finito Savitzky-Golay y un
con niveles de wavelet filtro digital.

Ahora realizaremos la CWT para una señal sismica

Figura16. Señales luego de ser filtrados.

Figura14. Descomposición Wavelet de la Señal


con Ruido.

Utilizamos la función “wden” que nos devuelve la señal sin


ruido, veremos en la Figura 15 la señal con ruido y una señal
Cargamos una señal sismica de un archivo de MatLab
llamada “eqData”

Figura20. Magnitud de la CWT.

En la Figura 18 observaremos el tiempo en frecuencia


usando un espectrograma y en la Figura 19 un espectrograma
distorsionada.
vector ventana.

Figura17. Señal Sismica.

Figura15. Recuperacion de la señal pero distorsionada. Figura19. Figura18. Espectrograma


Espectrograma deSísmica
de la Señal la Señalcon
Sísmica
Ventana cortada.

5
Desarrollamos la CWT nombrar, además del análisis local de señales no
estacionarias, el análisis de señales electrocardiográficas, de
sonido, de radar, así como también es utilizada para la
compresión y procesamiento de imágenes y reconocimiento
de patrones.

En la Figura 12 se puede apreciar que la representación de la


transformada corta de Fourier (STFT) presentada en la
gráfica del medio, no es precisa en determinar dichos
instantes, mientras que los coeficientes de la transformada
Wavelet (CWT) dibujados en la parte inferior, con una
resolución mínima de 8, resulta más que precisa para dicha
tarea.

En muchas ocasiones las Wavelets proporcionan


características diferentes y más eficaces debido a su análisis
local que es uno de sus mayores beneficios a la hora del
análisis de señales.

Reconstruimos la señal con la ICWT: V. BIBLIOGRAFÍA

[1]https://la.mathworks.com/videos/understanding-
wavelets-part-3-an-example-application-of-the-
discrete-wavelet-transform-121284.html

[2]https://la.mathworks.com/videos/understanding-
wavelets-part-4-an-example-application-of-continuous-
Figura21. CWT con numero de niveles. wavelet-transform-121282.html

[3] PAPER-ANÁLISIS DE FOURIER A LAS


WAVELETS.

[4] TESIS-APLICACIÓN DE LA TRANSFORMADA


WAVELET A SEÑAL DE BAJA POTENCIA EN
Figura22. Reconstrucción de la señal usando ICWT. ENTORNO DE MATLAB.
[5] IMPLEMENTACIÓN DE LA TRANSFORMADA
WAVELET SOBRE UN SISTEMA EMBEBIDO PARA EL
PRE-PROCESAMIENTO DE SEÑALES
UNIDIMENSIONALES NO ESTACIONARIAS

[6] Transformadas Wavelet impacto fundamental en


Procesamiento de señales y compresión de
imágenes
IV. CONCLUSIONES
Dentro de los usos de esta poderosa herramienta podemos [7]Proyecto-Sistemas Informáticos

6
7
ANEXOS

% Parámetros de la Gausiana.
npuntos = 1000;
t=-5:1/npuntos:5;
%Gausiana de Orden 2
%X2 = (t-to).^2;
%F0 = (2/pi)^(1/4)*exp(-s*X2);
%psi = -2/(3^(1/2)) * (-1+2*X2).*F0;
figure (1)
b=0; %Factor de desplazamiento
a=1 ; %Factor de Escala
X2 = (t-b).^2;
F0 = (2/pi)^(1/4)*exp(-a*X2);
psi = -2/(3^(1/2)) * (-1+2*X2).*F0;
plot(t,psi,'r');
fill(t,psi,'b');
xlabel('Tiempo [ms]');
title(['(a =',num2str(a),' ) (b = ', num2str(b),' ms)']);
grid;

%Escalamiento
b=0; %Factor de desplazamiento
a=5 ; %Factor de Escala
X2 = (t-b).^2;
F0 = (2/pi)^(1/4)*exp(-a*X2);
psi = -2/(3^(1/2)) * (-1+2*X2).*F0;
plot(t,psi,'r');
fill(t,psi,'b');
xlabel('Tiempo [ms]');
title(['(a =',num2str(a),' ) (b = ', num2str(b),' ms)']);
grid;
%Desplazamiento
b=2; %Factor de desplazamiento
a=1 ; %Factor de Escala
X2 = (t-b).^2;
F0 = (2/pi)^(1/4)*exp(-a*X2);
psi = -2/(3^(1/2)) * (-1+2*X2).*F0;
plot(t,psi,'r');
fill(t,psi,'b');
xlabel('Tiempo [ms]');
title(['(a =',num2str(a),' ) (b = ', num2str(b),' ms)']);
grid;

%Diferencia entre STFT y CWT


n=[0:1:1000]';
Fs=100;
T=1/Fs;
t=n*T;
F1=5;
F2=30;
alfa=10;
n1=200; %localización del spike 1
n2=600; %localizacion del spike 2
x1=sin(2*pi*F1*n*T);
x2=sin(2*pi*F2*n*T);
d1=alfa*zeros(length(n),1); % Spike 1
d1(n1)=alfa;
d2=alfa*zeros(length(n),1); % spike 2
d2(n2)=alfa;
x=x1+x2+d1+d2;
w1=1e-2*Fs;
subplot(3,1,1); % Gráfica de la Función
plot(t,x);
title('Grafica del Tiempo f(t)')
subplot(3,1,2)
specgram(x,512,w1,100) % Calcula la STFT
title('Grafica de la STFT')
subplot(3,1,3)
c=cwt(x,1:8,'gaus2','plot');% Calcula la CWT
title('Grafica de la CWT')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function plotDetCoefHelper(f,C,L)
D = detcoef(C,L,'cells'); %extrae el detalle de los
coeficientes
% % [cD1, cD2, cD3, cD4, cD5] = detcoef(C,L,[1,2,3,4,5]);
figure; set(gcf,'Position', [402 139 878 523]);
subplot(6,1,1)
plot(f); axis tight; grid on; title('Original Signal');
subplot(6,1,2)
h = stem(dyadup(D{1}));
h.ShowBaseLine = 'off';
h.Marker = '.';
h.MarkerSize = 2;
axis tight; grid on; title('Level 1 Details');
subplot(6,1,3)
h = stem(dyadup(dyadup(D{2})));
h.ShowBaseLine = 'off';
h.Marker = '.';
h.MarkerSize = 2;
axis tight; grid on;title('Level 2 Details');
subplot(6,1,4);
h = stem(dyadup(dyadup(dyadup(D{3}))));
h.ShowBaseLine = 'off';
h.Marker = '.';
h.MarkerSize = 2;
axis tight; grid on; title('Level 3 Details');
subplot(6,1,5);
h = stem(dyadup(dyadup(dyadup(dyadup(D{4})))));
h.ShowBaseLine = 'off';
h.Marker = '.';
h.MarkerSize = 2;
axis tight; grid on;title('Level 4 Details');
subplot(6,1,6);
h = stem(dyadup(dyadup(dyadup(dyadup(dyadup(D{5}))))));
h.ShowBaseLine = 'off';
h.Marker = '.';
h.MarkerSize = 2;
axis tight; grid on;title('Level 5 Details');
end

%% Load a signal
load noisysig.mat % Cargar variables de un archivo en el
espacio de trabajo
figure;
%% Original signal
subplot(2,1,1);
plot(f0); % f0 es una señal(original) definida
en noisysig.mat
grid on;
title('Original signal');
axis tight; % Gráfico se extienda hasta los bordes
de los ejes(rango)
%% Original signal with noise
subplot(2,1,2);
plot(f); % f es la señal original con ruido
title('Original signal with noise');
axis tight;
grid on;
%% Decompose signal using Discrete Wavelet Transform
dwtmode('per','nodisplay');
% per:modo de extensión DWT para extender la entrada
% nodisplay:no se muestra ningún texto de advertencia en la ventana de comandos
wname = 'sym6'; % sym6: extensión simétrica de 6
puntos
level = 5;
[C, L] = wavedec(f,level,wname); % devuelve la descomposición wavelet
de la señal
% C: vector de descomposición y L: vector de contabilidad
plotDetCoefHelper(f,C,L); %Función de ayuda para trazar los
coeficientes en cada nivel
%% Analyze the subbands and determine the threshold
%% Denoise the signal
fd = wden(f,'rigrsure','s','sln',level,wname); % Devuelve la señal sin ruido
% rigrsure: Regla de selección de umbral
% s: Tipo de umbral suave
% sln: Reescalado utilizando una sola estimación del nivel de ruido
% level: Nivel de descomposición wavelet
figure;
subplot(2,1,1);
plot(f);
axis tight;
grid on;
title('Noisy Signal');
subplot(2,1,2)
plot(fd);
axis tight;
grid on;
title(sprintf('Denoised Signal SNR: %0.2f dB',-20*log10(norm(abs(f0-
fd))/norm(f0)))); %sprintf: datos a cadena
%% Comparing with other techniques
figure;
subplot(2,2,1);
plot(f);
axis tight; % límites de eje iguales al rango
de los datos.
grid on;
title('Noisy Signal');
subplot(2,2,2)
plot(fd);
axis tight; % límites de eje iguales al rango
de los datos.
grid on;
title(sprintf('Wavelet Denoising SNR: %0.2f dB',-20*log10(norm(abs(f0-
fd))/norm(f0))));
subplot(2,2,3)
fsg = sgolayfilt(f,31,101); % aplica un filtro de suavizado de
impulso %finito Savitzky-Golay
f:señal de entrada
grid on;
title(sprintf('Moving Average SNR: %0.2f dB',-20*log10(norm(abs(f0-
fmv))/norm(f0))));
% Orden Polinómico: especificado como entero positivo
% Longitud de trama: especificada como impar positivo
plot(fsg);
axis tight; % límites de eje iguales al rango
de los datos.
grid on;
title(sprintf('Savitzky Golay SNR: %0.2f dB',-20*log10(norm(abs(f0-
fsg))/norm(f0))));
subplot(2,2,4)
movavg = 1/20*ones(20,1);
fmv = filtfilt(movavg,1,f); % realiza el filtrado digital
plot(fmv);
axis tight;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% load a signal
load eqData; %Cargar variables de un archivo en el
espacio de trabajo
figure(1);
plot(t,kobe); %Función definida en eqData

grid on;
xlabel('Time (mins)');
ylabel('Vertical Acceleration nm/sq.sec'); %nm/segunco al cuadrado
title('Earthquake Signal');
axis tight % Gráfico se extienda hasta los bordes
de los ejes(rango)
%% Time Frequency using Spectrogram.

figure(2);
spectrogram(kobe,[],[],[],Fs,'yaxis'); % kobe es el vecto entrada, [] entero
o vector ventana
% [] numero de muestras superpuestas ,
[] número de puntos de DFT
% frecuencia de muestreo 1 Hz, eje de
la visualización de la f

%% Spectrogram using shorter window


figure(3);
spectrogram(kobe,128,[],[],Fs,'yaxis'); % se asume el vector ventana como 128
title('Spectrogram using shorter window');

%% cwt
% To perform the Continuous Wavelet Transform, you can use the fucntion cwt. We
provide the
% signal and the sampling frequency as an input arguments.
figure(4);
cwt(kobe,Fs); % Traza el escalograma que es el valor
% absoluto del CWT trazado en función
del
% tiempo y la frecuencia

%% Fine Scale Analysis


No = 8;
Nv = 22;
figure(5);
cwt(kobe,Fs, 'NumOctaves' ,No,'VoicesPerOctave',Nv);
title('CWT with Number of Octaves: 8 and Voices per Octave: 22');

%% Reconstruct the seismic signal


[WT, F] = cwt(kobe,Fs); %WT: Coeficientes de transformada
wavelet continua
xrec = icwt(WT, F, [0.03 0.06],'SignalMean',mean(kobe)); % F: Frecuencias CWT,
especificadas como un vector
% Rango de frecuencia:
Devuelve valores de
% transformación de
wavelet continua inversa
% signal mean: señal
media
figure(6);
plot(t,xrec,'b');
xlabel('Time (mins)');
ylabel('Vertical Acceleration nm/sq.sec');
title('Reconstructed Seismic Signal');
axis tight;
grid on;

Potrebbero piacerti anche