Thực thi hàm trong GUI

Một phần của tài liệu ỨNG DỤNG PHÉP BIẾN đổi WAVELET TRONG xử lý NHIỄU tín HIỆU điện TIM (Trang 68 - 73)

Thực thi hàm trong GUI là cách thiết lập các cơng việc cho các nút thơng qua các câu lệnh của các hàm CallBack được thiết kế sẵn trong Mfile. Cấu trúc một hàm Callback như sau: Function Tag_Callback (hObject, eventdata, handles)

Trong đĩ: Tag là các giá trị của thuộc tính tag đã thiết lập trong Inspector, hObject là hàm truy cập nội bộ của mỗi function riêng lẻ, eventdata là hàm xác định thuộc tính của function và handles là hàm truy cập liên kết giữa các function dùng để truy xuất qua các điều khiển khác. Ngồi ra, người ta thường dùng các hàm Get để gọi thuộc tính đối tượng và hàm Set để đặt giá trị thuộc tính cho đối tượng. Để tạo liên kết giữa các hàm Callback với nhau, GUI cĩ hỗ trợ thêm một biến chung gọi là biến hệ thống, bất cứ hàm Callback nào cũng cĩ thể sử dụng nĩ. Biến hệ thống cĩ cấu trúc: Handles.unit_input. Để thực thi hàm Callback cần vào màn hình giao diện GUI vừa thiết kế, nhấp vào hộp thoại muốn thực thi hàm, nhấp phải chuột, chọn ViewCallbackvà chọn Callback. Hàm Callback sẽ tự động được gọi và con trỏ chuột sẽ tìm đến vị trí của nĩ trong Mfile.

a. Nút Load Signal

Cơng việc của nút “Load Signal” là khi nhấn vào nút này thì sẽ đưa một tín hiệu từ bên ngồi vào và vẽ tín hiệu này lên trên đồ thị thứ nhất.

Giải thích:

Câu lệnh 1: set(handles.nhan1, ‘visible’, ‘off’): dùng để đặt thuộc tính của nhan1 ở trạng thái on (hiển thị).

Câu lệnh 2: set(handles.axes1, ‘visible’, ‘off’): dùng để đặt thuộc tính của axes1 ở trạng thái on (hiển thị).

Câu lệnh 3: ELEVATE = []

[fname path] = uigetfile(‘*.mat’); fname = strcat(path,fname); load(fname);

 Câu lệnh 3 dùng để tải một tín hiệu từ bên ngồi vào cĩ định dạng .mat. Câu lệnh 4: handles.unit_input=k;

guidata(hObject, handles);

 Câu lệnh 4 dùng để lưu k dưới dạng biến hệ thống dùng chung cho tất cả các hàm callback, như vậy giá trị của biến hệ thống handles.unit_input là k.

Câu lệnh 5: plot(handles.axes1,k): vẽ tín hiệu vừa tải được vào trong đồ thị cĩ thuộc tính tag là axes1.

b. Nút Add to Signal

Cơng việc của nút “Add to Signal” là khi nhấn vào nút này thì tín hiệu sạch sẽ được cộng nhiễu Gauss trắng vào và vẽ tín hiệu này lên trên đồ thị thứ hai.

Giải thích:

Câu lệnh 1: b=str2num(get(handles.snr, ‘string’)): dùng để chuyển dữ liệu trong hộp thoại cĩ thuộc tính tag là snr từ kiểu ký tự sang kiểu số để máy tính hiểu và tính tốn.

Câu lệnh 2: set(handles.nhan2, ‘visible’, ‘off’) và set(handles.axes2, ‘visible’, ‘off’): để đặt thuộc tính của nhan2 và axes2 ở trạng thái on (hiển thị).

Câu lệnh 3: plot(handles.axes2,s): vẽ tín hiệu s vào đồ thị cĩ thuộc tính tag là axes2. Câu lệnh 4: handles.unit_input1=s;

guidata(hObject, handles);

 Câu lệnh 4 dùng để lưu s dưới dạng biến hệ thống cĩ tên là handles.unit_input1

c. Wavelet Function

Hình 4.17.Hàm Callback cho hộp thoại Wavelet Function

Giải thích:

Câu lệnh 1: get (handles.Wname, ‘value’)==1: dùng để lấy thuộc tính (Value) của hộp thoại cĩ Tag là “Wname”. Thuộc tính Value được chọn tương ứng với các hàng của nĩ. Ví dụ: Nếu chọn Wavelet Haar, thì Haar ở dịng thứ nhất, do đĩ thuộc tính Value của nĩ bằng 1 tương ứng với dịng thứ nhất và tương tự cho các dịng cịn lại.

Guidata(hObject, handles);

 Câu lệnh 2 dùng để lưu Wname vào biến hệ thống chung cho các hàm callback cĩ tên là handles.uit_input3.

d. Decomposition Level

Hình 4.18. Hàm Callback cho hộp thoại Decomposition Level

Giải thích: tương tự như đoạn code trong hình 4.17, nhưng ở đây lấy thuộc tính Value của hộp thoại cĩ Tag là N. Sau đĩ, lưu N vào biến hệ thống chung cho các hàm Callback cĩ tên là handles.unit_input2.

e. Threshold (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.19.Hàm Callback cho hộp thoại Threshold

f. Nút Denoise

Hình 4.20.Hàm Callback cho nút Denoise

Giải thích:

Câu lệnh 1: set(handles.nhan3, ‘visible’, ‘on’); set(handles.axes3, ‘visible’, ‘on’);

 Đặt thuộc tính visible cho hộp thoại cĩ Tag là nhan3 và axes3 ở trạng thái on (hiển thị).

Câu lệnh 2: set(handles.snro, ‘string’,snr): dùng để chuyển dữ liệu kiểu số thành dữ liệu kiểu chuỗi và hiển thị tại ơ cĩ thuộc tính tag là snro.

g. Nút RESET

Hình 4.21.Hàm Callback cho nút RESET

Giải thích: đưa thuộc tính String đối với tất cả các hộp thoại cĩ Tag là snr, snro, mseo và prdo về trạng thái rỗng “ ” ban đầu. Mặc khác, đưa thuộc tính Value đối với các hộp thoại cĩ Tag là Wname và N về trạng thái 1 mặc định ban đầu là wavelet Haar và mức phân tách N =1.

h. Nút EXIT

Hình 4.22.Hàm Callback cho nút EXIT

Giải thích: dùng để thốt khỏi giao diện xử lý nhiễu tín hiệu điện tim

Một phần của tài liệu ỨNG DỤNG PHÉP BIẾN đổi WAVELET TRONG xử lý NHIỄU tín HIỆU điện TIM (Trang 68 - 73)