- 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
|
||||
Reference in New Issue
Block a user