changeset 569:b218e2362246

Fix dirac "window" length (and fix test)
author Chris Cannam
date Tue, 13 May 2014 16:42:07 +0100
parents e9716e9a44e4
children f9e557d6ac2f d72c054fc8bf
files src/may/signal/test/test_window.yeti src/may/signal/window.yeti
diffstat 2 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/may/signal/test/test_window.yeti	Mon May 12 17:46:31 2014 +0100
+++ b/src/may/signal/test/test_window.yeti	Tue May 13 16:42:07 2014 +0100
@@ -17,7 +17,8 @@
     Bartlett () : win.bartlett,
 ];
 
-close aa bb = all id (map2 do a b: (abs (a - b) < 0.0001) done aa bb);
+close aa bb = (length aa == length bb) and
+    all id (map2 do a b: (abs (a - b) < 0.0001) done aa bb);
 
 isSymmetric a =
    (len = (vec.length a);
--- a/src/may/signal/window.yeti	Mon May 12 17:46:31 2014 +0100
+++ b/src/may/signal/window.yeti	Tue May 13 16:42:07 2014 +0100
@@ -78,7 +78,8 @@
     if n < 2 then vec.ones n
     else 
         n0 = if n % 2 == 0 then n/2 else (n-1)/2 fi;
-        vec.concat [ vec.zeros n0, vec.ones 1, vec.zeros n0 ]
+        n2 = if n % 2 == 0 then n/2-1 else (n-1)/2 fi;
+        vec.concat [ vec.zeros n0, vec.ones 1, vec.zeros n2 ]
     fi;
 
 /**