Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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).
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.
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”
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.
[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
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;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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
%% 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