MF_autocorr MD_autocorr ME_autocorr
FunktionRäumliche Autokorrelations-Funktion
Syntax C/C++#include <MFstd.h>
void MF_autocorr( fMatrix Y, fMatrix X, ui ht, ui len );
C++ MatObj#include <OptiVec.h>
void matrix<T>::autocorr( const matrix<T>& MX);
Pascal/Delphiuses MFstd;
procedure MF_autocorr( MY, MX:fMatrix; ht, len:UIntSize );
BeschreibungDie räumliche Autokorrelations-Funktion (entl.: spatial autocorrelation function, SACF) von MX wird berechnet und in MY gespeichert. Dabei erhalten die Zeilen-Elemente MYi,0 bis MYi,len/2-1 die SACF für 0 und positive Verschiebungen in x-Richtung. Beginnend mit der größten negativen Verschiebung in MYi,len/2+1 enthalten die Elemente bis MYi,len-1 die SACF für negative Verschiebungen. Da diese Funktion MX als periodisch annimmt, ist die SACF für die größte positive Verschiebung gleich derjenigen für die größte negative Verschiebung. Dieses Element findet sich als Yi,len/2.
In ähnlicher Weise enthalten die Spalten-Elemente MY0,j bis MYlen/2-1,j die SACF für 0 und positive y-Verschiebungen. Beginnend mit der größten negativen Verschiebung in MYlen/2+1,j enthalten die Elemente bis MYlen-1,j die SACF für negative Verschiebungen.
Um die SACF in normale Reihenfolge zu bekommen, kann man die folgende Sequenz aufrufen:
MF_Rows_rotate( MY, ht, len, len/2 );
MF_Cols_rotate( MY, ht, len, ht/2 );

Danach befindet sich der Nullpunkt bei MYht/2,len/2.
Falls MX nicht-periodisch ist, sollten Randeffekte mit den bei MF_convolve beschriebenen Methoden vermieden werden.
Sowohl ht als auch len müssen ganzzahlige Potenzen von 2 sein.
Bezüglich spezieller Versionen mit den Präfixen MFl_ und MFs_ vergleiche man Kap. 4.8 von http://www.optivec.de/vecfuncs/.
FehlerbehandlungFalls entweder len oder ht nicht eine Potenz von 2 ist, meldet sich VF_FFT (worauf MF_autocorr basiert) mit der Fehlermeldung "Size must be an integer power of 2" und bricht das Programm ab.
QuerverweisMF_FFT,   MF_xcorr,   MF_convolve,   VF_autocorr,   Kap. 12

MatrixLib Inhaltsverzeichnis  OptiVec Home