% funkce pro interpolaci vstupních průběhů
function [x_axis_out, data_1_out, data_2_out, len_out] = interpolation...
         (x_axis_1, x_axis_2, data_1, data_2)

    % hledání maxima a minima společné frekvenčí oblasti
    interp_min = max(min(x_axis_1),min(x_axis_2));
    interp_max = min(max(x_axis_1),max(x_axis_2));
    
    % podmínka pro případ, že vstupní průběhy nemají společnou frekvenčí
    % oblast
    if (interp_min > interp_max)
        disp('input files error: files doesn''t have common frequency band');
        x_axis_out = 0;
        data_1_out = 0;
        data_2_out = 0;
        len_out = 0;
        return;
    else
        % stanovéní krajních indexů jednotlivých průběhů
        [~, lower_interp_index_1] = min(abs(x_axis_1-interp_min));
        [~, upper_interp_index_1] = min(abs(x_axis_1-interp_max));
        [~, lower_interp_index_2] = min(abs(x_axis_2-interp_min));
        [~, upper_interp_index_2] = min(abs(x_axis_2-interp_max));
        
        x_axis_1_temp = x_axis_1(lower_interp_index_1:upper_interp_index_1);
        x_axis_2_temp = x_axis_2(lower_interp_index_2:upper_interp_index_2);
        
        % interpolace podle hustěji vzorkovaného průběhu
        if (length(x_axis_1_temp) >= length(x_axis_2_temp))
            x_axis_out = x_axis_1(lower_interp_index_1:upper_interp_index_1);
            data_1_out = data_1(lower_interp_index_1:upper_interp_index_1);
            data_2_out = interp1(x_axis_2, data_2, x_axis_out,'spline');
            len_out = length(x_axis_out);
        else
            x_axis_out = x_axis_2(lower_interp_index_2:upper_interp_index_2);
            data_2_out = data_2(lower_interp_index_2:upper_interp_index_2);
            data_1_out = interp1(x_axis_1, data_1, x_axis_out,'spline');
            len_out = length(x_axis_out);
        end
    end
    
end