% clear all;
% close all;


addpath('./sinemodel')
addpath('./funkce')
addpath('./signals/music_wav')
addpath('./signals/speech_wav')






% filename='bagpipe'; %Název souboru
%===odkomentovat pro načtení wav souboru=====
%     [inpaint.signal.samples, inpaint.signal.fs, inpaint.signal.nbits]...
%         = wavread([filename '.wav']);
    
%zkrátí signál na %sek vteřin, pokud je delší (rychlejší zpracování) 
sek=2;
if length(inpaint.signal.samples)>(sek*inpaint.signal.fs)
     inpaint.signal.samples=inpaint.signal.samples(1:sek*inpaint.signal.fs);
end


%=====nastavení parametrů==============
% KB - order of AR model of the signal left from gap 
% KA - order of AR model of the signal right from gap 
% KNB - order of AR model of the residual signal left from gap 
% KNA - order of AR model of the residual signal right from gap 
% thrF - threshold for frequency vector distance
% thrA - threshold for amplitude vector distance
% parM - maximum length of amplitude vector for amplitude estimate
% lB - length of extrapolated vectors from the left side
% lA - length of extrapolated vectors from the right side
% solver: Long Interpolation based on Sinusoidal Modeling

param.thrF=tF;
param.thrA=tA;
param.KNB=KNB;
param.KNA=KNA;
inpaint.solver.param=param;

inpaint.miss = gap; %mezera [počátek délka]

%interpolace
inpaint = SinModInt(inpaint);

%výpočet SNR
snr = SNRCmpt(inpaint.signal.samples(inpaint.miss(1,1):inpaint.miss(1,1)...
    +inpaint.miss(1,2)-1),inpaint.sol.samples(inpaint.miss(1,1)...
    :inpaint.miss(1,1)+inpaint.miss(1,2)-1));


%zápis poškozeného a rekonstruovaného souboru
% wavwrite(inpaint.sol.err,inpaint.signal.fs,inpaint.signal.nbits,...
%     ['./signals/output/' filename num2str(gap) num2str(tF) '_err.wav']);
% wavwrite(inpaint.sol.samples,inpaint.signal.fs,inpaint.signal.nbits,...
%     ['./signals/output/' filename num2str(gap) num2str(tF) '_res.wav']);




% %vykreslení spektrogramů
% figure(1);
% subplot(3,1,1);
% sgram(inpaint.sol.orig,inpaint.signal.fs,100);
% subplot(3,1,2);
% sgram(inpaint.sol.err,inpaint.signal.fs,100);
% subplot(3,1,3);
% sgram(inpaint.sol.samples,inpaint.signal.fs,100);
% %vykreslení průběhu signálu
% figure(2);
% plot(inpaint.sol.orig,'r');
% hold on;
% plot(inpaint.sol.samples,'b');
% 
% 
% 
% %popis grafů
% figure(1);
% subplot(3,1,1);
% title('Spektrogram původního signálu');
% subplot(3,1,2);
% title('Spektrogram signálu s mezerou');
% subplot(3,1,3);
% title('Spektrogram rekonstruovaného signálu s residuálním šumem');
% 
% 
% figure(2);
% title('Průběh signálu');
% xlabel('vzorky           \rightarrow')
% ylabel('amplituda           \rightarrow')
% legend('Původní signál','Rekonstruovaný signál')





