%Interpretacion de los coeficientes y detalle de la DWT aplicada a una señal
%sinusoidal estacionaria con contenido de 10 Hz, 25 Hz, 50 Hz y 100 Hz
%
%Nota: para ejecutar este programa es necesario disponer del toolbox de 
%wavelet de Matlab 6

clear all
close all

npuntos=512;
t=0:1/npuntos:1;
w=2*pi;
tiempo=1000*t;
x=cos(w*10*t)+cos(w*25*t)+cos(w*50*t)+cos(w*100*t);
senal=x;

senal=senal';
longitud=length(senal);
tipo='sym6';
nivel=8;
di=[];

%Calculo de los coeficientes de la DWT
figure(1)
[c,l] = wavedec(senal,nivel,tipo);
plot(c);
grid on


%Calculo de los detalles de la DWT
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];

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