changeset 385:b33dfd0602de

More diagnostic output, etc
author Chris Cannam
date Tue, 17 Sep 2013 07:53:49 +0100
parents ff6f59832f15
children 9e7342b16d98
files may/stream/filter.yeti may/stream/test/test_filter.yeti
diffstat 2 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/may/stream/filter.yeti	Fri Sep 13 14:59:27 2013 +0100
+++ b/may/stream/filter.yeti	Tue Sep 17 07:53:49 2013 +0100
@@ -499,9 +499,10 @@
 interpolated factor s = //!!! factor must be an integer [how to enforce this??]
     if factor == 1 then s
     else
-        nzc = 13;
+        nzc = 13; //!!! where does this magic come from?
         attenuation = 80;
         filter = kaiserSincWindow nzc factor attenuation;
+println "int: filter length for nzc \(nzc), attn \(attenuation), factor \(factor) is \(vec.length filter)";
         out = delayedBy (- (nzc * factor))
            (convolvedWith [Framesize 1024]
                (mat.newMatrix (RowMajor ()) (map \filter [1..s.channels]))
@@ -532,6 +533,7 @@
         nzc = 13;
         attenuation = 80;
         filter = kaiserSincWindow nzc factor attenuation;
+println "dec: filter length for nzc \(nzc), attn \(attenuation), factor \(factor) is \(vec.length filter)";
         filtered =
            (convolvedWith [Framesize 1024]
                (mat.newMatrix (RowMajor ()) (map \filter [1..s.channels])) s);
--- a/may/stream/test/test_filter.yeti	Fri Sep 13 14:59:27 2013 +0100
+++ b/may/stream/test/test_filter.yeti	Tue Sep 17 07:53:49 2013 +0100
@@ -699,15 +699,18 @@
 "decimated-sine": \(
     // Decimating a sinusoid should give us a sinusoid
     //!!! only beyond half the filter length
-    sinusoid = syn.sinusoid 32 2; // 2Hz sine sampled at 16Hz
-    input = filt.withDuration 64 sinusoid;
+    sinusoid = syn.sinusoid 32 1; // 1Hz sine sampled at 32Hz
+    input = filt.withDuration 400 sinusoid;
     output = filt.decimated 2 input;
-    result = output.read 32;
-    reference = syn.sinusoid 16 2;
-    expected = reference.read 32;
+    result = mat.columnSlice (output.read 200) 50 150;
+    reference = syn.sinusoid 16 1;
+    expected = mat.columnSlice (reference.read 200) 50 150;
     compareOutputs a b = compareClose
        (map vec.list (mat.asRows a)) (map vec.list (mat.asRows b));
-    compareOutputs result expected;
+    if not compareOutputs result expected then
+        println "diff: \(mat.difference result expected)";
+	false
+    else true fi
 ),
 
 "interpolated-misc": \(