Professional Documents
Culture Documents
Thesis Mindwheel PDF
Thesis Mindwheel PDF
LỜI CẢM ƠN
Từ lúc lần đầu tiên bƣớc chân vào giảng đƣờng đại học tính đến nay, chúng tôi đã trải qua gần
5 năm học tập, nghiên cứu tại trƣờng Đại học Bách Khoa TP.HCM. Trong suốt quãng thời gian
đó, chúng tôi đã nhận đƣợc rất nhiều sự giúp đỡ của các thầy cô, bạn bè trong và ngoài khoa
Khoa học Ứng dụng. Trong đó, chúng tôi đặc biệt gửi lời cám ơn đến
1. Thạc sĩ Lê Cao Đăng – PTN Vật lý Kỹ thuật Y sinh
2. Thạc sĩ Ngô Bá Trí – PTN Innovation Lab - Canada
3. Thạc sĩ Mai Hữu Xuân – PTN Công nghệ LASER
4. Kỹ sƣ Phạm Quốc Hƣng – Bộ môn Cơ Kỹ Thuật
5. Kỹ sƣ Ngô Hữu Tú – PTN Vật lý Kỹ thuật Y sinh
6. Cử nhân Trần Trung Tín – PTN Vật lý Kỹ thuật Y sinh
đã tận tâm chỉ dạy cho chúng tôi những kiến thức chuyên ngành hữu ích; nhiệt tình giải đáp
những thắc mắc mà chúng tôi gặp phải trong suốt quá trình làm Luận văn. Xin chân thành cảm ơn
ThS. Nguyễn Ngọc Hải một ngƣời anh, một ngƣời thầy – đã luôn song hành, hỗ trợ chúng tôi hết
mình trong mảng xử lý số liệu và tạo điều kiện tốt nhất để chúng tôi có thể hoàn thành đề tài này
một cách hoàn thiện nhất. Bên cạnh đó, cảm ơn gia đình đã luôn là nguồn động viên tinh thần to
lớn cho chúng tôi trong suốt quãng thời gian trên giảng đƣờng Đại học.
Một lần nữa,chúng tôi xin chân thành cảm ơn!
TÓM TẮT
Đối với những bệnh nhân bị bại liệt hoặc mất khả năng vận động thì việc có thể tự chủ đƣợc
sự di chuyển của bản thân mang ý nghĩa rất quan trọng. Điều này không chỉ giảm bớt gánh nặng
cho gia đình mà còn mang lại cho họ sự tự tin, phấn khởi trong cuộc sống. Bên cạnh đó, công
nghệ điều khiển thông minh trên Thế Giới đã có những bƣớc phát triển vƣợt bậc, mang lại cho
con ngƣời cuộc sống tiện lợi và thoải mái hơn. Đứng trƣớc nhu cầu bức thiết đó, nhóm sinh viên
chúng tôi đề xuất một thuật toán điều khiển thông minh cho xe lăn bằng cách nhận dạng các loại
chuyển động của mắt thông qua việc thu sóng điện não và phân tích tín hiệu theo thời gian thực.
Luận Văn này sẽ giải quyết ba vấn đề chính của bài toán điều khiển: Một là phân tích tín hiệu
điện não EEG để tìm ra các giá trị ngƣỡng biên độ cho các hành vi chuyển động của mắt bằng
MatLab; Hai là lập trình nhận dạng, điều khiển mô hình xe lăn theo thời gian thực bằng ngôn ngữ
lập trình đồ họa LabVIEW; Ba là thiết kế mô hình xe lăn và các mạch điện hỗ trợ điều khiển.
Cuối cùng, thuật toán mang lại hiệu quả điều khiển khá cao tuy nhiên sản phẩm vẫn còn một số
hạn chế về mặt cơ khí, tín hiệu điều khiển rẽ trái, rẽ phải còn bị lẫn lộn. Ngoài việc ứng dụng
trong điều khiển xe lăn, thuật toán này còn có thể áp dụng cho việc điều khiển các thiết bị khác
trên nhiều lĩnh vực.
ABSTRACT
It's very important for disabled people to control their movement by themselves. This not only
reduce burden for their family but also bring to them more self-confidence and more happiness in
their life. Beside that, intelligent control technology has made great development in the world. It
gives us a more comfortable and more convenient life. Facing with urgent needs, we propose an
intelligent control algorithm for wheelchair by identifying the type of eye's movement through
collecting and analysing brain's wave signal in real time. This thesis will solve three key issues of
controlled problems: First, we analyze the EEG signals to find out the amplitude threshold value
for the eye's movement behavior by MatLab; Second, the identification and control program will
be built in real-time by graphical programming language - LabVIEW; Finally, we design
wheelchair model and driver circuit. As a result, the algorithm provides a product with high-
efficiency control but there are still some limitations limitations in mechanical design. Right turn
signal and left turn signal still get confused. In addition, this algorithm can be applied for other
devices in many fields.
MỤC LỤC
Hình 3.20 Đồ thị phân bố các giá trị hệ số tƣơng quan giữa các cặp kênh theo các hành vi B, D,
L, R ................................................................................................................................................ 38
Hình 3.21 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi B 39
Hình 3.22 Phổ công suất của các kênh tín hiệu thuộc nhóm hành vi B ........................................ 39
Hình 3.23 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi D 40
Hình 3.24 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi L 40
Hình 3.25 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi R 40
Hình 3.26 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi X 41
Hình 3.27 Quy trình thống kê cục bộ các giá trị Rk của các kênh trong từng mẫu tín hiệu .......... 42
Hình 3.28 Thành phần phần trăm của tỉ số công suất R thể hiện bằng biểu đồ hình cột .............. 43
Hình 3.29 Phân bố của các tập mẫu Rαk thuộc các hành vi ........................................................... 44
Hình 3.30 Minh họa chi tiết của miền giao thoa (chƣa qua thống kê) .......................................... 46
Hình 3.31 Sai số thống kê của mỗi tập mẫu Rαk (k = B, D, L, R, X) ............................................ 48
Hình 3.32 Quy trình thống kê toàn cục ......................................................................................... 49
Hình 3.33 Kết quả thống kê toàn cục của tập mẫu Rα của các hành vi B, L, R, D, X sau 1 vòng
lặp .................................................................................................................................................. 50
Hình 3.34 Kết quả thống kê toàn cục của tập mẫu Rα của các hành vi B, L, R, D, X sau 28 vòng
lặp (kết thúc) .................................................................................................................................. 51
Hình 3.35 Kết quả thống kê toàn cục của tập mẫu Rδ của các hành vi B, L, R, D, X sau 20 vòng
lặp .................................................................................................................................................. 52
Hình 3.36 Kết quả thống kê toàn cục của cr(F7, AF4) .................................................................. 54
Hình 3.37 Kết quả thống kê toàn cục của cr(F7, F8)..................................................................... 54
Hình 3.38 Kết quả thống kê toàn cục của cr(AF3, AF4) ............................................................... 55
Hình 3.39 Kết quả thống kê toàn cục của cr(AF3, F8) .................................................................. 56
Hình 3.40 Kết quả thống kê toàn cục của cr(AF3, F7) .................................................................. 56
Hình 3.41 Kết quả thống kê toàn cục của tập mẫu ρB và ρD ......................................................... 57
Hình 3.42 Quy trình nhận dạng hành vi qua phân tích tín hiệu EEG ............................................ 58
Hình 3.43 Sơ đồ quy trình nhận dạng hành vi thay thế cho sơ đồ hình 3.42................................. 60
Hình 3.44 Trƣờng hợp False của hình 3.43 ................................................................................... 61
Hình 3.45 Trƣờng hợp True của hình 3.43 .................................................................................... 62
Hình 3.46 Tiêu chuẩn 22 TCN 302 – 06 về kích thƣớc xe lăn chuẩn ........................................... 64
Hình 3.47 Sự phân bố các lực khi xe lăn chuyển động lên dốc ..................................................... 65
Hình 3.48 Bản vẽ thiết kế mô hình xe lăn ..................................................................................... 66
Hình 3.49 Sơ đồ khối hệ thống ...................................................................................................... 67
Hình 3.50 Mô hình mạch nguồn Step down .................................................................................. 69
Hình 3.51 Mạch hạ áp ở trạng thái kín .......................................................................................... 69
Hình 3.52 Mạch hạ áp ở trạng thái hở ........................................................................................... 69
Hình 3.53 Sơ đồ nguyên lý mạch tăng áp ...................................................................................... 70
Hình 3.54 Mạch tăng áp ở trạng thái hở ........................................................................................ 70
EEG Electroencephalography
EOG Electrooculography
EMG Electromyography
EPOC Environment Policy Committee
LabVIEW Laboratory Virtual Instrumentation Engineering Workbench
MatLab Matrix Laboratory
DC Direct Current
PWM Pulse Width Modulator - Bộ điều chế độ rộng xung
BJT Bipolar Junction Transistor - Transistor lƣỡng cực
MOSFET Metal Oxide Semiconductor Field Effect Transistor- Transistor hiệu ứng trƣờng
AC Alternative Current - Dòng điện xoay chiều
MEMS Micro-Electro-Mechanical Systems - Hệ vi cơ điện tử
NTC Negative Temperature Co-efficient - Hệ số nhiệt trở âm
PTC Positive Temperature Co-efficient - Hệ số nhiệt trở dƣơng
Ngày nay, nền khoa học kỹ thuật hiện đại của Thế Giới đã có những bƣớc phát triển vƣợt bậc, các
nhà khoa học đã chứng minh đƣợc rằng khả năng của con ngƣời là vô hạn. Những cảnh phim con
ngƣời dùng suy nghĩ để điều khiển đồ vật không còn là chuyện viễn tƣởng nữa. Bằng những phát
minh về công nghệ thực tế ảo, con ngƣời có thể hóa thân vào nhân vật mình yêu thích và điều khiển
đồ vật chỉ bằng suy nghĩ. Trên nền tảng đó, hàng ngàn phát minh ứng dụng suy nghĩ của bộ não vào
điều khiển đã ra đời trên khắp các lĩnh vực nhƣ điều khiển cánh tay robot bằng suy nghĩ dành cho
ngƣời khuyết tật [1], xe hơi điều khiển bằng sóng não [2], nanorobot điều khiển bằng ý nghĩ ứng
dụng trong y học [3] …
Bên cạnh sự phát triển của thế giới thì với Việt Nam, “điều khiển bằng suy nghĩ” vẫn là một khái
niệm khá mới mẻ. Ngƣời dân Việt Nam vẫn chƣa thể tiếp cận đƣợc nhiều với những sản phẩm điều
khiển thông minh đó một phần vì giá thành khá đắt. Vì thế, cần lắm các nghiên cứu, sáng chế để tạo
ra những sản phẩm thông minh với giá thành rẻ, chất lƣợng, có thể thƣơng mại hóa nhằm phổ biến
rộng rãi với mọi ngƣời, đặc biệt là ứng dụng vào lĩnh vực y tế - một lĩnh vực rất cần những sản phẩm
điều khiển thông minh để điều trị bệnh từ xa hoặc giúp đỡ những bệnh nhân bị khuyết tật phục hồi
các chức năng bị mất. Nắm bắt xu hƣớng đó, nhóm chúng tôi đã đề xuất ra một thuật toán thông minh
dùng để điều khiển xe lăn, dành cho các bệnh nhân khuyết tật hoặc bại liệt, mất khả năng đi lại.
Nhóm sử dụng thiết bị điện não di động EPOC của hãng Emotiv để thực hiện thu thập tín hiệu
điện não. Đây là một thiết bị nhỏ gọn, cung cấp cho chúng ta 14 kênh tín hiệu cùng các gói công cụ
phát triển phần mềm và các ứng dụng thú vị, bổ ích. Không những thế, thiết bị này có giá thành
không quá đắt, đƣợc thiết kế nhỏ gọn, phù hợp cho các ứng dụng mang tính phổ biến nhƣ học tập,
nghiên cứu, chơi game, điều khiển thiết bị dành cho ngƣời khuyết tật các chi…
Mục đích chính của đề tài này là nhận dạng các loại chuyển động của mắt thông qua việc thu sóng
điện não và phân tích tín hiệu theo thời gian thực để đƣa ra mệnh lệnh điều khiển xe lăn di chuyển.
Các chuyển động của mắt trong quá trình đo điện não sẽ làm ảnh hƣởng đáng kể lên tín hiệu EEG mà
ta thu đƣợc. Không chỉ vậy, các ảnh hƣởng này còn có những đặc trƣng nhất định cho từng loại
chuyển động. Cụ thể, có 4 loại chuyển động mắt làm ảnh hƣởng rõ rệt nhất lên tín hiệu điện não đó là
chớp mắt chậm, chớp mắt nhanh 2 lần, liếc trái và liếc phải. Bốn kênh điện não bị ảnh hƣởng nhiều
nhất của các chuyển động trên đó là AF3, F7, F8 và AF4 [4]. Vì vậy, bằng việc nhận dạng chuyển
động mắt trên 4 kênh tín hiệu này, ta có thể sử dụng chúng trong điều khiển thiết bị ngoại vi cụ thể là
xe lăn.
Quá trình phân tích, xử lý tín hiệu và phát lệnh điều khiển đƣợc giao cho thiết bị NI myRIO 1900
của hãng National Instrument. Đây là một thiết bị tích hợp vi xử lý nhỏ gọn, xử lý nhanh và dễ dàng
lập trình trên môi trƣờng LabVIEW – một môi trƣờng lập trình ngôn ngữ cao bằng đồ họa thông
minh.
Nội dung nghiên cứu của đề tài này đề xuất một giải thuật mới trong điều khiển thông minh giúp
cho các bệnh nhân mất khả năng đi lại có thể tự chủ trong di chuyển, quay về hòa nhập với cuộc sống
hằng ngày. Điều này có ý nghĩa rất to lớn với họ, chẳng những làm giảm bớt gánh nặng cho gia đình
mà còn giúp họ tự tin hơn trong cuộc sống. Phƣơng châm của nhóm đó là tạo ra sản phẩm giá thành
rẻ, chất lƣợng, có thể nhân rộng hoặc thƣơng mại hóa để ngày càng nhiều ngƣời đƣợc tiếp cận với
công nghệ mới, giúp cuộc sống của mọi ngƣời đặc biệt là ngƣời khuyết tật và bại liệt đƣợc tiện lợi và
thoải mái hơn. Mở rộng hơn, thuật toán điều khiển này có thể đƣợc ứng dụng trên bất kỳ một thiết bị
ngoại vi nào khác, mang đến một hƣớng phát triển đầy triển vọng trong công nghệ điều khiển thông
minh tƣơng lai.
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
Tín hiệu EOG có nhiều tính chất đặc trƣng riêng, khác biệt với các tín hiệu EEG đồ thông thƣờng.
Việc nghiên cứu và phân tích các tính chất của các tín hiệu EOG là nền tảng quan trọng để áp dụng
và kiểm tra các thuật toán nhận dạng chuyển động mắt trong tín hiệu EEG.
Tín hiệu EMG là tín hiệu tạo ra bởi sự điều khiển hoạt động của cơ bắp. Nó chứa thông tin về cấu
trúc cơ của từng bộ phận khác nhau trên cơ thể. Tín hiệu EMG ảnh hƣởng lên tín hiệu EEG khi bệnh
nhân có những cử động về cơ trong lúc đo điện não, đặc biệt là những cơ trên khuôn mặt. Bởi vì các
cơ này rất gần với các điện cực EEG ở mắt, vì thế chúng gây những ảnh hƣởng đáng kể lên tín hiệu
điện não ta thu đƣợc.
2.2 TỔNG QUAN VỀ THIẾT BỊ EPOC EMOTIV
Emotiv EPOC đƣợc thiết kế và phát triển bởi công ty Emotiv Systems Inc vào đầu năm 2008 do 2
doanh nhân gốc Việt: Đỗ Hoài Nam (Nam Do) và Lê Thái Thị Tần (Tan Le) đồng sáng lập.
Thiết bị Emotiv EPOC là sản phẩm cảm biến gọn nhẹ, gồm 14 điện cực thu tín hiệu và 2 điện cực
tham chiếu với tần số lấy mẫu là 128 Hz. Thiết bị phân tích và xử lý tín hiệu não bộ thu đƣợc từ vỏ
não của ngƣời sử dụng giúp ngƣời dùng giao tiếp và tƣơng tác với máy tính thông qua suy nghĩ.
Đi kèm với thiết bị là các gói phần mềm tiện ích đƣợc nhà sản xuất cung cấp cho ngƣời sử dụng
để phát triển, nâng cao các ứng dụng trong nghiên cứu, học thuật…bao gồm gói các công cụ tích hợp
và gói các công cụ phát triển phần mềm. Gói các công cụ tích hợp gồm có 3 công cụ chính:
• Control Panel: đây là chƣơng trình quản lý tổng thể các dữ liệu và tín hiệu của thiết bị. Chƣơng
trình này hiển thị các thông tin của thiết bị bao gồm thông tin về ngƣời dùng và dung lƣợng pin,
thông tin về độ nhạy của cảm biến, biểu đồ biểu cảm của khuôn mặt, biểu đồ về cảm xúc và chƣơng
trình luyện tập sử dụng thiết bị.
• EmoComposer: chƣơng trình này cho phép ta mô phỏng lại toàn bộ các tín hiệu của thiết bị thật
gửi vào máy tính (không bao gồm dữ liệu các kênh tín hiệu). Nó giúp mô phỏng toàn bộ hoạt các
hoạt động chức năng của thiết bị EPOC dùng để kiểm tra tính chính xác của chƣơng trình Control
Panel và dùng để thay thế thiết bị thật khi ngƣời dùng không có thiết bị thật.
• EmoKey: chƣơng trình này là chƣơng trình lập bản đồ các thao tác đã đƣợc ngƣời sử dụng lập
trình từ trƣớc, từ đó dịch thành các tổ hợp phím hay các lệnh để có thể sử dụng trong các chƣơng
trình khác.
Gói các công cụ phát triển phần mềm: Gói này bao gồm chƣơng trình TestBench và thƣ viện
SDK.
- Chƣơng trình TestBench: đây là chƣơng trình thu thập các dữ liệu thô thu nhận đƣợc từ các điện
cực. Chƣơng trình này bao gồm các công cụ phân tích lọc nhiễu và kiểm tra tín hiệu. Dữ liệu thu thập
đƣợc từ TestBench đƣợc lƣu dƣới chuẩn file EDF và CSV.
- Bộ thƣ viện SDK: bao gồm các tập tin thƣ viện liên kết động sử dụng trong lập trình giao tiếp
API (Application Programming Interface): edk.h, EmoStateDLL.h, edkErrorCode.h, edk.dll and
edk_utils.dll. Đây là một thƣ viện liên kết động, thƣ viện chứa các hàm API tƣơng tác với thiết bị
EPOC bao gồm các hàm kết nối, các hàm trả về kết quả các trạng thái…Việc xây dựng các hàm API
dƣới dạng thƣ viện liên kết động (.dll) một phần có tác dụng bảo mật, một phần giúp cho thiết bị
EPOC có thể kết nối đƣợc trên nhiều môi trƣờng khác nhau.
Các dữ liệu EEG thu đƣợc từ điện cực sẽ đƣợc truyền qua máy tính bằng kết nối không dây thông
qua một USB đặc biệt đƣợc nhà sản xuất cung cấp kèm theo thiết bị. Vị trí các điện cực của EPOC
đƣợc thể hiện ở hình bên dƣới.
Phần mềm còn cung cấp các thƣ viện lập trình thu thập dữ liệu từ các phần cứng của các hãng
khác nhƣ Tektronix, Texas Instruments,…, thƣ viện xử lý tín hiệu, lƣu trữ dữ liệu. Hỗ trợ các chuẩn
giao tiếp thông dụng và công nghiệp nhƣ USB, GPIB, PXI, chuẩn giao tiếp mạng TCP/IP…
Trong đề tài luận văn của nhóm, chúng tôi đã sử dụng LabVIEW để thu thập, tiền xử lý dữ liệu
với phần cứng FPGA của hãng National Instruments là bộ NI MyRiO 1900. Tín hiệu khi đo về sẽ
đƣợc nhận dạng để có thể quyết định tín hiệu điều khiển xe lăn.
Amplitude
Fourier
Transform
Time Frequency
1
X ( )e d
it
x(t ) (2.4)
2
X ( ) x(t )eit (2.5)
1
x(t )
N
X ( )eit (2.6)
Ƣu, nhƣợc điểm của phƣơng pháp biến đổi Fourier: Phƣơng pháp này cung cấp cho ta các
thông tin về tần số của tín hiệu một cách nhanh và chính xác nhất – những thông tin mà ta không thể
có đƣợc nếu xử lý tín hiệu ở miền thời gian. Tuy nhiên, khi biến đổi sang miền tần số thì thông tin
thời gian lại bị mất nên nhìn vào một biến đổi Fourier, ta không thể nào biết đƣợc thời gian diễn ra sự
kiện đó. Nếu tín hiệu có các thuộc tính không thay đổi nhiều theo thời gian thì nhƣợc điểm kể trên
không đáng kể. Nhƣng nếu tín hiệu chứa các thông số “động” nhƣ: trôi, nghiêng, biến đổi đột nghột,
sự khởi đầu và kết thúc của các sự kiện… thì Fourier không thể phát hiện đƣợc. [7]
2.4.2 Phép biến đổi Wavelet
Amplitude
Wavelet
Scale
Transform
Time Time
Tƣơng tự nhƣ sự phân tích tín hiệu thành sóng sin với các tần số khác nhau của phƣơng pháp
Fourier, phân tích Wavelet cũng chia tách tín hiệu thành các phiên bản dịch vị và tỉ lệ của tín hiệu
Wavelet cơ bản. Nhìn vào hình sóng sin và Wavelet, ta có thể thấy rằng các tín hiệu với sự thay đổi
nhanh có thể phân tích tốt hơn với một Wavelet bất ổn định hơn là với một sóng sin trơn. Các đặc
tính cục bộ sẽ đƣợc miêu tả tốt hơn với các Wavelet vốn có tính cục bộ.
2.4.2.1 Biến đổi Wavelet liên tục
Về mặt toán học, quá trình phân tích Fourier đƣợc thực hiện bởi biến đổi Fourier theo công thức
(2.1). Nghĩa là tổng ở mọi thời điểm của tín hiệu f (t ) nhân với một hàm mũ phức. Kết quả của phép
biến đổi Fourier là các hệ số Fourier F(ω). Các hệ số Fourier mà khi nhân với một sóng sin tần số ω
sẽ thành các thành phần sin tạo ra tín hiệu nguyên thủy. Về mặt hình học, tiến trình nhƣ trên hình sau:
Hình 2.10 Phân tích tín hiệu bằng phép biến đổi Fourier
Tƣơng tự biến đổi Wavelet đƣợc xác định là tổng trên toàn khoảng thời gian của tín hiệu nhân
theo tỉ lệ và dịch mức của hàm wavelet ψ.
C (scale, position)
f (t ) (scale, position) dt (2.7)
Kết quả của CWT là rất nhiều các hệ số Wavelet C(scale, position), đó là hàm của tỉ lệ và vị trí.
Nhân mỗi hệ số với Wavelet theo tỉ lệ và dịch mức tƣơng ứng lại tạo thành tín hiệu nguyên thủy. [7]
Hình 2.11 Phân tích tín hiệu bằng phép biến đổi Wavelet
2.4.2.2 Định tỉ lệ (Scaling)
Thông số tỉ lệ trong phân tích Wavelet tỉ lệ nghịch với độ lớn tần số của tín hiệu. Tỉ lệ lớn (tần số
thấp) tƣơng ứng với thông tin tổng quát về tín hiệu, tỉ lệ nhỏ (tần số cao) tƣơng ứng với thông tin của
những tín hiệu có tần số cao (thành phần thƣờng ẩn trong tín hiệu, khó nhận biết). Hình sau thể hiện
sóng sin và sóng Wavelet với những tỉ lệ a khác nhau.
2.4.2.3 Dịch
Dịch một Wavelet nghĩa là làm trễ bản thân nó, Về mặt toán học, sự trễ của một hàm f(t) đi k đƣợc
đặc trƣng f(t-k).
Hình 2.16 Đồ thị thể hiện độ mạnh và hướng tương quan của 2 biến
Hệ số tƣơng quan có thể nhận giá trị từ -1 đến +1
Hình 3.2 Tín hiệu được truy xuất từ 4 kênh AF3, F7, F8 và AF4
+ Qua khảo sát thực nghiệm, nhóm tiến hành thu thập 5 loại tín hiệu điện não có chuyển động của
mắt là: chớp mắt chậm 1 lần kí hiệu là B (Blink), chớp mắt nhanh 2 lần kí hiệu là D (Double Blink),
liếc mắt trái kí hiệu là L (Left-glance), liếc mắt phải kí hiệu là R (Right-glance) và tín hiệu thƣ giãn
kí hiệu là X (relaX).
+ Kí hiệu cho đối tƣợng lấy tín hiệu là 01. Do một số hạn chế nhƣ đối tƣợng phải cho ra đƣợc tín
hiệu rõ ràng, và phải thƣờng xuyên tiến hành lấy mẫu tín hiệu nên trong đề tài này chỉ tiến hành thí
nghiệm trên 1 đối tƣợng. Vì vậy kí hiệu cho đối tƣợng cố định ở con số 01.
Do đó ta sẽ có tên cho mẫu tín hiệu có dạng: 01Ab-dd_mm_yyyy
Trong đó A là ký hiệu quy ƣớc của loại tín hiệu thu thập (B, D, L, R, X)
B là số thứ tự của mẫu (1, 2, 3,….)
dd_mm_yyyy : lần lƣợt là ngày, tháng, năm thu thập dữ liệu
+ Vì đối tƣợng của đề tài này là các bệnh nhân bị bại liệt nên trong quá trình thu thập dữ liệu yêu
cầu đối tƣợng thí nghiệm phải trong trạng thái bất động và thƣ giãn để cho ra đƣợc tín hiệu tốt nhất.
Tổng cộng có 661 mẫu tín hiệu, trong đó có 200 mẫu tín hiệu 30s và 461 mẫu tín hiệu 5s.
Đạt
3.1.2.3 Phân tích các đặc trƣng của tín hiệu EEG bằng phép biến đổi Wavelet và phép
biến đổi Fourier
Phân tích phổ Fourier
Ta sử dụng phép biến đổi Fourier để phân tích phổ nhằm tìm ra các đặc trƣng của tín hiệu EEG
trên miền tần số nhằm tiến tới xây dựng thuật toán nhận dạng chuyển động mắt.
Hình 3.7 Giao diện thu nhận tín hiệu EEG của EPOC
Hình 3.8 Phổ công suất của tín hiệu điện não EEG
Đại lƣợng P (μV2 ) đƣợc gọi là công suất phổ tín hiệu, đƣợc tính theo công thức sau:
1
P( ) X ( ) X ( ) (3.1)
N
Trong đó, P( ) là công suất phổ tín hiệu
Bảng 3.2 Kết quả giá trị tổng mật độ phổ công suất (P) của 5 mẫu thuộc hành vi B
Giá trị tổng mật độ phổ công
Mẫu Phổ công suất tín hiệu
suất của các vùng sóng
Pδ = 103281.8697 μV2
Pθ = 5016.9 μV2
01B2
(10/11/2016) Pα = 3132.7206 μV2
Pβ = 2098.0879 μV2
Pδ = 63762.3339 μV2
Pθ = 4071.3587 μV2
01B6
(14/10/2016) Pα = 2966.7818 μV2
Pβ = 3103.945 μV2
Pδ = 36625.5217 μV2
Pθ = 2907.2084 μV2
01B8
(10/11/2016) Pα = 3399.1656 μV2
Pβ = 1893.141 μV2
Pδ = 42300.0783 μV2
Pθ = 3682.8776 μV2
01B16
(10/11/2016) Pα = 3245.8561 μV2
Pβ = 2061.5081 μV2
Pδ = 25403.0872 μV2
Pθ = 2331.4552 μV2
01B21
(10/11/2016) Pα = 1584.232 μV2
Pβ = 1853.6197 μV2
Nhận xét:
Ta thấy, các phổ đều có công suất tín hiệu tập trung ở vùng [0.5 Hz; 4 Hz] (thuộc vùng tần số của
sóng Delta). Tuy nhiên, giá trị tổng mật độ phổ công suất tín hiệu P trên trục tung thay đổi thất
thƣờng giữa các file, kể cả là trong cùng một hành vi (theo bảng trên, các mẫu đều là số liệu thu đƣợc
từ thí nghiệm hành vi chớp mắt chậm - B). Ta không thể rút ra đƣợc quy luật biến thiên của đại lƣợng
tổng công suất tín hiệu Pi của các vùng hoặc đƣa ra nhận định so sánh các giá trị giữa các kênh, các
mẫu với nhau. Điều này gây khó khăn cho việc thống kê, phân tích số liệu về sau vì tính phân tán của
các kết quả tổng công suất tín hiệu của từng vùng. Chính vì vậy, ta cần một thông số thể hiện đƣợc
đặc trƣng phân bố công suất tín hiệu của từng vùng trên phổ mà lại khắc phục đƣợc tính phân tác của
đại lƣợng tổng công suất. Vì vậy, nhóm đề xuất sử dụng hệ số tỷ lệ công suất R đƣợc tính bằng công
thức:
Pi
Ri
Pi
(3.2)
Bảng 3.3 Kết quả giá trị tỷ lệ tổng mật độ phổ công suất (R) của 5 mẫu thuộc hành vi B
Giá trị tỷ lệ tổng mật độ phổ
Mẫu Phổ công suất tín hiệu
công suất của các vùng sóng
Rδ = 0.90974
Rθ = 0.04419
01B2
(10/11/2016) Rα = 0.027594
Rβ = 0.018481
Rδ = 0.86277
Rθ = 0.05509
01B6
(14/10/2016) Rα = 0.040143
Rβ = 0.04199
Rδ = 0.81708
Rθ = 0.064857
01B8
(10/11/2016) Rα = 0.075832
Rβ = 0.042234
Rδ = 0.82472
Rθ = 0.071805
01B16
(10/11/2016) Rα = 0.063284
Rβ = 0.040193
Rδ = 0.81492
Rθ = 0.074792
01B21
(10/11/2016) Rα = 0.050822
Rβ = 0.059464
Tiếp theo, ta chọn ngẫu nhiên 1 mẫu dữ liệu cho mỗi loại tín hiệu và không làm thay đổi tính tổng
quát, các giá trị tổng công suất P và tỷ lệ công suất R đƣợc trình bày nhƣ bảng 3.4.
Bảng 3.4 Kết quả giá trị công suất phổ P và tỷ lệ công suất R của tín hiệu thuộc các hành vi
khác nhau
Mẫu Phổ công suất tín hiệu kênh AF3 P R
Từ bảng 3.2 và 3.3, ta có đồ thị thể hiện sự phân bố và độ sai lệch của các giá trị tổng công suất P
và tỷ lệ công suất R của 5 mẫu dữ liệu B (hình 3.9). Tƣơng tự cho bảng 3.4, ta có đồ thị hình 3.10
(a) (b)
Hình 3.9 Đồ thị thể hiện sự phân bố và độ sai lệch của 5 mẫu cùng hành vi B theo giá trị
tổng công suất P (a) và tỷ lệ công suất R (b)
(a) (b)
Hình 3.10 Đồ thị thể hiện sự phân bố và độ sai lệch của 5 mẫu khác hành vi theo giá trị
tổng công suất P (a) và tỷ lệ công suất R (b)
Nhận xét:
Bảng 3.5 So sánh đặc điểm giữa giá trị công suất P và tỷ lệ công suất R
Đặc điểm P R
Thông qua hệ số tỷ lệ tổng mật độ công suất phổ R của các vùng, đặc biệt là vùng delta, ta nhận
thấy các giá trị R là tƣơng đƣơng nhau và chênh lệch nhau không nhiều cho cùng một hành vi (B).
Điều này sẽ khiến cho công việc thống kê của ta đƣợc dễ dàng hơn. Bên cạnh đó, bảng so sánh 3.5 đã
cho ta thấy sự ƣu việt của hệ số tỷ lệ công suất R trong việc nhận dạng. Vì vậy, ta sẽ áp dụng hệ số tỷ
lệ công suất R thay cho hệ số tổng công suất P từ giờ đến khi kết thúc thuật toán.
Phép biến đổi Wavelet
Tần số lấy mẫu của thiết bị EPOC là 128Hz. Với hệ thống cây phân tách Wavelet (Wavelet
decomposition tree), các thành phần tín hiệu D sẽ có tần số trung tâm lần lƣợt là:
fD4 = 128/24 = 8 Hz
Các thành phần Ai sẽ bằng tín hiệu ban đầu trƣớc đó trừ đi các thành phần Di tƣơng ứng.
Ai = Ai-1 - Di (3.3)
Vì tín hiệu EEG của chuyển động mắt có tần số nằm trong vùng sóng delta [0.5;4] Hz nên để lọc
đƣợc các tín hiệu trong vùng tần số này, ta dùng phép biến đổi Wavelet ở bậc 7. Những tín hiệu từ
bậc 8 trở về sau là tín hiệu trôi, cần phải loại bỏ.
3.2 NHẬN DẠNG CHUYỂN ĐỘNG MẮT THEO ĐẶC ĐIỂM CỦA
TÍN HIỆU EEG
3.2.1 Đặc điểm phổ công suất tín hiệu EEG ứng với từng loại hành vi
Theo yêu cầu của đề tài đặt ra, ta có 5 loại tín hiệu EEG tƣơng ứng với 5 loại hành vi chuyển động
của mắt cần phải phân biệt và nhận dạng đƣợc trình bày ở bảng 3.6
Bảng 3.6 Các loại tín hiệu điện não cần thu thập
Chuyển động
Đứng yên Đi tới Đi lùi Rẽ trái Rẽ phải
của xe lăn
3.2.1.1 Phân tích đặc điểm phổ công suất của từng loại tín hiệu
Chọn ngẫu nhiên một mẫu tín hiệu X có phổ công suất tín hiệu EEG của 4 kênh đƣợc trình bày ở
hình 3.11
Hình 3.11 Phổ công suất tín hiệu EEG của hành vi X (thư giãn)
Từ hình 3.11, ta nhận thấy tính tƣơng tự về hình dạng phổ giữa 4 kênh. Đặc biệt, công suất tín
hiệu của sóng Alpha ở vùng tần số [8 Hz; 13 Hz] thể hiện rõ nét. Nhƣ ta đã biết ở phần lý thuyết, đối
với hành vi thƣ giãn, mở mắt, tâm trí không bị tác động bởi suy nghĩ thì sóng Alpha sẽ vƣợt trội.
Tiếp theo, ta chọn ngẫu nhiên một mẫu tín hiệu của mỗi loại tín hiệu B, D, L, R. Do đặc tính
tƣơng tự giữa các kênh nên không làm mất tính tổng quát khi ta chọn kênh AF3 để thể hiện phổ công
suất của từng loại tín hiệu đƣợc trình bày ở hình 3.12
Hình 3.12 Dạng phổ công suất tín hiệu của 4 loại hành vi B, D, L, R
Nhận xét: Phổ công suất tín hiệu ở vùng sóng Alpha xuất hiện không đáng kể đối với những hành
vi B, D, L, R. Cụ thể, hệ số Rα có khuynh hƣớng giảm mạnh. Bên cạnh đó, hệ số Rδ của phổ công
suất tín hiệu sóng Delta [0.5 Hz ; 4Hz] có khuynh hƣớng tăng cao khi hành vi của mắt mang tính
chuyển động. Vì vậy, Rα(X) > Rα(B,D,L,R) và Rδ(X) < Rδ(B,D,L,R) sẽ là dấu hiệu dùng để phân biệt tín hiệu
EEG của hành vi X so với những hành vi còn lại.
3.2.1.2 Phân tích đặc điểm phổ công suất của hành vi B và D
Qua quan sát thực nghiệm phổ công suất tín hiệu của hai hành vi B và D, ta thấy chúng có một số
điểm khác biệt đáng kể có thể dùng để phân biệt hai hành vi này với nhau.
Ta lƣu ý thêm rằng, phổ công suất vùng tần số [0.5 Hz ; 4 Hz] của sóng Delta có ảnh hƣởng bởi
tốc độ thực hiện hành vi của mắt. Để minh họa, ta xét ngẫu nhiên phổ công suất của một mẫu tín hiệu
từ hai nhóm B và D (hình 3.13)
Hình 3.13 Phổ công suất của tín hiệu nhóm B và tín hiệu nhóm D
Xét trên cùng khoảng phân bố tần số [0.5 Hz ; 4 Hz], ta nhận thấy rằng phổ công suất của tín hiệu
nhóm B mang tính đồng nhất khối, trong khi phổ của tín hiệu nhóm D thì thƣờng có khuynh hƣớng
phân chia làm hai phần riêng biệt. Để đơn giản hóa, ta quy hai dạng đặc trƣng phổ công suất của cả
nhóm B và D về các dạng tam giác nhƣ sau:
(a) B (b) D
Hình 3.14 Dạng tam giác thể hiện dạng phổ công suất của tín hiệu nhóm B và D
Với điều kiện cần: B là hành vi chớp mắt chậm và D là hành vi chớp mắt nhanh hai lần, ta sẽ đề
xuất và biện luận một thông số để phân biệt hành vi B và hành vi D.
Ta lần lƣợt có đƣợc các diện tích đƣợc xác định bởi các hình đƣợc xác định bởi các đoạn thẳng
tƣợng trƣng cho các khoảng tần số:
Bảng 3.7 Cách tính các diện tích hình học của hình 3.14
Đoạn thẳng
thể hiện Dạng theo hành vi B Dạng theo hành vi D
khoảng tần số
( )
AB
BD
AC
( )
CD
Chia vùng sóng Delta thành hai phần với các biên lần lƣợt đi qua B và C, vậy ta có 2 trƣờng hợp:
i - Biên đi qua điểm B:
S1 AB. AE BF
Ta có: (3.4)
S2 BF .BC CD.CG
Với B là hành vi chớp mắt chậm, nên công suất tín hiệu có khuynh hƣớng phân bố lệch về miền
tần số thấp của vùng Delta. Xét trên hình 3.14(a), công suất tín hiệu của sóng Delta phân bố hầu hết
trên đoạn thẳng BC. Vì vậy, tỷ số công suất của vùng tần số đƣợc biểu thị bằng đoạn thẳng CD thực
tế có giá trị rất nhỏ, xem nhƣ không đáng kể. Khi đó, ta xem diện tích tam giác CDG gần nhƣ bằng 0.
( ) . / ( ) ( )
(3.5)
Với D là hành vi chớp mắt nhanh hai lần, công suất tín hiệu lại có khuynh hƣớng phân bố lệch về
miền tần số cao của vùng Delta. Xét trên hình 3.14(b), công suất tín hiệu của sóng Delta tập trung
nhiều ở đoạn BD. Khi đó, tam giác BDF’ có diện tích lớn hơn diện tích của tam giác ABE’
(3.6)
Nhƣ vậy, để phân biệt đƣợc hành vi B và hành vi D thì ta phải tìm điều kiện để: (3.7)
( )
( ) (3.8)
Do độ dài các đoạn thẳng AB, BC đều là các số thực dƣơng nên ta lấy căn bậc hai cả hai vế bất
phƣơng trình (3.8)
√ √ (3.9)
Qua khảo sát thực tế, đối với hành vi B là mắt chớp chậm một lần, phổ có khuynh hƣớng tập trung
hầu hết công suất tín hiệu cả vùng sóng Delta trên đoạn AC với điểm C tại giá trị 3 Hz. Đối với hành
vi D, công suất tín hiệu cả vùng sóng Delta thƣờng đƣợc phân chia ở điểm B tại giá trị 1.5 Hz. Ngoài
ra ta còn có A, D lần lƣợt tại các giá trị 0.5 Hz và 4 Hz.
(3.11)
(3.12)
(3.13)
Đặt và (3.15)
, - , -
(3.17)
, - , -
Với: P[a ; b] là công suất tín hiệu đƣợc giới hạn trong đoạn tần số [a ; b] (Hz)
Lấy khảo sát ngẫu nhiên một vài mẫu hành vi B và D từ thực tế (chọn kênh AF3):
Bảng 3.8 Giá trị thông số ρ của tín hiệu thuộc hành vi B và D
Hành vi B (chớp mắt chậm một lần) Hành vi D (chớp mắt nhanh hai lần)
Mẫu ρB Mẫu ρD
01B2 (10/11/2016) 781.8832 01D2 (08/11/2016) 4.9605
01B4 (10/11/2016) 1265.1756 01D4 (08/11/2016) 10.3090
01B8 (10/11/2016) 134.9885 01D8 (08/11/2016) 7.1855
01B16 (10/11/2016) 4037.5062 01D16 (08/11/2016) 4.6391
01B26 (10/11/2016) 57.1325 01D26 (08/11/2016) 8.9776
01B25 (08/11/2016) 45.2902 01D16 (08/11/2016) 4.6391
01B3 (24/10/2016) 204.8746 01D18 (24/10/2016) 8.5262
01B2 (09/10/2016) 160.4623 01D3 (09/10/2016) 2.6910
01B9 (05/10/2016) 131.8107 01D2 (05/10/2016) 4.5922
01B3 (20/09/2016) 330.5750 01D1 (20/09/2016) 6.4390
Hình 3.15 Minh họa giá trị ρ của tín hiệu thuộc hành vi B(a) và D(b)
Nhận xét: ở hầu hết các mẫu khảo sát. Vì vậy ta dùng dấu hiệu này để phân biệt phổ
công suất tín hiệu vùng Delta của hành vi B và hành vi D.
3.2.2 Hệ số tƣơng quan giữa các cặp kênh tín hiệu
Theo quan sát dạng tín hiệu thực tế, ta thấy hầu hết các mẫu tín hiệu thuộc các hành vi B, D, L và
R đều có dạng nhƣ hình sau:
Ta quy định, dạng tín hiệu có cực đại chính với đỉnh nhọn hƣớng lên là dạng ▲ , còn dạng tín
hiệu có cực tiểu chính đỉnh nhọn hƣớng xuống là dạng ▼.
Từ đó ta có bảng sau:
Bảng 3.9 Bảng qui định dạng tín hiệu của 4 hành vi B, D, L, R
Mẫu B D L R
Kênh
AF3 ▲ ▲ ▼ ▼
F7 ▲ ▲ ▲ ▼
F8 ▲ ▲ ▼ ▲
AF4 ▲ ▲ ▼ ▲
Ta có 4 kênh tín hiệu là AF3, F7, F8 và AF4. Lấy tổ hợp chập 2 của 4 kênh tín hiệu, ta đƣợc 6 cặp
tƣơng quan, đó là (AF3, F7), (AF3, F8), (AF3, AF4), (F7, F8), (F7, AF4) và (F8, AF4).
Từ lý thuyết hệ số tƣơng quan giữa hai mẫu số liệu, ta có bảng dự đoán khoảng phân bố giá trị hệ
số tƣơng quan giữa các cặp kênh theo lý thuyết với từng loại hành vi B, D, L, R (Bảng 3.10).
Bảng 3.10 Khoảng phân bố giá trị của hệ số tƣơng quan giữa kênh i và kênh j dự đoán theo lý
thuyết
Hành vi
B D L R
cri, j
( )
( )
( )
( )
( )
( )
Khảo sát một vài mẫu từ dữ liệu đo từ thí nghiệm của các hành vi B, D, L, R; ta đƣợc bảng 3.11
Bảng 3.11 Giá trị hệ số tƣơng quan của các cặp kênh tín hiệu thuộc hành vi B, D, L, R
Biểu diễn tất cả các mẫu thu đƣợc từ thí nghiệm, ta cũng có đƣợc đồ thị biểu diễn giá trị hệ số
tƣơng quan của các cặp kênh (hình 3.20)
Hình 3.20 Đồ thị phân bố các giá trị hệ số tương quan giữa các cặp kênh theo các hành vi B, D, L, R
Nhận xét:
Hầu hết các giá trị hệ số tƣơng quan giữa các kênh theo các hành vi có phân bố giống với dự đoán
theo lý thuyết. Căn cứ vào tính chất phân bố của các giá trị của các cặp tƣơng quan mà ta sẽ nhận
dạng các hành vi. Tuy nhiên, thực tế vẫn còn tồn tại sai số phát sinh trong quá trình thí nghiệm lấy
mẫu số liệu và việc xác định ngƣỡng phân biệt giữa các hành vi sẽ nói rõ ở phần thống kê toàn cục.
3.3 PHƢƠNG PHÁP THỐNG KÊ VÀ PHÂN TÍCH SỐ LIỆU
3.3.1 Thống kê cục bộ
Khảo sát giá trị Rδ và Rα đƣợc xác định trên phổ công suất tín hiệu của một vài mẫu đƣợc chọn lựa
ngẫu nhiên từ nhóm hành vi B (hình 3.21 ):
(a) Rδ (b) Rα
Hình 3.21 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi B
Hình 3.22 Phổ công suất của các kênh tín hiệu thuộc nhóm hành vi B
Nhận xét: Đối với phổ công suất tín hiệu của hành vi B thì Rδ của kênh F8 thƣờng mang giá trị
thấp hơn hẳn so với 3 kênh còn lại.
Ta khảo sát Rδ và Rα của các mẫu đƣợc chọn ngẫu nhiên từ các nhóm hành vi D, L, R, và X
(a) Rδ (b) Rα
Hình 3.23 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi D
(a) Rδ (b) Rα
Hình 3.24 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi L
(a) Rδ (b) Rα
Hình 3.25 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi R
(a) Rδ (b) Rα
Hình 3.26 Sai lệch giữa các giá trị Rδ (a) và Rα (b) của các kênh tín hiệu thuộc nhóm hành vi X
Nhận xét: Hầu hết các mẫu của tất cả các nhóm đều có sai số giữa các giá trị khảo sát ở các kênh.
Thêm vào đó, trong 4 kênh khảo sát thƣờng xuất hiện 1 kênh có các giá trị sai lệch nhiều so với 3
kênh còn lại. Nguyên nhân gây ra sai lệch vẫn chƣa đƣợc xác định cụ thể. Để khắc phục, chúng tôi đề
xuất phƣơng pháp thống kê cục bộ, nhằm để loại bỏ các giá trị ở các kênh gây sai lệch nhiều trong
quá trình tổng hợp kết quả tính toán các thông số của từng mẫu khảo sát. Phƣơng pháp thống kê cục
bộ đƣợc diễn giải theo sơ đồ ở hình 3.27
Loại Loại
các giá các giá
trị Rk ở trị Rk ở
Tính giá trị trung bình Tính giá trị trung bình
kênh kênh
𝑅𝛿 và độ lệch chuẩn 𝜎𝑅𝛿 𝑅𝛼 và độ lệch chuẩn 𝜎𝑅𝛼
không không
phù phù
hợp hợp
Thỏa Thỏa
Tổng hợp các kênh đƣợc chọn Tổng hợp các kênh đƣợc chọn
lọc, tính các giá trị trung bình: lọc, tính các giá trị trung bình:
𝑅𝛿 𝑅𝜃 𝑅𝛼 𝑅𝛽 , 𝜌 𝑅𝛿 𝑅𝜃 𝑅𝛼 𝑅𝛽 , 𝜌
Hình 3.27 Quy trình thống kê cục bộ các giá trị Rk của các kênh trong từng mẫu tín hiệu
Qua thống kê toàn bộ mẫu khảo sát của tất cả các hành vi ta có bảng thống kê xác suất loại bỏ
kênh không phù hợp trong quá trình thống kê cục bộ.
Bảng 3.12 Bảng thống kê xác suất loại bỏ kênh
B D L R X
Bên cạnh đó, để đơn giản hóa các đồ thị và các chi tiết trên phổ công suất, ta đề xuất dạng biểu đồ
hình cột để hiển thị thành phần phần trăm của từng tỷ số công suất R thay thế cho biểu đồ mật độ phổ
công suất tín hiệu. Lấy ví dụ minh họa phổ công suất từ hình 3.22, ta đƣợc dạng biểu đồ hình cột ở
hình 3.28.
Hình 3.28 Thành phần phần trăm của tỉ số công suất R thể hiện bằng biểu đồ hình cột
Hình 3.29 Phân bố của các tập mẫu Rαk thuộc các hành vi
Quan sát tính phân bố của các tập mẫu Rαk trên miền giá trị (0, 1) nhƣ minh họa ở hình 3.29. Từ
đây, ta có các khái niệm sau:
i. Tập mẫu phân bố ở miền thượng (gọi tắt là tập miền thượng): là tập mẫu bao gồm các tập
con có cùng khuynh hƣớng phân bố ở phần trên của miền giá trị đang khảo sát và đƣợc ký hiệu là
{URi} ( ) , với n là số lƣợng tập con thuộc tập miền thƣợng.
ii. Tập mẫu phân bố ở miền hạ (gọi tắt là tập miền hạ): là tập mẫu bao gồm các tập con có cùng
khuynh hƣớng phân bố ở phần dƣới của miền giá trị đang khảo sát và đƣợc ký hiệu là {LRj}
( ) , với m là số lƣợng tập con thuộc tập miền hạ.
iii. Miền giao thoa: là miền giá trị phân bố ở khu vực giao nhau giữa tập miền thƣợng và tập
miền hạ. Miền giao thoa đƣợc xác định bởi 0 { } 2 31. Trong đó:
* { } là giá trị cận dƣới của tập miền thƣợng, đƣợc xác định bằng giá trị nhỏ nhất
trong số phần tử mang giá trị nhỏ nhất của các tập con thuộc tập miền thƣợng.
* 2 3 là giá trị cận trên của tập miền hạ, đƣợc xác định bằng giá trị lớn nhất trong
số phần tử mang giá trị lớn nhất của các tập con thuộc tập miền hạ.
Theo các khái niệm trên và từ hình 3.28, ta dễ dàng xác định đƣợc tập miền thƣợng là { } và
tập miền hạ là { }, miền giao thoa đƣợc xác định bởi { } và
2 { } { } { } { }3. Bên cạnh đó, để phân biệt giữa { }, và
{ } , ta cần thiết phải xác định một giá trị cụ thể làm biên giới giữa hai tập miền, ta
gọi là giá trị biên giao thoa μ, đƣợc xác định theo công thức (3.18).
∑ 4 5
(3.18)
Với: : giá trị nhỏ nhất của từng tập con thuộc tập miền thƣợng.
: giá trị lớn nhất của từng tập con thuộc tập miền hạ.
n: số lƣợng tập con thuộc tập miền thƣợng
m: số lƣợng tập con thuộc tập miền hạ
Minh họa ở hình 3.30
Hình 3.30 Minh họa chi tiết của miền giao thoa (chưa qua thống kê)
trong miền khảo sát tập mẫu Rα của tất cả các hành vi
Với: 1- { } , 2- { } , 3- { } , 4- { } , 5- { },
6- Cận trên của tập miền hạ , 7- Cận dưới của tập miền thượng,
8- Biên giao thoa , 9- Miền giao thoa
Theo nhận xét của phần 3.2.1.1 thì ta có hầu hết (j =B, L, R, D). Vì vậy, ta có:
Biên giao thoa chia toàn miền (0, 1) của Rα làm hai miền phân bố giá trị:
- Miền (0, ] là miền phân bố giá trị của hầu hết các phần tử của tập miền hạ.
- Miền [ , 1) là miền phân bố giá trị của hầu hết các phần tử của tập miền thƣợng.
Từ đây ta sẽ tính sai số thống kê của mỗi tập mẫu Rαk (k = B, D, L, R, X) theo công thức 3.19 và
3.20 nhƣ sau:
- Đối với các tập con i thuộc tập miền thƣợng:
* +
(3.19)
{ }
(3.20)
Áp dụng cho hình 3.30, ta tính đƣợc sai số thống kê của mỗi tập mẫu Rαk (k = B, D, L, R, X) theo
hình 3.31
Với mức ý nghĩa thống kê là 0.05, ta lấy mức sai số cho phép tối đa là 5%. Quan sát kết quả sai số
thống kê của từng tập mẫu Rαk (k = B, D, L, R, X) ở hình 3.31 cho thấy và vƣợt quá
mức cho phép. Để khắc phục vấn đề này, chúng tôi đề xuất phƣơng pháp thống kê toàn cục nhằm tìm
ra giá trị biên giao thoa thích hợp để phân biệt giữa và (j = B, D, L, R). Quá trình thống kê
toàn cục đƣợc diễn giải theo hình 3.32
Xác định: - Các tập con thuộc tập miền thƣợng: *𝑈𝑅𝑖 +
- Các tập con thuộc tập miền hạ: {𝐿𝑅𝑗 }
Không thỏa
𝑒𝑟𝑟𝑜𝑟 ≤
Hình 3.33 Kết quả thống kê toàn cục của tập mẫu Rα của các hành vi B, L, R, D, X sau 1 vòng lặp
Lƣu ý thêm rằng, khi các tập con trong bộ dữ liệu khảo sát mang tính phân cực càng rõ ràng thì số
vòng lặp thống kê càng ít; ngƣợc lại, đối với các tập con nói trên có tính càng xáo trộn thì bài toán
thống kê có số vòng lặp càng nhiều. Chính vì vậy, chúng tôi đề xuất hệ số tin cậy γ ( ≤ ≤ )
đƣợc xác định bằng tỷ số giữa tổng số lƣợng mẫu sau mỗi lần lặp thống kê trên tổng số lƣợng mẫu
ban đầu của tất cả các tập con theo công thức.
(3.21)
(∑ ) .∑ /
Với: l là số vòng lặp thống kê. Khi đó, 2l là số lƣợng mẫu bị loại bỏ sau vòng lặp thứ l
(∑ ) là tổng số lƣợng mẫu ban đầu (l = 0) của tất cả các tập con thuộc tập miền thƣợng
.∑ / là tổng số lƣợng mẫu ban đầu (l = 0) của tất cả các tập con thuộc tập miền hạ.
Bên cạnh đó, độ tin cậy γ còn đánh giá đƣợc chất lƣợng dữ liệu thu đƣợc sau mỗi thí nghiệm khảo
sát. γ mang giá trị càng lớn thì dữ liệu mẫu có chất lƣợng càng tốt; ngƣợc lại, γ mang giá trị càng nhỏ
thì chứng tỏ rằng số lƣợng tạp mẫu gây sai số hiện diện trong dữ liệu đo càng nhiều.
Hình 3.34 Kết quả thống kê toàn cục của tập mẫu Rα của các hành vi B, L, R, D, X sau 28 vòng lặp
(kết thúc)
Hình 3.35 Kết quả thống kê toàn cục của tập mẫu Rδ của các hành vi B, L, R, D, X sau 20 vòng lặp
Từ hình 3.35, ta có đƣợc . Khi đó, ta có:
- Phổ công suất của hành vi X khi có ≤
- Phổ công suất của các hành vi B, D, L, R khi có
Vậy: để nhận dạng tín hiệu EEG khi mắt có chuyển động thì ta căn cứ vào hai điều kiện:
(3.22)
{
3.3.2.2 Các tập mẫu giá trị hệ số tƣơng quan giữa các cặp kênh
Ta phân tích theo thứ tự ngƣợc: ( ) ( ), ( ), ( ),
( ), ( ).
Quan sát hình 3.20, ta rút ra đƣợc một vài nhận định:
i. Hệ số tƣơng quan ( ) của tất cả 4 hành vi có tính phân bố giống nhau. Khi đó, ta
không thể xác định đƣợc biên giao thoa dùng để phân biệt một trong bốn hành vi trên. Chính
vì vậy mà ta không áp dụng đƣợc phƣơng pháp thống kê toàn cục cho ( ) của cả 4
hành vi.
ii. Ta có ( ) và ( ) của hai nhóm hành vi B, D có tính phân bố ngƣợc với hai
nhóm L, R. Cụ thể: ( ) và ( ) của hai nhóm B, D là hai tập con của tập
miền thƣợng trên ( ); ngƣợc lại, ( ) và ( ) của hai nhóm L, R là hai tập
con của tập miền hạ trên ( ). Do đó, ta áp dụng thống kê toàn cục cho hai hệ số trên để
tìm ra giá trị ngƣỡng để phân biệt nhóm B, D với nhóm L, R.
iii. Tiếp theo, ta nhận thấy 3 cặp tƣơng quan: ( ), ( ), ( ) của hành
vi L và R có tính phân bố đối ngƣợc nhau. Đây là dấu hiệu dùng để phân biệt giữa L và R.
iv. Hệ số tƣơng quan của tất cả các cặp kênh của 2 hành vi B và D có tính phân bố gần giống
nhau. Do vậy, ta không thể phân biệt đƣợc giữa B và D theo hệ số tƣơng quan.
Áp dụng quy trình thống kê toàn cục cho nhận định (ii) và (iii) ta đƣợc các kết quả sau:
Tập mẫu ( ) và tập mẫu ( ) giữa nhóm B, D và nhóm L, R:
Hình 3.36 Kết quả thống kê toàn cục của cr(F7, AF4)
Hình 3.37 Kết quả thống kê toàn cục của cr(F7, F8)
( ) và ( )
Hình 3.38 Kết quả thống kê toàn cục của cr(AF3, AF4)
Hình 3.39 Kết quả thống kê toàn cục của cr(AF3, F8)
Hình 3.40 Kết quả thống kê toàn cục của cr(AF3, F7)
( )
{ ( )
( )
Để phân biệt tín hiệu của hành vi B với hành vi D ta phải xác định biên giao thoa trên miền khảo
sát tập mẫu ρB và ρD qua phƣơng pháp thống kê toàn cục. Kết quả đƣợc trình bày ở hình 3.41.
Hình 3.41 Kết quả thống kê toàn cục của tập mẫu ρB và ρD
Tín Khử nhiễu và khử trôi tín Phổ công suất tín hiệu
hiệu hiệu bằng công cụ Wavelet
EEG
X
T
F 𝑐𝑟(𝐹 𝐹 ) ≤ 𝜇𝑐𝑟(𝐹 𝐹 )
(*)
𝑐𝑟(𝐹 𝐴𝐹 ) ≤ 𝜇𝑐𝑟(𝐹 𝐴𝐹 )
F T
𝜌 ≥ µ𝜌
𝑐𝑟(𝐴𝐹 𝐹 ) 𝜇𝑐𝑟(𝐴𝐹
T 𝐹 )
F
𝑐𝑟(𝐴𝐹 𝐹 ) µ𝑐𝑟(𝐴𝐹 𝐹 ) (*)
D B
𝑐𝑟(𝐴𝐹 𝐴𝐹 ) µ𝑐𝑟(𝐴𝐹 𝐴𝐹 )
R
T
Hình 3.42 Quy trình nhận dạng hành vi qua phân tích tín hiệu EEG
µ ( )
( )
µ ( )
µ ( )
Bộ giá trị trên mang giá trị nhất định cho mỗi đối tƣợng khác nhau.
(*) Một số trƣờng hợp cá biệt không đƣợc trình bày trên sơ đồ hình 3.42 nhƣng thực tê chúng vẫn
xảy ra. Trong quá trình phân loại dấu hiệu theo hành vi, các trƣờng hợp cá biệt đó sẽ đƣợc xếp vào
các hành vi X nếu chúng xảy ra.
Các giá trị ngƣỡng trên không cố định, mà luôn thay đổi tùy theo từng ngƣời lấy mẫu, hệ thống đo
và phƣơng pháp xử lý số liệu...
3.3.3 Kiểm tra và cải thiện thuật toán phân tích số liệu
3.3.3.1 Sai số và các nguyên nhân gây ra sai số
Trong luận văn này, nhóm sử dụng hai loại ngôn ngữ lập trình: ngôn ngữ MatLab dùng để thiết lập
các thuật toán xử lý và nhận dạng tín hiệu thu đƣợc từ thí nghiệm; ngôn ngữ LabVIEW đƣợc dùng
trong thuật toán thu thập tín hiệu để điều khiển thiết bị trên cơ sở thuật toán đã đƣợc xây dựng từ
MatLab. Tuy nhiên, trong quá trình kế thừa và chuyển giao thuật toán giữa hai nền ngôn ngữ đã phát
sinh một số vấn đề dẫn đến sai lệch kết quả nhƣ sau:
Một số thuật toán xử lý chỉ triển khai đƣợc trên nền MatLab, không triển khai đƣợc trên nền
LabVIEW. Chính vì vậy, chúng tôi phải sử dụng các thuật toán thay thế có thể thực hiện đƣợc trên
nền ngôn ngữ LabVIEW.
Một vài giai đoạn trong sơ đồ tổng quát “Quy trình nhận dạng hành vi qua phân tích tín hiệu
EEG” (sơ đồ 3.42) khó thực hiện trên nền LabVIEW. Do đó, một vài bƣớc trong sơ đồ 3.42 sẽ đƣợc
thay đổi sao cho phù hợp với hoàn cảnh thực tế.
3.3.3.2 Cải thiện thuật toán phân tích số liệu
Sai số kết quả thống kê dẫn đến sai sót trong quá trình nhận dạng hành vi. Để khắc phục, chúng tôi
đề xuất quá trình cải thiện các kết quả phân tích số liệu nhằm nâng cao chất lƣợng nhận dạng hành vi
qua phân tích tín hiệu EEG. Quá trình cải thiện bao gồm các vấn đề chính sau:
Khử nhiễu và khử trôi tín hiệu Phổ công suất tín hiệu
bằng bộ lọc FIR
F
𝐶𝑟(𝐹 𝐹 ) ≤ 𝜇𝐶𝑟(𝐹 𝐹 )
T
Tính các giá trị trung
bình 𝑅𝛿 𝑅𝛼 𝜌 của 3
kênh: AF3, F7 và AF4 Tính các giá trị trung
bình 𝑅𝛿 𝑅𝛼 𝜌 của 3
kênh: F7, F8 và AF4
Hình 3.44
Hình 3.45
Hình 3.43 Sơ đồ quy trình nhận dạng hành vi thay thế cho sơ đồ hình 3.42
F
𝜌 ≥ µ𝜌
F 𝑅𝛼 µ𝛼𝐵𝐷
𝑅𝛿 ≥ µ𝛿𝐵𝐷 𝑅𝛼 µ𝛼𝐵𝐷 F
𝑅𝛿 ≥ µ𝛿𝐵𝐷
X X
T
T
D
F
𝐶𝑟(𝐴𝐹 𝐴𝐹 ) µ𝐶𝑟(𝐴𝐹 𝐴𝐹 )
F
𝑅𝛼 µ𝛼𝐿𝑅
𝑅𝛿 ≥ µ𝛿𝐿𝑅 𝑅𝛼 µ𝛼𝐿𝑅 F
𝑅𝛿 ≥ µ𝛿𝐿𝑅
X
T
X
T
L
Bên cạnh đó, các giá trị dùng đễ làm ngƣỡng phân biệt các hành vi sẽ đƣợc thống kê theo công
thức (3.23) sau mỗi lần thực nghiệm lấy mẫu. Giá trị ngƣỡng đƣợc thống kê đƣợc gọi là giá trị
ngƣỡng trung bình sau N đợt thực nghiệm lấy mẫu.
∑ µ (3.23)
µ
∑
Với: µ là giá trị ngƣỡng trung bình thống kê sau N đợt lấy mẫu
Phần kết quả nghiệm thu thực tế sẽ đƣợc trình bày và đánh giá ở chƣơng 4.
Loại xe Thông số
Tiêu chuẩn 22 TCN 302 – 06 của Bộ GTVT về yêu cầu kỹ thuật của phƣơng tiện giao thông cơ
giới đƣờng bộ và ô tô khách thành phố năm 2006 nêu rằng:
- Khối lƣợng trung bình cho 1 hành khách trên các phƣơng tiện giao thông là không dƣới 60kg.
- Kích thƣớc của một xe lăn chuẩn nhƣ sau:
Hình 3.46 Tiêu chuẩn 22 TCN 302 – 06 về kích thước xe lăn chuẩn
Từ đó, ta đặt ra một số yêu cầu cho bài toán nhƣ sau:
Suy ra số vòng quay của bánh xe (hay của trục bánh xe)
30
n 31.83 vòng/phút (3.26)
Hình 3.47 Sự phân bố các lực khi xe lăn chuyển động lên dốc
Phản lực N có giá trị bằng: N mg cos(10) 150 9.784 cos(10) 1445.343 N (3.27)
Fkeo ma mg sin(10) Fms 150 0.2 150 9.8 sin(10) 190.785 475.638 N (3.31)
Công suất cần thiết tính cho 1 động cơ cho 1 bánh xe:
Pmotor 570.766 2 285.383 W
142.692
Momen xoắn cho 1 động cơ: Tmotor 71.346 Nm
2
Là dạng mạch nguồn hạ áp, có điện áp ngõ ra nhỏ hơn so với điện áp ngõ vào .
Xét mạch nguyên lý sau:
Ở trên là mô hình của một mạch buck đơn giản, chỉ sử dụng một phần từ bán dẫn BJT( Bipolar
Junction Transistor) để điều khiển đóng mở nguồn điện ở tần số cao. BJT đóng vai trò nhƣ một công
tắc điện, chỉ có 2 trạng thái làm việc là đóng và mở tƣơng ứng với hai chế độ dẫn và không dẫn.
Khi khóa BJT đóng, ở trạng thái này dòng điện sẽ đƣợc dẫn từ nguồn chạy qua BJT, dòng điện sẽ
đi qua cuộn cảm L, lúc này dòng điện trong cuộn cảm sẽ tăng lên, đồng thời tụ C cũng sẽ đƣợc nạp
điện đầy, và có điện ra cấp cho tải hoạt động. Diode D bị phân cực ngƣợc nên sẽ không dẫn, dòng
không đi qua diode.
Chiều dòng điện nhƣ hình:
Khi khóa bán dẫn BJT mở, tức hở mạch, lúc này dòng điện từ nguồn vào sẽ không đi qua mạch
đƣợc, nguồn điện bị ngắt ra khỏi mạch. Khi đó năng lƣợng của cuộn cảm và tụ điện đƣợc tích lũy
trƣớc đó sẽ đƣợc xả ra để chống lại sự mất điện áp ở ngõ vào, lúc này diode D sẽ dẫn, tạo thành một
mạch điện khép kín.
Quá trình đóng mở liên tục sẽ tạo ra một điện áp trung bình, phụ thuộc vào độ rộng của xung điều
chế hay còn gọi là kỹ thuật điều chế độ rộng xung PWM.
Điện áp ngõ ra đƣợc tính theo công thức :
(3.34)
Về nguyên lý, mạch cũng sử dụng các thành phần cuộn cảm và điện dung C để nạp và xả năng
lƣợng giống nhƣ mạch hạ áp. Điện áp đầu ra phụ thuộc vào điều biến độ rộng xung và giá trị cuộn
cảm L.
Khi khóa BJT đóng, dòng điện sẽ đi qua cuộn cảm và theo mối nối C-E của BJT đi về nguồn,
không có dòng đi qua diode. Dòng điện trong cuộn cảm sẽ tăng lên rất nhanh. Lúc này điện áp cấp
cho tải sẽ do tụ C cung cấp.
Khi khóa BJT chuyển qua trạng thái ngƣng dẫn, thì lúc này điện áp của cuộn dây sinh ra một điện
áp V bằng với điện áp ở ngõ vào. Lúc này, điện áp đầu vào cộng với điện áp của cuộn cảm sẽ đi qua
diode D cấp cho tải và đồng thời nạp điện cho tụ C. Khi đó, điện áp đầu ra sẽ lớn điện áp đầu vào.
Điện áp ra tải còn phụ thuộc vào giá trị của cuộn cảm và độ rộng của xung PWM. Tần số đóng cắt
BJT khá cao từ vài khz đến Mhz để triệt nhiễu công suất và tăng công suất cho đầu ra.
Trong khuôn khổ của đề tài, thì phần mạch nguồn tăng áp sử dụng IC UC3843 kết hợp với op-amp
để hồi tiếp dòng về và phần mạch hạ áp sử dụng IC LM2576 adj.
Ở phần mạch tăng áp, điện áp đầu vào lấy từ ăc-quy 12V, điện áp ngõ ra đạt 24V với công suất
hoạt động trung bình là 600W. Nguồn này sẽ cung cấp cho 2 động cơ DC hoạt động.
Ở phần mạch hạ áp, áp sẽ hạ từ 12V của bình ăc-quy xuống còn 5V với nhiệm vụ cấp nguồn cho
các cảm biến và bộ điều khiển hoạt động.
3.4.2.2 Mạch công suất điều khiển động cơ
Để điều khiển động cơ đảo chiều và tăng giảm tốc độ động cơ thì ta cần phải có 1 mạch điều
khiển. Có nhiều cách để có thể làm đƣợc việc này, tuy nhiên mạch cầu H đƣợc sử dụng rộng rãi vì
khả năng linh động, cho hiệu suất điều khiển cao hơn hẳn. Do mạch đƣợc mắc theo kiểu hình cầu chữ
H nên thƣờng đƣợc gọi là mạch cầu H.
Hình 3.56 Các trạng thái làm việc của mạch cầu H [10]
Ta thấy mạch cầu H về cơ bản có 4 công tắc đơn giản, tùy vào trạng thái của mỗi công tắc ta sẽ
thay đổi đƣợc chiều quay của động cơ. Tuy nhiên, cặp switch S1 và S3 không bao giờ đƣợc cùng dẫn
1 lúc hay còn gọi là trùng dẫn. Bởi vì khi đó mạch cầu sẽ bị đánh thủng, cặp S1 và S3 sẽ bị cháy do
mạch bị ngắn mạch gây quá dòng.
Chiều quay của động cơ đƣợc điều khiển bởi sự đóng ngắt của các cặp S1- S4 và S2-S3 nhƣ
hình…
Các khóa K trong thực tế sẽ đƣợc thay thế bằng các khóa bán dẫn nhƣ Bipolar Junction Transistor
hay MOSFET. Các BJT khi điều khiển ở công suất cao và tần số lớn thƣờng lộ rõ các khuyết điểm
của mình do BJT công suất thì thƣờng có hệ số khuếch đại thấp, nhƣ vậy cần phải mắc ghép tầng để
tăng hệ số khuếch đại hơn. Chính vì vậy mà mạch điện thƣờng phức tạp. Nên khi cần dòng cao thì đa
số đều sử dụng MOSFET hơn, không cần mắc ghép tầng vì các MOSFET đƣợc điều khiển bằng sự
chênh lệch điện áp giữa 2 chân G-S, không cần phải mắc phân cực dòng điều khiển cho chân B của
BJT.
Hình 3.57: Cầu H dùng BJT ghép tầng Hình 3.58: Cầu H dùng MOSFET
Cầu H sử dụng các BJT ghép tầng thƣờng hay sử dụng các loại transistor darlington với mục đích
nhằm tăng độ lợi cao, do đó để điều khiển dòng tải cao thì chỉ cần cấp dòng điều khiển nhỏ hơn. [11]
Nên khi dùng BJT để thiết kế mạch cầu H thì mạch tƣơng đối phức tạp, chƣa kể là phải tính đến
các dòng phân cực cho chân Base phải đảm bảo cho các BJT luôn hoạt động ở chế độ bão hòa hay
switching thay vì hoạt động ở chế độ khuếch đại. Với những yêu cầu khắt khe nhƣ vậy, đòi hỏi ở
ngƣời thiết kế phải có nhiều kinh nghiệm và kỹ năng tính toán tốt. Chƣa nói đến hiệu suất tƣơng đối
cao do sự hao phí về nhiệt khá lớn cũng nhƣ tốc độ đóng ngắt của các BJT thông thƣờng nhỏ hơn so
với với các MOSFET.
Chính vì những hạn chế về mặt kỹ thuật, nên nhóm đã quyết định sử dụng các khóa MOSFET để
thay thế cho các khóa BJT.
MOSFET là tên viết tắt của Metal Oxide Semiconductor Field Effect Transistor, hiểu nôm na là
transistor hiệu ứng trƣờng oxit kim loại bán dẫn. Sở dĩ có cụm tự metal oxide nhƣ vậy là bởi vì trong
chế tạo nên, điện cực làm nên chân Gate của linh kiện đƣợc tạo bởi vật liệu oxide kim loại. [12]
MOSFET có cấu tạo gồm 3 chân là Gate( G), Drain( D) và Source( S). Trong đó chân G là chân
dùng để điều khiển việc đóng mở dòng điện chạy qua chân D-S.
Dựa vào điện áp ngƣỡng điều khiển ở chân G, thì dòng điện đi qua D-S sẽ thay đổi. Điện áp
ngƣỡng này đƣợc quy định riêng cho mỗi MOSFET. Khi MOSFET chƣa đƣợc phân cực, thì trở
kháng giữa 2 chân D-S là vô cũng, nhƣng khi đƣợc phân cực vào chân G thì lúc này điện trở mới
giảm xuống, điện trở có thể giảm xuống còn miliohm. Dựa vào mức điện áp phân cực cho mỗi
MOSFET, ngƣời ta chia thành 2 loại MOSFET nhƣ sau :
MOSFET kênh N: Đối với loại này thì điện áp cấp vào chân G để kênh D-S dẫn phải lớn hơn điện
áp ngƣỡng. Loại này thƣờng đƣợc sử dụng rộng rãi hơn, xét về chức năng khóa thì đây là loại khóa
thƣờng mở, hay hở mạch.
MOSFET kênh P: MOSFET chỉ dẫn khi điện áp . Có nghĩa là điện áp trên chân G phải
nhỏ hơn điện áp ngƣỡng.
3.4.2.3 Cảm biến siêu âm
Cảm biến siêu âm đƣợc gắn vào phía sau của xe để cảnh báo sự va chạm, và phát hiện vật cản.
Cảm biến siêu âm thực chất là 1 bộ thu phát tín hiệu có nhiệm vụ chuyển đổi sóng siêu âm thành
tín hiệu điện hoặc tín hiệu điện sang tín hiệu siêu âm. Nó có thể thu hoặc phát tín hiệu siêu âm nên
đƣợc gọi là transducer. Tín hiệu phát ra là sóng siêu âm, khi đi trong môi trƣờng gặp vật cản nó sẽ bị
dội ngƣợc lại, bộ thu sẽ nhận lại tín hiệu echo này và chuyển sang tín hiệu điện. Dựa vào sự chênh
lệch thời gian kể từ lúc phát đến lúc nhận đƣợc tín hiệu, ta có thể dễ dàng tính đƣợc khoảng cách từ
cảm biến đến vật cản.
Đa phần các cảm biến này đƣợc chế tạo bằng vật liệu áp điện. Vật liệu sẽ tạo ra dao động khi ta
cấp 1 trƣờng điện biến thiên vào 2 đầu điện cực.
Đối với những ứng dụng cơ bản để đo khoảng cách thì cách dễ thiết kế nhất là sử dụng 2 tinh thể
áp điện.
3. Đo lƣờng và kiểm tra nhiệt độ của ngành công nghiệp, y tế, bảo vệ môi trƣờng, dự báo thời
tiết, thiết bị chế biến thực phẩm, vv
4. Bảo vệ nhiệt độ pin và bộ sạc pin.
5. Bù nhiệt vòng lặp thiết bị, mạch tích hợp, bộ dao động tinh thể và cặp nhiệt điện
Thermistor là một loại linh kiện có điện trở bị phụ thuộc vào nhiệt độ. Tùy vào vật liệu chế tạo
nên mà có hệ số nhiệt trở khác nhau. Nếu đƣợc chế tạo bằng các vật liệu ceramic có chứ phân tử
BaTiO3 thì sẽ có hệ số nhiệt trở dƣơng hay còn gọi là PTC- Positive Temperature Co-efficient. Đối
với loại này thì không nhiệt độ tăng, điện trở cũng sẽ tăng theo.
Đối với loại cảm biến đƣợc chế tạo từ các hợp chất bán dẫn có pha tạp oxit kim loại thì lại có hệ
số nhiệt trở âm- Negative Temperature Co-efficient. Loại này thì nhiệt độ tăng, điện trở lại giảm.
Trong luận văn này sử dụng cảm biến nhiệt độ thermistor loại NTC, nhƣ vậy ta chỉ tập trung tìm
biểu thức mối quan hệ giữa nhiệt độ và điện trở.
Để biểu thị quan hệ sự thay đổi giữa điện trở và nhiệt độ, thì ta có đƣợc hàm truyền sau :
( ) (3.36)
B là hệ số nhiệt trở
R0 là nhiệt độ bình thƣờng của NTC ở nhiệt độ 25 oC.
T0 là nhiệt độ bình thƣờng ở 25 oC.
T nhiệt độ đo đƣợc ở hiện tại
R là giá trị điện trở đo đƣợc ở nhiệt độ hiện tại.
Hình ảnh bên dƣới là giao diện của 1 chƣơng trình dùng để kiểm tra hoạt động của cảm biến nhiệt
độ sử dụng thermistor.
Chƣơng trình tính toán:
Bên cạnh việc xây dựng thuật toán nhận dạng thì việc hiện thực hóa thuật toán đó trên một nền
ngôn ngữ lập trình cũng là một công việc với muôn vàn khó khăn. Bởi vì việc xây dựng thuật toán
trên nền lập trình Matlab khi đƣợc hiện thực hóa trên nền LabVIEW đã xảy ra một số xung đột giữa
hai ngôn ngữ khác nhau. Một số thuật toán xử lý chỉ đƣợc triển khai trên nền Matlab, không triển
khai đƣợc trên nền LabVIEW. Sau quá trình thay thế thuật toán, chỉnh sửa, kiểm tra, chúng tôi đã xây
dựng thành công thuật toán nhận dạng và điều khiển trên ngôn ngữ LabVIEW.
Hình 4.1 Giao diện nhận dạng tín hiệu và điều khiển
Dựa trên giao diện đƣợc thiết kế trên LabVIEW, nhóm đã tiến hành thực nghiệm trên phần mềm
hiệu suất của thuật toán này, kết quả đƣợc trình bày nhƣ bảng sau:
Bảng 4.1 Kết quả cải thiện các giá trị ngƣỡng μ
Lần
Loại hình
thực ( ) ( )
khảo sát
nghiệm
1 Tiền định 0.2978 0.2032 0.4926 0.5986 142.412 0.5654 0.2620
Bảng 4.2 Kết quả nghiệm thu qua những lần cải thiện các giá trị ngƣỡng μ
Lần Xác suất nhận dạng các hành vi
Ngày khảo sát Loại hình
thực
(dd/mm/yyyy) khảo sát
nghiệm B D L R X
1 08/12/2016 Tiền định || || || || ||
2 09/12/2016 Tiền định 89 % 86 % 60 % 78 % 71 %
3 12/12/2016 Tiền định 88 % 93 % 92 % 87 % 93 %
4 19/12/2016 Ngẫu nhiên 100 % 100 % 93 % 95 % 85 %
( ||: chƣa ghi nhận mẫu)
Từ bảng 4.2, ta đƣợc biểu đồ thể hiện xác suất nhận dạng các hành vi qua các lần khảo sát nghiệm
thu (hình 4.2)
Hình 4.2 Biểu đồ thể hiện xác suất nhận dạng các hành vi qua các lần khảo sát nghiệm thu
Chi tiết thực nghiệm đƣợc trình bày ở phần Phụ lục.
Ƣu điểm:
Thuật toán có hiệu suất nhận dạng khá cao, nhanh chóng, thích hợp cho việc xử lý tín hiệu
theo thời gian thực.
Thuật toán đƣợc xây dựng trên ngôn ngữ lập trình LabVIEW – là một ngôn ngữ cấp cao dễ
thao tác và trực quan.
Thiết bị điện não di động EPOC nhỏ gọn, linh động đối với ngƣời sử dụng.
Tất cả tín hiệu đều truyền bằng wireless nên hệ thống gọn gàng, không rƣờm rà.
Ngoài việc điều khiển mô hình xe lăn, thuật toán này còn có thể áp dụng cho những thiết bị
ngoại vi khác miễn có những điều kiện thích hợp.
Hạn chế:
Thiết kế cơ khí vẫn chƣa hoàn chỉnh do thiếu kinh nghiệm trong lĩnh vực cơ học dẫn đến mô
hình xe lăn còn nhiều sai sót trong quá trình thử nghiệm.
Thuật toán chỉ mới triển khai trên một đối tƣợng thí nghiệm, chƣa thể triển khai cho nhiều
ngƣời.
Tín hiệu điện não truyền wireless từ EPOC đến NI myRIO còn khá chập chờn dẫn đến mô
hình nhận lệnh điều khiển còn chậm, chƣa đáp ứng đƣợc nhanh và hay bị mất tín hiệu nếu ở khoảng
cách xa.
Qua quá trình tìm hiểu và xây dựng, chúng tôi đã xác định đƣợc những đặc điểm của sóng điện
não đối với từng loại hành vi của mắt và đã thành công trong việc ứng dụng những đặc điểm đó vào
việc xây dựng thuật toán điều khiển mô hình xe lăn. Với những ƣu điểm kể trên, Luận Văn này là
một bƣớc tiến mới cho các nghiên cứu trong lĩnh vực ứng dụng sóng điện não trong cuộc sống.
Qua Luận Văn, chúng tôi hy vọng sẽ mang lại những giá trị thiết thực cho xã hội, đặc biệt là cho
những bệnh nhân bị mất khả năng vận động. Nhờ đó, họ có thêm sự phấn khởi và tự do trong cuộc
sống. Chúng tôi nhận thấy rằng chi phí cho đề tài này là không quá đắt, chúng ta hoàn toàn có thể
mang ứng dụng này thƣơng mại hóa trong tƣơng lai để mọi ngƣời có nhu cầu đều có thể sử dụng.
Bên cạnh đó, nhóm cũng muốn mở rộng khả năng ứng dụng của đề tài về điều khiển thông minh
bằng sóng não trên nhiều lĩnh vực khác nhằm tiến tới một cuộc sống hiện đại và linh hoạt hơn.
[3] Shachar Arnon et al, "Thought-Controlled Nanoscale Robots in a Living Host," PLOS one,
August 2015.
[4] Sumit Soman Soumya Sen Gupta, "Detecting Eye Movements in EEG for Controlling Devices,"
CyberneticsCom, 2012.
[5] J.A. Chambers Saeid Sanei, EEG Signal Processing. London, England: John Wiley & Sons,
2007.
[6] Nguyễn Văn Chiến, "Một số vấn đề xử lý thực tế cho tín hiệu EEG," Đại học Quốc gia Hà Nội,
Hà Nội, 2011.
[7] Nguyễn Việt Anh, Phạm Minh Toàn, Hà Trần Đức Nguyễn Hoàng Hải, Công cụ phân tích
Wavelet và ứng dụng trong Matlab. Hà Nội, Việt Nam: Nhà Xuất Bản Khoa Học Và Kỹ Thuật,
2005.
[8] Nguyễn Hữu Lộc, Cơ sở thiết kế máy. TPHCM, Việt Nam: Đại học Quốc gia TPHCM, 2007.
[9] Sanjaya Maniktala, Switching Power Supplies A–Z. USA: Elsevier Ltd, 2012.
PHỤ LỤC 1
PHỤ LỤC 2
EEG_ANALYSIS
clear all
clc
fol=['D:\Working\My work\EEG\Data\'];
day='2016_09_20';
ID=[1]; %ID person
pos=textscan('B', '%1s','CollectOutput',1); %state of mind
fs=128;
color=textscan('b g r c', '%1s','CollectOutput',1);
for k=1:length(ID)
fid=fopen([fol,day,'\0',num2str(ID(k)),'\','Note-0',num2str(ID(k)),'.TXT']);
note = textscan(fid, '%1s %3s','CollectOutput',1);
for z=1:length(pos{1,1})
[m,n]=size(note{1,1});
for j=1:m
if note{1,1}{j,1} == pos{1,1}{z,1};
numfile=str2num(note{1,1}{j,2});
end
end
CR=[];
Hsave=[];
isave=[];
for l=1:1 %numfile
clear A A67 C Dn tit strt m n m1 m2 g t frs fts
C=importdata([fol,day,'\0',num2str(ID),'\','0',num2str(ID),pos{1,1}{z,1},num2str(
l),'.TXT']);
tit=C.textdata{1,5};
strt=strread(tit,'%s', 'delimiter', ' ');
strt=strt';
[m,n]=size(C.data);
m1=1;
m2=floor(m/100)*100;
ch=[1 2 13 14];
C=C.data(m1:m2,ch+2);
a=2;
level=7;
[A,Dn]=wavelet_transform4(C,a,level,'db4');
A67=combsig(A,Dn,level,6,7); %A67 = D6 + D7
[m,n]=size(C);
t=[1:m]/fs;
figure(1)
clf
for in=1:length(ch)
subplot(4,2,2*in-1)
plot(t,A(:,in),color{1,1}{in,1})
v=axis;
axis([t(1) t(end) v(3) v(4)])
xlabel('t (s)')
ylabel('A (\muV)')
hold on
title([strt{1,2+ch(in)}])
end
for in=1:n
A67(:,in)=chuanhoa(A67(:,in));
end
g=[1 2 ; 1 3 ; 1 4 ; 2 3 ; 2 4 ; 3 4];
for in=1:6
cr(1,in)=corr2(A67(:,g(in,1)),A67(:,g(in,2)));
end
CR=[CR ; cr];
for in=1:length(ch)
subplot(4,2,2*in)
plot(t,A67(:,in),color{1,1}{in,1})
v=axis;
axis([t(1) t(end) -1 1])
xlabel('t (s)')
if in==1
title('\delta signal')
text(t(1)-
t(end)/5,1.8,['0',num2str(ID),pos{1,1}{z,1},num2str(l)],'FontSize',12)
end
if in==length(ch)
text(-1.4*t(end),-2.4,['cor(AF3,F7) = ',num2str(cr(1)),'
cor(AF3,F8) = ',num2str(cr(2)),' cor(AF3,AF4) = ',num2str(cr(3)),'
cor(F7,F8) = ',num2str(cr(4)),' cor(F7,AF4) = ',num2str(cr(5)),'
cor(F8,AF4) = ',num2str(cr(6))]);
end
end
set(gcf, 'PaperPositionMode', 'auto')
saveas(figure(1),[fol,day,'\0',num2str(ID),'\','0',num2str(ID),pos{1,1}{z,1},num2
str(l),'-',day,'.jpg'])
% FFT
[frs,fts]=fourier_transform4(A,fs);
fsig=[0.5 4 ; 4 8 ; 8 13 ; 13 30];
fdel=[0.5 1.5 ; 1.5 4 ; 0.5 3 ; 3 4 ; 0.5 4];
figure(2)
clf
hold on
AA=zeros(length(ch),length(fsig(:,1)));
BB=zeros(length(ch),length(fdel(:,1)));
PP=AA;
RB=BB;
delta=zeros(length(ch),1);
for i=1:length(ch)
for r=1:length(fsig(:,1))
areaDistance = inputDistance(fsig(r,:),frs,fts(:,i));
AA(i,r)=areaDistance;
end
for r=1:length(fsig(:,1))
PP(i,r)=AA(i,r)/sum(AA(i,:));
end
for r=1:length(fdel(:,1))
areaDistance1 = inputDistance(fdel(r,:),frs,fts(:,i));
BB(i,r)=areaDistance1;
end
for r=1:length(fdel(:,1))
RB(i,r)=BB(i,r)/BB(i,end);
end
for r=1:length(fdel(:,1))
delta(i,1)=(RB(i,1)/RB(i,2))*(RB(i,3)/RB(i,4));
end
end
PP=[PP delta];
[H,iZ]=localsta(PP,pos{1,1}{z,1});
for i=1:length(ch)
colog=find(iZ==i);
if isempty(colog)==1
colrmap='b';
isave(l,i)=0;
else
colrmap='b';
isave(l,i)=1;
end
subplot(2,2,i)
bar(frs,fts(:,i),colrmap)
v=axis;
axis([0 35 v(3) v(4)])
xstr=['R_{\delta} = ',num2str(PP(i,1)),' R_{\theta} =
',num2str(PP(i,2)),' R_{\alpha} = ',num2str(PP(i,3)),' R_{\beta} =
',num2str(PP(i,4)),' f (Hz)'];
xlabel(xstr)
text(27,v(4)*0.9,['\rho = ',num2str(delta(i,1))]);
ylabel('P (\muV^2)')
title([strt{1,2+ch(i)}])
if i == 1
text(39,1.15*v(4),['0',num2str(ID),pos{1,1}{z,1},num2str(l)],'FontSize',12);
end
end
set(gcf, 'PaperPositionMode', 'auto')
saveas(figure(2),[fol,day,'\0',num2str(ID),'\','F-
0',num2str(ID),pos{1,1}{z,1},num2str(l),'-',day,'.jpg'])
Hsave=[Hsave ; H];
end
csvwrite([fol,day,'\0',num2str(ID),'\','C-0',num2str(ID),pos{1,1}{z,1},'-
',day,'.csv'],CR)
csvwrite([fol,day,'\0',num2str(ID),'\','R-0',num2str(ID),pos{1,1}{z,1},'-
',day,'.csv'],Hsave)
csvwrite([fol,day,'\0',num2str(ID),'\','i-0',num2str(ID),pos{1,1}{z,1},'-
',day,'.csv'],isave)
end
end
#############################################################################
WAVELET_TRANSFORM
function [A3,Dn]=wavelet_transform4(St,a,level,wavelet)
[m,ch]=size(St);
A3=zeros(m,ch);
for kn=1:ch
l_S(kn)=length(St(:,kn));
[C(:,kn),L(:,kn)]=wavedec(St(:,kn),level,wavelet)
for jn=1:level
Dn(:,(kn-1)*level+jn)=wrcoef('d',C(:,kn),L(:,kn),wavelet,jn);
An(:,(kn-1)*level+jn)=wrcoef('a',C(:,kn),L(:,kn),wavelet,jn);
end
for jn=a:level
A3(:,kn)=A3(:,kn)+Dn(:,(kn-1)*level+jn);
end
end
FOURIER_TRANSFORM
function [frs,fts]=fourier_transform4(A3,Fscan)
[m,ch]=size(A3);
bins=0:m-1;
frs=[(bins)*Fscan/m];
for kn=1:ch
Y(:,kn)=fft(A3(:,kn),m);
fts(:,kn)=(Y(:,kn).*conj(Y(:,kn))/m);
fts(1,kn)=0;
end
#############################################################################
AREA_DISTANCE
function areaDistance = inputDistance(dis,frs,fts)
indicate = find(frs >= dis(1) & frs <=dis(2));
tempFts = fts;
valueFigOneOfFrs = frs(indicate);
valueFigOneOfFts = tempFts(indicate);
tempAreaFig = trapz(valueFigOneOfFrs,valueFigOneOfFts);
areaDistance = tempAreaFig;
#############################################################################
LOCAL_STATISTISC
function [H,iZ]=local_statistics(PP)
[m,n]=size(PP);
B=[];
X=[];
for i=1:m
if PP(i,1) >= 0.59111
B(i)=1;
else
B(i)=0;
end
if PP(i,3) >= 0.17552
X(i)=1;
else
X(i)=0;
end
end
if sum(B)/4 >= 0.5
io=1;
Z=sort(PP(:,io));
for in=1:4
w=find(PP(:,io)==Z(in));
iZ(in,1)=w(1);
end
k1=length(Z);
u=mean(Z)-std(Z);
for in=1:k1-1
if Z(in)<u
Z=Z(in+1:k1);
iZ=iZ(in+1:k1,1);
u=mean(Z)-std(Z);
else
H=mean(PP(iZ,:));
end
end
elseif sum(X)/4 >= 0.5
io=3;
Z=sort(PP(:,io));
for in=1:4
w=find(PP(:,io)==Z(in));
iZ(in,1)=w(1);
end
k1=length(Z);
u=mean(Z)-std(Z);
for in=1:k1-1
if Z(in)<u
Z=Z(in+1:k1);
iZ=iZ(in+1:k1,1);
u=mean(Z)-std(Z);
else
H=mean(PP(iZ,:));
end
end
else
io=3;
Z=sort(PP(:,io));
for in=1:4
w=find(PP(:,io)==Z(in));
iZ(in,1)=w(1);
end
k1=length(Z);
u=mean(Z)-std(Z);
for in=1:k1-1
if Z(in)<u
Z=Z(in+1:k1);
iZ=iZ(in+1:k1,1);
u=mean(Z)-std(Z);
else
H=mean(PP(iZ,:));
end
end
end
#############################################################################
GLOBAL_STATISTISC
clear all
clc
fol='D:\Working\My work\EEG\Data\statistic\';
B0=importdata([fol,'01B','.TXT']);
D0=importdata([fol,'01D','.TXT']);
L0=importdata([fol,'01L','.TXT']);
R0=importdata([fol,'01R','.TXT']);
X0=importdata([fol,'01X','.TXT']);
B0=B0.data;
D0=D0.data;
L0=L0.data;
R0=R0.data;
X0=X0.data;
l=size(L0,1)+size(R0,1)+size(B0,1)+size(D0,1)+size(X0,1);
col=3;
X0=X0(:,col);
X=X0;
X1=X;
X0=sort(X0);
B0=B0(:,col);
B=B0;
B1=B;
L0=L0(:,col);
L=L0;
L1=L;
R0=R0(:,col);
R=R0;
R1=R;
D0=D0(:,col);
D=D0;
D1=D;
U=[B0 ; L0 ; R0 ; D0];
U=sort(U,'descend');
mindt=X0(1);
maxdt=U(1);
mX=min(X);
MB=max(B);
ML=max(L);
MR=max(R);
MD=max(D);
nX=find(X1==mX); nX=nX(1);
nB=find(B1==MB); nB=nB(1);
nD=find(D1==MD); nD=nD(1);
nL=find(L1==ML); nL=nL(1);
nR=find(R1==MR); nR=nR(1);
bien=mean([(mX+MB)/2 (mX+ML)/2 (mX+MR)/2 (mX+MD)/2]);
fx=find(X<=bien);
errX=length(fx)*100/length(X);
fb=find(B>bien);
errB=length(fb)*100/length(B);
fd=find(D>bien);
errD=length(fd)*100/length(D);
fl=find(L>bien);
errL=length(fl)*100/length(L);
fr=find(R>bien);
errR=length(fr)*100/length(R);
i=0;
figure(4)
clf
nx=max([length(B1) length(L1) length(R1) length(D1) length(X1)]);
ny=mX:(MD-mX)/2000:MD;
hold on
plot((nx/length(B1))*[1:length(B1)],B1,'bp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(L1))*[1:length(L1)],L1,'cp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(R1))*[1:length(R1)],R1,'rp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(D1))*[1:length(D1)],D1,'gp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(X1))*[1:length(X1)],X1,'mp','MarkerFaceColor','y','MarkerSize',7)
xlabel('n')
ylabel('R\alpha')
v=axis;
n=v(1):0.1:nx;
plot(n,bien,'k--','MarkerSize',5)
plot(n,maxdt,'g--','MarkerSize',5)
plot(n,mindt,'m--','MarkerSize',5)
plot((nx/length(B1))*nB,MB,'bp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(L1))*nL,ML,'cp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(R1))*nR,MR,'rp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(D1))*nD,MD,'gp','MarkerFaceColor','g','MarkerSize',12)
plot((nx/length(X1))*nX,mX,'mp','MarkerFaceColor','m','MarkerSize',12)
plot(nx,ny)
axis([v(1) nx 0 v(4)])
title([date,' R_{\alpha} global statistics Loop time :
',num2str(i),' \gamma = ',num2str(1-2*i/l)])
legend(['B error_{\alpha_B} = ',num2str(errB),' %'],['L error_{\alpha_L}
= ',num2str(errL),' %'],['R error_{\alpha_R} = ',num2str(errR),' %'],['D
error_{\alpha_D} = ',num2str(errD),' %'],['X error_{\alpha_X} =
',num2str(errX),' %'])
text(nx-nx/16,-0.015+bien,num2str(bien))
text(nx-0.4,maxdt-0.01,'\uparrow')
text(nx-0.4,mindt+0.01,'\downarrow')
set(gcf, 'PaperPositionMode', 'auto')
saveas(figure(4),[fol,'alpha_global_statistics-00',num2str(i),'.bmp'])
while (errX > 5) || (errB > 5) || (errD > 5) || (errL > 5) || (errR > 5)
i=i+1;
mindt=X0(i);
maxdt=U(i);
secdt=U(i+1);
ny=X0(i+1):(secdt-X0(i+1))/2000:secdt;
minpo=find(X==mindt);
minpo=minpo(1);
X(minpo)=[];
minpo=find(X1==mindt);
minpo=minpo(1);
X1(minpo)=-1;
maxpb=find(B==maxdt);
maxpl=find(L==maxdt);
maxpr=find(R==maxdt);
maxpd=find(D==maxdt);
secpb=find(B==secdt);
secpl=find(L==secdt);
secpr=find(R==secdt);
secpd=find(D==secdt);
if isempty(maxpb)==0
maxpb=maxpb(1);
B(maxpb)=[];
maxpb=find(B1==maxdt); maxpb=maxpb(1);
B1(maxpb)=-1;
iclr='b';
elseif isempty(maxpl)==0
maxpl=maxpl(1);
L(maxpl)=[];
maxpl=find(L1==maxdt); maxpl=maxpl(1);
L1(maxpl)=-1;
iclr='c';
elseif isempty(maxpr)==0
maxpr=maxpr(1);
R(maxpr)=[];
maxpr=find(R1==maxdt); maxpr=maxpr(1);
R1(maxpr)=-1;
iclr='r';
elseif isempty(maxpd)==0
maxpd=maxpd(1);
D(maxpd)=[];
maxpd=find(D1==maxdt); maxpd=maxpd(1);
D1(maxpd)=-1;
iclr='g';
end
mX=min(X);
MB=max(B);
ML=max(L);
MR=max(R);
MD=max(D);
nX=find(X1==mX); nX=nX(1);
nB=find(B1==MB); nB=nB(1);
nD=find(D1==MD); nD=nD(1);
nL=find(L1==ML); nL=nL(1);
nR=find(R1==MR); nR=nR(1);
bien=mean([(mX+MB)/2 (mX+ML)/2 (mX+MR)/2 (mX+MD)/2]);
fx=find(X<=bien);
errX=length(fx)*100/length(X);
fb=find(B>bien);
errB=length(fb)*100/length(B);
fd=find(D>bien);
errD=length(fd)*100/length(D);
fl=find(L>bien);
errL=length(fl)*100/length(L);
fr=find(R>bien);
errR=length(fr)*100/length(R);
figure(4)
clf
nx=max([length(B1) length(L1) length(R1) length(D1) length(X1)]);
if isempty(secpb)==0
iclr='b';
secpb=secpb(1);
isec=find(B1==secdt); isec=(nx/length(B1))*isec(1);
elseif isempty(secpl)==0
iclr='c';
secpl=secpl(1);
isec=find(L1==secdt); isec=(nx/length(L1))*isec(1);
elseif isempty(secpr)==0
iclr='r';
secpr=secpr(1);
isec=find(R1==secdt); isec=(nx/length(R1))*isec(1);
elseif isempty(secpd)==0
iclr='g';
secpd=secpd(1);
isec=find(D1==secdt); isec=(nx/length(D1))*isec(1);
end
hold on
plot((nx/length(B1))*[1:length(B1)],B1,'bp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(L1))*[1:length(L1)],L1,'cp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(R1))*[1:length(R1)],R1,'rp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(D1))*[1:length(D1)],D1,'gp','MarkerFaceColor','y','MarkerSize',7)
plot((nx/length(X1))*[1:length(X1)],X1,'mp','MarkerFaceColor','y','MarkerSize',7)
xlabel('n')
ylabel('R\alpha')
v=axis;
n=v(1):0.1:nx;
plot(n,bien,'k--','MarkerSize',5)
plot(n,U(i+1),[iclr,'--'],'MarkerSize',5)
plot(n,X0(i+1),'m--','MarkerSize',5)
plot((nx/length(B1))*nB,MB,'bp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(L1))*nL,ML,'cp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(R1))*nR,MR,'rp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(D1))*nD,MD,'gp','MarkerFaceColor','w','MarkerSize',12)
plot((nx/length(X1))*nX,mX,'mp','MarkerFaceColor','m','MarkerSize',12)
plot(nx,ny)
plot(isec,secdt,[iclr,'p'],'MarkerFaceColor',iclr,'MarkerSize',12)
axis([v(1) nx 0 v(4)])
if (errX > 5) || (errB > 5) || (errD > 5) || (errL > 5) || (errR > 5)
looptime=' ';
elseif (errX <= 5) && (errB <= 5) && (errD <= 5) && (errL <= 5) && (errR <=
5)
looptime=' (final)';
end
title([date,' R_{\alpha} global statistics Loop time
: ',num2str(i),looptime,' \gamma = ',num2str(1-2*i/l)])
legend(['B error_{\alpha_B} = ',num2str(errB),' %'],['L
error_{\alpha_L} = ',num2str(errL),' %'],['R error_{\alpha_R} =
',num2str(errR),' %'],['D error_{\alpha_D} = ',num2str(errD),' %'],['X
error_{\alpha_X} = ',num2str(errX),' %'])
text(nx-nx/16,-0.015+bien,num2str(bien))
text(nx-0.4,U(i+1)-0.01,'\uparrow')
text(nx-0.4,X0(i+1)+0.01,'\downarrow')
set(gcf, 'PaperPositionMode', 'auto')
saveas(figure(4),[fol,'alpha_global_statistics-',num2str(i),'.bmp'])
end
PHỤ LỤC 3