Mercurial > hg > jslab
diff src/scheme/signals.scm @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/scheme/signals.scm Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,41 @@ +;;; extract one component of a vector and put it in a VDouble +(define-method (signal name) (VDouble. name)) +(define-method (signal vec i) + (node (.getNode vec) + (let ((sig (VDouble. (.toString i)))) + (addtask (VectorToDouble. vec i sig)) + sig + ) + ) +) + +;;; lagged signal histogram +(define (sig:hist sig) + (define sigwin (SignalWindow. sig 4 1)) + (define hist (JointHistogram. (.output sigwin) 0 4)) + (addtasks sigwin (.flushTask sigwin) hist) + (put "jointhist" hist) + hist +) + +(define (sig:- bigE smallE dE) + (addtask (GenerateDouble. dE + (Difference. bigE smallE))) + dE +) + +;;; make a task to write all sigs in siglist +(define (sig:write base siglist) + ;;; map a VDouble to a DoubleWriter + (define (sig->writer x) + (.mkdirs (java.io.File. base)) + (DoubleWriter. x + (buffer (ofstream (cat base "/" (.getLabel x) ".txt"))) + #f)) + + ;;; now map all signals to writers and make CompoundTask + (apply seq (map sig->writer siglist)) +) + + +