% Autokorrelationsfunktion und Autoleistungsspektrum fuer ungleichmaessig abgetastete Signale mit nicht ganz streng periodischen Anteilen
% mit Slotkorrelation (als Referenz - langsam), Mittelung ueber einen Bereich von maximal M Werten, mit Gewichtung
% Slotkorrelation, direkte Spektralschaetzung und Zeitquantisierung ergeben leicht unterschiedliche Ergebnisse
function [tau,R,f,P]=snperslotw(x,t,w,dt,NT,M)
  % x - Datensatz
  % t - Messzeitpunkte (gleiche Laenge wie x)
  % w - Gewichte (gleiche Laenge wie x)
  % dt - Zeitschritt (fuer Korrelationsfunktion und Spektrum)
  % NT - angenommene Periodenlaenge (Vielfache des Zeitschritts)
  % M - maximale Bereich der Mittelung (z.B. =NT fuer Mittelung ueber eine Periode)
  N=length(x);
  tau=(0:NT-1)*dt;
  R1=zeros(1,NT);
  R0=zeros(1,NT);
  for i=1:N
    j1=i;
    while (j1>=1) && (round((t(j1)-t(i))/dt)>=-M)
      j1=j1-1;
    end
    j2=i;
    while (j2<=N) && (round((t(j2)-t(i))/dt)<M)
      j2=j2+1;
    end
    for j=j1+1:j2-1
      k=mod(round((t(j)-t(i))/dt),NT)+1;
      R1(k)=R1(k)+w(i)*w(j)*x(i)*x(j);
      R0(k)=R0(k)+w(i)*w(j);
    end
  end
  R=R1./R0;
  df=1/(NT*dt);
  f=(mod((0:NT-1)+fix(NT/2),NT)-fix(NT/2))*df;
  P=real(fft(R))/NT;
end

