wavescope
play

WaveScope Ryan Newton MIT/CSAIL Work with: Lewis Girod, Kyle - PowerPoint PPT Presentation

WaveScope Ryan Newton MIT/CSAIL Work with: Lewis Girod, Kyle Jamieson, Yuan Mei, Stan Rost, Arvind Thiagarajan, Hari Balakrishnan, Sam Madden http://wavescope.csail.mit.edu/ Motivation: Stream + Signal Processing


  1. WaveScope Ryan Newton MIT/CSAIL Work with: Lewis Girod, Kyle Jamieson, Yuan Mei, Stan Rost, Arvind Thiagarajan, Hari Balakrishnan, Sam Madden http://wavescope.csail.mit.edu/

  2. Motivation: Stream + Signal Processing http://wavescope.csail.mit.edu/

  3. Motivation: Stream + Signal Processing • Pipeline leak detection and localization Are there anomalies in the frequency response to an introduced pulse? http://wavescope.csail.mit.edu/

  4. Motivation: Stream + Signal Processing • Pipeline leak detection and localization • Seizure onset detection using EEG Is a seizure Are there anomalies in imminent given the frequency response signals from various to an introduced pulse? brain regions? http://wavescope.csail.mit.edu/

  5. Motivation: Stream + Signal Processing • Pipeline leak detection and localization • Seizure onset detection using EEG • In situ animal behavior studies Is a seizure Are there anomalies in What time imminent given the frequency response ranges contained signals from various to an introduced pulse? marmot calls? brain regions? http://wavescope.csail.mit.edu/

  6. Motivation: Stream + Signal Processing • Pipeline leak detection and localization • Seizure onset detection using EEG • In situ animal behavior studies Is a seizure Are there anomalies in What time imminent given the frequency response ranges contained signals from various to an introduced pulse? marmot calls? brain regions? http://wavescope.csail.mit.edu/

  7. Motivation: Stream + Signal Processing • Pipeline leak detection and localization Limitations of Streaming DBMS • Seizure onset detection using EEG • In situ animal behavior studies • Difficult to extend operator set • Outcalls to Matlab, etc • Embedded support • High per-sample/operator overhead Is a seizure Are there anomalies in What time imminent given the frequency response ranges contained signals from various to an introduced pulse? marmot calls? brain regions? http://wavescope.csail.mit.edu/

  8. WaveScope Features

  9. WaveScope Features High data-rate 4 channels x 48 khz = 400,000 bytes/sec (per node) x 20 nodes

  10. WaveScope Features Embedded, low- power devices High data-rate 4 channels x 48 khz = 400,000 bytes/sec (per node) x 20 nodes

  11. WaveScope Features Embedded, low- power devices High data-rate Signal-oriented data-model 4 channels x 48 khz = 400,000 bytes/sec (per node) x 20 nodes

  12. WaveScope Features Embedded, low- power devices High data-rate Signal-oriented data-model • Flexible windowing • Efficient time-stamping 4 channels x 48 khz = 400,000 bytes/sec (per node) x 20 nodes

  13. WaveScope Features Embedded, low- power devices High data-rate Signal-oriented data-model • Flexible windowing • Efficient time-stamping WaveScript Ch0 = AudioSource(0, 48000, 1024); S = stream_map( FFT, Ch0 ); Language 4 channels S = stream_map(fft, Ch0 ); x 48 khz Ch0 = AudioSource(0, 48000, 1024); = 400,000 bytes/sec (per node) x 20 nodes

  14. WaveScope Features Embedded, low- power devices High data-rate Signal-oriented data-model • Flexible windowing • Efficient time-stamping WaveScript Ch0 = AudioSource(0, 48000, 1024); S = stream_map( FFT, Ch0 ); Language • Not StreamSQL 4 channels S = stream_map(fft, Ch0 ); x 48 khz • Write script to generate query network Ch0 = AudioSource(0, 48000, 1024); = 400,000 bytes/sec (per node) • Query network is optimized, compiled to native code, executed by engine x 20 nodes

  15. Drilling down: Marmot-call application Node Some Marmots http://wavescope.csail.mit.edu/

  16. Drilling down: Marmot-call application • Goal: study calling behavior. Node Some Marmots http://wavescope.csail.mit.edu/

  17. Drilling down: Marmot-call application • Goal: study calling behavior. Node Some Marmots http://wavescope.csail.mit.edu/

  18. Drilling down: Marmot-call application • Goal: study calling behavior. Node Some Marmots http://wavescope.csail.mit.edu/

  19. Drilling down: Marmot-call application • Goal: study calling behavior. Node • Detect, record, localize, classify. Some Marmots http://wavescope.csail.mit.edu/

  20. Schematic of Marmot-detector (Phase1) ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> Audio2 <audio window> Audio3 <audio window> http://wavescope.csail.mit.edu/

  21. Schematic of Marmot-detector (Phase1) Fast-path DSP to determine temporal ranges for marmot calls ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> Audio2 <audio window> Audio3 <audio window> http://wavescope.csail.mit.edu/

  22. Schematic of Marmot-detector (Phase1) Stream’s Tuple Schema ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> Audio2 <audio window> Audio3 <audio window> http://wavescope.csail.mit.edu/

  23. Schematic of Marmot-detector (Phase1) Stream’s Tuple Schema Data Model: ProfileDetector <t1,t2,bool> • Streams are first-class values. Audio0 <audio window> • Streams contain Tuples • One or more unnamed fields: Stream<int,float> Audio1 <audio window> sync <w1,w2,w3,w4> • Fields may also be arrays, Tuples , SigSegs , or Audio2 <audio window> tagged-union datatypes, but not Streams . Audio3 <audio window> • SigSegs: efficiently managed windows of samples • pass-by-reference • cheap to append, copy, forward, rewindow • fewer timestamps http://wavescope.csail.mit.edu/

  24. Schematic of Marmot-detector (Phase1) Stream’s Tuple Schema Data Model: ProfileDetector <t1,t2,bool> • Streams are first-class values. Ch0 = AudioSource(...); Audio0 <audio window> • Streams contain Tuples • One or more unnamed fields: Stream<int,float> Audio1 <audio window> sync <w1,w2,w3,w4> • Fields may also be arrays, Tuples , SigSegs , or Audio2 <audio window> tagged-union datatypes, but not Streams . Audio3 <audio window> • SigSegs: efficiently managed windows of samples • pass-by-reference • cheap to append, copy, forward, rewindow • fewer timestamps http://wavescope.csail.mit.edu/

  25. Schematic of Marmot-detector (Phase1) Stream’s Tuple Schema Data Model: ProfileDetector <t1,t2,bool> • Streams are first-class values. Ch0 = AudioSource(...); Audio0 <audio window> • Streams contain Tuples • One or more unnamed fields: Stream<int,float> Audio1 <audio window> sync <w1,w2,w3,w4> • Fields may also be arrays, Tuples , SigSegs , or Audio2 <audio window> tagged-union datatypes, but not Streams . Audio3 <audio window> • SigSegs: efficiently managed windows of samples • pass-by-reference • cheap to append, copy, A B [4,8) [0,4) forward, rewindow • fewer timestamps S 0 1 2 3 4 5 6 7 8 9 10 ….. http://wavescope.csail.mit.edu/

  26. Schematic of Marmot-detector (Phase1) Stream’s Tuple Schema ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> Audio2 <audio window> Audio3 <audio window> http://wavescope.csail.mit.edu/

  27. WaveScript Code for Detector ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> Audio2 <audio window> Audio3 <audio window> http://wavescope.csail.mit.edu/

  28. WaveScript Code for Detector ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> // Main query, phase 1 Audio2 <audio window> Ch0 = AudioSource(0, 48000, 1024); Audio3 <audio window> Ch1 = AudioSource(1, 48000, 1024); Ch2 = AudioSource(2, 48000, 1024); Ch3 = AudioSource(3, 48000, 1024); control = profileDetect( Ch0 , marmotScore, <64,192> ); datawindows = sync4 ( control , Ch0 , Ch1 , Ch2 , Ch4 ); http://wavescope.csail.mit.edu/

  29. WaveScript Code for Detector ProfileDetector <t1,t2,bool> Audio0 <audio window> Audio1 <audio window> sync <w1,w2,w3,w4> // Main query, phase 1 Audio2 <audio window> Ch0 = AudioSource(0, 48000, 1024); Audio3 <audio window> Ch1 = AudioSource(1, 48000, 1024); Ch2 = AudioSource(2, 48000, 1024); Ch3 = AudioSource(3, 48000, 1024); control = profileDetect( Ch0 , marmotScore, <64,192> ); datawindows = sync4 ( control , Ch0 , Ch1 , Ch2 , Ch4 ); http://wavescope.csail.mit.edu/

  30. WaveScript Code for Detector fun profileDetect(S : Stream<SigSeg<int16>>, scorefun , <winsize,step>) { wins = rewindow(S, winsize, step); ProfileDetector scores : Stream< float > <t1,t2,bool> scores = iterate (w in wins) { emit scorefun ( FFT(w) ); Audio0 <audio window> }; Audio1 <audio window> withscores : Stream<float, SigSeg<int16>> sync <w1,w2,w3,w4> // Main query, phase 1 withscores = zip2(scores, wins); Audio2 <audio window> return threshFilter(withscores); Ch0 = AudioSource(0, 48000, 1024); Audio3 <audio window> } Ch1 = AudioSource(1, 48000, 1024); Ch2 = AudioSource(2, 48000, 1024); Ch3 = AudioSource(3, 48000, 1024); control = profileDetect( Ch0 , marmotScore, <64,192> ); datawindows = sync4 ( control , Ch0 , Ch1 , Ch2 , Ch4 ); http://wavescope.csail.mit.edu/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend