real-time heart monitoring and ecg signal...
Post on 06-Feb-2018
233 Views
Preview:
TRANSCRIPT
-
Real-time Heart Monitoring and ECG Signal Processing
Fatima Bamarouf, Claire Crandell, and Shannon Tsuyuki
Advisors: Drs. Yufeng Lu and Jose Sanchez
Department of Electrical and Computer Engineering Bradley University February 29, 2016
-
Contents
Introduction and Overview
Progress
Summary and Conclusions
2
-
Introduction and Overview
Problem Description
Project Objectives
System Block Diagram
Division of Labor
3
-
Problem Description
Arrhythmias
Are irregular heartbeats caused by defective electrical signals in the heart [1]
Include premature ventricular contractions (PVCs)
PVCs may lead to ventricular tachycardia (VT)
4
Figure 1. Electrocardiogram with V labels for PVCs [2]
-
Problem Description
An electrocardiogram (ECG) describes the hearts electrical activity
An ECG can be recorded using a Holter monitor or event monitor
Figure 2. Features of a normal ECG [3]
5
-
Problem Description
Holter and event monitors are limited in functionality
Utilize some in-platform signal processing for diagnostic assistance
Must perform some signal processing offline
Are unable to address medical issues in real time
6
-
System Block Diagram
Real-time Heart
Monitor System
Unprocessed Heart Data
Wireless Message
Figure 3. Overall heart monitoring system diagram
7
-
Project Objectives
Develop a low-power, stand-alone embedded system for continuous heart monitoring that will
Process ECG data in real time
Detect PVCs accurately and consistently
Alert the patients doctor wirelessly of ventricular tachycardia
8
-
Project Objectives
Real-time ECG signal processing
On-board signal processing computations
Battery-powered functionality
9
-
Division of Labor
MATLAB Simulation (PVC detection)
Shannon/Fatima
C Programming (PVC detection)
Claire/Shannon
Wi-Fi Communication
Fatima/Claire/Shannon
10
-
Contents
Introduction and Overview
Progress
Fatima
Shannon
Claire
Summary and Conclusions
11
-
Problem Approach 12
Figure 4. High-level flowchart for algorithms
-
Template Generation Algorithm [4] 13
Figure 5. Flowchart for T1 and T2 generation
-
Beat Amplitude Series 14
Figure 6. MATLAB plot of QRS detection results. The marked peaks were placed into an array.
-
Template Generation Algorithm 15
Figure 7. Flowchart for T1 and T2 generation
Beat To Beat Time Series
QRS Data (30s)
Beat Amplitude Series
Remove Extremities (3)Remove Extremities (3)
Sorted In Ascending OrderSort In Ascending Order
Divide Into 5 Subsets With
Equal Time Duration
Divide Into 5 Subsets With
Equal Amplitude Range
Keep The Set With Max Of
Data Points
Keep The Set With Max Of
Data Points
T1 & T2 Templates
-
Template Generation Algorithm 16
Figure 8. Flowchart for T1 and T2 generation
-
Template Generation Algorithm 17
Figure 9. Flowchart for T1 and T2 generation
-
Template Generation Algorithm 18
Figure 10. Flowchart for T1 and T2 generation
-
Template Generation Algorithm 19
Figure 11. Flowchart for T1 and T2 generation
-
Data between Two Fiducial Points 20
Figure 12. MATLAB plot of QRS detection results. The marked RR-intervals were placed into an array.
-
Template Generation Algorithm 21
Figure 13. Flowchart for T1 and T2 generation
-
Templates T1 and T2 22
Figure 14. T1 and T2 generation
-
Template-Matching Algorithm 23
Figure 15. Flowchart for template-matching algorithm
-
Template-Matching Algorithm 24
Figure 16. Flowchart for template-matching algorithm
-
Normalized Correlation Coefficient
25
-
Template-Matching Algorithm 26
Figure 17. Flowchart for template-matching algorithm
-
Exponential Function Correlation 27
-
CC3200 WiFi Setup
The CC3200 was set up in station mode to access the internet
28
Figure 18. CC3200 set up in station mode [5]
-
Wireless Research
Wireless platforms tested
Temboo
PubNub
29
-
Temboo
Middleware that allows different devices (such as the LaunchPad) to access web-based services
30
Figure 19. Temboo integration with an embedded device [6]
-
Energia and Code Composer Studio
Wireless platforms (such as Temboo) use Energia sketches for C++ functionality
Energia is a rapid prototyping platform for the Texas Instruments MCU Launchpad (CC3200)
31
-
Energia and Code Composer Studio
To be able to load the Energia sketch code from CCS, the libraries were changed to be compatible with Energias GNU compiler
Hardware libraries
DSP library
32
-
Code Optimization 33
-
Template-Matching Testing
Record PVC Sensitivity PVC Positive Predictivity
106 0.729 1.000
116 1.000 0.973
119 1.000 0.998
201 1.000 0.789
203 1.000 0.651
208 1.000 0.892
34
TABLE I. PERFORMANCE OF TEMPLATE-MATCHING MATLAB SIMULATION
-
Past Schedule 35
Figure 20. Gantt chart for fall semester
-
Current/Future Schedule 36
Figure 21. Gantt chart through the end of the project
-
Contents
Introduction and Overview
Progress
Fatima
Shannon
Claire
Summary and Conclusions
37
-
Template-Matching Algorithm 38
Figure 22. Flowchart for template-matching algorithm
-
Data between Two Fiducial Points 39
Figure 23. T2 (interval between R peaks) and RR-interval signal for PVC beat
-
Interpolation and Extrapolation 40
-
Example (Extrapolation) 41
n value Calculated Index
1 1
2 1.48
3 1.95
4 2.43
5 2.90
TABLE II. INDICES AFTER EXTRAPOLATION
-
Alternative QRS Detection [7]
Uses the cumulative sum (CUSUM) test
Improved QRS onset/offset detection through statistics
Floats above noise level
42
-
Alternative QRS Detection 43
-
Alternative QRS Detection 44
-
Alternative QRS Detection 45
Figure 24. MATLAB plot of the raw and auxiliary signals generated using the alternative QRS detection algorithm
-
Alternative QRS Detection
Use a search window and determine a threshold
If calculated average exceeds threshold, mark sample as point of change
46
-
Alternative QRS Detection 47
Figure 25. MATLAB plot of the auxiliary signal and the cumulative average
-
Wireless - Plotly
Code language: JavaScript Object Notation (JSON)
Language independent
Based on JavaScript, C/C++/C#, Python, Perl, etc.
48
-
Wireless - Plotly 49
Figure 26. Sample Plotly graph of 1000 samples of heart data
-
Past Schedule 50
Figure 27. Gantt chart for fall semester
-
Current/Future Schedule
51
Figure 28. Gantt chart through the end of the project
-
Contents
Introduction and Overview
Progress
Fatima
Shannon
Claire
Summary and Conclusions
52
-
Template Generation Algorithm 53
Figure 29. Flowchart for T1 and T2 generation
-
Testing of QRS Detection Phase
Pan-Tompkins algorithm implemented on CC3200
54
Figure 30. CC3200 Launchpad [8]
-
UDMA Diagram 55
CC3200
PC
UDMA Controller
ARM Processor
UART Buffer
Figure 31. UART data flow between the PC and the CC3200
-
Pan-Tompkins Algorithm 56
Pan-Tompkins Algorithm
Heart Data
R Peak Locations
Figure 32. Pan-Tompkins block diagram
-
Pan-Tompkins Algorithm 57
Figure 33. Flowchart for Pan-Tompkins algorithm
-
Results
Record QRS Sensitivity (%) QRS Positive Predictivity (%)
100 97.83 100.00
102 96.69 100.00
103 99.43 100.00
105 99.76 99.76
106 96.67 99.69
58
TABLE III. PERFORMANCE OF PAN-TOMPKINS C IMPLEMENTATION
-
C Implementation Results 59
Figure 34. T1 (QRS complex) template generated on the CC3200
-
C Implementation Results 60
Figure 35. T2 (RR interval) template generated on the CC3200
-
Wavelet Transform Algorithm [9]
Alternative QRS detection method
Zero crossings of wavelet transform used to find QRS onset and offset
61
-
Wavelet Transform Algorithm 62
-
Wavelet Transform Algorithm 63
Figure 35. QRS onsets and offsets detected using the wavelet transform
-
Temboo/Twilio
Sending an SMS message using the CC3200 LaunchPad
Message includes text and image file
64
-
Temboo/Twilio 65
CC3200 LaunchPad
Temboo
Twilio API
Cell Phone
Start
Figure 36. Transmitting an SMS message using the LaunchPad
-
System Integration
Combined project uses Energia sketch in Code Composer Studio
GNU compiler replaced ARM compiler
Mixed C/C++ code
66
-
System Integration
Issues addressed
Memory configuration
Synchronization with PC
67
done
PC CC3200
LaunchPad
data buffer
Figure 37. Improved UART testing system
-
Past Schedule 68
Figure 39. Gantt chart for fall semester
-
Current/Future Schedule 69
Figure 40. Gantt chart through the end of the project
-
Contents
Introduction and Overview
Progress
Fatima
Shannon
Claire
Summary and Conclusions
70
-
Summary and Conclusions
PVCs are irregular heartbeats that may lead to VT
An embedded device is proposed that will detect PVCs in real time and wirelessly alert the patients doctor of VT
71
-
Summary and Conclusions
Design must include real-time ECG signal processing, on-board signal processing computations, and battery-powered functionality
72
-
Summary and Conclusions
Current/Future Tasks
Testing the integrated algorithm/wireless code
Adding additional improvements to the MATLAB simulation if necessary
73
-
Real-time Heart Monitoring and ECG Signal Processing
Fatima Bamarouf, Claire Crandell, and Shannon Tsuyuki
Advisors: Drs. Yufeng Lu and Jose Sanchez
Department of Electrical and Computer Engineering Bradley University February 29, 2016
-
References
[1] Arrhythmias. [Online] Available: http://watchlearnlive.heart.org/CVML_Player.php?moduleSelect=arrhyt
[2] MIT-BIH Arrhythmia Database. [Online] Available: http://www.physionet.org/physiobank/database/mitdb/
[3] Cardiovascular System Assessments. [Online] Available: http://media.lanecc.edu/users/driscolln/RT116/softchalk/Cardia_Assessment/Cardia_Assessment_print.html
[4] P. Li, et al., A low-complexity data-adaptive approach for premature ventricular contraction recognition, Signal, Image and Video Processing, vol. 8, no. 1, pp. 111-120, 2013. [Online] Available: http://link.springer.com/article/10.1007%2Fs11760-013-0478-6
[5] CC3200 Getting Started with WLAN Station. [Online] Available: http://processors.wiki.ti.com/index.php/CC32xx_Getting_Started_with_WLAN_Station
[6] Arduino: Dynamic Living-Room Lights. [Online] Available: https://www.element14.com/community/groups/arduino/blog/2014/12/22/dynamic-living-room-lights-the-yun-review--when-the-penguin-met-the-arduino
[7] A. I. Manriquez and Q. Zhang. An algorithm for QRS onset and offset detection in single lead electrocardiogram records. [Online] Available: https://www.researchgate.net/profile/Alfredo_Illanes-Manriquez/publication/5845016_An_algorithm_for_QRS_onset_and_offset_detection_in_single_lead_electrocardiogram_records/links/5459ea610cf26d5090ad2c7e.pdf
[8] CC3200-LAUNCHXL. [Online] Available: http://www.ti.com/ww/en/launchpad/launchpads-connected-cc3200-launchxl.html?DCMP=cc3100cc3200&HQS=cc3200launchpad-oob
[9] C. Li, et al., Detection of ECG Characteristic Points Using Wavelet Transforms. [Online] Available: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=362922&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F10%2F8315%2F00362922.pdf%3Farnumber%3D362922
75
-
Removing Extremities (3) 76
-
T1 Alignment 77
Figure 16. T1 template and PVC QRS complex aligned to T1s R peak index
-
Equal Sets 78
sort_series=[0 1 1.5 1.7 2 3 5 5 7 9 10]
Step=(Max-Min)/5=2
Five equal sets: [0 1 1.5 1.7 2] [3] [5 5] [7] [9 10]
Set one has maximum data points
-
Converting MATLAB to C 79
Template-Matching Functions
normIntRange.m
normal_amplt.m
Corr_Coeff.m
Z_Corr.m
-
Conversion of MATLAB Code
Conversion of template-matching MATLAB code to C code
Normal_amplt.m
Integrated code project
80
-
State Diagram
Figure 43. State diagram for heart monitoring system
81
Store heart data into memory
Perform preprocessing
Classify each beat as PVC or non-PVC
Determine if VT is present
Transmit a message to the doctor
(for VT)
Start
-
Detailed Gantt Chart (1) 82
Figure 44. Gantt chart for the MATLAB simulation (PVC algorithm) phase of the project
-
Detailed Gantt Chart (2) 83
Figure 45. Gantt chart for the C implementation (PVC algorithm) phase of the project
-
Detailed Gantt Chart (3) 84
Figure 46. Gantt chart for the wireless development phase of the project
-
Specificity and Sensitivity [8]
TP (True Positive): detected QRS complex that is present in the signal
TN (True Negative): data point between QRS complexes that does not contain a QRS peak
FP (False Positive): incorrect identification of QRS peak
FN (False Negative): QRS peak that was not detected by the algorithm
85
-
Memory Requirements
Sampling rate for ECG signal (MIT-BIH arrhythmia database): 360 Hz
Number of samples required for 30 seconds of ECG data: 10,800
Amount of memory required: 21 kB
86
-
Nonfunctional Requirements: Metrics Objective: The device should be compatible with all
patient data in the MIT-BIH database. [3]
Metric:
Highly compatible: 10 points
Very compatible: 7.5 points
Compatible: 5.0 points
Somewhat compatible: 2.5 points
Not compatible: 0 points
87
-
Nonfunctional Requirements: Metrics Objective: The device should be portable.
Metric:
Very easy to carry around: 10 points
Easy to carry around: 7.5 points
Portable: 5.0 points
Uncomfortable to carry around: 2.5 points
Difficult to carry around: 0 points
88
-
Nonfunctional Requirements: Metrics TABLE VI. QUANTITATIVE PERFORMANCE LEVELS FOR REAL-TIME
HEART MONITORING [8,9]
Power Consumption
in 24 Hours of
Continuous Use (W)
Price ($)
Value Scaled
1.50 500 10
2.50 600 7.5
3.25 700 5
4.00 800 2.5
4.75 900 0
89
-
Design Evaluation: Morphological Chart
Functions Means
Storing heart data Flash memory RAM
Preprocessing (Filtering/QRS detection)
Pan-Tompkins Wavelet transform
Wavelet transform and Pan-Tompkins
PVC detection Wavelet transform
Template matching
RR-interval
Ventricular tachycardia detection
Three or more consecutive
PVCs
Three or more consecutive
PVCs, heart rate greater than 100 beats per minute
Statistical analysis
Wireless functionality eZ430-RF2500 CC2540 (Bluetooth)
CC3200
TABLE V. MORPHOLOGICAL CHART FOR HEART MONITORING SYSTEM [10,11,12,13,14,15,16]
90
-
Design Evaluation: Design Alternatives
Total design space: 162 designs
Two designs analyzed in detail
91
-
Schedule 92
Task Duration (hours) PVC Algorithm (MATLAB) 65
PVC Algorithm (C) 100 Wi-Fi Communication 150
Progress Report I 80
Progress Report II 80
Final Presentation 80
Final Report 80
TABLE IV. PROJECT SCHEDULE
-
Schedule 93
Figure 47. Gantt chart for the fall semester
-
Schedule 94
Figure 48. Gantt chart for the spring semester
-
Alternative Solution: Hardware
eZ430-RF2500 (Texas Instruments)
MSP430F2274 MCU
CC2500 wireless transceiver
32 kB flash memory
95
Figure 18. eZ430-RF2500 Development Kit [12]
-
Alternative Solution: Software
PVC detection
Wavelet transform algorithm [13]
RR-interval algorithm [14]
96
-
Pan-Tompkins Algorithm [4] 97
-
Pan-Tompkins Algorithm
-
Pan-Tompkins Algorithm
-
Algorithm Efficacy, 100s 100
Figure 23. Performance of template-matching algorithm MATLAB simulation
-
Algorithm Efficacy, 200s 101
Figure 49. Performance of template-matching algorithm MATLAB simulation
-
WFDB Library (PC side)
isigopen(): open a specific WFDB record
getvec(): get the next sample in the record
102
-
WFDB Library (PC side)
isigopen(): open a specific WFDB record
getvec(): get the next sample in the record
103
-
WFDB Toolbox (MATLAB) 104
rdsamp(): place samples from a WFDB record into a vector
rdann(): place annotations (characters) from a WFDB record into a vector
-
WFDB Toolbox (MATLAB)
wrsann(): write experimental annotations into a vector
bxb(): generate a report (with accuracy and positive predictivity data) using experimental annotations
105
-
Sample BXB Report 106
Figure. Text file generated using the bxb() function in the WFDB toolbox
-
DSP library for CC3200
Corr_Coeff.c
arm_sub_f32()
arm_mult_f32()
Normal_amplt.c, normIntRange.c
arm_mean_f32()
arm_std_f32()
107
-
Sorting the Amplitude Series
Let S_amp=[2 1 10 5 9 1.5 3 0 1.7 5 7]
After sorting,
sort_series=[0 1 1.5 1.7 2 3 5 5 7 9 10]
108
-
QRS Detection 109
Figure 50. MATLAB plot of QRS detection results
-
UART Data Transfer 110
Figure 30. UART data transfer flowchart (PC)
-
UART Data Transfer 111
UDMA Controller UART Interrupt Main Function
Figure 31. UART data transfer flowcharts (CC3200)
-
Alternative QRS Detection 112
Figure 24. Flowchart for alternative QRS detection method
-
Alternative QRS Detection 113
Uses statistics to accurately locate QRS onset and offset
Can be used to determine abnormal QRS complexes
Figure 24. Flowchart for alternative QRS detection method
-
Alternative QRS Detection 114
Use the Hilbert transform to obtain the envelope
Figure 25. Flowchart for alternative QRS detection method
-
Alternative QRS Detection 115
Figure 26. Flowchart for alternative QRS detection method
-
Alternative QRS Detection 116
Calculate a cumulative mean for the QRS onset and offset windows
Determine the probability density functions
Figure 27. Flowchart for alternative QRS detection method
-
Envelope Signal 117
Figure 41. Envelope of the initial ECG signal
-
Auxiliary Signal 118
Figure 42. Auxiliary signal of the envelope
top related