Thiết kế mô hình và triển khai chi tiết thuật toán lọc nhiễu

Một phần của tài liệu (Luận án tiến sĩ) Phát triển kỹ thuật thu nhận tín hiệu tim đồ trở kháng ngực ICG ứng dụng trong phép đo thông số cung lượng tim (Trang 114 - 119)

Thiết kế mô hình lọc nhiễu

Sơ đồ thực hiện mô hình lọc nhiễu đã đề xuất được mô tả như trong Hình 4.1. Trong mô hình này, tín hiệu ECG được thu đồng thời với tín hiệu ICG (ban đầu là TEB) thông qua chính các điện cực đo ICG. Một mạch phần cứng sẽ có nhiệm vụ tách thành phần tín hiệu ECG từ tổ hợp tín hiệu thu được từ các điện cực, sau đó được khuếch đại lên mức biên độ có ích. Tín hiệu ECG thu được giúp phân đoạn tín hiệu theo các chu kì nhịp tim, hỗ trợ thực hiện bộ lọc trung bình toàn bộ.

101

Hình 4.1 Sơ đồ thực hiện thuật toán theo mô hình lọc nhiễu thở đề xuất

Như vậy, thuật toán lọc nhiễu thở do tác giả đề xuất bao gồm hai pha xử lý chính đó là: (a) lọc sơ bộ nhiễu thở dựa trên phép biến đổi wavelet, (b) lọc nhiễu thở còn lại bằng phương pháp trung bình toàn bộ.

Phép biến đổi wavelet

Trên thực tế khi triển khai, thuật toán được sử dụng phổ biến nhất trong biến đổi wavelet rời rạc là thuật toán biến đổi wavelet nhanh Mallat. Bản chất của phép biến đổi này trong xử lý tín hiệu là sử dụng bộ mã hóa băng con hai kênh kết hợp với các bộ lọc gương cầu phương (QMF).

Tín hiệu được phân giải thành các băng tần nhỏ hơn bằng cách tích chập với đáp ứng xung của bộ lọc thông thấp và thông cao (Lo_D và Hi_D). Sau đó số mẫu được giảm đi hai lần bằng cách chỉ lấy các phần tử có số thứ tự chẵn, sau đó quá trình phân giải được lặp lại cho đến khi đủ số mức cần thiết hoặc số lượng dữ liệu còn lại là 1. Bằng cách này, tín hiệu có thể phân giải thành các băng tần khác nhau được đại diện bằng các bộ hệ số xấp xỉ và hệ số chi tiết ở mỗi mức phân giải. Các hệ số xấp xỉ đại diện cho thành phần tần số thấp của tín hiệu trong khi các hệ số chi tiết đại diện cho thành phần tần số cao của tín hiệu.

Vị trí các đỉnh R

Chu kỳ 1

Lọc wavelet

Tách dãy dTEB/dt đã lọc thành các chu kỳ

Chuẩn hóa chiều dài

Đạo hàm và lọc thông thấp

Chuẩn hóa

chiều dài Chuẩn hóa chiều dài Chuẩn hóa chiều dài

Tính trung bình cộng của n chu kỳ Phát hiện đỉnh R

(Pan-Tompkins)

Một chu kì tín hiệu ICG

(đại diện cho n chu kỳ)

Dãy tín hiệu TEB Dãy tín hiệu ECG

Chu kỳ 2 Chu kỳ 3 Chu kỳ ... Chu kỳ n

Chuẩn hóa chiều dài

102

Quá trình khôi phục tín hiệu từ các bộ hệ số là quá trình ngược lại với quá trình phân giải. Các hệ số xấp xỉ và hệ số chi tiết trước khi kết hợp với nhau cần đi qua bộ tăng mẫu (nội suy) để có độ dài phù hợp bằng cách thêm giá trị 0 vào phần tử có chỉ số lẻ, sau đó đi qua bộ lọc thông thấp và thông cao cho quá trình khôi phục (Lo_R và Hi_R). Quá trình được thực hiện cho đến khi hết các mức phân giải. Nếu đã xác định được các băng tần chứa nhiễu, tín hiệu, quá trình loại bỏ nhiễu được thực hiện bằng cách cho tất cả giá trị của hệ số trong băng tần đó bằng 0 sau đó thực hiện quá trình khôi phục tín hiệu.

