Giáo trình xử lý ảnh y tế Tập 1a P10 doc

10 256 0
  • Loading ...
1/10 trang

Thông tin tài liệu

Ngày đăng: 10/07/2014, 21:20

76      1 0 ¦)()( N n nk N WkfnF (6.6) ở đây f(k) = f(kT) và W N = e - j2 /N . W N được gọi là hạt nhân của phép biến đổi. Tổng quát, F(n) có dạng )( )()( nj enAnF   (6.7) Ký hiệu A(n),  (n) gọi là phổ khuyếch đại và phổ pha của F(n). 6.2.1 Biến đổi ngược DFT Hàm f(k) là biến đổi ngược DFT của F(n) cho bởi theo biểu thức     1 0 2 )( 1 )( N n nk N j enF N kf  (6.8) Chứng minh: Từ định nghĩa của DFT                         1 0 1 0 )( 1 0 1 0 1 0 )( 1 )( 1 )( 1 N m N n mkn N kn N N n N m nm N N n nk N Wmf N WWmf N WnF N (6.9) Đặt      1 0 )( N n mkn N WS Nếu (k = m) thì S = N. Nếu (k  m), chúng ta có thể viết: S = 1 + W N (k -m ) + W N 2(k -m ) + + W N (N-1)(k -m ) hoặc )( 2 ))(2( m)-(k N m)-N(k N 1 1 W-1 W-1 mk N j mkj e e S         Khi e j2  (k-m) = 1 và e j2  /N. (k-m)  1 với (k  m), vì vậy S = 0 với (k  m ). Vì vậy, biểu thức (6. 9) có thể rút gọn thành 77 f(k).N 1 )( 1 1 0 N WnF N N n nk N     Kết quả này giống như biểu thức (6.8). Khi f(k) có thể rút ra từ F(n) và ngược lại, chúng gọi là cặp biến đổi. Cặp biến đổi này có dạng )()( nFkf  Chú ý từ biểu thức (6.8) ta có thể dễ dàng chứng minh: )( )( 1 )( 1 1 0 . 2 1 0 )( 2 kf enF N enF N N n nk N j N n Nkn N j             (6.10) Mặc dù f(k) được xác định trên miền k  [0,N], nó vẫn là tín hiệu tuần hoàn với chu kỳ NT. (T được bao hàm và rút ra từ biểu thức 6.5). 6.2.2 Một vài tính chất của DFT Tuyến tính. Nếu ta có hai dãy tuần hoàn cùng f 1 (n) và f 2 (n), và cả hai dãy này tuần hoàn với chu kỳ N, được dùng để tính f 3 (k) = af 1 (k) + bf 2 (k) (6.11) là kết quả của biến đổi DFT f 3 (n) cho bởi F3(n) = aF1(n) + bF2(n) (6.12) ở đây a, b là hằng số và F 1 (n) = DFT của f 1 (k) F2(n) = DFT của f2(k) Tính đối xứng. Tính đối xứng của DFT rất hay được dùng. nk N j N k nk N j N k N N j N k nNk N eekf eekf WkfnNF                   2 1 0 2 1 0 2 1 0 )( )( )( )()( )( Nkf  78 Nếu f(k) là thực thì                 )()()( 1 0 . 2 nFekfnNF N k nk N j  (6.13) Dấu * có nghĩa là liên hợp phức. Tích chập tuần hoàn. Coi f 1 (k) và f 2 (k) là hai dãy tuần hoàn có chu kỳ N, với biến đổi Fourier rời rạc là F 1 (n) và F 2 (n). Xem xét tích F(n 1 ).F(n 2 ) khi )()( 1 0 1111 1 11      N k kn N WkfnF )()( 1 0 2222 2 22      N k kn N WkfnF và tại các vị trí n 1 = n 2 = n Đặt f 3 (k) = IDFT của F 1 (n).F 2 (n) hay   nk N n WnFnF N kf     1 0 213 )().( 1 )( vì vậy                                     1 0 )( 1 0 22 1 0 11 1 0 1 0 1 0 )( 2211 21 21 1 2 21 1 )()( )()( 1 N n kkkn N N k N k nk N N n N k N k kkn N 3 W N kfkf WWkfkf N (k)f W = .= 2 n- N 2 1 11 1 2 22 1 11 1 0 2211 1 0 1 0 12 1 0 111111 )()( )()()().( k N k kn N N n N k kn N N k kn N Wkfkf WkfWkfnFnF              79 Chú ý là         0 1 1 1 0 )( 21 N n kkkn W N ở đây l là số nguyên. Vì vậy mà )()()( 12 1 01 113 lNkkfkfkf N k     (6.14) ở đây k = 0 đến 2N - 1. Biểu thức trên biểu diễn tích chập của hai tín hiệu tuần hoàn. Chú ý rằng biêủ thức này chỉ áp dụng cho hai dãy có chung một chu kỳ, và chiều dài của dãy tính theo biểu thức trên là 2N - 1. Kết quả này chứng minh rằng trong DFT, tín hiệu có số mẫu lớn hơn N sẽ được biến đổi thành dãy tuần hoàn có chu kỳ N. Khi dùng DFT cho một tín hiệu không có chu kỳ, mà kết quả thu được từ tích hai dãy, ta sẽ phạm một sai lầm gọi là lỗi wraparound. Đó là lý do ta phải làm cho cả hai dãy có chu kỳ bằng nhau. Để sửa lỗi này, một số số 0 cần phải thêm vào cả hai dãy để chiều dài hai dãy bằng nhau. Ví dụ, nếu một dãy có chiều dài A, một dãy có chiều dài B, kết quả ta phải thêm các số 0 cho cả hai dãy có chiều dài ít nhất là A + B - 1. Bài tập 6.1 Cho hai dãy sau     0 1 )( 1 kf     0 1 )( 2 kf 1. Tính bằng tay tích chập của hai dãy trên. Vẽ một lưu đồ biểu diễn thuật toán. 2. Làm lại phần 1, nhưng lần này sử dụng tích chập tuần hoàn. 3. Lập một chương trình C rút ra f 3 (k) từ biểu thức f 3 (k) = IDFTDFT[f 1 (k)]. DFT[f 1 (k)]. So sánh kết quả của phần 1 và phần hai. 4. Bây giờ thêm các số không vào f 1 (k) và f 2 (k) để chu kỳ của chúng = 5 + 6 - 1. Làm lại phần 3 và so sánh kết quả. cho k = k 1 + k 2 + lN các trường hợp còn lại. 0  k 1  4 các trường hợp còn lại. 0  k 1  5 các trường hợp còn lại. 80 6.3 Thuật toán biến đổi nhanh Fourier Tính trực tiếp giá trị của DFT bao gồm N phép nhân phức và N - 1 phép cộng phức cho mỗi giá trị của F(n). Khi N giá trị được tính toán thì N 2 phép nhân và N(N - 1) phép cộng được tính toán. Cũng như vậy, cho N có giá trị rất lớn, tính trực tiếp giá trị của DFT sẽ đòi hỏi một số phép tính lớn đến mức không thể chấp nhận được. Để ví dụ, cho N = 1024 = 2 10 ta sẽ phải tính 2 20 = 1,048,576 phép nhân số phức và một số gần bằng như vậy các phép cộng. Hoàn thiện có nghĩa là phải giảm số phép tính trong biến đổi Fourier xuống. Dưới đây chúng ta sẽ giới thiệu hai thuật toán hay dùng là thuật toán phân chia thời gian và thuật toán phân chia tần số. DFT dùng các thuật toán trên gọi là Fast Fourier transform (FFT). 6.3.1 Thuật toán phân chia thời gian Xem xét tính toán của DFT cho bởi (5.6) với N= 2 r (r là một số nguyên bất kỳ). Cơ sở của thuật toán phân chia thời gian thì rõ ràng. Tuy nhiên, việc thiết kế phần mềm cũng đòi hỏi một số phân tích chi tiết. Để làm rõ các bước của thuật toán này chúng ta sẽ bắt đầu phân tích với N = 16 và sau đó mở rộng ra áp dụng cho N bất kỳ. Cơ sở của thuật toán phân chia thời gian dựa trên cơ sở chiến lược chia và chiếm. Các bước sau sẽ làm sáng tỏ thuật toán. Vì trong trường hợp này N =16; nên,     15 0 16 )()( k nk WkfnF Chia dãy f(k) thành hai dãy, một dãy được rút ra từ phần tử chẵn và một dãy từ những phần tử lẻ. Đó là,       15 0 16 15 0 16 )()()( k nk k nk WkfWkfnF k chẵn k lẻ Chúng có thể viết thành       7 0 )12( 16 7 0 )2( 16 )12()2()( k kn k kn WkfWkfnF (6.15) Chú ý là 81 nk nkjknj kn W eeW      8 . 8 2 )2(. 16 2 )2( 16  vì thế       7 0 816 7 0 8 )12()2()( k nkn k nk WkfWWkfnF đặt f(2k)(k)f 10  1)f(2k(k)f 11  Ta được       7 0 81116 7 0 810 )()()( k nkn k nk WkfWWkfnF (6. 16) Đặt     7 0 81010 )()( k nk WkfnF (6.17)     7 0 81111 )()( k nk WkfnF (6.18) Viết lại biểu thức (6.16) chúng ta được (n)FW (n)F F(n) 11 -n 1610  (6.19) Cũng như vậy, phát triển cho một biểu thức (n)FW -(n)F 8)F(n 11 -n 1610  (6.20) Biểu thức (6.19) và (6.20) định dạng những đơn vị tính toán gọi là bướm. Hình 6.1 là biểu đồ của phần tử bướm. Ký hiệu W 16 -n thường gọi là trọng lượng hay hệ số xoay. Hai biểu thức này biểu diễn bước cuối cùng trong lưu đồ tính toán của hình 6.2. Bây giờ xem xét biểu thức     7 0 81010 )()( k nk WkfnF Xử lý như trên chúng ta có       7 0 4108 3 0 41010 )12()2()( k nkn k nk WkfWWkfnF 82 Dễ thấy -2n 16 -n 8 WW  đặt 1)(2kf(k)f (2k)f(k)f 1021 1020   Hình 6.1 (a) Bướm; (b) Biểu diễn rút gọn. F 10 (n) F(n) F 11 (n) F(n+8) F 10 (n) F(n) F 11 (n) F(n+8) 1 W 16 - n n 83 Hình 6.2 Bước cuối cùng của thuật toán biến đổi FFT phân chia miền thời gian. X(k) ký hiệu vector chứa giá trị được tính qua phép biến đổi FFT. Vì vậy,       3 0 421 3 0 2 1642010 )()()( k nk k nnk WkfWWkfnF (n)FW (n)F (n)F 21 -2n 162010  (6.21) (n)FW - (n)F 4)(nF 21 -2n 162010  (6.22) ở đây     3 0 42020 )()( k nk WkfnF (6.23)     3 0 42121 )()( k nk WkfnF (6.24) Tương tự (n)FW (n)F (n)F 23 -2n 162211  (6.25) (n)FW - (n)F 4)(nF 23 -2n 162211  (6.26) ở đây     3 0 42222 )()( k nk WkfnF (6.27) 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 F 10 (n) F(n) F 11 (n) X(k) X(k) 84     3 0 42323 )()( k nk WkfnF (6.28) và (2k)f (k)f 11 22  1)(2kf (k)f 1123  Biểu thức (6.21), (6.22), (6.25) và (6.26) có thể biểu diễn bằng sơ đồ hình 6.3. Biểu thức (6.23), (6.24), (6.27) và (6.28) có thể tiếp tục chia nhỏ ra như các bước đã làm ở trên như sau: (n)FW (n)F (n)F 31 -4n 163020  (6.29) (n)FW - (n)F 2)(nF 31 -4n 163020  (6.30) (n)FW (n)F (n)F 33 -4n 163221  (6.31) (n)FW - (n)F 2)(nF 33 -4n 163221  (6.32) (n)FW (n)F (n)F 35 -4n 163422  (6.33) (n)FW - (n)F 2)(nF 35 -4n 163422  (6.34) (n)FW (n)F (n)F 37 -4n 163623  (6.35) (n)FW - (n)F 2)(nF 37 -4n 163623  (6.36) ở đây F n f k W nk k 30 30 2 0 1 ( ) ( )    (6.37) F n f k W nk k 31 31 2 0 3 ( ) ( )    (6.38) , vv. Các biểu thức từ (6.29) đến (6.36) cho kết quả trong bước thứ ba của thuật toán và biểu diễn trong lưu đồ hình 6.4.Mỗi phần tử từ F 30 (n) đến F 37 (n) có thể chia tiếp thành hai phần tử nữa và bước này tạo thành sơ đồ cuối cùng (bước đầu tiên) trong lưu đồ. 0 1 2 3 0 1 2 0 1 2 3 4 5 6 0 F 20 (n) 2 F 21 (n) 4 F 10 (n) X(k) X(k) W - 2n Hệ số xoay n=0 đến 3 85 Hình 6.3 Bước thứ hai sau bước cuối cùng trong thuật toán FFT. 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 F 30 (n) F 31 (n) F 32 (n) F 33 (n) F 34 (n) F 35 (n) F 36 (n) F 37 (n) X(k) X(k) Dãy đầu vào đã được sắp xếp lại . phải làm cho cả hai d y có chu kỳ bằng nhau. Để sửa lỗi n y, một số số 0 cần phải thêm vào cả hai d y để chiều dài hai d y bằng nhau. Ví dụ, nếu một d y có chiều dài A, một d y có chiều dài B,. trọng lượng hay hệ số xoay. Hai biểu thức n y biểu diễn bước cuối cùng trong lưu đồ tính toán của hình 6.2. B y giờ xem xét biểu thức     7 0 81010 )()( k nk WkfnF Xử lý như trên chúng. thuật toán. Vì trong trường hợp n y N =16; nên,     15 0 16 )()( k nk WkfnF Chia d y f(k) thành hai d y, một d y được rút ra từ phần tử chẵn và một d y từ những phần tử lẻ. Đó là,
- Xem thêm -

Xem thêm: Giáo trình xử lý ảnh y tế Tập 1a P10 doc, Giáo trình xử lý ảnh y tế Tập 1a P10 doc, Giáo trình xử lý ảnh y tế Tập 1a P10 doc

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay