| MF_autocorr
| MD_autocorr |
ME_autocorr |
|
| Funktion | Rä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/Delphi | uses MFstd;
procedure MF_autocorr( MY, MX:fMatrix; ht, len:UIntSize ); |
|
| Beschreibung | Die 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/. |
|
| Fehlerbehandlung | Falls 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. |
|
|