function MaticeSpekter = stft3 ( x, DelkaOkna, Posun)
%       Funkce pro demonstraci kr8tkodob0 DFT
%       Vstup:      DelkaOkna- delka okna;
%                   Posun----- posun okna v procentech DelkaOkna;


[x,fvz,nbit] = wavread('tranorm-NZ.wav');


x=x(:)';                    %aby byl x radek
N= length (x);

%urceni posunu
Posun= round (Posun*DelkaOkna/100);
MaticeSpekter = [];

for i = 1:Posun:N-DelkaOkna, %cyklus pres cely signal s krokem posun
    
    %vyber useku a odstraneni stejnosmerne slozky.
    usek= x (i:i+DelkaOkna-1);
    usek = usek - mean ( usek );
    
    
    %vypocet vykonoveho spektra
    pom=((abs (fft(usek))).^2)/length(usek);

    ind= find (pom<1e-8);
    pom(ind)= 1e-8;
    spektrum = 10*log10(pom);
    

    %uschova do matice
    MaticeSpekter = [MaticeSpekter spektrum(1:end/2+1)'];
end

figure(1); 
clf;
subplot(2,1,2);
imagesc (linspace (0,N/fvz,size(MaticeSpekter,2)), linspace (0,fvz/10, size (MaticeSpekter,1)), MaticeSpekter);
colormap gray
title ('Spektogram - vyvoj spektra v case'); 
ylabel ('frekvence [Hz]');

subplot (2,1,1);
plot (linspace (0,N/fvz,N),x);
axis([0 N/fvz min(x) max(x)]);
title ('casovy prubeh signalu');
xlabel ('cas [s]');
ylabel ('amplituda')


 