comparison src/scheme/filter.scm @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:bf79fb79ee13
1 (define (hp x)
2 ; Normaliser used as high pass filter to remove slow variations
3 (define n (node "phase1" (NormaliseVector. x)))
4 (addtasks n)
5 (.output n)
6 )
7
8 (define (lp x)
9 ; Normaliser used as low pass filter to remove fast variations
10 (define n (node "lp" (NormaliseVector. x)))
11 (addtasks n)
12 (.mean n)
13 )
14
15 (define (bp x) (lp (hp x)))
16
17
18 (define (smooth-signal sig) (addtask
19 (node (.getNode sig)
20 (GenerateDouble. (VDouble. "smoothed")
21 (FilteredGenerator. (DoubleGenerator. sig)
22 (IIRFilter.
23 ; two element double array controlled by VDouble
24 (let ((a (double[] #(1 0)))
25 (p (samer.core.types.VDouble. "smoothness" 1.0)))
26 (on-change p
27 (let ((r (Math.exp (- (.get p)))))
28 (double[] a 0 r)
29 (double[] a 1 (- 1 r))))
30 (.changed p)
31 a )))))))
32