%--------------------------------------------------------------------------
% function SF = GetFrequencyFromDiagram(HUroven,HFile)
%
% Popis funkce:
% ------------
% Funkce je potrebna ke ziskani parametru (S11 a frekvence) z vysledneho
% grafu, ktery byl vyexportovan z HFSS.
%
% Parametry
% ------------
% HUroven - rozsah hodnot od 1 do 0 (hodnota 1 uz je bez rozliseni!)
% HFile - Exportovany soubor 'C:/Temp/tempDataExportHFSS.m'
%
%
% Priklad pouziti funkce:
% ---------
% fid = fopen('pokus.m', 'wt');
% ... 
% function SF = GetFrequencyFromDiagram(0.5,'C:/Temp/tempDataExportHFSS.m')
%--------------------------------------------------------------------------

function SF = GetFrequencyFromDiagram(HUroven,HFile)
    S=0;
    f=0;
    run(HFile);
    DBU = 20*log10(HUroven);
    
    Poc_vz = length(S);
    for i = 1:length(S)
        if ((DBU) < (20*log10(abs(S(i,1)))))
            S(i,1) = 1;
        end
    end

    SDBU = 20*log10(abs(S));
    j=1;
    count = 0;
    SFDB(1,1:3) = ones(1,3);
    SF(1,1:3) = ones(1,3);
    
    for i = 1:length(S)
        if (SDBU(i,1) < DBU)
            clear SF;
            count = count + 1;
            SFDB(j,3) = count;
            if SDBU(i-1,1)>SDBU(i,1)
                SFDB(j,1) = SDBU(i,1);
                SFDB(j,2) = f(1,i);
            end
        else
            count = 0;
            j = j +1;
        end 
    end

    j=1;
    [m,n]=size(SFDB);
    for i=1:m
        if (SFDB(i,1) < 0)
            SF(j,2)=SFDB(i,1);
            SF(j,1)=SFDB(i,2);
            SF(j,3)=SFDB(i,3);
            j=j+1;
        end
    end
    
%     SF(:,3)=(SF(:,3)*10);
%     for i=1:length(SF)
%         if (SF(i,3)> Poc_vz)
%             disp(i);
%             disp('Antena se zda byt sirokopasmova...');
%             disp('nebo je nespravne nastavena uroven odecitani...');
%             disp('pravdepodobne muzou byt i dve blizke frekvence!');
%             disp('zobrazena hodnota je minimalni hodnota v danem intervalu s natavenou urovni!');
%         else
%             disp(i);
%             disp('Antena se zda byt pasmova nebo vicepasmova');
%         end
%     end
%     SF(:,3)=(SF(:,3)/10);
    clear(HFile);
    clear S;
    clear f;
    delete(HFile);
end