clear all
close all

f = 100; %[Hz]
T = 1/f;
fs = 10000; %[Hz]
fn = fs/2;
Ts = 1/fs;
dt = Ts
%%Allgemein: T_DFT = N*Ts;
T_DFT = T;
N = T_DFT/Ts;
df = fs/N;

t =[0:N]*Ts

x_n_1 =exp(2*pi*f*t)*0.002;
x_n_2 =exp(2*pi*f*t)*0.001;

x_n_1 = flipud(x_n_1');
x_n_2 = flipud(x_n_2');

subplot(3,2,1);
stem(t,x_n_1,'b');
hold on;
stem(t,x_n_2,'r');

title('Signal 1 und Signal 2')
xlabel('t[sec]')
ylabel('A[V]')
grid on;

X1 = fft(x_n_1,N).'/N; % Wichtig durch N weil Matlab * 1/N nicht rechnet
X2 = fft(x_n_2,N).'/N; % Wichtig durch N weil Matlab * 1/N nicht rechnet

f = (fn)*linspace(0,1,N/2);

subplot(3,2,2);

stem(f(1),abs(X1(1)),'b') % DC-Anteil
hold on;
stem(f(2:end),2*abs(X1(2:N/2)),'b') 
stem(f(1),abs(X2(1)),'r') % DC-Anteil
stem(f(2:end),2*abs(X2(2:N/2)),'r') 
grid on;
title('Signal 1 und Signal 2 im Bildbereich')
xlabel('f[Hz]')
ylabel('|X(f)|')

% Diskrete Falung mit Matlab conv
x_n = xcorr(x_n_1,x_n_2,'unbiased')
% t Vektor neu rechnen siehe Matlab help conv bezüglich länge falls
% unbekannt

t =[0:N]*Ts

subplot(3,2,3);
stem(t,x_n(1:length(t)),'g');
grid on;
title('Signal 1 und Signal 2 kreuz korreliert')
xlabel('t[sec]')
ylabel('A[V]')

X = fft(x_n,N).'/N; % Wichtig durch N weil Matlab * 1/N nicht rechnet

f = (fn)*linspace(0,1,N/2);

subplot(3,2,4);

stem(f(1),abs(X(1)),'b') % DC-Anteil
hold on;
stem(f(2:end),2*abs(X(2:N/2)),'b') 
grid on;
title('Kreuzkorreliertes Signals im Bildbereich')
xlabel('f[Hz]')
ylabel('|X(f)|')


XNeu = (X1.*conj(X2))

x_n = ifft(XNeu);
subplot(3,2,5);
stem(t(1:length(x_n)),x_n,'b');
title('Signal 1 und Signal 2 im Zeitbereich mit ifft(X1.*conj(X2)')
xlabel('t[sec]')
ylabel('A[V]')
grid on;


subplot(3,2,6);
stem(f(1),abs(XNeu(1)),'b') % DC-Anteil
hold on;
stem(f(2:end),2*abs(XNeu(2:N/2)),'b') 
grid on;
title('Kreuzkorreliertessignal');
xlabel('f[Hz]')
ylabel('|X(f)|')