Ngoài ra chúng ta có thể thiết lập ngưỡng phát hiện nhiễu và tín hiệu cho từng băng tần để thực hiện loại bỏ nhiễu trong trường hợp cần thiết. Nếu tất cả các hệ số được giữ nguyên, tín hiệu sau khôi phục phải giống hoàn toàn tín hiệu trước khi phân giải, quá trình này được gọi là khôi phục hoàn hảo.

Quá trình thực hiện thuật toán Mallat theo chiều phân giải và khôi phục tín hiệu được đơn giản hóa như trong Hình 4.2. Trong đó, Lo_D và Hi_D là bộ lọc thông thấp và thông cao dành cho phân giải tín hiệu, Lo_R và Hi_R là bộ lọc thông thấp và thông cao dành cho khôi phục tín hiệu, cAj và cDj là hệ số xấp xỉ và hệ số chi tiết tại mức phân giải j, S là dữ liệu đầu vào.

Tất cả các phép biến đổi wavelet rời rạc thuận DWT và ngược IDWT đều được thực hiện dựa trên chuỗi (𝑤𝑛)𝑛∈𝑍 từ wavelet filter bank sau đó biến đổi theo sơ đồ trong Hình 4.3 để thu được các đáp ứng xung của bộ lọc thông thấp và thông cao tương ứng cho quá trình phân giải và khôi phục tín hiệu. Các bộ lọc này có chung các đặc điểm là bộ lọc có đáp ứng xung với chiều dài hữu hạn (FIR), chiều dài 2N, tổng các hệ số bằng 1, hệ số chuẩn hóa (norm) bằng 1

√2. Trong Hình 4.3:

Hình 4.2 Sơ đồ thuật toán Mallat phân giải và khôi phục tín hiệu

F G cA1 cA2 cA3 cD1 cD2 cD3 ... cD3 cA3 cD2 cA2 cA1 cD1 Chiều phân giải tín hiệu

Chiều khôi phục tín hiệu

Lo_D Hi_D ↓ 2 ↓ 2 Lo_D Hi_D ↓ 2 ↓ 2 Lo_D Hi_D ↓ 2 ↓ 2 Lo_R Hi_R ↑ 2 ↑ 2 ↑ 2 ↑ 2 Lo_R Hi_R ↑ 2 ↑ 2 Lo_R Hi_R ... S S

103

Hình 4.3 Tạo đáp ứng xung của bộ lọc dùng trong biến đổi wavelet

− Wavelet bank: là các mảng hữu hạn các phần tử được cấu thành từ các hàm wavelet trực giao, được gọi là các bộ lọc tỉ lệ (chưa chuẩn hóa).

− norm: là hàm tính giá trị hệ số chuẩn hóa, trả về giá trị độ lớn của một vector hay còn gọi là độ dài Euclidean có công thức:

‖𝑣‖ = √∑ |𝑣𝑘|2 𝑁

𝑘=1

(4.1)

− qmf: là hàm lọc gương cầu phương (quadrature mirror filter), có chức năng đảo dấu các phần tử lẻ và nghịch đảo vị trí các phần tử trong mảng với công thức:

𝐻𝑖_𝑅(𝑘) = (−1)𝑘𝐿𝑜_𝑅(2𝑁 + 1 − 𝑘), với k = 1, 2, …, 2N. (4.2) − wrev: là hàm ngịch đảo vị trí các phần tử trong mảng hệ số bộ lọc.

Dựa vào đặc trưng về dải phổ của tín hiệu và nhiễu mà tác giả đã xác định, chúng ta có thể phân chia những bộ hệ số đại diện cho tín hiệu có ích, những bộ hệ số nào đại diện cho nhiễu. Bằng cách loại bỏ đi những hệ số đại diện cho nhiễu, tín hiệu có thể được khôi phục mà không còn sự có mặt của thành phần nhiễu. Tuy nhiên, vẫn sẽ có sự xuất hiện của các băng tần chứa cả nhiễu và tín hiệu do hiện tượng chồng phổ. Đối với tín hiệu ICG, tác giả tiến hành quá trình đánh giá thử nghiệm bộ lọc dựa trên biến đổi wavelet trên bộ dữ liệu trên bằng công cụ Wavelet Signal Designer của phần mềm Matlab với các họ hàm wavelet khác nhau, các mức phân giải và khôi phục tín hiệu ở các bậc hệ số khác nhau để đạt được bộ tham số lọc tốt nhất. Sau quá trình thử nghiệm, kết quả cho thấy mức phân giải phù hợp cho xử lý tín hiệu ICG là 10 mức, họ hàm wavelet phù hợp nhất cho giảm nhiễu là Daubechies 8 (db8) [82], nhiễu thở xuất hiện hiện chủ yếu ở các mức phân giải 8, 9, 10. Bằng cách loại bỏ các hệ số chi tiết ở các mức phân giải 8, 9, 10, các hệ số xấp xỉ được giữ nguyên, nhiễu thở có thể được loại bỏ sơ bộ mà ít làm méo dạng đến tín hiệu sau khi thực hiện quá trình khôi phục tín hiệu. Lo_R = W / norm(W) Hi_R = qmf(Lo_R) Lo_D = wrev(Lo_R) Hi_D = wrev(Hi_R) Wavelet bank

