TEAM 5 CHRIS HOFFMAN RYAN KELLOGG MIKE ZIZZA APRIL 11, 2007 HeartSavers: The Final Stretch
Status Update Project Concept: Wearable heart monitor: Electrodes in shirt, capture/process signal, send data wirelessly to smart phone Status update: Implementation Have working hardware FIFO Buffer implemented, tested on Robostix for storing ADC values Eases real-time pressure for polling Robostix Enables variable length processing time on Gumstix Gumstix can interact with Robostix FIFO Progress on ECG circuit: Can see a heart beat, but it’s super noisy Status update: Testing and Experimentation Performance comparison of different QRS complex detection algorithms Whether QRS algorithm throughput changes with heart rate Length of time to do ADC conversion How long takes to transfer full buffer on Robostix to Gumstix
Experiment Plan #1 Compare QRS detection algorithms Overall performance (speed, accuracy) Does performance depend on frequency of QRS complexes (heart rate)? Metrics: Run Time (sec) Accuracy (%) Why they matter: Helps us decide which is best for our project How we measure Script (in C) to run each algorithm 100 times and record performance values in a file Compute statistics in MATLAB
Initial Data #1 This graph compares execution time for competing QRS detection algorithms – WQRS is faster for all data sets tried. QRS detection algorithm performance depends only on number of sample points and not on heart rate.
Experiment #2 Determine sampling parameters on Robostix (ADC conversion time, transfer rate to Gumstix) Metrics Time (sec) Data rate (KB/s) Why they’re important Want to know how many ADC samples we can do Can we sample fast enough? How much processing time is left on Robostix? How we will measure Toggle IO pins and view ADC conversion time on scope Take full FIFO (~ 3K), send across I2C, get timestamp on Gumstix at finish
Initial Data #2 Set polling frequency to 244 Hz Can only send 16 points (ADCs) in one packet 15 transfers just to get a second’s worth of data 488 bytes to transfer for one second (244 samples/sec * 2 bytes per sample) Results Time for one ADC conversion: 115 us Transfer rate to Gumstix: 5.7 KB/s Time to send one packet 0.1 sec
Experiment 1 Hypothesis QRS detection algorithm throughput depends on HR One algorithm performs better than another algorithm Slope detection vs. length something Prove: Hardware will support 250 Hz sampling Prove amount of time to do ADC conversion is acceptable Test setup Gumstix, robostix, scope hooked up to robostix port C pins 0 and 1, pin toggling to determine function entry, Metrics Run time = end time – start time Number of samples Length of ECG data signal Workload Different algorithm run, we supply data file of known time length and number of qrs complexes Parameters What we can change (time, amt data) Test run Which parameter is changed Experiment Number of runs Avg Max Min
Initial Data This plot shows that the WQRS implementation outperforms the SQRS implementation for all 10 data sets
Looking Forward What have learned so far? Don’t underestimate the weirdness of analog Quirky timing function on Gumstix Quirky I 2 C on Robostix Next steps: Make ECG algorithms run in streaming fashion Run algorithm as daemon, communicate through sockets or pipes Make the circuit work as expected Make GUI on phone to display ECG information Don’t give up on non-stick electrodes
Questions?