Fs = 44100;
Ts = 1/Fs;
y = wavread('sound.wav');
delka=length(y);
konecSig =Ts*(delka-1);
t = [0:Ts:konecSig];
figure(1)
subplot (2,1,1)
 plot(t,y)
 axis([0 21 -1 1])
 xlabel('t [s]'); title('Celý záznam');
 grid

%vytazeny 5 sekund y odkonce
 petS = 5*44100;
 yPet = wavread('sound.wav', [(delka-petS) delka]);
 delkaPet=length(yPet);
 subplot (2,1,2)
 t5 = [0:Ts:Ts*(delkaPet-1)];
 plot(t5,yPet)
 xlabel('t [s]'); title('5s záznam');
 grid
 
%spektralni hustota energie 
%nejdriv fourierova transformace
 sY = fft(y);
 sYpet = fft(yPet);
 
%Spektralni hustota energie
 cY = sY.*conj(sY);
 cYpet = sYpet.*conj(sYpet);
 
%vykresleni spektralni hustoty energie
 figure(2)
 krok = Fs/delka; %vydalenost mezi jednotlivymi vzorky
 konec = (Fs-krok);    
 subplot (2,1,1)
  f = 0:krok:konec;
  plot(f,cY)
  axis([0 5000 0 2*10^8])
  xlabel('f [Hz]'); ylabel('C(x)'); title('Spektrální hustota energie - celý záznam');
  grid
 krokPet = Fs/length(cYpet);
 konecPet = (Fs-krok);
 subplot (2,1,2)
  f5 = 0:krokPet:konecPet;
  plot(f5,cYpet)
  axis([0 5000 0 10*10^7])
  xlabel('f [Hz]'); ylabel('C(x)'); title('Spektrální hustota energie - 5s záznam');
 grid 
  
%nacteni filtru
 filtr = load('filtr.dat');
  
%zpracovani signalu filtrem
 vystup = conv(filtr,yPet);   %konvoluce
 delka=length(vystup);
 t = 0:Ts:Ts*(delka-1);
 figure(3)
 subplot(2,1,2)
  plot(t,vystup)
  axis([0 5 -1 1])
  xlabel('t [s]'); title('Zpracovaný signál');
  grid
 subplot (2,1,1)
  delkaPet=length(yPet);
  t = [0:Ts:Ts*(delkaPet-1)];
  plot(t,yPet)
  axis([0 5 -1 1])
  xlabel('t [s]'); title('Pùvodní signál');
  grid

%spektralni hustota energie zpracpvaneho signlu
 sVystup = fft(vystup);                 %fourier
 cVystup = sVystup.*conj(sVystup);      %hustota
 krokPet = Fs/length(cYpet);
 konecPet = (Fs-krok);
 figure(4)
 subplot (2,1,1)
  f5 = 0:krokPet:konecPet;
  plot(f5,cYpet)
  axis([0 5000 0 10*10^7])
  xlabel('f [Hz]'); ylabel('C(x)'); title('Pùvodní signál');
  grid 
 krokVyst = Fs/length(cVystup);
 konecVyst = (Fs-krokVyst);
 figure(4)
 subplot (2,1,2)
  fVyst = 0:krokVyst:konecVyst;
  plot(fVyst,cVystup)
  axis([0 5000 0 6*10^5])
  xlabel('f [Hz]'); ylabel('C(x)'); title('Zpracovaný signál');
  grid 

%energie signalu
 enerYpet = sum(yPet.*conj(yPet))
 enerVyst = sum(vystup.*conj(vystup))
 
%prenosova fce
 H = fft(filtr);
 figure(5)
 subplot(2, 1, 1)
  plot(abs(H))
  %xlabel('f [Hz]'); ylabel('C(x)'); 
  title('Amplitudova');
  grid
 subplot(2, 1, 2) 
  plot(angle(H))
  %xlabel('f [Hz]'); ylabel('C(x)'); 
  title('Fazova');
  grid
 
 figure(6)
  stem(filtr)
  xlabel('[-]');
  title('Impulsova odezva filtru');
  grid
 
  H=fft(filtr);
 figure(7)
  stem(H)
  xlabel('f [Hz]'); ylabel('H(omega)');
  title('Prenosova funkce');
  grid
 
 %wavwrite(yPet,44100,'vstup.wav');
 %wavwrite(vystup,44100,'vystup.wav');
 %wavwrite(y,44100,'vystupy.wav');