%Ejemplo de descomposicion usando la Transformada Wavelet Discreta
%(DWT) de una señal no estacionaria con contenido de 10, 25, 50 y 100 Hz
%
%Nota: para ejecutar este programa es necesario disponer del toolbox de 
%wavelet de Matlab 6

clear all
close all

npuntos=1024;
w=2*pi;
t=0:1/npuntos:1;
t1=t(1:npuntos*0.3);
t2=t(npuntos*0.3:npuntos*0.6);
t3=t(npuntos*0.6:npuntos*0.8);
t4=t(npuntos*0.8:npuntos);
tiempo=1000*t;
x1=sin(w*100*t1);
x2=sin(w*50*t2);
x3=sin(w*25*t3);
x4=sin(w*10*t4);
x=[x1 x2 x3 x4];
x=x(1:1024);
senal=x';
longitud=length(senal);
tipo='db8';
nivel=5;
di=[];
[c,l] = wavedec(senal,nivel,tipo);

for i=1:nivel
cd=wrcoef('d',c,l,tipo,i);
di=[di;cd'];
end
k=0;
for i=nivel:-1:1
    k=k+1;
    d(k,:)=di(i,:);
end    
a=wrcoef('a',c,l,tipo,nivel);
figura=[senal';a';d];

for i=1:nivel+2
    subplot(nivel+2,1,i)
    plot(figura(i,:))
    axis([0,1000,-1,1]);
    zoom
end