%% Phasenauswertung mittels Korrelation
clc; clear; close all;

a = 1; %Amplitude Signal1 [V]
f1 = 50;
tmax = 40e-3; %Signaldauer [s]
fs = 2^18; %Abtastrate
Ts = 1/fs; %Periodendauer Sampling
dPhi = pi/10;
dPhiTime = dPhi/(2*pi*f1)
t(:,1) = 0:Ts:tmax;

control_angle = 0;  %Steuerwinkel [°]
control_angle = 100/180*control_angle;

x = a*sin(2*pi*f1*t);   %Spannung gesammt
y = a*sin(2*pi*f1*t+dPhi);   %Spannung gesammt


%% Phasenanschnitt
tcalc = (tmax/20e-3)*2;
help = 100/control_angle;
time_calc = round(length(t)/(help*tcalc));

for i = 1:1:time_calc
x(i,1) = 0;
%y(i,1) = 0;
end

for c = 1:1:(tcalc-1)
for i = (c*round(length(t)/tcalc)):1:(time_calc+c*(round(length(t)/tcalc)))
x(i,1) = 0;
%y(i,1) = 0;
end
end



subplot(3,1,1)
plot(t,[x,y]);
grid on;
Rxx1 = xcorr(y);
subplot(3,1,2)
plot(Rxx1);
grid on;
Rxx2 = xcorr(x,y);
subplot(3,1,3)
plot(Rxx2);
grid on;

%% Maximalwerte der Korrelationsfunktion bestimmen
[pos1,wert1] = max(Rxx1);
[pos2,wert2] = max(Rxx2);

(wert1-wert2)*Ts%Abstände der beiden Werte mal Zeit pro Schritt

finddelay(x,y)