104

Phép trung bình toàn bộ

Thuật toán trung bình toàn bộ tính toán một mẫu tín hiệu ICG đại diện cho một chuỗi các chu kỳ tín hiệu ICG tại đầu vào. Việc thực hiện thuật toán được tiến hành dựa trên sự phân đoạn tín hiệu ICG (ban đầu là TEB) thành các chu kì tim. Các chu kì tim này được đánh dấu bằng cách đồng bộ trên trục tọa độ thời gian với đỉnh R của tín hiệu ECG tham chiếu. Do đó việc thu nhận tín hiệu ECG đồng thời với việc thu nhận tín hiệu ICG là cần thiết. Phần thuật toán trung bình toàn bộ sẽ bao gồm hai pha chính là phát hiện đỉnh R trong tín hiệu ECG và trung bình toàn bộ.

a) Thuật toán phát hiện đỉnh R trong tín hiệu ECG

Thuật toán được tác giả lựa chọn sử dụng để phát hiện đỉnh R trong tín hiệu ECG là thuật toán Pan-Tompkins. Thuật toán Pan-Tompkins là một thuật toán điển hình trong phát hiện đỉnh R của tín hiệu ECG, được sử dụng một cách phổ biến và cho kết quả phát hiện đỉnh R với độ chính xác cao. Độ chính xác của thuật toán đã được khẳng định qua nhiều công bố trên thế giới. Do thuật toán Pan-Tompkins đã được giới thiệu tại Mục 1.2.2.3 của Chương 1, trong phần này, tác giả không trình bày lại nguyên lý hoạt động. Thuật toán sẽ được thực hiện với độ dài tập tín hiệu ECG cố định là 3.000 mẫu tương ứng với 15 giây (tần số lấy mẫu fs = 200 mẫu/giây).

b) Thuật toán trung bình toàn bộ

Bằng cách ánh xạ tương ứng các vị trí của các đỉnh R trong tín hiệu ECG tham chiếu theo thuật toán được mô tả ở phần trước, các tập dữ liệu con này được phân đoạn thành các chu kỳ dữ liệu của tim. Tập dữ liệu đại diện của thành phần dao động tim được xây dựng bằng cách lấy trung bình tất cả các chu kỳ của dữ liệu. Tuy nhiên, độ dài của tất cả các chu kỳ dữ liệu không giống nhau do biến đổi nhịp tim. Để khắc phục tình trạng này, độ dài tối thiểu của chu kỳ dữ liệu được xác định trước khi thực hiện tính trung bình tổng thể. Thuật toán tính trung bình tất cả các chu kỳ dữ liệu để tạo ra một mẫu đại diện duy nhất của thành phần dao động tim. Việc tính từng phần tử của mẫu trung bình được thực hiện theo công thức (3.1).

Thuật toán được thực hiện với độ dài tập tín hiệu ICG cố định là 3.000 mẫu, tương ứng với 15 giây (tần số lấy mẫu fs = 200 mẫu/giây). Với nhịp tim của thiết bị tạo tín hiệu ICG giả lập là 68 nhịp/phút, tổng cộng sẽ có 17 chu kì tín hiệu được trung bình. Đầu ra của bộ lọc sẽ là chu kì trung bình đại diện của 17 chu kì trên. Việc thực hiện thuật toán với các độ dài khác là hoàn toàn có thể. Với các mức độ dài ngắn khác nhau, thuật toán sẽ có những ưu điểm và nhược điểm tương ứng.

105

Một phần của tài liệu (Luận án tiến sĩ) Phát triển kỹ thuật thu nhận tín hiệu tim đồ trở kháng ngực ICG ứng dụng trong phép đo thông số cung lượng tim (Trang 114 - 119)