Bài báo sẽ trình bày về thiết kế thiết bị sử dụng IC công nghệ ARM (Advanced RISC Machine). Với khả năng tính toán mạnh, thiết bị triển khai trực tuyến được thuật toán phát hiện phức bộ QRS của Hamilton và Tompkins. Ngoài ra, thiết bị còn có thêm các cổng giao tiếp mở rộng để kết nối với khối thu thập tín hiệu điện tim, hay với khối tính toán chuyên dụng (như DSP, FPGA), tạo cơ sở áp dụng cho các bài toán nhận dạng tín hiệu ECG (Electrocardiogram), cũng như phát triển nên thành một sản phẩm đo và nhận dạng tín hiệu điện tim có thể áp dụng vào thực tế. Mời các bạn cùng tham khảo!
Trang 1Công nghệ nhúng trong thiết kế thiết bị đo điện tim có
chức năng phát hiện phức bộ QRS
Phạm Văn Nam, Trần Hoài Linh
Viện Điện, Trường Đại học Bách Khoa Hà Nội Email: pvnamdl1@gmail.com, linh.tranhoai@hust.edu.vn
Tóm tắt: Bài báo sẽ trình bày về thiết kế thiết bị sử dụng IC công
nghệ ARM (Advanced RISC Machine) Với khả năng tính toán
mạnh, thiết bị triển khai trực tuyến được thuật toán phát hiện
phức bộ QRS của Hamilton và Tompkins Ngoài ra, thiết bị còn
có thêm các cổng giao tiếp mở rộng để kết nối với khối thu thập
tín hiệu điện tim, hay với khối tính toán chuyên dụng (như DSP,
FPGA), tạo cơ sở áp dụng cho các bài toán nhận dạng tín hiệu
ECG (Electrocardiogram), cũng như phát triển nên thành một
sản phẩm đo và nhận dạng tín hiệu điện tim có thể áp dụng vào
thực tế Thiết bị đã được thử nghiệm với bộ CSDL MIT-BIH [1]
cho được kết quả chính xác cao như thử nghiệm trên PC
Từ khóa- tín hiệu ECG, hệ thống nhúng, tự động phát hiện
Abstract: The paper presents a ECG portable design using ARM
IC technology With its strong capability in programming and
performing mathematic operations, the device can integrate the
QRS detection algorithm proposed by Hamilton and Tompkins
Additionaly, the device has an open design, which allows it to
connect to different external ICs, such as DSP and FPGA for
further increasing the calculation powers needed for recognition
and classification tasks The solution was tested with signals from
MIT-BIH Arrhythmia Database and the performance is identical
as the performance of the programs run on PC
Keywords- ECG signals, embedded systems, auto detection
Chữ viết tắt
Viết tắt Tiếng Anh Tiếng Việt
ECG Electrocardiogram Điện tim đồ
IC Intergrated Circuit Vi mạch tích hợp
QRS QRS Complex Phức bộ QRS
MIT-BIH MIT-BIH Database Cơ sở dữ liệu MIT-BIH
SD Secure Digital Thẻ nhớ SD
MMC Multi Media Card Thẻ nhớ MMC
I ĐẶTVẤNĐỀ Một trong những mối quan tâm hàng đầu hiện nay là các
bệnh lý liên quan tới tim mạch Việc phát hiện sớm bệnh là rất
quan trong trong điều trị, cho nên, hiện tại trên thị trường có
lưu hành một số loại thiết bị đo điện tim do nước ngoài sản
xuất, tuy nhiên giá thành của các thiết bị là khá cao Ở Việt
Nam không phải ai cũng có khả năng trang bị cho mình những
thiết bị đắt tiền để kiểm tra bệnh tại nhà Do đó việc nghiên cứu
chế tạo thiết bị đo điện tim cầm tay để kiểm tra tim mạch hàng
ngày là có tiềm năng
Việc thu gọn thiết bị: phải thay thế các phần analog bằng
xử lý số (như thay thế các bộ lọc số bằng các bộ lọc analog), vấn đề này có thể có hạn chế bởi tốc độ và tài nguyên của vi xử
lý Nhưng hiện nay có các công nghệ chíp mới có tốc độ xử lý rất cao như ARM, FPGA, DSP, các dòng IC này có đủ tốc độ
để thực hiện thuật toán lọc cũng như phát hiện phức bộ QRS
đáp ứng thời gian thực Nếu lượng tính toán quá lớn (đối với các bài toán nhận dạng tín hiệu điện tim) thì có thể sử dụng thêm IC để xử lý song song Trong bài báo thiết bị sẽ lựa chọn
sử dụng công nghệ ARM
Áp dụng thuật toán phát hiện phức bộ QRS của Hamilton [1], áp dụng chạy trên thiết bị Thử nghiệm trên bộ CSDL MIT-BIH, so sánh kết quả khi chạy trên PC
II THUẬTTOÁNPHÁTHIỆNPHỨCBỘQRS Thuận toán phát hiện QRS này được Pan và Tompkins đưa
ra vào năm 1985 và được Hamilton và Tompkins phát triển tiếp vào năm 1986 [1] Năm 2002 tác giả đã thay đổi một vài thông
số để làm tăng độ chính xác và giảm được thời gian tính toán, thích hợp với việc nhúng chương trình xuống vi xử lý thay vì chạy trên PC Lưu đồ tổng thể hoạt động cơ bản của thuật toán được trình bày trong Hình 1
Hình 1 Sơ đồ hoạt động của thuật toán Sau đây là phần trình bày khái quát về các khối của sơ đồ hoạt động của thuật toán của từng khối chính
Trang 2A Khối lọc số
Hình 2 Phân bố phổ năng lượng của tín hiệu ECG
Theo Hình 2 thì phức bộ QRS chủ yếu tập trung lân cận tần
số 10 Hz [2] Trong thuật toán phát hiện QRS của Hamilton và
Tompkins đã sử dụng bộ lọc lấy dải trong khoảng tần số từ 5Hz
đến 11Hz Kết quả sau bộ lọc là y(n) (Hình 1) đã không còn
thành phần tần số thấp đặc trưng của sóng P, T hay trôi dạt
đường cơ bản, hay thành phần tín hiệu gây ra bởi nhiễu điện
lưới 50 Hz và nhiễu có tần số cao Cho nên ta cần xây dựng bộ
lọc thông thấp có tần số cắt là 11Hz và bộ lọc thông cao có tần
số cắt là 5Hz Hệ số của hai bộ lọc này đều là số nguyên bởi vì:
điều này cho phép thực hiện trên các bộ vi xử lý để đáp ứng tốc
độ xử lý nhanh theo thời gian thực, kết quả sau bước lọc là y(n)
sẽ được lưu lại để sử dụng cho khâu phát hiện đỉnh R sau này
[1], [3] Hàm truyền của các bộ lọc được Hamilton sử dụng
như sau:
Hình 3 Một đoạn tín hiệu ECG gốc của bản ghi 100 trong bộ CSDL
MIT-BIH – x(n)
Hình 4 Phân bố phổ năng lượng của tín hiệu gốc
Trong Hình 3 là 1 đoạn tín hiệu ECG được trích ra từ bản
ghi 100 trong bộ CSDL MIT-BIH, tín hiệu này có thành phần
nhiễu 60Hz và nhiễu tần số cao, thể hiện trong sơ đồ phân tích
phổ (Hình 4), tiếp sau đây là bước loại bỏ các nhiễu này từ tín
hiệu ECG, như phân tích ở trên ta sẽ thiết kế hai bộ thông thấp
và thông cao, với hàm truyền có các hệ số giống như trong tài liệu [3], kết quả được thực hiện trên phần mềm Matlab
Hàm truyền của bộ lọc thông thấp, với tần số cắt là 11Hz:
y n[ ] 2 [ y n 1] y n[ 2] x n[ ] 2 [ x n 5] x n[ 10]
Hàm truyền của bộ lọc thông cao, với tần số cắt là 5Hz:
y n[ ] y n[ 1] x n[ ]x n[ 32] Trong Hình 5 là kết quả sau khi tín hiệu quá bộ lọc thông thấp 11Hz, thông cao 5Hz, ta nhận thấy tín hiệu này không còn thành phần tần số cao, tín hiệu tập trung trong khoảng tần số từ 5Hz đến 11Hz, điều này thể hiện trong sơ đồ phân tích phổ
(Hình 6) Như vậy bộ lọc với các hệ số như trên công thức (1)
và (2) là có thể sử dụng được
Hình 5 Kết quả tín hiệu sau bộ lọc thông thấp với Fc là 11Hz và bộ
lọc thông cao Fc là 5Hz - y(n)
Hình 6 Phân bố phổ năng lượng của tín hiệu sau khi lọc
B Xác định cửa sổ thời gian có chứa đỉnh R Theo thuật toán xác định đỉnh R (Hình 1) thì sau khi bước
loại bỏ nhiễu bên ngoài khoảng 5 – 11Hz Kết quả sau bộ lọc
nhiễu y(n) sẽ được xử lý tiếp qua các bước như sau:
Lấy đạo hàm (d[ ]/dt): Tín hiệu điện tim ECG qua khâu
xử lý này sẽ làm nổi thêm phức bộ QRS, ngoài ra đạo hàm còn loại bỏ tiếp các sóng nhỏ và thành phần biến thiên chậm như sóng T, P trong sóng ECG
y n[ ] 2 [ ] + x[ 1] [ x n n x n 3] 2 [x n4]
Trang 3Hình 7 Kết quả tín hiệu ECG sau phép tính đạo hàm
Hình dạng của sóng ECG sau bước này gần như chỉ còn
các phức bộ QRS, nhiễu đã bị loại bỏ, thể hiện trong Hình 7
Lấy trị tuyệt đối: Để không triệt tiêu thông tin khí sử
dụng phép toán lấy trung bình ở bước kế tiếp thì phải
làm dương giá trị Năm 1986, Hamilton và Tompkins
[1] làm dương giá trị bằng phép toán bình phương,
cách bình phương này có thêm tác dụng làm nổi bật
những giá trị có biên độ cao như đỉnh R Đến năm
2002 [3] tác giả đã thay bằng phép lấy trị tuyệt đối, nó
có ưu điểm làm giảm bớt thời gian tính toán mà vẫn
đạt được mục đích Kết quả thể hiện trong Hình 8
Hình 8 Kết quả tín hiệu ECG sau phép tính trị tuyệt đối
Lấy trung bình tín hiệu theo thời gian: Mục đích bước
này là nhập các đỉnh gần nhau lại (Hình 8) thành 1
dạng liền nhau giống như trong Hình 9, sử dụng kết
quả của bước này để tìm cửa sổ thời gian có có chứa
đỉnh R Với tần số lấy mẫu của bộ CSDL MIT-BIT là
200 sps thì tương ứng với 5ms/mẫu Trong bài báo
năm 1986[1] Hamilton, Tompkins đã sử dụng lấy trung
bình trong khoảng thời gian 160ms (tương ứng 32 mẫu),
đến năm 2002 [3] tác giá đã giảm xuống còn 80ms
(tương ứng 16 mẫu), và bằng thực nghiệm chạy thử
chương trình với tín hiệu điện tim bộ CSDL MIT-BIT
kết quả tách phức bộ QRS là chính xác hơn và có tốc
độ xử lý nhanh hơn, thích hợp cho việc nhúng thuật
toán xuống các dòng vi xử lý thông thường như PIC,
AVR, PSoC : Kết quả sau bước lấy trung bình tín hiệu
theo thời gian thể hiện trong Hình 9
[ ] 1 ( [ 15] + x[ 14]+ +x[n])
16
Hình 9 Kết quả tín hiệu ECG sau phép tính lấy trung bình theo thời
gian – z(n)
Xác định cửa sổ thời gian có chứa đỉnh R: Dự vào kết quả đầu ra của bước lấy trung bình tín hiệu theo thời gian z(n) để xác định sơ bộ thời điểm và khoảng thời gian có chứa đỉnh R Từ đó, tham chiếu trở lại tín hiệu ECG sau lọc y(n), trong khoảng thời gian đó áp dụng thuật toán tìm Max để xác định đỉnh R Trong hình 4 thể hiện mối quan hệ lý tưởng giữa phức bộ QRS với tín hiệu lấy trung bình theo thời gian z(n) Đỉnh R sẽ xuất hiện ở khoảng giữa sườn lên của xung trong tín hiệu z(n) Từ thực nghiệm Hamilton, Tompkins lấy độ rộng của cửa sổ từ 150 đến 250 ms [1]
Hình 10 Mối quan hệ giữa phức bộ QRS (a) và tín hiệu lấy trung bình
tín hiệu theo thời gian (b)
Hình 11 Trích kết quả của thuật toán phát hiện phức bộ QRS trên
phần mềm Matlab, đối với của bản ghi 100 III TRIỂNKHAIPHẦNTHIẾTBỊ
A Phân tích chức năng và lựa chọn linh kiện cho thiết bị
Chức năng chính của thiết bị được nghiên cứu và thiết kế trong bài báo này là thực hiện thuật toán phát hiện phức bộ QRS, chạy với bộ CSDL MIT-BIT Ngoài ra, thiết bị còn có thêm các kênh analog và kênh số để kết nối với module tính toán tốc độ cao, với mục đích mở rộng để cho các bài toán nhận dạng tín hiệu điện tim sau này và từ đó tạo cơ sở để xây dựng thiết bị đo và nhận dạng tín hiệu điện tim dùng đo cá nhân, mang theo người thuận tiện Thiết bị này được thiết kế với một số yêu cầu và chức năng chính như sau:
Hiển thị các thông số đo được, vẽ lại đồ thị tín hiệu điện tim trên màn hình thiết bị
Lưu trữ dữ liệu vào bộ nhớ thiết bị
Có khả năng kết nối trao đổi với máy tính
Thiết bị cầm tay, gọn nhẹ, sử dụng pin sạc
Có cổng giao tiếp mở rộng kết nối với khối thu thập ECG và khối tính toán chuyên dụng như DSP, FPGA
Trang 4Sơ đồ tổng thể các khối chức năng cơ bản của thiết bị được
trình bày trên hình 12
Hình 12 Sơ đồ khối của thiết bị Trong sơ đồ thiết bị chức năng cụ thể từng khối là:
Vi xử lý trung tâm: Do yêu cầu về tốc độ tính toán nên
thiết bị lựa chọn vi xử lý trung tâm sử dụng công nghệ
ARM là STM32F103, tốc độ 72MHz, có thư viện hỗ
trợ hầu hết các khối chức năng quan trọng như ADC,
giao tiếp UART, LCD
Hình 13 Hình ảnh bên ngoài của IC STM32F103
Màn hình: Để hiển thị giao diện điều khiển của thiết bị
cũng như có khả năng đưa thông tin về tín hiệu điện
tim đo được tới người quan sát thì phần giao diện sẽ sử
dụng màn hình Graphic LCD để có khả năng tái tạo
trực quan hơn hình ảnh của tín hiệu điện tim Màn hình
lựa chọn là GLCD 160X160, có độ phân giải là
160 160, hoạt động theo chuẩn song song
Hình 14 Hình ảnh của màn hình GLCD
Lưu trữ: Thiết bị có khả năng lưu trữ dữ liệu vào trong
thẻ nhớ SD/MMC Card Thông tin này sẽ dễ dàng
được đồng bộ với cơ sở dữ liệu trên máy tính nếu thiết
bị được bổ sung chức năng giao tiếp với máy tính
Bàn phím cảm ứng: Lựa chọn màn cảm ứng để được
tận dụng không gian trên bề mặt của LCD mà không tăng kích thước của thiết bị
Hình 15 Hình ảnh của màn phím cảm ứng điện trở
Giao tiếp với máy tính: Thiết bị có khả năng kết nối
với máy tính thông qua chuẩn RS232
Cổng giao tiếp mở rộng: thiết bị còn có thêm các kênh
analog để kết nối với các khối thu thập tính hiệu điện tim và kênh số để kết nối với khối tính toán tốc độ cao
sử dụng công nghệ FPGA/DSP
B Lưu đồ thuận toán trên vi xử lý trung tâm
Hình 16 Lưu đồ thuật toán của chương trình trên vi xử lý ARM
Trang 5Chương trình phần mềm nhúng xuống IC ARM, có lưu đồ
thuật toán được trình bày trong Hình 16, trong đó các hàm lọc
số cũng như các hàm phát hiện phức bộ QRS dựa theo thuật
toán của Hamilton trong tài liệu số [1] và [3] Thiết bị sử dụng
IC STM32F103 với tốc 72MHz, lõi xử lý Cortex-M3, nên dòng
IC này có tốc độ tính toán nhanh hơn rất nhiều so với các dòng
vi xử lý thông thường như PIC, AVR Qua tính toán và thử
nghiệm thì thời gian cần cho 1 chu trình trên nhỏ hơn 100 µs,
nếu tốc độ lấy mẫu khoảng 200 sps, tương ứng với 5 ms trên 1
mẫu, như vậy thời gian cần cho 1 chu trình kể trên là rất nhỏ, vì
vậy ta còn dư nhiều thời gian để sử dụng có các thuật toán tiếp
theo như: trích chọn đặc tính, nhận dạng tín hiệu ECG… Ngoài
ra hiện hay trên thị trường đã ra mắt dòng ARM Cortex-M4,
với nhân xử lý sử dụng công nghệ DSP, tốc độ 168 MHz, tốc
độ rất nhanh, hoàn toàn có thể đảm bảo tốc độ để thực hiện
những thuật toán phức tạp, khối lượng tính toán lớn
IV KẾTQUẢTRIỂNKHAI
A Phần cứng
Các thiết kế trên đây đã được thử nghiệm hoàn chỉnh trên
các phần mềm mô phỏng, các sơ đồ nguyên lý và thiết kế mạch
cứng sử dụng công nghệ ARM có tên là STM32F103, hình ảnh
của phần cứng thể hiện trong Hình 17, phần cứng đã được chạy
thử nghiệm với chương trình có lưu đồ thuật toán trong Hình
16, kết quả chạy với bộ CSDL MIT-BIH được trình bày trong
bảng 1
Hình 17 Mạch kit thử nghiệm với IC STM32F103
Thiết bị nhỏ gọn, được đóng trong vỏ có kích thước nhỏ
gọn có kích thước 10,5cm x 10,5cm x 2cm
Hình 18 Hình ảnh của thiết bị, (a) Mạch in đã lắp các linh kiện chính,
(b) Mạch in sau khi được đóng gói trong hộp nhựa có kích thước
10,5cm x 10,5cm x 2cm.
B Kết quả phần mềm
Thiết bị đã được thử nghiệm trên record 100, 101, 102, 103,
104, 105 trên bộ CSDL MIT-BIH, kết quả được trình bày trong bảng 1, và trích 1 phần kết quả chạy với record 105, trong
khoảng thời gian 4 (Hình 19)
(a)
(b)
(c)
(d)
(e) Hình 19 Hình ảnh sóng ECG qua các bước tính toán, (a) Tín hiệu gốc (bản ghi 105), (b) Kết quả sau lọc và đạo hàm (c), Kết qua sau khi lấy trị tuyệt đối, (d) Kết quả sau khi lấy trung bình tín hiệu, (e) Kết quả
phát hiện đỉnh R
Trang 6Bảng 1: Kết quả thử nghiệm thiết bị trên CSDL MIT-BIH
Record Tổng số
nhịp phát hiện được Số nhịp không Số nhịp phát hiện sai Sai số (%)
Kết quả trong bảng 1 cho thấy sai số rất nhỏ, riêng đối với
bản ghi 105 có sai số lớn là do tín hiệu thu thập trong bản ghi
này bị trôi đường cơ sở quá lớn, có thể do sự tiếp xúc giữa điện
cực với người là không tốt trong quá trình lấy mẫu
V KẾTLUẬNVÀHƯỚNGPHÁTTRIỂN
Bài báo đã trình bày về một thiết kế mạch đo sử dụng IC
ARM Áp dụng thuận toán phát hiện QRS [1], [3] Qua kết quả
thử nghiệm với một vài tín hiệu điện tim trong bộ CSDL của
MIT-BIT Arrhythmia Database cho thấy kết quả tương đương
Dự kiến có thể bổ sung các chức năng khác cho thiết bị như:
thêm phần thu thập tín hiệu ECG, triển khai thêm thuận toán
nhận dạng tín hiệu điện tim, ngoài ra phần cứng có thể thêm
chức năng kết nối không dây với máy tính theo chuẩn Wifi
hoặc Bluetooth, kết nối mạng theo chuẩn Ethernet,
TÀILIỆUTHAMKHẢO
[1] P.S Hamilton and W.J Tompkins, “Quantitative investigation of QRS
detection rules using the MIT/BIH arrhythmia database,” IEEE Trans
Biomed Eng., vol BME-33, pp 1157-1165, 1986
[2] Thakor, N V., Webster, J G., and Tompkins, W J 1983 “Optimal QRS
detector Medical and Biological Engineering”, 343–50
[3] P.S Hamilton and E.P Limited, “Open Source ECG Analysis Software
Documentation” (http://www.eplimited.com/), 2002
[4] Trần Đỗ Trinh (2003), “Hướng dẫn đọc điện tim”, Nhà xuất bản Y học
[5] Friesen G M., Jannett T.C., Jadallah M.A., Yates S.L., Quint S.R.,
Nagle H.T (1990), “A comparison of the noise sensitivity of nine QRS
detection algorithms”, IEEE Transactions on Biomedical Engineering,
vol 37, no 1, pp.85-98
[6] Goldberger A.L, Amaral L.A., Glass L., Hausdorff J.M., Ivanov P.C., Mark R.G., Mietus J.E., Moody G.B., Peng C.K., Stanley H.E (2000),
“PhysioBank, PhysioToolkit, and PhysioNet: components of a new
research resource for complex physiologic signals”, American Heart
Association
[7] Luong Duong Trong, Nguyen Duc Thuan, Trinh Quang Duc (2014),
“Removal of baseline noise from Electrocardiography (ECG) signal
based on time domain approach“, International Journal of Biomedical
Science and Engineering, Published online, pp 11-16
[8] http://www.physionet.org/physiobank/database/mitdb/