%  AQUI ANALIZAMOS QUE PINTA TIENE EL SONIDO DE VARIOS DIAPASONES EN EL
%  DOMIINIO TEMPORAL Y EN EL DE FOURIER.
%
% NOTA: Todo lo de abajo asume que se han guardado los ficheritos en un
% determinado directorio que naturalmente en tu ordenador no existe (a no
% ser que estes escribiendo en el mio)
%

% Leemos los ficheritos que hemos bajado de http://www.xtec.es/centres/a8019411/caixa/ondas.htm

[Y27,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\27.wav');
[Y100,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\100.wav');
[Y200,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\200.wav');
[Y440,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\440.wav');
% Nunca fiarse de lo que se trae uno por internet, que son unos burros!!!
Y440=Y440(272:end-271);
[Y1000,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\1000.wav');
[Y3000,FS,NBITS]=wavread('C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\3000.wav');

Y27=Y27(1:21644);
Y100=Y100(1:21644);
Y200=Y200(1:21644);
Y1000=Y1000(1:21644);
Y3000=Y3000(1:21644);

% Normalizamos para igualar energias

Y27=Y27/max(Y27);
Y100=Y100/max(Y100);
Y200=Y200/max(Y200);
Y440=Y440/max(Y440);
Y1000=Y1000/max(Y1000);
Y3000=Y3000/max(Y3000);

% Vale, veamos las ondas...
duracion=length(Y27)/FS;

figure(1),plot(linspace(0,length(Y27)/FS,length(Y27)),Y27),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 27 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])
figure(2),plot(linspace(0,length(Y27)/FS,length(Y27)),Y100),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 100 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])
figure(3),plot(linspace(0,length(Y27)/FS,length(Y27)),Y200),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 200 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])
figure(4),plot(linspace(0,length(Y27)/FS,length(Y27)),Y440),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 440 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])
figure(5),plot(linspace(0,length(Y27)/FS,length(Y27)),Y1000),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 1000 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])
figure(6),plot(linspace(0,length(Y27)/FS,length(Y27)),Y3000),xlabel('t (seg)'),ylabel('Presion (Bares)'),title('Sinusoide de 3000 Hz (Dom. Temporal)'),axis([0 duracion/20 -1.3 1.3])

% Bueno, despues de los manejos, las ondas duran 1 seg. aprox.
%
% Por tanto si queremos amuermar al personal con musicas de 15 seg. las
% repetiremos 15 veces! (si cambias el 15 por el numero que te salga de los
% huevos, las haras tan largas como quieras).


Y=Y27;
for i=1:15
    Y=[Y;Y27];
end
Y27larga=Y;
clear Y

Y=Y100;
for i=1:15
    Y=[Y;Y100];
end
Y100larga=Y;
clear Y

Y=Y200;
for i=1:15
    Y=[Y;Y200];
end
Y200larga=Y;
clear Y

Y=Y440;
for i=1:15
    Y=[Y;Y440];
end
Y440larga=Y;
clear Y

Y=Y1000;
for i=1:15
    Y=[Y;Y1000];
end
Y1000larga=Y;
clear Y

Y=Y3000;
for i=1:15
    Y=[Y;Y3000];
end
Y3000larga=Y;
clear Y

% Vale, y ahora que ya la tenemos bien larga, nos la guardamos... y con
% esto jugaremos con el windows-media-player (que es una basura).

wavwrite(Y27larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\27larga.wav')
wavwrite(Y100larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\100larga.wav')
wavwrite(Y200larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\200larga.wav')
wavwrite(Y440larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\440larga.wav')
wavwrite(Y1000larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\1000larga.wav')
wavwrite(Y3000larga,FS,NBITS,'C:\Documents and Settings\jesusjesus\Mis documentos\jesus\clases\percepcion\3000larga.wav')

% Para ser melenudos rockeros como DIOS manda, usaremos el Matlab, es
% decir, haremos la TF BIEN!

TFY27=abs(fftshift(fft(Y27)));
TFY100=abs(fftshift(fft(Y100)));
TFY200=abs(fftshift(fft(Y200)));
TFY440=abs(fftshift(fft(Y440)));
TFY1000=abs(fftshift(fft(Y1000)));
TFY3000=abs(fftshift(fft(Y3000)));

% En una TF discreta (de ordenador) las frecuencias van entre -FS/2 y FS/2 
% Eso es la frecuencia de NYQUIST, que era un tio de los años 20, y FS es
% Sampling Frequency, que en catalan se dice Frequencia de Mostreig, i es
% la frequencia a la que mostregem(?) l'ona.
% 

fre=linspace(-FS/2,FS/2,length(Y27));

figure(7),plot(fre,TFY27),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 27 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])
figure(8),plot(fre,TFY100),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 100 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])
figure(9),plot(fre,TFY200),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 200 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])
figure(10),plot(fre,TFY440),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 440 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])
figure(11),plot(fre,TFY1000),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 1000 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])
figure(12),plot(fre,TFY3000),xlabel('Frecuencia (Hz)'),ylabel('|TF(Presion)|'),title('Sinusoide de 3000 Hz (Dom. Fourier)'),axis([-6000 6000 0 12000])


