- refactored
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
||||
% Kreuzkorrelation von x und y
|
||||
% ----------------------------
|
||||
%
|
||||
% Aufruf:
|
||||
% Function [rxy,fpo]=ccorr(x,y,N)
|
||||
%
|
||||
% Parameter:
|
||||
% x : Eingangsdaten 1
|
||||
% y : Eingangsdaten 2
|
||||
% N : Maximale Verschiebung der Eingangsdaten
|
||||
%
|
||||
% Rückgabewerte:
|
||||
% rxy: Kreuzkorrelationskoeffzienten
|
||||
% fpo: Anzahl der Floating-Point Operationen
|
||||
|
||||
% -------------------------------------------------------------------------
|
||||
% Datum : 07.08.2001
|
||||
% Autor : Jens Ahrensfeld
|
||||
% Thema : Diplomarbeit
|
||||
% Datei : ccorr.m
|
||||
% Benötigte Dateien:
|
||||
%
|
||||
% -------------------------------------------------------------------------
|
||||
function [rxy,fpo]=ccorr(x,y,N)
|
||||
|
||||
% Ermittling der FFT-Länge (für Radix-2)
|
||||
C = 2^ceil(log2(N));
|
||||
|
||||
% Zero-Padding wenn N != 2^r
|
||||
xzp = [x;zeros(C-N,1)];
|
||||
yzp = [y;zeros(C-N,1)];
|
||||
|
||||
flops(0);
|
||||
|
||||
% C-Punkte FFT der Eingangsdaten
|
||||
Xk = fft(xzp,C);
|
||||
Yk = fft(yzp,C);
|
||||
|
||||
% Korrelation im Frequenzbereich
|
||||
Rk = Xk.*conj(Yk);
|
||||
|
||||
% Rücktransformation
|
||||
rk = ifft(Rk,C)/C;
|
||||
|
||||
% Abspeichern der ersten N Werte
|
||||
rxy(1:N/2) = rk(N/2+1:N);
|
||||
rxy(N/2+1:N) = rk(1:N/2);
|
||||
|
||||
fpo = flops;
|
||||
|
||||
% -------------------------------------------------------------------------
|
||||
% Ende ccorr.m
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
% Kreuzkorrelation von x und y
|
||||
% ----------------------------
|
||||
%
|
||||
% Aufruf:
|
||||
% Function [rxy]=ccorr2(x,y,M)
|
||||
%
|
||||
% Parameter:
|
||||
%
|
||||
% Rückgabewerte:
|
||||
|
||||
% -------------------------------------------------------------------------
|
||||
% Datum : ..2001
|
||||
% Autor : Jens Ahrensfeld
|
||||
% Thema : Diplomarbeit
|
||||
% Datei : newfunc.m
|
||||
% Benötigte Dateien:
|
||||
%
|
||||
% -------------------------------------------------------------------------
|
||||
function [rxy]=ccorr2(x,y,M)
|
||||
|
||||
% Berechne Erwartungswert xm, ym von X und Y im Intervall N
|
||||
for n = N:N:L-W,
|
||||
rmax(k) = 0;
|
||||
for w = 0:W-1
|
||||
sxy(k) = sum(x(n+w:-1:n-N+1+w).*y(n:-1:n-N+1));
|
||||
sxym(k) = sum(abs(x(n+w:-1:n-N+1+w).*y(n:-1:n-N+1)));
|
||||
rmax(k) = max(sxy(k)/sxym(k),rmax(k));
|
||||
end;
|
||||
% r(n:-1:n-N+1) = ones(N,1)*sxy(k)/sxym(k);
|
||||
r(n:-1:n-N+1) = ones(N,1)*min(rmax(k),1);
|
||||
k = k+1;
|
||||
end;
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
% correl(x,y,N)
|
||||
|
||||
function rxy = correlt(x,y,S)
|
||||
|
||||
L = lge(x);
|
||||
N = L-S;
|
||||
|
||||
if (N == 0)
|
||||
error('N = 0 !');
|
||||
end;
|
||||
|
||||
for s=1:S,
|
||||
rxy(s)=sum(x(S-s+1:L-s+1).*y(S:L))^2/(sum(x(S-s+1:L-s+1).^2)*sum(y(S:L).^2));
|
||||
%rxy(s)=abs(sum(x(S-s+1:L-s+1).*y(S:L)))/(sum(abs(x(S-s+1:L-s+1).*y(S:L)))+0.0001);
|
||||
end;
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
% correl(x,y,N)
|
||||
|
||||
function rxy = corrph(x,y,S)
|
||||
|
||||
L = lge(x);
|
||||
N = L-S;
|
||||
|
||||
if (N == 0)
|
||||
error('N = 0 !');
|
||||
end;
|
||||
|
||||
for s=1:S,
|
||||
%rxy(s)=sum(x(S-s+1:L-s+1).*y(S:L))^2/(sum(x(S-s+1:L-s+1).^2)*sum(y(S:L).^2));
|
||||
rxy(s)=abs(sum(x(S-s+1:L-s+1).*y(S:L)))/(sum(abs(x(1:L).*y(1:L)))+0.0001);
|
||||
end;
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
% correl(x,y,N)
|
||||
|
||||
function rxy = corrlp(x,y,S)
|
||||
|
||||
L = lge(x);
|
||||
N = L-S;
|
||||
|
||||
if (N == 0)
|
||||
error('N = 0 !');
|
||||
end;
|
||||
|
||||
for s=1:S,
|
||||
rxy(s)=sum(x(S-s+1:L-s+1).*y(S:L))^2/(sum(x(S-s+1:L-s+1).^2)*sum(y(S:L).^2));
|
||||
%rxy(s)=abs(sum(x(S-s+1:L-s+1).*y(S:L)))/(sum(abs(x(S-s+1:L-s+1).*y(S:L)))+0.0001);
|
||||
end;
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
% correl(x,y,N)
|
||||
|
||||
function rxy = corrph(x,y,S)
|
||||
|
||||
L = lge(x);
|
||||
N = L-S;
|
||||
|
||||
if (N == 0)
|
||||
error('N = 0 !');
|
||||
end;
|
||||
|
||||
for s=0:S-1,
|
||||
%rxy(s)=sum(x(S-s+1:L-s+1).*y(S:L))^2/(sum(x(S-s+1:L-s+1).^2)*sum(y(S:L).^2));
|
||||
%rxy(s)=abs(sum(x(S-s+1:L-s+1).*y(S:L)))/(sum(abs(x(S-s+1:L-s+1).*y(S:L)))+0.0001);
|
||||
rxy(s+1)=sum(x(1:L-S).*y(1+s:L-S+s))/(sum(abs(x(1:L-S).*y(1+s:L-S+s)))+0.001);
|
||||
%rxy(s+1)=sum((x(1:L-S).^2).*(y(1+s:L-S+s).^2))/(sum(x(1:L-S).^2 + y(1+s:L-S+s).^2) +0.001);
|
||||
end;
|
||||
Reference in New Issue
Block a user