function [cellID pocatek] = det_cell(signal_comp,prepo);    
% =====promìnné
    slot=15360/prepo;
    M1=160/prepo; %první CP ve slotu
    M2=144/prepo; %normální CP
    N=2048/prepo;

% =====generování PSS
for i=1:3
    pss(i,:)=gen_pss(i-1);
    pssd(i,:)=[0 pss(i,32:62) zeros(1,65) pss(i,1:31)];
end    
% =====plnìní matice jednotlivými symboly
for i=1:70
    symbol(i,:)=signal_comp(1+(i-1)*(N+M2):1+i*(N+M2)-1);
    symbol_nonCP(i,:)=symbol(i,10:137);
    symbol_f(i,:)=fft(symbol_nonCP(i,:));
end
% =====detekce PSS v f doménì
for i=1:70
    kor(i,:,1)=ifft(symbol_f(i,:).*(pssd(1,:)));
    kor(i,:,2)=ifft(symbol_f(i,:).*(pssd(2,:)));
    kor(i,:,3)=ifft(symbol_f(i,:).*(pssd(3,:)));
end
% =====vykreslení detekce PSS
    figure
    subplot 131; mesh(abs(kor(:,:,1))); title('PSS0'); xlabel('vzorky symbolu'); ylabel('èíslo symbolu'); zlim([0 max(max(max(abs(kor))))]);
    subplot 132; mesh(abs(kor(:,:,2))); title('PSS1'); xlabel('vzorky symbolu'); ylabel('èíslo symbolu'); zlim([0 max(max(max(abs(kor))))]);
    subplot 133; mesh(abs(kor(:,:,3))); title('PSS2'); xlabel('vzorky symbolu'); ylabel('èíslo symbolu'); zlim([0 max(max(max(abs(kor))))]);
% =====které PSS je v signálu, v jakém symbolu a jakým vzorkem je maximum
    maxima=[max(max(abs(kor(:,:,1)))) max(max(abs(kor(:,:,2)))) max(max(abs(kor(:,:,3))))];
    [i,detPSS]=find(maxima==(max(maxima)));
    [detPSSsymbol,detPSSvzorek]=find(abs(kor(:,:,detPSS))==(max(max(abs(kor(:,:,detPSS))))));   
    detPSS=detPSS-1;    
% DETEKCE SSS
% =====symbol s SSS v f. domene
    prijSSS=symbol_f(detPSSsymbol-1,:);
% =====korelace
    for i=1:168
        sss = gen_sss(i-1,detPSS,1);
        sss=[0 sss(32:end) zeros(1,65) sss(1:31)];
        sss = [sss(1) flip(sss(2:128))];
        korSSS0(i,:) = ifft(prijSSS.*sss);
        
        sss = gen_sss(i-1,detPSS,10);
        sss=[0 sss(32:end) zeros(1,65) sss(1:31)];
        sss = [sss(1) flip(sss(2:128))];
        korSSS5(i,:) = ifft(prijSSS.*sss);
    end
    
    lim=[max(max(abs(korSSS0))) max(max(abs(korSSS5)))];
    
    figure
    subplot 121; mesh(abs(korSSS0)); title('slot 0'); xlabel('vzorky symbolu'); ylabel('èíslo symbolu'); zlim([0 max(lim)]);
    subplot 122; mesh(abs(korSSS5)); title('slot 10'); xlabel('vzorky symbolu'); ylabel('èíslo symbolu'); zlim([0 max(lim)]);

% =====urèení slotu (0 nebo 5)
    maximaSSS=[max(max(abs(korSSS0))) max(max(abs(korSSS5)))];
    if maximaSSS(1)>maximaSSS(2)
        detslot=0;
        korSSS_fin=korSSS0; %pro hledání èísla SSS
    else
        detslot=5;
        korSSS_fin=korSSS5; %pro hledání èísla SSS
    end

% =====urèení které SSS je v signálu
    [detSSSsymbol,detSSSvzorek]=find(abs(korSSS_fin)==(max(max(abs(korSSS_fin)))));   
    detSSS=detSSSsymbol-1;
    
% =====výpoèet CELL ID
    cellID=3*detSSS+detPSS;

% synchronizace rámce
    if max(maximaSSS)==maximaSSS(1) %detekován slot nula
        halfframe=0;
    elseif max(maximaSSS)==maximaSSS(2)
        halfframe=9600;
    end
    
    if detPSSsymbol<8
        pocatek=-((detPSSsymbol-7)*(N+M2))+halfframe+(2*halfframe)+(M1-M2);
    elseif detPSSsymbol>8
        pocatek=((detPSSsymbol-7)*(N+M2)+fix(detPSSsymbol/7)*(M1-M2))+halfframe;
    end
end
