annotate yetilab/signal/autocorrelation.yeti @ 265:c7efd12c27c5

Window fixes and tests
author Chris Cannam
date Thu, 23 May 2013 13:21:05 +0100
parents e16e42c55a20
children
rev   line source
Chris@147 1
Chris@147 2 module yetilab.signal.autocorrelation;
Chris@147 3
Chris@147 4 acf len series =
Chris@147 5 (a = array series;
Chris@147 6 map do i:
Chris@147 7 sum (map do j:
Chris@147 8 a[j] * a[j-i]
Chris@147 9 done [i..length a - 1])
Chris@147 10 done [0..len-1]);
Chris@147 11
Chris@147 12 acfNormalised len series =
Chris@147 13 (n = length series;
Chris@147 14 map2 do v i: v / (n - i) done (acf len series) [0..len-1]);
Chris@147 15
Chris@147 16 acfUnityNormalised len series =
Chris@147 17 (a = acfNormalised len series;
Chris@147 18 max = head (sortBy (>) a);
Chris@147 19 map (/ max) a);
Chris@147 20
Chris@147 21 {
Chris@147 22 acf,
Chris@147 23 acfNormalised,
Chris@147 24 acfUnityNormalised,
Chris@147 25 }
Chris@147 26