%korrekcio 2 env converter, 1/3 octave band version
function env = kor2env(korrekcio, fftsize, numofwin, hopsize)
    % korrekcio: korrekcios vektor [samples*30}
    % fftsize: fft ablak merete
    % numofwin: hany ablak fer bele az adott mintaszamba 
    %           (teszteleshez meg lehet adni akarmit, csak ne fusson tul az
    %           index)
    % hopsize: mennyivel toljuk arrebb az ablakot (altalaban fftsize/4)

% harmadoktavsav kozepfrekvenciai
centerfreqs = [0 12 25 33 41 51 66 84 108 136 171 218 277 342 430 550 700 880 1100 1380 1700 2150 2700 3500 4400 5600 7100 9000 11000 14000 18000 24000];
%fs=48000;

% idotengely szerinti atskalazas: mintankent -> ablakonkent (atlagolassal)
for i = 1:30
    for j = 1:numofwin 
            range = (j-1)*hopsize +1:(j-1)*hopsize + fftsize;
            res_time(j,i) = mean(korrekcio(range,i));
    end
    
end

% frekvenciatengely szerinti atskalazas (interpolacio)
for i = 1:numofwin
%     res_freq(i,:) = zeros(fftsize/2,1);
%     for j = 1:30
%         res_freq(i,round( (centerfreqs(j)/(fs/2))*fftsize/2)) = res_time(i,j);
%     end
%     env(i,:) = resample(res_time(i,:),fftsize/2,size(korrekcio,2)); %rossz
    
    %spline interpolacio: spline(x,y,xx)
    %    (x,y) pontok, xx: uj skala
    % az y vektort itt kiegeszitettem egy 1-es es egy 0 ertekkel, ezek a 0 illetve fs/2
    % frekvenicahoz tartoznak, illetve ha 2-vel tobb y van, mint x, akkor
    % az elso es az utolso ertekeket kezdo es vegso meredeksegnek veszi,
    % ezeket is 0-ra allitottam, ez a 2 szelso 0.
    % ha megnezed az eredmenyt, megsem megy 0-ba a gorbe vege.
    res_tf(i,:) = spline(centerfreqs,[0,1,res_time(i,:),0,0],1:fftsize/2);
    fprintf('\nEvaluating spline no: %g / %g',i,numofwin); 
end
env = res_tf;