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
154 trang |
Chia sẻ: huyen82 | Lượt xem: 1975 | Lượt tải: 1
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:
- DA0591.pdf