VF_xcorrVD_xcorrVE_xcorr
FunktionKreuzkorrelationsfunktion
Syntax C/C++#include <VFstd.h>
void VF_xcorr( fVector Z, fVector X, fVector Y, ui size );
C++ VecObj#include <OptiVec.h>
void vector<T>::xcorr( const vector<T>& X, const vector<T>& Y );
Pascal/Delphiuses VFstd;
procedure VF_xcorr( Z, X, Y:fVector; size:UIntSize );
BeschreibungDie Kreuzkorrelationsfunktion (KKF) von X und Y wird berechnet und in Z gespeichert. Dabei erhalten die Elemente Z0 bis Zsize/2-1 die KKF für 0 und für positive Verschiebungen; für negative Verschiebungen wird die KKF beginnend mit der am stärksten negativen Verschiebung in Zsize/2+1 bis Zsize-1 gespeichert. Da diese Funktion (wie alle auf der Fourier-Transformation basierenden Routinen) implizit von periodischen X, Y und Z ausgeht, ist die KKF für die stärkste positive Verschiebung identisch mit der KKF für die stärkste negative Verschiebung. Dieser Wert befindet sich im Element Zsize/2. Um die KKF in normale Ordnung zu bringen, kann
VF_rotate( Z, Z, size, size/2 );
aufgerufen werden. Danach befindet sich der Nullpunkt an der Position size/2.

Ist X nicht periodisch, so sollten Randeffekte mit den bei VF_convolve beschriebenen Methoden vermieden werden.

Bezüglich spezieller Versionen mit den Präfixen VFp_,  VFs_ und VFl_ vergleiche man Kap. 4.8..

FehlerbehandlungWenn size nicht eine Potenz von 2 ist, meldet sich VF_FFT (worauf VF_xcorr basiert) mit der Fehlermeldung "Size must be integer power of 2." und bricht das Programm ab.
Rückgabewertkeiner
QuerverweisVF_FFT,   VF_convolve,   VF_autocorr,   VF_spectrum

VectorLib Inhaltsverzeichnis  OptiVec Home