Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân

Tài liệu Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân: ... Ebook Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân

pdf154 trang | Chia sẻ: huyen82 | Lượt xem: 1960 | Lượt tải: 1download
Tóm tắt tài liệu Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Häc viÖn kü thuËt qu©n sù TRẦN ANH QUANG KHOÁ 35 HỆ ĐÀO TẠO DÀI HẠN §å ¸n tèt nghiÖp ®¹i häc Chuyªn ngµnh ®iÖn tö y sinh NGHIÊN CỨU MÔ PHỎNG NGUYÊN LÝ HOẠT ĐỘNG CỦA THIẾT BỊ CHỤP CẮT LỚP CỘNG HƯỞNG TỪ HẠT NHÂN Hµ Néi 2005 Häc viÖn kü thuËt qu©n sù TRẦN ANH QUANG KHOÁ 35 HỆ ĐÀO TẠO DÀI HẠN §å ¸n tèt nghiÖp ®¹i häc CHUYÊN NGÀNH ĐIỆN TỬ Y SINH Mà SỐ 20.00 NGHIÊN CỨU MÔ PHỎNG NGUYÊN LÝ HOẠT ĐỘNG CỦA THIẾT BỊ CHỤP CẮT LỚP CỘNG HƯỞNG TỪ HẠT NHÂN C¸n bé h−íng dÉn : ĐẠI TÁ, TS HUỲNH LƯƠNG NGHĨA Hµ Néi 2005 BỘ QUỐC PHÒNG CỘNG HOÀ Xà HỘI CHỦ NGHĨA VIỆT NAM HỌC VIỆN KTQS Độc lập - Tự do - Hạnh phúc KHOA KTĐK -------------- PHÊ CHUẨN Độ mật:................. Ngày.......tháng.....năm 2005 Số:......................... CHỦ NHIỆM KHOA NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên: Trần Anh Quang Lớp: Điện Tử Y Sinh Khoá: 35 Ngành: Điện-Điện tử Chuyên ngành: Điện tử y sinh 1. Tên đề tài: Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân. 2. Các số liệu ban đầu. 3. Nội dung bản thuyết minh: Bản thuyết minh gồm 4 chương: Chương 1. Cơ sở nguyên lý hoạt động của thiết bị CCL CHTHN. Chương 2. Cấu tạo, hoạt động của thiết bị CCL CHTHN và các phương pháp mô phỏng. Chương 3. Mô hình toán học và sơ đồ thuật toán mô phỏng nguyên lý hoạt động của thiết bị CCL CHTHN. Chương 4. Kết quả mô phỏng 4. Cán bộ hướng dẫn (ghi rõ họ tên, cấp bậc, chức vụ, đơn vị, hướng dẫn toàn bộ hay từng phần): Đại tá, Tiến sỹ Huỳnh Lương Nghĩa, chủ nhiệm bộ môn Bộ môn Điện tử Y Sinh - Khoa Kỹ thuật Điều khiển Hướng dẫn toàn bộ đồ án Ngày giao: 18 / 03 / 2005 Ngày hoàn thành: 10 / 06 / 2005 Chủ nhiệm bộ môn. Hà Nội, ngày 10 tháng 06 năm 2005 Cán bộ hướng dẫn Đại tá, TS Huỳnh Lương Nghĩa Học viên thực hiện Đã hoàn thành và nộp đồ án ngày 10 tháng 06 năm 2005 Trần Anh Quang CÁC KÝ HIỆU VIẾT TẮT FID : Free Induction Decay - Tín hiệu suy giảm cảm ứng tự do MRI : Magnetic Resonance Imaging - Chụp cắt lớp cộng hưởng từ hạt nhân NMR : Nuclear Magnetic Resonance - Cộng hưởng từ hạt nhân SAGE : Small Angle Gradient Echo - Phương pháp tiếng vọng gradient góc quay nhỏ STIR : Short TI Inversion Recovery - Phương pháp đảo nghịch phục hồi TI ngắn BMH : Bước mã hoá pha CHTHN : Cộng hưởng từ hạt nhân CCL CHTHN : Chụp cắt lớp cộng hưởng từ hạt nhân T1 : Hằng số thời gian dãn hồi spin - mạng (dãn hồi dọc) T2 : Hằng số thời gian dãn hồi spin - spin (dãn hồi ngang) TR : Chu kỳ lặp lại của dãy xung tạo ảnh (Repetition Time) TE : Thời gian tiếng vọng (Echo Time) TI : Thời gian đảo nghịch (Inversion Time) TS : Thời gian bão hoà (Saturation Time) FA : Góc quay (lật) (Flip Angle) Voxel : Phần tử thể tích FOV : Trường quan sát (Field Of View) γ : Hệ số từ giảo (hay hệ số từ quay hoặc từ hồi chuyển) ρ : Mật độ proton B0, H0 : Từ trường chính tạo ra do nam châm. B1, H1 : Từ trường tạo ra do cuộn dây RF ở tần số Larmor. Gx, Gy, Gz : Trường gradient tương ứng theo chiều x, y và z MỤC LỤC Mở đầu ..................................................................................................... 1 Chương 1. Cơ sở nguyên lý hoạt động của thiết bị CCL CHTHN..... 3 1.1. Hiện tượng CHTHN........................................................................ 3 1.2. Kích hoạt tín hiệu CHTHN ............................................................. 10 1.3. Tín hiệu CHTHN............................................................................. 13 1.4. Lấy mẫu và chuyển đổi tín hiệu suy giảm cảm ứng tự do tương tự sang dạng số .................................................................................... 18 1.5. Phương pháp mã hoá không gian cho tín hiệu CHTHN................. 21 1.5.1. Chọn lát cắt .............................................................................. 22 1.5.2. Mã hoá tần số ........................................................................... 24 1.5.3. Mã hoá pha............................................................................... 27 1.6. Quá trình xử lý và tái tạo ảnh trong CCL CHTHN......................... 29 1.7. Các phương pháp tạo ảnh................................................................ 37 1.7.1. Giới thiệu chung....................................................................... 37 1.7.2. Phương pháp tiếng vọng spin................................................... 39 1.7.3. Phương pháp phục hồi đảo ngược............................................ 40 1.7.4. Phưong pháp tiếng vọng gradient ............................................ 41 Chương 2: Cấu tạo, hoạt động của thiết bị CCL CHTHN và các phương pháp mô phỏng ........................................................................................ 44 2.1. Tổng quan về phần cứng ................................................................. 44 2.2. Chức năng và hoạt động của từng khối........................................... 45 2.2.1. Hệ thống nam châm ................................................................. 45 2.2.2. Hệ thống tạo trường gradient ................................................... 45 2.2.3. Hệ thống thiết bị vô tuyến........................................................ 47 2.2.4. Hệ thống định vị và kiểm soát bệnh nhân................................ 48 2.2.5. Hệ thống thu nhận tín hiệu....................................................... 48 2.2.6. Hệ thống máy tính chuyên dụng, bàn điều khiển và hiển thị .. 49 2.3. Hoạt động của thiết bị CCL CHTHN ............................................. 49 2.4. Tổng quan về một số phần mềm và công cụ mô phỏng ................. 51 2.4.1. Khảo sát một số phần mềm mô phỏng về thiết bị CCL CHTHN hiện có ...................................................................... 51 2.4.2. Giới thiệu về ngôn ngữ lập trình MatLab ............................... 53 Chương 3: Mô hình toán học và sơ đồ thuật toán mô phỏng nguyên lý hoạt động của thiết bị CCL CHTHN .................................................... 57 3.1. Mô phỏng từng công đoạn xử lý của thiết bị .................................. 57 3.1.1. Mô phỏng quá trình kích thích và tạo giả tín hiệu CHTHN .... 58 3.1.2. Mô phỏng quá trình xử lý tín hiệu bằng bộ tách sóng pha cầu phương...................................................................................... 63 3.1.3. Mô phỏng quá trình xử lý và hiển thị ...................................... 68 3.2. Mô phỏng toàn bộ quy trình xử lý của thiết bị ............................... 70 3.3. Chương trình mô phỏng .................................................................. 75 Chương 4: Kết quả mô phỏng................................................................ 77 4.1. Chương trình mô phỏng công đoạn kích thích và tạo giả tín hiệu CHTHN ........................................................................................... 77 4.2. Chương trình mô phỏng công đoạn xử lý tín hiệu bằng bộ tách sóng pha cầu phương....................................................................... 84 4.3. Chương trình mô phỏng công đoạn xử lý và hiển thị ảnh .............. 88 4.4. Chương trình mô phỏng toàn bộ hoạt động của thiết bị chụp cắt lớp CHTHN..................................................................................... 93 Kết luận .................................................................................................... 99 Tài liệu tham khảo .................................................................................. 101 Phần phụ lục ............................................................................................ 102 Phụ lục I. Chương trình mô phỏng quá trình kích thích và tạo giả tín hiệu CHTHN ............................................................................. 102 Phụ lục II. Chương trình mô phỏng quá trình xử lý tín hiệu bằng bộ tách sóng pha cầu phương........................................................ 115 Phục lục III. Chương trình mô phỏng quá trình xử lý và hiển thị ảnh...... 124 Phụ lục IV. Chương trình mô phỏng toàn bộ nguyên lý hoạt động của thiết bị CCL CHTHN............................................................. 132 Phụ lục V. Các hàm định nghĩa dùng trong quá trình mô phỏng ............. 145 MỞ ĐẦU Ngày nay, với sự phát triển mạnh của khoa học và kỹ thuật nói chung, việc ứng dụng các thành tựu khoa học kỹ thuật phục vụ trong lĩnh vực y tế cũng không ngừng lớn mạnh. Cùng với sự phát triển này là sự xuất hiện của một chuyên ngành kỹ thuật mới thuộc nhóm ngành điện tử, đó chính là chuyên ngành Điện Tử Y Sinh. Trên thế giới, chuyên ngành này đã có các bước phát triển đáng kể và đóng vai trò không thể thiếu trong lĩnh vực y tế nói riêng và phục vụ cuộc sống của con người nói chung. Đối với nước ta, đây là một chuyên ngành còn rất mới chỉ bắt đầu được đưa vào giảng dạy ở một vài trường đại học lớn. Trong lĩnh vực Điện tử y sinh, một bộ phận hết sức quan trọng là nghiên cứu khai thác sử dụng các loại trang thiết bị y tế. Trong đó nhóm các thiết bị chuẩn đoán hình ảnh chiếm số lượng tương đối lớn và đóng vai trò quan trọng không thể thiếu trong y tế hiện nay. Thiết bị chụp cắt lớp cộng hưởng từ hạt nhân (CCL CHTHN) là một trong những thiết bị chuẩn đoán hình ảnh rất phức tạp và đắt tiền. Với điều kiện nước ta hiện nay thiết bị này mới chỉ được trang bị ở một số các bệnh viện tuyến trên. Do đó việc được tiếp cận thực tế với thiết bị để có thể tiến hành nghiên cứu, khai thác sử dụng một cách hiệu quả là rất hạn chế và khó khăn. Mặt khác, xuất phát từ thực tế học tập và giảng dạy đối với các sinh viên thuộc chuyên ngành Điện tử y sinh, một chuyên ngành còn rất mới mẻ ở nước ta nên chưa có nhiều các công cụ và mô hình thí nghiệm phục vụ cho quá trình học tập và nghiên cứu. Được sự động viên và hướng dẫn của thầy giáo, T.s Huỳnh Lương Nghĩa, chủ nhiệm bộ môn Điện Tử Y Sinh tôi đã thực hiện đồ án tốt nghiệp về thiết bị chụp cắt lớp cộng hưởng từ hạt nhân này. Nội dung đồ án là : “ 1 Nghiên cứu mô phỏng nguyên lý hoạt động của thiết bị chụp cắt lớp cộng hưởng từ hạt nhân”. Đây là một đồ án có sản phẩm bằng phần mềm với mục đích xây dựng một công cụ thí nghiệm ảo mô phỏng nguyên lý hoạt động của thiết bị CCL CHTHN phục vụ cho việc học tập, nghiên cứu cho các sinh viên thuộc chuyên ngành Điện tử Y sinh và các chuyên ngành kỹ thuật có liên quan khác. Trên thực tế đã có một số thiết bị mô phỏng về thiết bị này nhưng mới chỉ tập trung vào việc xử lý và hiển thị ảnh với các dữ liệu có sẵn chủ yếu phục vụ cho việc huấn luyện của các y bác sỹ. Nội dung đồ án gồm 4 chương : ●Chương 1: Cơ sở nguyên lý hoạt động thiết bị CCL CHTHN. ●Chương 2: Cấu tạo, hoạt động của thiết bị CCL CHTHN và các phương pháp mô phỏng. ●Chương 3: Mô hình toán học và sơ đồ thuật toán mô phỏng nguyên lý hoạt động của thiết bị CCL CHTHN. ●Chương 4: Kết quả mô phỏng. Nội dung đồ án thực hiện một vấn đề tương đối phức tạp và mới mẻ, mặt khác trong quá trình học tập và nghiên cứu cơ hội được tiếp cận trực tiếp với thiết bị cũng như các tài liệu thuyết minh kỹ thuật còn rất hạn chế. Vì vậy đồ án khó tránh khỏi những thiếu sót nhất định, tôi rất mong được sự quan tâm đóng góp ý kiến của các thầy cô và tất cả các đồng chí. Cuối cùng, tôi xin chân thành cảm ơn thầy giáo T.s Huỳnh Lương Nghĩa đã tận tình hướng dẫn và luôn quan tâm giúp đỡ tôi trong quá trình thực hiện đồ án. Tôi cũng xin cảm ơn tất cả các thầy cô giáo trong bộ môn Điện Tử Y Sinh, trong Khoa Kỹ thuật điều khiển đã nhiệt tình giúp đỡ tôi trong quá trình học tập và thực hiện đồ án. 2 CHƯƠNG 1 CƠ SỞ NGUYÊN LÝ HOẠT ĐỘNG CỦA THIẾT BỊ CHỤP CẮT LỚP CỘNG HƯỞNG TỪ HẠT NHÂN 1.1. Hiện tượng cộng hưởng từ hạt nhân Hiện tượng cộng hưởng từ hạt nhân là sự tương tác có chọn lựa của các hạt nhân nguyên tử đặt trong từ trường không đổi với thành phần từ tính của sóng điện từ đi qua. Hiện tượng này chỉ có thể khảo sát chính xác trong cơ học lượng tử. Trong khuôn khổ của Luận văn chỉ hạn chế nghiên cứu một số nội dung cần thiết có liên quan đến nguyên lý hoạt động của thiết bị CCL CHTHN. Hạt nhân các nguyên tử đều có tích điện. Hạt nhân nguyên tử của một số nguyên tố hoá học (không phải tất cả các nguyên tố hoá học) có mô men động lượng riêng (mômen spin từ). Sự quay của hạt nhân với điện tích dương dẫn đến sự xuất hiện từ trường được đặc trưng bởi mômen từ và làm cho hạt nhân nguyên tử có thể được coi như một lưỡng cực từ. Mômen từ này được xác định theo công thức sau: → pm (1.1) →→ = Lγmp Hình 1.1 : Biểu diễn của mô men từ trong không gian 3 Trong công thức trên, hệ số tỷ lệ γ được gọi là hệ số từ giảo hay hệ số từ hồi chuyển của mômen quỹ đạo. Đối với proton (hạt nhân của nguyên từ Hydro) thì: p2m eγ − = (1.2) Ở đây e - = -1,6.10-19 C (Điện tích của điện tử). Mp= 1,67.10-27 kg (Khối lượng Proton ). → L là mômen động lượng của hạt nhân. Khi không có từ trường ngoài, các lưỡng cực từ định hướng bất kỳ trong không gian. Khi đặt một mẫu vật chứa các hạt nhân nguyên tử có mômen từ riêng (chẳng hạn như hạt nhân nguyên tử H chứa một proton) vào một từ trường không đổi có cường độ , thì các lưỡng cực từ sẽ được định hướng chủ yếu theo hướng của từ trường này và làm xuất hiện vector từ hoá của một thành phần thể tích (voxel) được xác định như sau: → οH (t)M → = = (1.3) → M ∫ → ∆V pmd dVm ∆V p∫ → Thuật ngữ voxel được dùng ở đây là muốn nói đến một thành phần thể tích vô cùng nhỏ của mô ∆V, nhưng chứa đủ số lượng nguyên tử( khoảng 1020 nguyên tử) để có thể sử dụng cách tiếp cận vĩ mô. Giá trị của từ hoá M của mỗi voxel tỷ lệ thuận với mật độ proton trong nó, giá trị này sẽ quyết định đến cường độ điểm ảnh trong ảnh cộng hưởng từ sau này. Khi không có từ trường ngoài thì 0=Mr do các momen từ Pmr có hướng ngẫu nhiên. 4 Khi không có từ trường ngoài Khi có từ trường ngoài B0 N X Y Z M B0 S Hình 1.2: Trạng thái của các mômen spin từ khi không có và có từ trường ngoài B0 Như vậy vectơ từ hoá chính là đặc trưng địa phương của các mômen spin từ, nó được xác định tại một điểm. Giá trị của nó có thể được tính một cách hình thức theo (1.3) bằng cách lấy giới hạn các biểu thức khi cho . → M 0∆V → Xét trường hợp khi có thể bỏ qua các hiện tượng phân tán và giữa véctơ của mỗi lưỡng cực riêng biệt với véctơ tồn tại một góc nào đó. Trong trường hợp này lưỡng cực sẽ bắt đầu quay, phương trình mô tả chuyển động quay này có dạng như sau: → pm → οH →→ → ×= οp Hmdt Ld (1.4) Như vậy từ công thức (1.4) và (1.1) rút ra: →→ → ×= οpp Hmγdt md (1.5) Phương trình này hoàn toàn tương đương với phương trình tiến động của vật rắn quanh một trục cố định khi có ngoại lực tác dụng. Tần số tiến động sẽ là: 5 οο γHω −= , →= οο HH (1.6) Tần số được gọi là tần số Larmor. Tính chất quan trọng nhất của nó trong các bài toán chẩn đoán là sự tỷ lệ thuận của nó với cường độ từ trường bên ngoài . Rõ ràng là có thể điều khiển tần số tiến động bằng cách thay đổi . Chẳng hạn nếu để phụ thuộc vào toạ độ thì có thể định vị các khu vực trong cơ thể với tần số xác định. οω → οH οω → οH → οH Chuyển từ mômen từ của từng hạt nhân sang véctơ từ hoá tại điểm xác định trong không gian, ta có: → M →→ → ×= οHMγdt Md (1.7) Cho tới thời điểm này ta coi các quá trình là không phân tán. Tuy nhiên, từ thực nghiệm biết rằng do sự tác động tương hỗ của các nguyên tử với nhau và với trường bên ngoài nên sẽ có sự phân phối lại năng lượng, chẳng hạn như các chuyển động tiến động sẽ không thể tiếp tục bất tận. Giả thiết véctơ được hướng theo dọc trục Oz của một hệ quy chiếu thí nghiệm cố định. Khi này, thành phần theo trục Z của véctơ từ hoá là Mz có giá trị M → οH 0, thành phần này thường được gọi là véctơ từ hoá dọc. Thành phần Mx, My gọi là véctơ từ hoá ngang khi này bằng 0. Giả sử bằng một cách kích động nào đó véctơ sẽ lệch khỏi véctơ một góc. Khi lệch như vậy môđun véctơ sẽ thay đổi. Như giả thiết trước đây véctơ được hướng theo dọc trục Oz (trục +Z) của một hệ quy chiếu thí nghiệm cố định Oxyz. Do đó việc lệch của khỏi có nghĩa là véctơ có dạng: → M → οH → M → οH → M → οH → M 6 (1.8) →→→→ ++= jMiMkMM yxz Ở đây ( ) là các véctơ đơn vị của hệ toạ độ Đề-các cố định. →→→ k,j,i Khi không còn các tác động khác lên véctơ ngoài trường bên ngoài , véctơ sẽ quay dần về hướng véctơ , sự quay về này còn được gọi là sự dãn hồi hay sự tiến động (chương động) và được đặc trưng bởi hai hằng số thời gian dãn hồi T → M → οH → M → οH 1 và T2. Xung RF M Hình 1.3: Quá trình dãn hồi của véctơ từ hoá Hằng số thời gian T1 đặc trưng cho quá trình giảm về giá trị ở trạng thái cân bằng của thành phần Mz. Thời gian này được gọi là thời gian dãn hồi spin - mạng. Hằng số thời gian T2 đặc trưng cho quá trình dãn hồi về vị trí cân bằng của véctơ từ hoá ngang Mxy được gọi là thời gian dãn hồi spin - spin. Nhìn chung T2 ≤ T1. Véctơ từ hoá trong mặt phẳng XY trở về 0 trước khi véctơ từ hoá dọc tăng dần đến giá trị cân bằng. Một điểm cần chú ý ở đây là các hằng số T1 và T2 không phải là khoảng thời gian tiền động hoàn toàn về trạng thái cân bằng của các thành phần của vector từ hoá. Thông thường T1, T2 được lấy tại thời điểm khi thành phần từ trường dọc Mz tăng đến giá trị khoảng 63% giá trị ban đầu của nó, và thành phần từ trường ngang suy giảm còn khoảng 37% giá trị cực đại. 7 Hình 1.4: Đường cong dãn hồi Các hằng số T1 và T2 này phụ thuộc vào các kiểu mô khác nhau. Ví dụ ở một số loại mô cụ thể như sau: Loại mô T1 (s) T2 (ms) Mật độ proton Dịch não tuỷ (CSF) 0.8 - 20 110 - 2000 70 – 230 Chất trắng 0.76 – 1.08 61-100 70 – 90 Chất xám 1.09 – 2.15 61 - 109 85 – 125 Màng não 0.5 – 2.2 50 - 165 5 – 44 Cơ 0.95 – 1.82 20 - 67 45 – 90 Mô mỡ 0.2 – 0.75 53 - 94 50 – 100 Kết hợp (1.7) và (1.8) và thực nghiệm quá trình dãn hồi có dạng hàm mũ theo thời gian ta nhận được phương trình: 1 oz 2 yx ο T k)M(M T jMiM HMγd dt Md →→→ →→ → −−+−×= (1.9) Phương trình này mô tả vĩ mô hiện tượng tiến động của véctơ từ hoá có tính đến các quá trình dãn hồi và được gọi là phương trình Bloch. Do = const nên các phương trình (1.7) - (1.9) cho ta lời giải chính xác. Cụ thể đối với các phương trình (1.7) khi đặt điều kiện ban đầu: → οH ( )ozoyox 0t M,M,MM = = → ; (1.10) →→ = kHH oo 8 Lúc này các phương trình mô tả sự thay đổi của theo thời gian được viết như sau: → M ⎪⎪ ⎪ ⎩ ⎪⎪ ⎪ ⎨ ⎧ = −= = 0 dt dM MγH dt dM MγH dt dM z xo y yo x (1.11) Lời giải của (1.11) có dạng sau: (1.12) ⎪⎪⎩ ⎪⎪⎨ ⎧ = += −= o zz o o yo o xy o o yo o xx M(t)M tcosωMtsinωM(t)M tsinωMtcosωM(t)M Thực hiện tương tự đối với phương trình (1.9) cho ta lời giải sau: ⎪⎪ ⎪ ⎩ ⎪⎪ ⎪ ⎨ ⎧ −−+−= +−= −−= ))T texp((1M)T texp(M(t)M t)cosωMtsinω)(MT texp((t)M t)sinωMtcosω)(MT texp((t)M 1 0 1 o zz o o yo o x 2 y o o yo o x 2 x (1.13) Các biểu thức (1.13) mô tả sự tiến động điều hoà của véctơ quanh trục Oz. Trong các công thức (1.13) có thể thấy rằng khi có sự phân tán các thành phần sẽ giảm dần tới không tại giới hạn, thành phần tiến tới giá trị cân bằng theo quy luật hàm mũ; ở đây các phương trình Bloch (1.9) đã được xây dựng sao cho với các điều kiện đã mô tả có thể nhận được lời giải (1.13). → M (t)M (t),M yx (t)Mz oM Để ngắn gọn hơn ta đưa vào đại lượng phức yxxy iMMM += (1.14) Lúc này hai công thức đầu tiên của (1.13) sẽ có dạng sau : )T ttexp(iωM(t)M 2 o o xyxy −= (1.15) Ở đây ( )iθAexpiMMM oyoxoxy ≡+= . 9 1.2. Kích hoạt tín hiệu cộng hưởng từ hạt nhân Để kích hoạt sự tiến động của các hạt nhân với mục đích sau đó thu nhận tín hiệu CHTHN phát ra, ta sử dụng trường điện từ cao tần được định hướng một cách đặc biệt trong không gian. Giả sử véctơ dao động của trường này song song với trục Ox, hay chính xác hơn là thành phần từ trường được mô tả dưới dạng: (t)Hb → (1.16) →→ = i)(t).cos(ωt2H(t)H 1b Lúc này có thể biến đổi (1.16) về dạng sau: (1.17) ( ) ( ) ( ) ( ) ⎥⎦⎤⎢⎣⎡ −+⎥⎦⎤⎢⎣⎡ += →→→→→ jωtsiniωtcos(t)Hjωtsiniωtcos(t)H(t)H 11b ( Thừa số 2 trong (1.17) được đưa vào để tiện lợi trong biến đổi ) Theo lý thuyết trường cao tần dạng trường (1.16) gọi là trường phân cực phẳng; biểu thức trong các ngoặc đứng (1.17) là các trường phân cực tròn và phân cực của trường trong ngoặc đứng đầu tiên là ngược với phân cực trong ngoặc đứng thứ hai. Một trong những trường phân cực tròn sẽ tác động tương hỗ với các hạt nhân (khi tần số trùng với tần số tiến động Larmor ) có chứa mômen từ. Đây chính là bản chất của hiện tượng CHTHN. ω οω Giả sử hiệu ứng CHTHN được xác định bởi ngoặc đứng đầu tiên; biểu thức: (1.18) ( ) ( ) ⎥⎦ ⎤⎢⎣ ⎡ += →→ → jωtsiniωt cos(t)H(t)H~ 1b được gọi là trường hiệu dụng. Dưới đây tất cả các chỉ số và ký hiệu sóng đối với trường hiệu dụng sẽ được bỏ qua. Chúng ta sử dụng phương trình Bloch để xác định trường (1.18) tác động như thế nào đến véctơ từ hoá . Trước tiên ta để ý rằng thông thường độ rộng của xung cao tần không vượt quá 2ms, trong khi thời gian dãn (t)M → 10 hồi ngắn nhất không ít hơn 40ms. Do đó đối với các khoảng thời gian không vượt quá 40ms có thể bỏ qua sự phân tán và sử dụng các phương trình (1.7): →→ → ×= HMγ dt Md (1.19) Khi có trường cao tần, từ trường tác động sẽ có dạng sau: →→→→ ++= kHj(t)(sinωt)Hi(t)(cosωt)H(t)H o11 (1.20) Khi này, phương trình (1.19) có thể viết lại dưới dạng các thành phần như sau: ⎪⎪ ⎪ ⎩ ⎪⎪ ⎪ ⎨ ⎧ −= −= −= (t)cosωtHγM(t)sinωtHγM dt dM HγM(t)cosωtHγM dt dM (t)sinωtHγMHγM dt dM 1y1x z 0x1z y 1zoy x (1.21) Đối với dạng quan hệ bất kỳ không thể xác định được lời giải chính xác cho hệ phương trình (1.21), tuy nhiên trong trường hợp khi: (t)H1 constH(t)H 11 == (1.22) có thể xác định được lời giải này. Giả thiết thêm là oo γHωω −== và chuyển sang các hàm mới u, v bằng cách thế : (1.23) ⎪⎩ ⎪⎨ ⎧ = +−= += zz oyox oyox MM tcosωMtsinωMv tsinωMtcosωMu Từ công thức (1.23) thấy rõ là đại lượng u bằng hình chiếu của véctơ từ hoá lên trục của hệ toạ độ Đề-các quay quanh trục Oz với tốc độ góc , đại lượng v bằng hình chiếu của véctơ lên trục của cùng hệ toạ độ này ( ). → M →′i oω → M →′j →→ =′ kk 11 Thế biểu thức (1.23) vào phương trình (1.21) sẽ cho ta hệ phương trình đơn giản sau: ⎪⎪⎩ ⎪⎪⎨ ⎧ −= = = vγHdt dM MγHdt dv 0dt du 1 z z1 (1.24) Theo các giả thiết đã nêu ở trên, có các điều kiện ban đầu sau: ⎪⎪⎩ ⎪⎪⎨ ⎧ == == == o z z M0t M 00t v 00t u (1.25) Ở đây - giá trị cân bằng của véctơ từ hoá khi không có kích động cao tần. Lúc này ta sẽ có lời giải của hệ (1.25) dưới dạng sau: o zM → M (1.26) ⎪⎩ ⎪⎨ ⎧ −== = = 111 o zz 1 o z γHωt,cosωM(t)M tsinωMv(t) 0u(t) Như vậy trong hệ toạ độ di động ) véctơ quay quanh trục với tốc độ góc và không rời khỏi mặt phẳng . Góc quay sau thời gian τ sẽ là: →→→→ =′′′ kk,j,i( →M(t) →′i 1ω )k,j( →→ ′′ τωα 1= (1.27) Góc này thường được chọn bằng π/2 hoặc bằng cách tạo độ rộng tương ứng cho xung kích động cao tần. Khi π (t)HH 11 = là xung với độ rộng hữu hạn τ, có thể xác định góc theo công thức sau: α (1.28) ∫−= τ o 1(t)dtHγα Kết quả này được thiết lập dựa trên phương pháp của lý thuyết các kích động. 12 1.3. Tín hiệu cộng h Như chúng ta đối tượng được đặt được kích thích bởi vector từ trường tổn Sự quay này còn đư do. Sự thay đổi của nó sang dạng tín hiệ thì khi một cuộn dây ứng một điện áp tha Tín hiệu điện áp này nhận được gọi là cá cuộn RF này được hiệu CHTHN luôn. Tín hiệu CHT Trong biểu th ngang , tần)0,(rMxy . )(, rxyBr ưởng từ hạt nhân đã biết hiện tượng cộng hưởng từ hạt nhân xẩy ra khi một trong một từ trường ngoài 0B r với cường độ rất lớn và một từ trường )(1 tB r dao động với tần số vô tuyến. Lúc này g cộng sẽ quay quanh phương của từ trường ngoài → M 0B r . ợc gọi là quá trình chương động hay quá trình dãn hồi tự từ trường M có thể được thu nhận bằng cách chuyển đổi u điện. Dựa vào định luật Faraday về sự cảm ứng điện từ kín được đặt trong từ trường biến thiên trong nó sẽ cảm y đổi với tần số bằng với tần số thay đổi của từ trường. chính là tín hiệu CHTHN, còn các cuộn dây dùng để thu c cuộn vô tuyến RF. Thực tế trong nhiều trường hợp các dùng vừa để kích thích xung vô tuyến, vừa thu nhận tín HN cảm ứng trong cuộn thu có dạng sau: ức trên cho thấy tín hiệu CHTHN phụ thuộc vào từ trường số tiến động Lamour )(rω và độ nhạy của cuộn thu Hình 1.5: Dạng tín hiệu cộng hưởng từ h hâ 13 Tín hiệu điện áp CHTHN là một tín hiệu điện áp cao tần bởi vì thành phần từ trường ngang chương động với tần số Lamour rất lớn (khoảng vài trăm MHz). Điều này gây ra một số vấn đề khó khăn đối với các mạch điện dùng trong các quá trình xử lý sau này. Trong thực tế để tránh vấn đề này, tín hiệu CHTHN thường được loại bỏ đi thành phần tần số cao nhờ phương pháp tách sóng pha, hay phương pháp giải điều chế tín hiệu. Quá trình giải điều chế được thực hiện bằng cách nhân tín hiệu CHTHN với một tín hiệu hình sin chuẩn sau đó cho đi qua bộ lọc thông thấp để loại bỏ thành phần tần số cao. Quan sát hình vẽ và giả sử tín hiệu chuẩn có dạng )(tV )(tV )cos(2 otω , ta có: Hình 1.6: Sơ đồ phương pháp giải điều chế tín hiệu Tín hiệu ra sau bộ trộn( bộ nhân) sẽ có dạng : Loại bỏ thành phần tần số cao nhờ bộ lọc thông thấp ta được tín hiệu tần số thấp dạng: 14 Ký hiệu độ lệch tần số )()()( rorr ωωω −=∆ , ta có: Thực tế or ωω <<∆ )( nên ta có thể viết lại biểu thức trên như sau: Như vậy nhờ việc giải điều chế tín hiệu CHTHN ta thu được một tín hiệu tần số thấp với tần số )(rω∆ bằng hiệu giữa tần số cộng hưởng Lamour và tần số tín hiệu chuẩn. Tín hiệu này được gọi là tín hiệu suy giảm cảm ứng tự do hay tín hiệu FID. Ta để ý thấy rằng với một kênh theo sơ đồ giải điều chế như trên thì không thể phân biệt được giữa các tần số CHTHN lớn hơn hoặc nhỏ hơn tần số tín hiệu chuẩn, tức là không phân biệt được các tần số dương 0)( >∆ rω và tần số âm 0)( <∆ rω . Để giải quyết vấn đề này, cần dùng thêm một bộ giải điều chế với tín hiệu chuẩn đưa vào lệch pha 90 độ so với tín hiệu chuẩn trước )sin(2 otω . Như vậy việc giải điều chế tín hiệu CHTHN được thực hiện trên 2 kênh riêng biệt với 2 tín hiệu chuẩn có cùng tần số nhưng lệch pha nhau 900. Đây chính là phương pháp tách sóng pha cầu phương, khi đó tín hiệu ở đầu ra thứ hai có dạng: 15 Hình 1.7: Sơ đồ bộ tách sóng pha cầu phương Như vậy, phương pháp tách sóng cầu pha cầu phương ở trên cho phép tách tín hiệu CHTHN ra làm hai thành phần tần số thấp vuông góc với nhau thường được gọi là các thành phần thực và ảo ( và ). Hai thành phần này tương ứng với các thành phần M )(tSR )(tS I x và My của vector từ trường M và được biểu diễn dưới dạng phức )(S)()( I titStS R += . Vậy biểu diễn toán học của tín hiệu FID có dạng: Mặt khác ta có độ từ hoá ban đầu tỷ lệ với mật độ proton )0,(rM xy )(rρ theo biểu thức: )()0,( rrM xy rrr ηρ= (1.36) Ở đây η là một hằng số tỷ lệ. Khi đó tín hiệu FID có thể được biểu diễn lại như sau: 16 Với hệ số |)(|* , rBA xyrOω= Theo biểu thức trên ta thấy tín hiệu FID thu được sau bộ tách sóng pha cầu phương chính là biến đổi Fourier của mật độ proton của chất đang khảo sát trong đối tượng. Đây là một tính chất có ý nghĩa rất lớn của bộ tách sóng pha cầu phương vì dựa vào đây có thể tái tạo lại được ảnh mật độ proton trong một lát cắt đối tượng. TH FID t Hình 1.8: Tín hiệu suy giảm cảm ứng tự do hay tín hiệu FID Vì các quá trình xử lý để thu nhận các thông tin từ các tín hiệu FIDs đều được thực hiện bằng máy tính nên tín hiệu thu được ở sau bộ tách sóng cần phải được chuyển đổi sang dạng số (chuyển đổi tương tự –số) và được lưu trữ trong bộ nhớ của máy tính. Nhờ việc xử lý của bộ tách sóng cầu phương mà quá trình chuyển đổi tương tự – số này được thuận tiện hơn rất nhiều nhờ các yếu tố sau : - Bộ chuyển đổi A/D lúc này chỉ hoạt động với tần số lấy mẫu bằng một nửa so với việc biến đổi A/D tín hiệu gốc ban đầu. Điều này cho phép thiết lập các phần cứng hoạt động với tần số xung nhịp thấp có ý nghĩa trong việc tiết kiệm năng lượng và nâng cao độ tin cậy. 17 - Bằng việc cho một tần số lấy mẫu nhất định ta có thể thu được các tín hiệu tương tự có dải tần rộng. -Việc xử lý cầu phương giúp cho quá trình biến đổi Fourier nhanh (FFT) trong thuật toán tạo ảnh sau này trở lên hiệu quả hơn do bao quát được một dải tần số rộng. - Dễ dàng xác định được giá trị biên độ và pha của tín hiệu trong quá trình giải điều chế và làm cho quá trình xử lý có tính kết hợp. Góc pha được xác định theo: φ =arctan R I S S (1.38) Còn biên độ : M= 22 IR SS + (1.39) Với: IS là phần ảo là phần thực RS Tín hiệu CHTHN được cảm ứng trong cuộn thu là tín hiệu tổng hợp của tất cả các điểm ảnh trong lát cắt đối tượng được chọn, vì vậy nó là tín hiệu tổng hợp của các tần số và pha khác nhau. Việc sử dụng bộ tách sóng pha cầu phương cho phép ta có thể tách riêng được các thành phần tần số và pha của mỗi tín hiệu này. Điều này có ý nghĩa rất quan trọng quyết định đến việc xác định các thông tin về vị trí của từng điểm ảnh trong lát cắt đối tượng. Các quá trình xác định các thông tin này sẽ được xét đến trong quá trình xử lý và tái tạo lại ảnh sau này. 1.4. Lấy mẫu và chuyển đổi tín hiệu FID tương tự sang dạng số Tín hiệu CHTHN sau khi được xử lý bởi bộ tách sóng pha cầu phương được lưu trữ lại trong bộ nhớ để xử lý và tái tạo ảnh sau này. Quá trình xử lý và tái tạo ảnh này dược thực hiện nhờ các máy tính chuyên dụng có tốc độ xử lý rất cao. Do tín hiệu FID sau bộ tách sóng cầu phương là tín hiệu tương tự nên để có thể lưu trữ được vào bộ nhớ máy tính cần phải lấy mẫu và chuyển đổi chúng sang dạng số. 18 Hình 1.9: Quá trình lấy mẫu phần thực và ảo Quá trình chuyển đổi này được thực hiện nhờ các bộ chuyển đổi tương tự số (ADC hay các bộ số hoá), tín hiệu điện áp FID tương tự được lấy mẫu tại các khoảng thời gian bằng nhau và tại mỗi điểm lấy mẫu được gán với._. một giá trị nguyên (có thể dương hoặc âm) tương ứng với cường độ điện áp. Các số này tạo ra một chuỗi liên tục các giá trị biểu diễn cho tín hiệu FID. Hình 1.10: Quá trình số hoá tín hiệu FID Do có hai kênh thực và ảo đều được chuyển đổi tương tự - số nên dãy các giá trị này được lưu dưới dạng một dãy các cặp giá trị: thực(1), ảo(1); thực(2), ảo(2) …. Trong quá trình lấy mẫu tín hiệu FID ta cần chú ý đến hai tham số quan 19 trọng là số điểm lấy mẫu và chu kì lấy mẫu. Số điểm lấy mẫu chính là số các cặp giá trị thực và ảo, còn chu kì lấy mẫu là khoảng thời gian giữa 2 điểm dữ liệu được lấy mẫu liên tiếp. Chu kì lấy mẫu còn được gọi là khoảng thời gian dừng và được kí hiệu là DW. Khoảng thời gian này cho phép ta có thể xác định được tần số cực đại của tín hiệu là: W*2 1 X D f MA = (1.40) Điều này có nghĩa là tần số lấy mẫu ít nhất phải lớn hơn hai lần tần số của tín hiệu cần lấy mẫu. Điều gì xẩy ra khi tần số tín hiệu vượt quá giá trị tần số W*2 1 D . Vì máy tính không thể biết được bất cứ một giá trị nào nằm giữa các điểm lấy mẫu nên sẽ xẩy ra sự sai khác. Khi này tín hiệu sẽ không đơn thuần là biến mất mà thay vào đó sẽ là một tín hiệu có tần số thấp hơn (như hình vẽ): Hình 1.11:Hiện tượng nhiễu loạn (hay “Aliasing”) Hiện tượng này gọi là hiện tượng nhiễu loạn hay “Aliasing” bởi vì đỉnh quang phổ xuất hiện tại vị trí không đúng trong dải quang phổ cộng hưởng từ hạt nhân. Để khắc phục hiện tượng này thì cần tăng tần số lấy mẫu (hoặc giảm 20 chu kỳ lấy mẫu) cho đến khi tần số lấy mẫu phải lớn hơn ít nhất hai lần tần số của tín hiệu trở lên. 1.5. Phương pháp mã hoá không gian tín hiệu CHTHN Nếu trường tĩnh dùng để định hướng sơ bộ các spin lại không cố định mà phụ thuộc vào toạ độ, thì tần số tiến động Larmor cũng sẽ phụ thuộc vào toạ độ. Sự phụ thuộc này xác định đơn trị một điểm trong thể tích nếu sự phụ thuộc cường độ từ trường H vào toạ độ là tương ứng đơn trị. → H Quá trình làm cho tần số chương động của các spin phụ thuộc vào vị trí không gian được gọi là quá trình mã hoá. Quá trình này được thực hiện nhờ các trường gradient (hay còn được gọi là các gradient từ trường) được tạo ra nhờ các cuộn dây dẫn điện (hay các cuộn gradient). Các gradient từ trường này được dùng để thu nhận các thông tin về tần số và pha của các tín hiệu CHTHN, hay chính là thu nhận thông tin về vị trí của các phần mô phát ra tín hiệu CHTHN. Một gradient từ trường có cường độ thay đổi một cách tuyến tính theo một hướng nào đó. Khi không có gradient từ trường thì từ trường trong toàn bộ đối tượng tạo ảnh là từ trường không đổi hay từ trường đồng nhất Ho. Khi các cuộn gradient được bật sẽ làm xuất hiện một từ trường nhỏ với cường độ thay đổi bổ sung thêm vào từ trường không đổi Ho. →→+= r.GHH o rr (1.41) Hình 1.12: Sự khác nhau về từ trường khi không bật và bật gradient 21 Trong quá trình mã hoá không gian các gradient từ trường này được sử dụng kết hợp theo cả ba hướng vuông góc nhau trong không gian (các hướng x,y và z). Như sẽ thấy sau này, một gradient từ trường được bật theo một hướng (thường theo hướng trục Z) để chọn lát cắt và hai trường gradient còn lại sẽ được bật theo hai hướng vuông góc với hướng z để chẻ các lát cắt đó thành các dòng và cột - tạo ra các phần tử thể tích (các voxel). Các trường gradient này có thể thay đổi theo các hướng x, y và z cho phép tạo ảnh theo một lát cắt bất kỳ qua đối tượng. Như vậy, giả sử ta có gradient từ trường theo cả ba hướng: (1.42) →→→→→→→ +≡+++== k)r.G(Hkz)GyGxG(Hz)y,(x,H)r(H ozyxo Lúc này tại điểm (x,y,z) tần số Larmor sẽ bằng: (1.43) )r.Gγ(HγHω o →→+−=−= Khi này ứng với mỗi một phần tử thể tích trong không gian đối tượng sẽ có một giá trị tần số Lamour khác nhau, và đây chính là quá trình mã hoá thông tin về vị trí các điểm ảnh trong chụp cắt lớp cộng hưởng từ hạt nhân. Tuỳ từng phương pháp tạo ảnh cụ thể mà các trường gradient này được bật tắt tại các thời điểm cụ thể. Các trường gradient này được đồng bộ hoá với các sự kiện khác như quá trình kích thích xung vô tuyến, quá trình thu nhận tín hiệu CHTHN. 1.5.1. Quá trình chọn lớp cắt Chọn lớp trong CCL CHTHN thực chất là chọn các spin trong một mặt phẳng cắt qua đối tượng. Nguyên lý chọn lớp được biểu diễn thông qua phương trình cộng hưởng. Việc chọn lớp được thực hiện bằng cách áp dụng một trường gradient tuyến tính một chiều trong quá trình đưa vào xung kích thích vô tuyến. Một xung kích thích vô tuyến được đưa vào đồng thời với trường gradient sẽ quay các spin nằm trong một lớp cắt hay một mặt phẳng cắt qua đối tượng. 22 Hình 1.13: Thực hiện chọn lát cắt bằng gradient Ta giả sử trường gradient Gz chọn lớp cắt này được tác dụng theo phương trục Z như hình vẽ: Hình 1.14: Dạng gradient chọn lát cắt Khi này từ trường sẽ tăng tuyến tính theo chiều dương của trục Z và ngược lại sẽ giảm tuyến tính theo chiều âm của trục Z. Do gradient từ trường được đặt dọc theo trục của bệnh nhân, nên mỗi lát cắt của mô sẽ nằm trong một khoảng cường độ từ trường khác nhau và sẽ dẫn đến sự cộng hưởng ở các tần số khác nhau. Điều này xảy ra bởi vì tần số cộng hưởng của các proton tỷ lệ với cường độ của từ trường. (1.44) )r.Gγ(HγHω Zo →→+−=−= 23 Khi gradient chọn lát cắt này được bật, đồng thời các xung vô tuyến được phát vào cơ thể. Vì các xung này chứa một dải tần với độ rộng nhất định, nên chúng có thể kích thích các mô chỉ trong một lát cắt cụ thể. Vị trí của lát cắt có thể thay đổi hoặc dịch chuyển dọc theo trường gradient này bằng cách thay đổi giá trị tần số xung vô tuyến RF. Độ dày của một lát cắt phụ thuộc vào hai yếu tố: thứ nhất là cường độ và độ dốc của trường gradient, và thứ hai là dải tần số hay độ rộng dải tần của xung vô tuyến RF. Hình 1.15: Ảnh hưởng của dải tần xung vô tuyến đến độ dày lát cắt Công thức xác định độ dày của lát cắt: )2**/( πγω ZGZ ∆=∆ (1.45) Và dải tần số cộng hưởng được tạo ra do tác dụng của gradient chọn lát cắt là: ZGf Z ∆=∆ **γ (1.46) 1.5.2. Mã hoá tần số Bước tiếp theo trong quá trình mã hoá không gian là quá trình mã hoá tần số. Ý nghĩa của quá trình mã hoá tần số trong tạo ảnh cộng hưởng từ hạt 24 nhân là làm cho các phần tử thể tích (voxel) của mô phát ra các tín hiệu có tần số khác nhau dùng để tạo ra một chiều của ảnh. Quá trình mã hoá tần số này được thực hiện nhờ một trường gradient, giả sử là theo hướng trục X. Hình 1.16: Dạng gradient mã hoá tần số Tương tự như trường gradient theo phương Z ở trên, gradient từ trường Gx này cũng tăng tuyến tính theo chiều dương của trục X và ngược lại sẽ giảm một cách tuyến tính theo chiều âm của trục X. Khi đó tần số Lamour của các proton sẽ thay đổi theo hướng X và tần số của các vector từ trường ngang của mỗi thành phần thể tích (voxel) xác định theo: Fx= π γ 2 (B0+Gx.X) (1.47) Các tần số khác nhau của của tín hiệu cộng hưởng từ xác định vị trí của các voxel trên trục X. Ta nói rằng chúng được mã hoá tần số. Vì vậy các voxel trên một cột có cùng tần số, biên độ tần số của tín hiệu là tập hợp của tất cả các voxel tương ứng với cột đó. Để hiểu rõ hơn về quá trình này, ta hãy nhớ lại sự phát ra tín hiệu vô tuyến từ một voxel của mô, như chỉ ra trong hình vẽ sau: 25 Hình 1.17: Sự tạo ra tín hiệu vô tuyến từ một voxel của mô Các tín hiệu tần số vô tuyến được tạo ra ngay sau khi kích thích xung vô tuyến, tức là khi xuất hiện vector từ trường ngang XYM r . Tần số của các tín hiệu vô tuyến này được xác định bởi tốc độ quay của thành phần từ trường ngang hay chính là phụ thuộc vào cường độ của từ trường tác động lên các voxel. Hình 1.18: Sử dụng một trường gradient để mã hoá tần số cho các tín hiệu 26 Trên hình vẽ là quá trình mã hoá tần số cho các tín hiệu phát ra từ một cột các voxel. Trong ví dụ này gradient được dùng dọc theo chiều thẳng đứng, cường độ gradient tăng từ dưới lên trên. Điều này có nghĩa là mỗi voxel ở vị trí khác nhau trong cột sẽ có tần số cộng hưởng khác nhau và tần số này tăng dần từ dưới lên trên. Gradient mã hoá tần số được bật tại thời điểm thu nhận tín hiệu, các tín hiệu từ tất cả các voxel được tạo ra một cách đồng thời và được trộn lẫn với nhau thành một dạng tín hiệu tổng hợp. Từng tín hiệu phát ra từ mỗi một voxel sẽ được tách riêng ra trong quá trình tạo ảnh sau này. 1.5.3. Quá trình mã hoá pha Như vậy trong quá trình mã hoá không gian tín hiệu CHTHN ta đã thực hiện được hai bước mã hoá, đó là: chọn lát cắt để tạo ra một thiết diện hai chiều mỏng và mã hoá tần số cho một chiều của lát cắt đó. Để thu được chính xác thông tin về vị trí của các tín hiệu ta cần thực hiện quá trình mã hoá theo chiều còn lại (vuông góc với chiều mã hoá tần số) của lát cắt đó. Tương tự như quá trình mã hoá tần số, quá trình mã hoá pha được thực hiện nhờ một trường gradient Gy (giả sử có phương theo chiều trục Y) như sau: Hình 1.19: Dạng gradient mã hoá pha 27 Tuy nhiên trong tạo ảnh cắt lớp cộng hưởng từ hạt nhân, thông thường quá trình mã hoá pha thường được thực hiện trước khi thực hiện quá trình mã hoá tần số. Vì vậy gradient từ trường mã hoá pha Gy thường được bật trước trong một khoảng thời gian ngắn sau đó sẽ đó sẽ được tắt đi. Tiếp theo đó quá trình mã hoá tần số được thực hiện cùng với quá trình thu nhận tín hiệu CHTHN. Hình 1.18: Sử dụng một trường gradient để mã hoá pha cho các tín hiệu Trong khoảng thời gian bật của Gy, các vector từ trường sẽ quay với các tần số khác nhau tuỳ thuộc vào vị trí trên trục Y. Sau khi gradient từ trường Gy tắt , tất cả các vector từ trường của các thành phần thể tích (voxel) sẽ lại quay với cùng một tần số như ban đầu. Tuy nhiên các vector từ trường này đã bị di pha đi theo phương của trục Y, tức là các vector từ trường sẽ có hướng khác nhau ở các vị trí khác nhau trên trục Y. Còn trên cùng một hàng các vector từ trường này có cùng hướng hay có cùng tần số. Góc di pha phụ 28 thuộc vào vị trí của các voxel trên trục Y được xác định bởi cường độ gradient từ trường Gy và khoảng thời gian tác động ∆ t. γφ = .Gy.Y.∆ t (1.48) Như vậy có thể nói các tín hiệu tạo ra từ mỗi voxel đã được mã hoá pha. Tất cả các tín hiệu này được phát ra tại cùng một thời điểm và được trộn với nhau như một tín hiệu phức hợp. Các tín hiệu này sẽ được tách ra thành các thành phần tín hiệu riêng trong quá trình tái tạo ảnh sau này. Thực tế mã hoá pha là bước thứ hai trong quá trình mã hoá dùng các trường gradient. Trong mỗi một chu kỳ tạo ảnh, gradient mã hoá pha được thay đổi từng khoảng giá trị nhỏ một, gọi là các bước mã hoá pha. Tập hợp các bước khác nhau đó tạo ra các “view” khác nhau cần để tạo ra ảnh cuối cùng. Mỗi một bước mã hoá pha tạo ra một tín hiệu phức hợp của tất cả các voxel bên trong một lát cắt. Sự khác nhau giữa các bước là các tín hiệu từ các voxel riêng rẽ có mối quan hệ về pha bên trong tín hiệu phức hợp đó. Để tạo được một ảnh bằng phương pháp biến đổi Fourier hai chiều (2- D FFT), một tín hiệu phức hợp hay một bước mã hoá pha phải được thu nhận cho mỗi một voxel để tạo ra một chiều mang thông tin về pha (chiều mã hoá pha). Do đó số các bước mã hoá pha cần để tạo ra một ảnh xác định kích thước của ma trận ảnh. Ví dụ một ma trận ảnh 128x128 thì phải cần 128 bước mã hoá pha. 1.6. Quá trình xử lý và tái tạo ảnh trong CCL CHTHN Như vậy trong một chu kỳ tạo ảnh, các gradient từ trường Gx,Gy,Gz được bật tắt tại các thời điểm cụ thể và kết hợp với nhau thành một quá trình để có thể mã hoá được các thông tin về vị trí của các điểm ảnh tương ứng với từng vị trí các voxel của mô. Mỗi một quá trình này được gọi là một chu kỳ Gradient và được biều diễn trên một biểu đồ thời gian. Tuỳ từng phương pháp 29 tạo ảnh cụ thể mà các thời điểm bật tắt của các gradient là khác nhau. Biểu đồ một phương pháp tạo ảnh thường được sử dụng trong CCL CHTHN có dạng như sau: Hình 1.19: Một chu kỳ thu nhận tín hiệu CHTHN Đầu tiên gradient chọn lớp cắt được bật, đồng thời tác dụng một xung RF tới các mô. Điều này sẽ giới hạn vùng kích thích từ trường và tạo thành tiếng vọng ứng với các mô trong một lát cắt cụ thể. Thứ hai là dùng một gradient mã hoá pha trong khoảng thời gian ngắn ứng với một chu kỳ để tạo ra sự sai pha theo một chiều của ảnh. Cường độ của gradient này được thay đổi theo từng khoảng nhỏ tương ứng với một bước mã hoá để tạo ra các “view” khác nhau cần thiết cho việc khôi phục ảnh. Cuối cùng là dùng một gradient mã hoá tần số đồng thời vời việc thu nhận tín hiệu tiếng vọng spin phát ra từ các mô. Điều này làm cho các voxel khác nhau phát ra các tín hiệu với các tần số khác nhau. Do có sự kết hợp hoạt động của 3 gradient, nên các voxel riêng rẽ bên trong một lát cắt phát ra các tín hiệu khác nhau theo tần số và pha. Tức là chúng có một sự sai khác về pha theo chiều mã hoá pha và một sự sai khác về 30 tần số theo chiều tần số. Mặc dù các tín hiệu này là phát ra cùng một lúc và được thu nhận bởi bộ thu như là một tín hiệu phức hợp, nhưng nhờ có bộ tách sóng pha cầu phương mà quá trình tái tạo ảnh sau này cho phép ta có thể tách riêng được từng tín hiệu có các thành phần tần số và pha tương ứng của nó. Để chuẩn bị cho việc mô phỏng sau này, sau đây ta sẽ xem xét theo quan điểm toán học một cách chi tiết các quá trình xử lý và tái tạo ảnh CHTHN. Đây thực chất là các quá trình biến đổi toán học và được thực hiện bởi các máy tính chuyên dụng có tốc độ cao. Vai trò chủ yếu của chúng là tính toán xử lý các dữ liệu đã được lưu sẵn trong bộ nhớ thu được sau bộ tách sóng pha cầu phương. Trên thực tế có một vài phương pháp tạo ảnh khác nhau, nhưng phương pháp thông dụng và được sử dụng nhiều nhất trong các thiết bị tạo ảnh MRI hiện này là phương pháp biến đổi Fourier 2 chiều (2-D FFT). Công thức toán học của phép biến đổi Fourier có dạng sau: Với các dữ liệu dạng mảng một chiều (các vector) thì ta có cặp biến đổi Fourier một chiều: Phép biến đổi Fourier 1 chiều thuận: dttitfF ).exp()()( ωω −= ∫ (1.49) Phép biến đổi Fourier 1 chiều ngược: ωωωπ dtiFtf ).exp()(2 1)( ∫= (1.50) Với các dữ liệu dạng mảng nhiều chiều thì ta sẽ có cặp biến đổi Fourier nhiều chiều tương ứng, nhưng trong thực tế ta thường chỉ xét đến các phép biến đổi Fourier hai chiều thực hiện trên dữ liệu là mảng hai chiều hay các ma trận. Ở đây ta có cặp biến đổi Fourier hai chiều sau: Phép biến đổi Fourier 2 chiều thuận: ∫∫ +−= dxdyvyuxiyxfvuF )](exp[),(),( (1.51) 31 Phép biến đổi Fourier 2 chiều ngược: dudvvyuxivuFyxf )]([exp),( )2( 1),( 2 += ∫∫π (1.52) Bây giờ ta sẽ xem xét chi tiết hơn về dữ liệu lưu trong bộ nhớ thu được sau bộ cầu phương. Dữ liệu này còn được gọi là dữ liệu thô (raw data), biểu diễn miền thời gian của nó có dạng sau: Hình 1.20: Dạng biểu diễn của ma trận dữ liệu thô Mỗi tín hiệu FID tương ứng với một chu kỳ thu nhận tín hiệu hay một bước mã hoá pha. Số bước mã hoá pha này phải bằng với kích thước của ma trận ảnh theo chiều mã hoá pha. Điều này có ý nghĩa trong việc thực hiện phép biến đổi Fourier theo chiều thứ hai trong quá trình xử lý và tái tạo ảnh. Đầu tiên phép biến đổi Fourier được thực hiện trên tập hợp dữ liệu thô theo chiều mã hoá tần số. Kết quả cho ta các đỉnh quang phổ tần số của mỗi tín hiệu riêng biệt theo chiều mã hoá tần số tương ứng với các vị trí trên trục X: 32 Hình 1.21: Dạng dữ liệu khi biến đổi Fourier theo chiều mã hoá tần số Ta xét đối với một cột tần số trên trục X có dạng sau : 33 Ta có thể th chiều mã hoá tần số dao độn Hình 1.22: Sự thay đổi giá trị theo chiều mã hoá pha trong một cột tần số ấy được các đỉnh tần số trong một cột trên trục X dao động theo pha. Khi đó nhìn theo chiều mã hoá pha ta có thể coi các đỉnh g này như là một tín hiệu dao động theo thời gian: Hình 1.23: Biểu diễn sự thay đổi giá trị như một tín hiệu thay đổi theo thời gian 34 Khi thực hiện phép biến đổi Fourier theo chiều mã hoá pha ta sẽ thu được các đỉnh tần số đơn của mỗi tín hiệu tại các vị trí trên ma trận ảnh tương ứng với vị trí của voxel phát ra tín hiệu đó. Hình 1.24: Sau khi biến đổi Fourier theo chiều mã hoá pha Toàn bộ quy trình xử lý bằng phép biến đổi Fourier hai chiều có thể được tóm tắt trong hình vẽ sau: 35 Hình 1.25: Quá trình xử lý dữ liệu thô bằng biến đổi phépFourier 2 chiều Khi này ta đã xác định được ma trận ảnh với các vị trí điểm ảnh tương ứng với tín hiệu phát ra từ voxel của mô có các tần số và pha khác nhau. Hình 1.26: Sự tương ứng về vị trí giữa voxel của mô và điểm ảnh nhận được 36 Giá trị biên độ của mỗi đỉnh tần số sẽ tỷ lệ thuận với cường độ sáng trên ảnh. Và khi đó bằng cách đối chiếu mức xám (gán giá trị cường độ với một mức xám nhất định) ta sẽ nhận được ảnh cộng hưởng từ hạt nhân của một lớp cắt đối tượng tương ứng với ma trận điểm ảnh vừa thu được. Cường độ sáng hay tối của điểm ảnh tuỳ thuộc vào giá trị biên độ của nó. Giá trị biên độ càng lớn, điểm ảnh sẽ càng sáng và ngược lại giá trị biên độ càng nhỏ thì điểm ảnh sẽ càng tối. Như vậy tuỳ thuộc vào mật độ proton bên trong cấu trúc mô sẽ cho các mức độ sáng tối khác nhau tương ứng với nó trên ảnh, và chính điều này cho phép phản ánh đúng được cấu trúc thực sự của các vùng mô bên trong cơ thể bệnh nhân. Hình 1.27: Một dạng ảnh cắt lớp CHTHN 1.7. Các phương pháp tạo ảnh 1.7.1. Giới thiệu chung Trong phần trên chúng ta đã biết làm thế nào để tạo ra được một ảnh CHTHN từ một đối tượng, bắt đầu từ việc kích thích tín hiệu, đến việc mã hoá thông tin về vị trí, thu nhận tín hiệu và cuối cùng là tái tạo lại ảnh. Trong phần này sẽ tập trung vào kết quả cuối cùng, đó chính là các ảnh CHTHN. Cụ thể 37 chúng ta sẽ nghiên cứu làm thế nào để có thể thay đổi được độ tương phản của ảnh nhờ một số các phương pháp tạo ảnh cơ bản. Trên thực tế có nhiều phương pháp tạo ảnh khác nhau dựa trên nguyên lý CHTHN. Các phương pháp này khác nhau chủ yếu ở phương pháp kích thích và thu nhận dữ liệu hay chính là kiểu dãy xung RF và trường gradient được sử dụng. Mỗi phương pháp có một tập hợp các tham số cần điều chỉnh để nhận được các đặc tính nhất định của ảnh. Việc lựa chọn tối ưu các tham số này nhằm cải thiện độ tương phản của ảnh tạo ra ảnh có chất lượng tốt và có thể giảm thời gian chụp. Các phương pháp đều có quá trình thu nhận dữ liệu gồm hai giai đoạn, một giai đoạn gắn với sự từ hoá dọc và một giai đoạn gắn với sự từ hoá ngang. Quá trình dịch chuyển từ véctơ từ hoá dọc sang véctơ từ hoá ngang được thực hiện bằng cách sử dụng một xung kích động vô tuyến, quá trình này gọi là quá trình kích động và thường được thực hiện do véctơ từ hoá ngang biểu hiện trạng thái không ổn định hay trạng thái bị kích thích rõ hơn so với véctơ từ hoá dọc. Xung kích động đặc trưng bởi góc quay (Flip Angle - FA). Góc quay 900 sẽ biến đổi toàn bộ thành phần véctơ từ hoá dọc thành véctơ từ hoá ngang. Dạng xung này được sử dụng trong hầu hết các phương pháp, tuy nhiên cũng có phương pháp sử dụng xung kích động với FA < 900. Phương pháp góc quay nhỏ (Small Flip Angle - SFA) chỉ biến đổi một phần véctơ từ hoá dọc thành véctơ từ hoá ngang, phương pháp này chủ yếu sử dụng để làm giảm thời gian chụp. Giai đoạn từ hoá ngang kết thúc tại thời điểm xuất hiện tín hiệu vô tuyến, tức là tín hiệu phát ra từ các mô và sử dụng để tạo ảnh. 38 1.7.2. Phương pháp tiếng vọng spin Phương pháp tiếng vọng spin được đặc trưng bởi dãy xung tạo tín hiệu và tiếng vọng gồm một xung kích động 900 và sau đó sẽ tác dụng tiếp một xung 1800. Hình 1.28: Phương pháp tạo ảnh tiếp vọng spin Quá trình này có thể được giải thích như sau: Đầu tiên dùng một xung vô tuyến 90 độ kích thích tín hiệu CHTHN, sau khi kích thích bằng xung vô tuyến này thì hạt nhân sẽ xuất hiện các thành phần từ trường ngang, chúng quay cùng vận tốc với nhau, hay là cùng pha với nhau quanh phương của từ trường ngoài. Sự quay này chính là sự chương động tự do, tốc độ chương động hay tần số cộng hưởng phụ thuộc vào cường độ từ trường ngoài. Các hạt nhân ở các vị trí khác nhau trong từ trường thì sẽ chương động với các tần số khác nhau. Đối với mỗi phần tử thể tích (một voxel) của mô, có một sự khác biệt nhỏ về cường độ từ trường. Kết quả, sẽ có khác nhau nhỏ về tần số chương động của các hạt nhân trong voxel đó. Sau một khoảng thời gian ngắn, các hạt nhân đó sẽ không còn chương động cùng pha với nhau nữa. Khi đó hướng của các thành phần từ trường ngang của các hạt nhân sẽ không còn giống nhau nữa, và kết quả thành phần từ trường ngang của voxel đó sẽ giảm đi. Hiện tượng này được gọi là sự di pha. Nếu lúc này ta tác dụng vào một 39 xung vô tuyến 1800 thì nó sẽ làm quay các thành phần từ trường ngang đang quay của mỗi hạt nhân này đi một góc 1800 theo mặt phẳng ngang và sẽ làm đảo ngược hướng quay của nó. Quá trình này sẽ dẫn đến sự hội tụ pha trở lại của các hạt nhân, và kết quả là sau một khoảng thời gian đúng bằng khoảng thời gian giữa hai lần kích thích đó thì tất cả các hạt nhân trong một voxel sẽ cùng pha trở lại. Khoảng thời gian TE từ khi kích thích xung vô tuyến 900 đến khi có sự đồng pha trở lại được gọi là khoảng thời gian xẩy ra tiếng vọng. Lúc này cường độ của thành phần từ trường ngang của một voxel là lớn nhất, dẫn đến cường độ của tín hiệu tiếng vọng cũng sẽ là lớn nhất. Mặt khác ta biết rằng quá trình suy giảm của thành phần từ trường ngang được đặc trưng bởi hằng số dãn hồi T2 của mô. Trong hầu hết các quá trình tạo ảnh, cường độ của tín hiệu xác định độ sáng tương ứng của điểm ảnh, và mức độ tương phản đối với từng thành phần riêng biệt của mô được điều chỉnh thông qua giá trị TR và TE. 1.7.3. Phương pháp đảo nghịch phục hồi Phương pháp đảo nghịch phục hồi chính là phương pháp tiếng vọng spin ứng dụng nhằm đạt được một số kết quả xác định. Một trong các ứng dụng là tạo ra độ tương phản T1 cao và ứng dụng thứ hai nhằm chắn tín hiệu dẫn đến thay đổi cường độ sáng (mức xám) của mô mỡ. Hình 1.29: Phương pháp đảo ngược phục hồi 40 Dãy xung đảo nghịch phục hồi nhận được từ dãy xung tiếng vọng spin bằng cách thêm vào một xung đảo ngược 1800. Xung này đưa vào đầu mỗi chu kỳ tạo ảnh để quay véctơ từ hoá đi một góc 1800 trở thành đảo nghịch của véctơ từ hoá ban đầu. Quá trình dãn hồi của véctơ từ hoá bắt đầu từ giá trị âm chứ không phải từ giá trị 0 như trong phương pháp tiếng vọng spin. Giống như phương pháp tiếng vọng spin, phương pháp đảo nghịch phục hồi cũng sử dụng một xung kích động 900 để tạo ra thành phần véctơ từ hoá ngang và một xung 1800 để tạo ra tín hiệu tiếng vọng. Khoảng thời gian thêm vào là thời gian giữ chậm từ xung đảo nghịch (xung 1800 khởi tạo) đến xung kích động 900; được gọi là thời gian đảo nghịch TI (Inversion Time). Việc điều chỉnh TI được thực hiện bởi người sử dụng nhằm điều chỉnh độ tương phản. • Độ tương phản T1 Đặc tính cơ bản mang tính nguyên lý của ảnh sử dụng phương pháp đảo nghịch phục hồi là có độ tương phản T1 cao. Điều này xuất hiện do tổng thời gian dãn hồi dọc tăng lên vì quá trình dãn hồi dọc bắt đầu từ vị trí đảo nghịch. • Hiệu ứng chắn tín hiệu từ mô mỡ Chúng ta biết rằng mô mỡ có giá trị T1 tương đối nhỏ, nó sẽ hoàn thành quá trình dãn hồi dọc nhanh hơn các mô khác. Vấn đề cốt lõi ở đây là véctơ từ hoá của mô mỡ tiến động qua vị trí 0 trước các mô khác. Nếu chọn TI thích hợp (trùng với thời điểm véctơ từ hoá tiến động qua vị trí 0), mô mỡ sẽ không tạo ra tín hiệu tiếng vọng. Việc này được thực hiện bằng cách chọn thời gian TI tương đối ngắn. Phương pháp này thường gọi là phương pháp đảo nghịch phục hồi ngắn (Short TI Inversion Recovery - STIR). 1.7.4. Phương pháp tiếng vọng gradient Kỹ thuật tiếng vọng gradient thường sử dụng cùng với xung kích động tạo góc quay nhỏ hơn 900. Vì vậy phương pháp này còn được gọi là phương 41 pháp tiếng vọng gradient góc quay nhỏ, viết tắt là SAGE (Small Angle Gradient Echo). Phương pháp SAGE đòi hỏi thời gian thu nhận dữ liệu ngắn hơn so với phương pháp tiếng vọng spin. Phương pháp này cũng tăng khả năng điều chỉnh độ tương phản do góc quay cũng là một tham số để điều chỉnh. Hình 1.30: Phương pháp tiếng vọng Gradient Chức năng của xung kích động chính là biến đổi hay làm lệch véctơ từ hoá dọc thành véctơ từ hoá ngang. Khi sử dụng xung kích động tạo góc quay là 900 toàn bộ thành phần véctơ từ hoá dọc chuyển thành thành phần véctơ từ hoá ngang như trong phương pháp tiếng vọng spin. Xung kích động làm suy giảm hoàn toàn thành phần véctơ từ hoá dọc về 0 (tức là bão hoà hoàn toàn) ở đầu mỗi chu kỳ tạo ảnh. Điều này có nghĩa là cần một thời gian TR tương đối dài để véctơ từ hoá dãn hồi. TR là một trong các yếu tố chủ yếu xác định thời gian thu nhận dữ liệu. Khi giá trị TR giảm, véctơ từ hoá ngang và cường độ tín hiệu RF tạo ra trong mỗi chu kỳ cũng giảm, dẫn đến tăng nhiễu loạn trong ảnh. Ngoài ra, việc sử dụng TR ngắn cùng với xung kích động 900 không thể tạo ra ảnh T2 hay ảnh mật độ proton. Một cách giảm TR để tăng tốc độ thu nhận dữ liệu mà loại bỏ được các nhược điểm kể trên là sử dụng xung kích động tạo góc quay nhỏ hơn 900. 42 Xung kích động tạo góc quay nhỏ (FA<900) chỉ biến đổi một phần véctơ từ hoá dọc thành véctơ từ hoá ngang. Điều này có nghĩa là véctơ từ hoá dọc không bị suy giảm hoàn toàn về 0. Góc nhỏ (<900) 900 TR ngắn V éc tơ từ h oá d ọc C ườ ng đ ộ tín h iệ u Mạnh Yếu Thời gian Góc 900 Góc<900 Hình 1.31: Ảnh hưởng của xung kích động tạo góc lệch nhỏ đối với véctơ từ hoá dọc Việc giảm góc quay tạo ra hai hiệu ứng cần được khảo sát đồng thời. Hiệu ứng thứ nhất là véctơ từ hoá dọc không suy giảm hoàn toàn và vẫn giữ một giá trị khá lớn khi TR ngắn. Điều này làm tăng cường độ tín hiệu so với sử dụng xung kích động 900. Tuy nhiên khi góc quay nhỏ, chỉ một phần nhỏ của véctơ từ hoá dọc được chuyển thành véctơ từ hoá ngang làm giảm cường độ tín hiệu. Như vậy, khi thay đổi góc lệch sẽ ảnh hưởng đến cường độ tín hiệu. 43 CHƯƠNG 2 CẤU TẠO, HOẠT ĐỘNG CỦA THIẾT BỊ CHỤP CẮT LỚP CỘNG HƯỞNG TỪ HẠT NHÂN VÀ CÁC PHƯƠNG PHÁP MÔ PHỎNG 2.1. Tổng quan về phần cứng Hình 2.1 : Sơ đồ khối thiết bị chụp cắt lớp CHTHN Thiết bị chụp cắt lớp cộng hưởng từ hạt nhân bao gồm một số các thành phần chính như sau: • Hệ thống nam châm gồm các cuộn nam châm siêu dẫn: tạo ra từ trường chính cực mạnh không đổi • Hệ thống các cuộn gradient: tạo trường gradient • Các cuộn thu phát sóng vô tuyến RF: phát xung vô tuyến và thu tín hiệu CHTHN. • Hệ thống định vị và kiểm soát bệnh nhân (bàn bệnh nhân). 44 • Hệ thống thu nhận tín hiệu gồm bộ tiền khuếch đại, bộ tách sóng pha cầu phương và thiết bị số hoá: xử lý tín hiệu CHTHN trước khi đưa vào hệ thống máy tính để tái tạo ảnh • Hệ thống máy tính chuyên dụng: Bao gồm hệ thống điều khiển(điều khiển toàn bộ quá trình chụp), hệ thống lưu trữ,xử lý và tạo ảnh, hệ thống phân tích hiển thị ảnh… • Máy in phim : dùng để in ra ảnh 2.2. Chức năng và hoạt động của từng khối 2.2.1. Hệ thống nam châm Hệ thống nam châm có chức năng tạo ra từ trường chính Bo. Để đáp ứng yêu cầu cường độ từ trường rất lớn từ 1 Tesla đến 4 Tesla (tuỳ từng thiết bị cụ thể) và độ đồng nhất cao nhằm khôi phục chính xác cấu trúc của đối tượng nên thông thường nó là các nam châm điện từ với các cuộn dây siêu dẫn được giữ ở nhiệt độ gần 0 độ K nhờ các hỗn hợp dung dịch làm lạnh như : Hêli, Nitơ… 2.2.2. Hệ thống tạo trường gradient Đúng như tên gọi, hệ thống này có chức năng tạo ra từ trường gradient bổ xung vào từ trường chính Bo để tham gia vào quá trình mã hoá và giải mã về không gian cho tín hiệu CHTHN phát ra từ đối tượng. Hệ thống tạo trường gradient gồm các cuộn gradient có cấu trúc thích hợp nhằm tạo ra từ trường gradient có cường độ và định hướng mong muốn. Các cuộn dây gradient thường bao gồm 3 cuộn: Cuộn Gx, cuộn Gy và cuộn Gz, tạo ra 3 từ trường gradient tương ứng theo 3 trục X, Y và Z. 45 Hình 2.2: Cuộn dây tạo trường gradient theo trục Y Hình 2.3: Cuộn dây tạo trường gradient theo trục Z Hình 2.4: Cuộn dây tạo trường gradient theo trục X 46 2.2.3. Hệ thống thiết bị vô tuyến Hệ thống thiết bị vô tuyến có chức năng tạo ra xung vô tuyến (hay từ trường kích động B1) để kích thích tín hiệu CHTHN, sau đó thực hiện thu nhận và xử lý sơ bộ tín hiệu vô tuyến phát ra từ các mô của đối tượng. Hệ thống vô tuyến gồm một số thành phần chủ yếu như các cuộn dây RF, nguồn phát xung vô tuyến, các bộ khuếch đại vô tuyến. Xuất phát từ chức năng thu và phát tín hiệu vô tuyến, cuộn dây RF thường chia làm 3 loại chính: − Các cuộn kết hợp phát và thu (cuộn thu phát). − Cuộn phát riêng. − Cuộn thu riêng. Cuộn thu phát vừa đóng vai trò bộ phát xung vô tuyến vừa là bộ thu năng lượng sóng vô tuyến từ đối tượng cần được tạo ảnh. Cuộn phát riêng được sử dụng chỉ để phát xung vô tuyến, còn cuộn thu riêng được sử dụng chỉ để thu nhận tín hiệu từ các spin của đối tượng cần được tạo ảnh. Mỗi loại cuộn dây trên lại có rất nhiều dạng khác nhau. Cuộn RF trong thiết bị chụp cắt lớp có thể được so sánh với thấu kính của máy chụp ảnh. Giống như trong chụp ảnh sử dụng các loại thấu kính khác nhau để chụp cảnh gần và chụp cảnh xa với góc nhìn thay đổi, trong chụp cắt lớp cũng có nhiều loại cuộn dây RF để bảo đảm thích hợp với các trường hợp có thể xảy ra. Một cuộn dây tạo ảnh phải cộng hưởng hay lưu trữ năng lượng có hiệu quả ở tần số Larmor. Tất cả các cuộn tạo ảnh đều có cấu trúc bao gồm các phần tử điện cảm L và điện dung C hình thành mạch cộng hưởng LC với tần số cộng hưởng ν được xác định như sau: LC2π 1 ν = Một số kiểu cuộn dây tạo ảnh được điều chỉnh phù hợp với từng bệnh nhân bằng cách thay đổi điện dung theo một quy luật nào đó. Một yêu cầu 47 khác của cuộn tạo ảnh là từ trường B1 (do._.q*1e-3; %Khoang thoi gian lay mau Ts=1/Fs; %Chu ky lay mau t=0:Ts:T-Ts; %Vecto thoi gian N=length(t); %So cac diem lay mau %Khoi tao cac matran co so if sth<2 th=zeros(10,N); tin_hieu=zeros(3,10); end sth=sth+1; set(handles.tin_hieu,'Value',sth); Fc = str2double(get(handles.fc,'String')); A = str2double(get(handles.biendo,'String')); T2 = str2double(get(handles.spin_mang,'String')); tin_hieu(1,sth)=A; tin_hieu(2,sth)=Fc*1000; tin_hieu(3,sth)=T2*1e-3; th(sth,:)=tin_hieu(1,sth)*exp(-t/tin_hieu(3,sth)).*cos(2*pi*tin_hieu(2,sth)*t); %set(handles.biendo,'String','0'); %set(handles.fc,'String','0'); %set(handles.spin_mang,'String','0'); function qs_Callback(hObject, eventdata, handles) %///////////////////////////////////////////////////////////////////// %Ham thuc hien xu ly tin hieu bang thuat toan cau phuong global th; 118 Fsq = str2double(get(handles.fs,'String')); Tq = str2double(get(handles.time,'String')); Frq = str2double(get(handles.fr,'String')); Fcat = str2double(get(handles.fcuff,'String')); oder = str2double(get(handles.bac,'String')); quan_sat=get(handles.qs,'Value'); Fs=1000*Fsq; T=1e-3*Tq; Fr=1000*Frq; Ts=1/Fs; t=0:Ts:T-Ts; N=length(t); Sr1=2*cos(2*pi*Fr*t); Sr2=2*sin(2*pi*Fr*t); %/////////////////////////////// %Dung cac tin hieu da tao san sumth=sum(th); %Tinh tong cua tat ca cac tin hieu real=sumth.*Sr1; %Tron voi tin hieu chuan image=sumth.*Sr2; %Tron voi tin hieu chuan da di pha 90 do [b,a]=butter(oder,2*Fcat/Fs); %Thiet lap tham so bo loc real=filtfilt(b,a,real); %Thuc hien viec loc tung thanh phan image=filtfilt(b,a,image); %//////////////////////////////////// Stq=real+i.*image; St1q=conj(Stq); thuc=(Stq+St1q)/2; ao=-i.*(Stq-St1q)/2; spthuc=fft(thuc); %Bien doi fourier phan thuc spao=fft(ao); %Bien doi fourier phan ao spthuc=1/N.*[spthuc(1) spthuc(2:N/102.4)];%Gioi han va chuan hoa tin hieu spao=1/N.*[spao(1) spao(2:N/102.4)]; 119 f=[0:(N-1)/102.4-1]/(N*Ts); %Vecto tan so switch quan_sat case 2, %Hien thi tin hieu chuan va tin hieu CHTHN gia axes(handles.truc_thuc) plot(t,Sr1,'b-'); title('Tin hieu chuan') axis([min(t) max(t) -10 10]); set(handles.truc_thuc,'XMinorTick','off') grid on; axes(handles.truc_ao) plot(t,sumth,'b-'); title('Tin hieu cong huong tu hat nhan') axis([min(t) max(t) -10 10]); set(handles.truc_ao,'XMinorTick','off') grid on; case 3, % Hien thi tin hieu sau bo tach song cau phuong tren hai kenh thuc % va ao axes(handles.truc_thuc) plot(t,thuc,'b-'); title('Tin hieu FID phan thuc') axis([min(t) max(t) -10 10]); set(handles.truc_thuc,'XMinorTick','off') grid on; axes(handles.truc_ao) plot(t,ao,'b-'); title('Tin hieu FID phan ao') axis([min(t) max(t) -10 10]); set(handles.truc_ao,'XMinorTick','off') grid on; case 4, 120 % Hien thi quan pho tan so cua 2 kenh thuc, ao axes(handles.truc_thuc) plot(f,spthuc,'b-'); title('Quang pho tan so phan tuc') set(handles.truc_thuc,'XMinorTick','off') grid on; axes(handles.truc_ao) plot(f,spao,'b-'); title('Quang pho tan so phan ao') %axis([min(f) max(f) -10 10]); set(handles.truc_ao,'XMinorTick','off') grid on; end function tin_hieu_Callback(hObject, eventdata, handles) global tin_hieu; q1=get(handles.tin_hieu,'Value'); q1=q1+1; A=num2str(tin_hieu(1,q1)); ts=num2str(tin_hieu(2,q1)*1e-3); t2=num2str(tin_hieu(3,q1)*1000); set(handles.biendo,'String',A); set(handles.fc,'String',ts); set(handles.spin_mang,'String',t2); function qs_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function bo_loc_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) 121 set(handles.frame2,'Enable','on'); %set(handles.text18,'Enable','on'); set(handles.text19,'Enable','on'); set(handles.text20,'Enable','on'); set(handles.bac,'Enable','on'); set(handles.fcuff,'Enable','on'); else set(handles.frame2,'Enable','off'); %set(handles.text18,'Enable','off'); set(handles.text19,'Enable','off'); set(handles.text20,'Enable','off'); set(handles.bac,'Enable','off'); set(handles.fcuff,'Enable','off'); end function kieu_loc_Callback(hObject, eventdata, handles) function kieu_loc_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function bac_Callback(hObject, eventdata, handles) function bac_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function fcuff_Callback(hObject, eventdata, handles) function fcuff_CreateFcn(hObject, eventdata, handles) if ispc 122 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function new_Callback(hObject, eventdata, handles) set(handles.tin_hieu,'Value',1); set(handles.fs,'Enable','on'); set(handles.time,'Enable','on'); 123 Phụ lục III: Chương trình mô phỏng quá trình xử lý và hiển thị ảnh function varargout = Xu_ly_Hien_thi(varargin) % Chuong trinh mo phong qua trinh xu ly vafhien thi anh % pha cau phuong. % Chuong trinh mo ta cong doan thu nhan tin hieu he thong thiet bi % chup cat lop CHTHN %//////////////////////////////////////////////////////////////////// % Doan ma khoi tao gui_Singleton = 0; gui_State = struct('gui_Name', mfilename,... 'gui_Singleton', gui_Singleton,... 'gui_OpeningFcn', @Xu_ly_Hien_thi_OpeningFcn,... 'gui_OutputFcn', @Xu_ly_Hien_thi_OutputFcn,... 'gui_LayoutFcn', [],... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function Xu_ly_Hien_thi_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = Xu_ly_Hien_thi_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function tdl_Callback(hObject, eventdata, handles) function ll_Callback(hObject, eventdata, handles) function xlht_Callback(hObject, eventdata, handles) 124 global dulieuLC; anh = uint8(dulieuLC); axes(handles.ht); montage(anh); function phongto_Callback(hObject, eventdata, handles) zoom on; function popupmenu1_Callback(hObject, eventdata, handles) function popupmenu1_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function dong_Callback(hObject, eventdata, handles) close ; function pushbutton7_Callback(hObject, eventdata, handles) function dllc_Callback(hObject, eventdata, handles) global dulieuLC; stt_latcat=get(handles.dllc,'Value'); cs=stt_latcat-1; [dulieuLC]=xl_latcat(cs); if(stt_latcat==29) set(handles.kg,'Enable','on'); set(handles.text14,'Enable','on'); set(handles.gt,'Enable','on'); set(handles.gta,'Enable','on'); set(handles.gh,'Enable','on'); set(handles.ghuong,'Enable','on'); set(handles.n,'Enable','on'); set(handles.d,'Enable','on'); set(handles.pn,'Enable','on'); set(handles.pd,'Enable','on'); 125 set(handles.text15,'Enable','on'); set(handles.text16,'Enable','on'); set(handles.cht,'Enable','on'); else set(handles.kg,'Enable','off'); set(handles.text14,'Enable','off'); %set(handles.ns,'Enable','off'); set(handles.gta,'Enable','off'); set(handles.gt,'Enable','off'); set(handles.gh,'Enable','off'); set(handles.ghuong,'Enable','off'); set(handles.n,'Enable','off'); set(handles.d,'Enable','off'); set(handles.pn,'Enable','off'); set(handles.pd,'Enable','off'); set(handles.text15,'Enable','off'); set(handles.text16,'Enable','off'); set(handles.cht,'Enable','off'); end function dllc_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function kqs_Callback(hObject, eventdata, handles) function kqs_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end 126 function dst_Callback(hObject, eventdata, handles) function dst_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9.9.9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function slider4_Callback(hObject, eventdata, handles) function slider4_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9.9.9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end %Thay doi do sang toi cua anh function giam_Callback(hObject, eventdata, handles) axes(handles.ht); brighten(-0.05); function tang_Callback(hObject, eventdata, handles) axes(handles.ht); brighten(0.05); %/////////////////////////////////////////////////////////// %Thay doi do tuong phan cua anh function pushbutton10_Callback(hObject, eventdata, handles) function tangtp_Callback(hObject, eventdata, handles) global dulieuLC; dulieuLC=(dulieuLC+dulieuLC.*0.05); for x=1:128; for y=1:128; if (dulieuLC(x,y)>100) 127 dulieuLC(x,y)=100; end end end anh = uint8(dulieuLC); axes(handles.ht); montage(anh); function giamtp_Callback(hObject, eventdata, handles) global dulieuLC; dulieuLC=(dulieuLC-dulieuLC.*0.05); anh = uint8(dulieuLC); axes(handles.ht); montage(anh); %/////////////////////////////////////////////////// function kg_Callback(hObject, eventdata, handles) user_az = str2num(get(handles.gta,'string')); user_el = str2num(get(handles.ghuong,'string')); lctx = str2num(get(handles.pn,'string')); lcty = str2num(get(handles.pd,'string')); cht=get(handles.cht,'Value'); load mri; D=squeeze(D); switch cht case 1, axes(handles.ht); view(user_az,user_el); phandles = contourslice(D,[],[],[lctx:lcty],6); view(3); set(phandles,'LineWidth',2); colormap(gray(256)); case 2, %/////////////////////////////////// 128 yy = 24 + lcty*4; if yy <= 106 D(:,1:yy,:) = []; plot(0); p1 = patch(isosurface(D, 5),'FaceColor','white','EdgeColor','none'); p2 = patch(isocaps(D, 5),'FaceColor','interp','EdgeColor','none'); colormap(gray(256)); else plot(0); end %//////////////////////////////////// xx = 20 + lctx*4; if xx <= 108 D(1:xx,:,:) = []; plot(0); p1 = patch(isosurface(D, 5),'FaceColor','white','EdgeColor','none'); p2 = patch(isocaps(D, 5),'FaceColor','interp','EdgeColor','none'); colormap(gray(256)); else plot(0); end %//////////////////////////////////// %//////////////////////////////////// axes(handles.ht); view(user_az,user_el); Ds = smooth3(D); hiso = patch(isosurface(Ds,5),'FaceColor',[1,.75,.65],'EdgeColor','none'); hcap = patch(isocaps(D,5),'FaceColor','interp','EdgeColor','none'); lightangle(45,30); lighting phong; end function ns_Callback(hObject, eventdata, handles) 129 function ns_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function gta_Callback(hObject, eventdata, handles) function gta_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function ghuong_Callback(hObject, eventdata, handles) function ghuong_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function pn_Callback(hObject, eventdata, handles) function pn_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function pd_Callback(hObject, eventdata, handles) function pd_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else 130 set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function cht_Callback(hObject, eventdata, handles) cht=get(handles.cht,'Value'); switch cht case 1, set(handles.text15,'Visible','on'); set(handles.text16,'Visible','on'); set(handles.n,'Visible','off'); set(handles.d,'Visible','off'); case 2, set(handles.text15,'Visible','off'); set(handles.text16,'Visible','off'); set(handles.n,'Visible','on'); set(handles.d,'Visible','on'); end function cht_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end 131 Phụ lục IV: Chương trình mô phỏng toàn bộ nguyên lý hoạt động của thiết bị CCL CHTHN function varargout = MoPhong(varargin) %///////////////////////////////////////////////////////////////////// % Chuong trinh mo phong toan bo quy trinh xu ly cua thiet bi chup cat lop CHTHN %//////////////////////////////////////////////////////////////////// % Doan ma khoi tao gui_Singleton = 0; gui_State = struct('gui_Name', mfilename,... 'gui_Singleton', gui_Singleton,... 'gui_OpeningFcn', @MoPhong_OpeningFcn,... 'gui_OutputFcn', @MoPhong_OutputFcn,... 'gui_LayoutFcn', [],... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function MoPhong_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = MoPhong_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function xl_Callback(hObject, eventdata, handles) global rawdata; %Khai bao du lieu chung global ktmt; global doi_tuong; 132 global T2; aqs=get(handles.qs,'Value'); Ts=1e-3; %Chu ky lay mau Fs=1/Ts; heso=1000/ktmt; %Do phan giai tan so t=0:Ts:(ktmt-1)*Ts; %Vector thoi gian %//////////////////////////////////////// %Tao vector ma hoa pha q1=[-(ktmt)/2:(ktmt)/2-1]; ky1=meshgrid(q1); ky=-ky1(1,:); hsp=360/ktmt; %He so ma hoa pha sn=2*pi/360; %/////////////////////////////////////// rawdata=zeros(ktmt,ktmt); %Tao gia ma tran lat cat doi tuong %Khoi tao cac ma tran luu tru data=zeros(ktmt,ktmt); data1=zeros(ktmt,ktmt); %////////////////////////////////////// %Thuc hien quet tat ca cac voxel trong lat cat for h=1:ktmt for y=0:(ktmt-1) for x=0:(ktmt-1) f=x*heso; % s=doi_tuong(x+1,y+1)*exp(-t/T2(x+1,y+1)).*exp(-i*(2*pi*f*t+ky(h)*hsp*y*sn)); data(x+1,:)=s; end Stong=sum(data); data1(y+1,:)=Stong; end Ssum=sum(data1); %Luu tung tin hieu tieng FID sau moi buoc ma hoa pha 133 rawdata(h,:)=Ssum; end switch aqs, case 1, %Khong lam gi case 2, %Anh tai tao dulieutho=(flipud(rawdata')); %Hieu chinh can thiet anh2=abs(ifft2(dulieutho)); %bien doi Fourier nguoc I2 = uint8(anh2); %Chuyen doi muc xam va hien thi axes(handles.kt); montage(I2); case 3 %Quang pho tan so dulieutho=(flipud(rawdata')); anh2=abs(ifft2(dulieutho)); axes(handles.kt) mesh(anh2); case 4, %Du lieu tho axes(handles.kt); contour(rawdata); end function stt_pixel_Callback(hObject, eventdata, handles) global T2; global matran_nho; global doi_tuong; stt=str2num(get(handles.stt_pixel,'String')); x=matran_nho(1,stt); y=matran_nho(2,stt); T2out=T2(x,y); 134 matdoPout=doi_tuong(x,y); xout=num2str(x); yout=num2str(y); T2out=num2str(T2out); matdoPout=num2str(matdoPout); set(handles.tdx,'String',xout); set(handles.tdy,'String',yout); set(handles.mdp,'String',matdoPout); set(handles.hst2,'String',T2out); function stt_pixel_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function tdx_Callback(hObject, eventdata, handles) function tdx_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function tdy_Callback(hObject, eventdata, handles) function tdy_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function mdp_Callback(hObject, eventdata, handles) function mdp_CreateFcn(hObject, eventdata, handles) if ispc 135 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function kt_pixel_Callback(hObject, eventdata, handles) function kt_pixel_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function t2_Callback(hObject, eventdata, handles) function t2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function tr_Callback(hObject, eventdata, handles) function tr_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9.9.9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function te_Callback(hObject, eventdata, handles) function te_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9.9.9]); else 136 set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function Zoom_Callback(hObject, eventdata, handles) zoom on; function close_Callback(hObject, eventdata, handles) close all; function tiep_Callback(hObject, eventdata, handles) global doi_tuong; global ktmt; global T2; global matran_nho; global T1; ktmt1=get(handles.kt_pixel,'Value'); switch ktmt1 case 1 ktmt=ktmt1*16; case 2, ktmt=ktmt1*16; case 3, ktmt=64; case 4, ktmt=128; case 5, ktmt=256; end stt=str2num(get(handles.stt_pixel,'String')); if stt<2 doi_tuong=zeros(ktmt,ktmt); T2=ones(ktmt,ktmt); matran_nho=zeros(2,ktmt*ktmt); T1=ones(ktmt,ktmt); end 137 tddx = str2double(get(handles.tdx,'String')); tddy = str2double(get(handles.tdy,'String')); matran_nho(1,stt)=tddx; matran_nho(2,stt)=tddy; mdpt = str2double(get(handles.mdp,'String')); T2in=str2double(get(handles.hst2,'string')); T1in=str2double(get(handles.hst1,'string')); doi_tuong(tddx,tddy)=mdpt; T2(tddx,tddy)=T2in; T1(tddx,tddy)=T1in; stt=num2str(stt+1); set(handles.stt_pixel,'String',stt); set(handles.tdx,'String','10'); set(handles.tdy,'String','10'); set(handles.mdp,'String','80'); set(handles.hst2,'String','100'); set(handles.hst1,'String','50'); function moi_Callback(hObject, eventdata, handles) set(handles.stt_pixel,'String','1'); clear ; function hst2_Callback(hObject, eventdata, handles) function hst2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function qs_Callback(hObject, eventdata, handles) function qs_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else 138 set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function sqs_Callback(hObject, eventdata, handles) global rawdata; dulieutho=(flipud(rawdata')); anh2=abs(ifft2(dulieutho)); axes(handles.kt) pcolor(anh2(:,:)); function demo_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) set(handles.hst2,'Enable','off'); set(handles.mdp,'Enable','off'); set(handles.tdx,'Enable','off'); set(handles.tdy,'Enable','off'); set(handles.stt_pixel,'Enable','off'); set(handles.kt_pixel,'Enable','off'); set(handles.text7,'Enable','off'); set(handles.stt_tinhieu,'Enable','off'); set(handles.toadoX,'Enable','off'); set(handles.toadoY,'Enable','off'); set(handles.t2,'Enable','off'); set(handles.hst1,'Enable','off'); set(handles.giatri,'Enable','off'); set(handles.tiep,'Visible','off'); set(handles.moi,'Visible','off'); set(handles.text8,'Enable','off'); set(handles.demog,'Visible','on'); set(handles.qs,'Enable','off'); set(handles.text19,'Enable','off'); set(handles.xl,'Enable','off'); else set(handles.text8,'Enable','on'); 139 set(handles.hst2,'Enable','on'); set(handles.mdp,'Enable','on'); set(handles.tdx,'Enable','on'); set(handles.tdy,'Enable','on'); set(handles.t2,'Enable','on'); set(handles.hst1,'Enable','on'); set(handles.stt_pixel,'Enable','on'); set(handles.kt_pixel,'Enable','on'); set(handles.text7,'Enable','on'); set(handles.stt_tinhieu,'Enable','on'); set(handles.toadoX,'Enable','on'); set(handles.toadoY,'Enable','on'); set(handles.giatri,'Enable','on'); set(handles.tiep,'Visible','on'); set(handles.moi,'Visible','on'); set(handles.demog,'Visible','off'); set(handles.qs,'Enable','on'); set(handles.text19,'Enable','on'); set(handles.xl,'Enable','on'); end function latcat_Callback(hObject, eventdata, handles) global dulieuLC; global anhLC; stt_latcatq=get(handles.latcat,'Value'); stt_latcat=stt_latcatq-1; [dulieuLC,anhLC]=latcat(stt_latcat); function latcat_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end 140 function kqs_Callback(hObject, eventdata, handles) global dulieuLC; global anhLC; stt_latcatq=get(handles.latcat,'Value'); stt_latcat=stt_latcatq-1; [dulieuLC,anhLC]=latcat(stt_latcat); kqs=get(handles.kqs,'Value'); switch kqs case 2, anhLC = uint8(dulieuLC); axes(handles.kt); montage(anhLC); case 3, anhLC1 = uint8(anhLC); axes(handles.kt); montage(anhLC1); end function kqs_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function oklc_Callback(hObject, eventdata, handles) function kg_Callback(hObject, eventdata, handles) function sltr_Callback(hObject, eventdata, handles) tr=round(get(handles.sltr,'Value')); tr=num2str(tr); set(handles.tr,'String',tr); function sltr_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg 141 set(hObject,'BackgroundColor',[.9.9.9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function slte_Callback(hObject, eventdata, handles) tr=round(get(handles.slte,'Value')); tr=(num2str(tr)); set(handles.te,'String',tr); function slte_CreateFcn(hObject, eventdata, handles) usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9.9.9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function edit12_Callback(hObject, eventdata, handles) function edit12_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end function hst1_Callback(hObject, eventdata, handles) function hst1_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % -------------------------------------------------------------------- function Untitled_1_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- 142 function help_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_6_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_7_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function tep_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_4_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_5_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- % -------------------------------------------------------------------- function Untitled_9_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_10_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_11_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function helpPM_Callback(hObject, eventdata, handles) fopen('chuongtrinh.txt','r'); function pushbutton9_Callback(hObject, eventdata, handles) function pushbutton10_Callback(hObject, eventdata, handles) function bt_Callback(hObject, eventdata, handles) zoom out; function pushbutton13_Callback(hObject, eventdata, handles) function pushbutton14_Callback(hObject, eventdata, handles) function pushbutton15_Callback(hObject, eventdata, handles) function pushbutton16_Callback(hObject, eventdata, handles) % -------------------------------------------------------------------- function Untitled_12_Callback(hObject, eventdata, handles) function thoat_Callback(hObject, eventdata, handles) 143 close all; function tscp_Callback(hObject, eventdata, handles) TachSongPhaCauPhuong; % -------------------------------------------------------------------- function kthich_Callback(hObject, eventdata, handles) da3; % -------------------------------------------------------------------- function xlht_Callback(hObject, eventdata, handles) Xu_ly_Hien_thi; % -------------------------------------------------------------------- function z_Callback(hObject, eventdata, handles) zoom on; % -------------------------------------------------------------------- function zo_Callback(hObject, eventdata, handles) zoom out; 144 Phụ lục V: Các hàm định nghĩa dùng trong quá trình mô phỏng function [M]=matran(input) % Ham dung de nhap cac tham so dac trung cua tung loai mo o cuong do tu % truong nhat % dinh, cac gia tri duoc lay tu thuc nghiem. switch input case 1, % Truong hop doi voi tu truong bang 1 T, các giá trị được nhập vào theo thực % nghiệm. M=[280,50,80;460,10.6,86;510,67,54;760,77,62;900,126,77;4000,4000,98;1080,280,89]; case 2, % Truong hop doi voi tu truong bang 1.5 T M=[350,70,80;500,120,86;540,82,54;790,85,62;920,140,77;4200,4200,980;1100,320,89]; % Truong hop doi voi tu truong bang 2 T M=[450,100,80;700,220,86;640,140,54;990,145,62;1050,200,77;6200,5200,98;2100,520,8 9]; % Cot dau tien bieu dien gia tri T1, cot thu hai bieu dien gia tri T2, cot thu ba bieu % dien gia % tri mat do proton, cot thu tu bieu dien gia tri tan so kich thich vo tuyen. end function [anhLC]=latcat(input) % Ham dung de tai cac du lieu co san trong thu vien MatLab if(input<28) load mri; anhLC=double(squeeze(D(:,:,1,input))); end if (input==28) load TBLC; % tai du lieu luu trong file TBLC.mat anhLC=double(dulieuTBLC); end function [LC,anhLC]=latcat(input) % Ham dung de tai san cac du lieu co san trong thu vien MatLab va cac du lieu da % thuc % hien xu ly bang phan mem mo phong. if(input<28) load mri; load cacLC; %Tai cac du lieu luu trong file cacLC.mat LC=double(squeeze(D(:,:,1,input))); anhLC=cacLC(:,:,input); end 145 if (input==28) load TBLC; LC=double(dulieuTBLC); anhLC=[]; end function [Afp,Bfp]=freeprecess(T,T1,T2,f) % Ham mo phong qua trinh dan hoi tu do % tren toan bo khoang thoi gian T (ms), voi cac thoi gian gian hoi T1 va T2 % (ms) % va tan so kich thich vo tuyen f (kHz). phi = 2*pi*f*T/1000; E1 = exp(-T/T1); E2 = exp(-T/T2); Afp = [E2 0 0;0 E2 0;0 0 E1]*zrot(phi); %Tu truong ngang quay quanh truc Z Bfp = [0 0 1-E1]'; function Rz=zrot(phi) %Ham quay vecto tu truong di mot goc phi quanh truc Z Rz = [cos(phi) -sin(phi) 0;sin(phi) cos(phi) 0; 0 0 1]; function Ry=yrot(phi) %Ham quay vecto tu truong di mot goc phi quanh truc Y Ry = [cos(phi) 0 sin(phi);0 1 0;-sin(phi) 0 cos(phi)]; function Rx=xrot(phi) %Ham thuc hien quay vecto tu truong di mot goc phi quang truc X Rx = [1 0 0; 0 cos(phi) -sin(phi);0 sin(phi) cos(phi)]; 146 ._.

Các file đính kèm theo tài liệu này:

  • pdfDA0591.pdf