%% Prikaz korelacij
% Ta skripta prikazuje delovanje korelacij pri sprejemu GPS signalov.
% Najprej definirajmo nekaj funkcij, ki nam bodo pomagale pri izrisovanju.

a=1;

%vrne frakcionalno vrednost v zaporedju
function ret=get_frac(gc,t)
    ti=floor(t)+1;
    tf=t-ti;
    if ti<1
        ti=ti+1023;
    end
    v1=gc(ti);
    ti=ti+1;
    if ti==1024
        ti=1;
    end
    v2=gc(ti);
    ret=v1*(1-tf)+v2*tf;
end

%vrne floorano vrednost v zaporedju
function ret=get_floor(gc,t)
    ti=floor(t)+1;
    if ti<1
        ti=ti+1023;
    end
    ret=gc(ti);
end

%nariše obe zaporedji v bližini sprejemnika in njun produkt
function plot_all(prn1,prn2,zamik)
    res=1001;
    gc1=gold_code(prn1);
    gc2=gold_code(prn2);
    okno=20;
    t=linspace(-okno,okno,res);
    s1=zeros(1,res);
    s2=zeros(1,res);
    mul=zeros(1,res);
    for n=1:res
        s1(n)=get_floor(gc1,t(n));
        s2(n)=get_floor(gc2,t(n)+zamik);
        mul(n)=s1(n)*s2(n);
    end
    tiledlayout(3,1);
    nexttile;
    plot(t, s1,'r-');
    set(gca,'xtick',[]);
    set(gca,'YLim',[-1.2 1.2]);
    nexttile;
    plot(t, s2,'b-');
    set(gca,'xtick',[]);
    set(gca,'YLim',[-1.2 1.2]);
    nexttile;
    plot(t, mul, 'g-');
    set(gca,'YLim',[-1.2 1.2]);
end

% Tukaj vnesemo PRN satelita

prn1=1;

% Tukaj pa sprejemnika

prn2=1;

% Definirajmo zamik

zamik=0;

% Narišemo oba signala okrog začetka lokalno generiranega signala.

plot_all(prn1,prn2,zamik)