PsiLAB Help Manual
Page
Section:
Correlation of 2 dimensional data
Name:
autocorr_2d_norm
Calculates the 2d normalized and scaled autocorrelation matrix of the real matrix a.
[ c:(float,'b,'c) Matrix.t ] = autocorr_2d_norm
a:(float,'b,'c) Matrix.t
?c:(float,'b,'c) Matrix.t
()
With the optional c list argument an already allocated result matrix can be given to the function.
The calculation is performed with the Fast Fourier Transform (FFT). Used algorithm method:
G(1) (a,0) = <a*a> (Maximum of Autocorrelation from matrix a)
g(1) (a,a, t) = ( G(1) (a,a, t) - (<a>*<a>)) /
(<a*a> - <a>)
The autocorrelation matrix G(1) is calculated using the FFT in the following way:
af = FFT (a,Forward)
cf = af <*> (conjmat af)
c = FFT (cf,Backward,Reorder)
c0 = c </> ( Number of matrix elements )
Example:
[] let f = fmatrix ~dim:[500;300] ~rand:[1.0] () ;;
[] let autoc = autocorr_2d_norm f () ;;
[] autocorr_2d_norm f ~c:[autoc] () ;;
Printed by PsiLAB