Giáo trình xử lý ảnh y tế Tập 1a P12
lượt xem 12
download
Nếu dùng tích chập để chuyển hàng loạt các phần tử từ miền không gian sang miền tần số ta nên áp dụng FFT. Phép biến đổi này yêu cầu 2. (N2/2). log2N phép nhân phức và 2. N2. log2N phép cộng phức để thu được 2-D FFT, N2 phép nhân phức trong miền tần số giữa FFT của điểm ảnh và các đáp ứng tần số cuả bộ lọc, 2 . (N2/2) . log2N phép nhân phức cho IFFT.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình xử lý ảnh y tế Tập 1a P12
- l=k*kk-1 ; for(j=k; j>=1; ip
- N / 2 1 N 1 f (k )WN kn kn f (k )W F ( n) N k 0 k N / 2 N / 2 1 N nN / 2 f (k )W N kn f (k ) W 2 k 0 Bây giờ, chia dãy F(n) thành hai dãy dựa trên giá trị chẵn và lẻ của n. N / 21 N [ f (k ) W ( 2n).N / 2 f (k )]W N kn F ( 2n) /2 2 k 0 N / 2 1 N )]WN k 22 n1) ( [ f (k ) W (2n 1).N / 2 f (k F (2n 1) / 2 k 0 W N nN e j 2n 1.0 Chú ý rằng W N (2n1).N / 2 e j (2 1)n 1.0 Vì vậy N / 21 N )]WN kn [ f (k ) f (k F ( 2n) /2 2 k 0 N / 21 N ) WN k ]WN kn [ f (k ) f (k F (2n 1) /2 2 k 0 N Đặt f 10 ( k ) f ( k ) f ( k ) 2 N )]WN k f 11 ( k ) [ f ( k ) f ( k 2 Vì vậy N / 21 f10 (k ).W N kn F ( 2n) /2 (6.39) k 0 97
- N / 2 1 f11 (k ).W N kn F (2n 1) /2 (6.40) k 0 Các biểu thức (6.39) và (6.40) có thể biểu diễn bằng dưới dạng biểu đồ bướm như trong hình 6.6. Chúng ta có thể tiếp tục chia nhỏ các tổng cho trong các biểu thức (6.39) và (6.40), tiếp tục làm như vậy cho tới khi mỗi tổng giảm xuống chỉ còn lại một phần tử. Giải thuật này giống như giải thuật thuật toán phân chia thời gian và để lại cho bạn như một bài tập cho bạn. Một lưu đồ cho FFT phân chia tần số với N = 4 trình bày trong hình 6.7. Bạn cần chú ý đến bậc của dữ liệu đầu ra là bit được đảo. Phần mềm thực hiện thuật toán trên thì rất giống phần mềm thực hiện FFT phân chia miền thời gian, và một chương trình C được cung cấp ở Chương trình 6.2. Có lẽ bạn sẽ tự hỏi: nếu phân chia miền thời gian đã thực hiện được công việc thì tại sao lại phải xem xét thêm FFT phân chia tần số. Để trả lời câu hỏi này, chúng ta sẽ cần xem xét phần kế tiếp, FFT giảm lược. Chương trình 6.2 “FFTDF” FFT phân chia tần số. /**************************** * Program developed by: * * M.A.Sid-Ahmed. * * ver. 1.0 1992.1994 * *****************************/ /* FFT - Decimation-in-frequency routine.*/ #define pi 3.141592654 void bit_reversal (unsigned int *, int, int); void WTS(float *, float *, int, int) ; void FFT(float *xr, float *xi , float, float, int, int); void FFT (float *xr, float *xi, float *wr, float *wi, int m, int N) { /* FFT algorithm. Decimation-in-frequency algorithm. Note : 1. N=2 to the power of m. 98
- 2. The output arrays are left in bit-reverse order. You will need to use routine "bit-reversal" to place them in normal ascending order. 3. The twiddle factors are assumed to be stored in LUT's wr[j and wiEj. You will need to use routine LUT for calculating and storing twiddle factors. */ int ip,k,kk,l,incr,iter,j,i; float Tr,Ti,diffr,diffi; W n W 2 n W 4 n W 8 n 0 0 0 0 0 0 1 2 4 8 8 0 0 2 4 8 4 4 4 0 3 6 12 12 12 2 0 4 8 2 2 2 4 5 10 6 10 10 0 6 0 6 12 12 6 6 4 7 14 14 14 14 0 8 1 1 1 1 0 9 3 5 9 9 1 0 0 10 5 9 5 5 2 4 0 11 7 13 13 13 3 0 2 12 9 3 3 3 4 4 13 11 7 11 11 5 0 0 6 14 13 11 7 7 6 4 15 15 15 15 15 7 Hình 6.7 N = 4, phân chia miền tần số FFT. ip= (N>>1) ; kk=1; incr=N; for(iter=0; iter
- { for(j=0; j
- trường hợp M < L gọi là giải thuật giảm lược đầu vào FFT. Trong trường hợp M > L thuật toán gọi là thuật toán giảm lược đầu ra FFT. Thuật toán giảm lược đầu vào FFT. Trường hợp này sẽ làm hoàn thiện hơn thuật toán phân chia tần số. Hình 6.8 giới thiệu trường hợp M = 1 và L = 4. Từ hình 6.8 chúng ta nhận thấy (L-M) bước đầu tiên có các phần tử bướm và L bước cuối cùng có toàn bộ các bướm. Sơ đồ này giúp chúng ta thay đổi chương trình 6.2 thành chương trình 6.3. Chương trình 6.3 "FFTIP.C". Giảm lược đầu vào FFT. /**************************** * Program developed by: * * M.A.Sid-Ahmed. * * ver. 1.0 1992. * * @ 1994 * ***************************/ /* FFT - input pruning routine. */ void bit_reversal(unsigned int *, int , int); void WTS(float *, float *, int, int); void FFTP(float *xr, float *xi, float *, float *, int,int,int, int); void FFTP(float *xr, float *xi, float *wr, float *wi, int m_output, int N_output, int m_input, int N_input ) { /* FFT pruning algorithm. Deimation-in-frequency algorithm. Note: 1. Noutput=2 to the power of m_output. N_output=Number of samples in the output sequence. M_input=Number of samples in the input sequence. This should also be a multiple of 2. 2. The output arrays are left in bit-reverse order. You will need to use routine "bit-reversal" to place them in normal ascending order. 101
- 3. The twiddle factors are assumed to be stored in LUT's wr[I and wi[I. You will need to use routine LUT for calculating and storing twiddle factors. */ int ip,k,kk,l,inc r,iter,j,i; float Tr,Ti,diffr,diffi; ip=N_output>>1; kk=l ; incr=N_output; for(iter=0; iter
- Hình 6.8 Lưu đồ thuật toán giảm lược đầu vào, N=4 for(iter=(m_output-m_input);iter
- } kk=l; incr>>=l; } } Bài tập 6.3 1.Cho dãy đầu vào : x(k) = 1 k = 0,1,2, ... , 31. x(k) = 0 các trường hợp còn lại. Tính 1024 điểm trong phổ tần số dùng chương trình giảm lược đầu vào FFT. 2. Thêm các giá trị 0 vào dãy để làm cho chiều dài dãy thành 1024. Bây giờ tính FFT scủa dãy dùng chương trình FFT phân chia tần số không giảm lược. So sánh thời gian xử lý của phần 1 và 2. Thuật toán FFT giảm lược đầu ra. Giải thuật phân chia miền thời gian thì thích hợp cho thuật toán giảm lược đầu ra hơn là giải thuật phân chia miền tần số. Lý do là đầu ra trong giải thuật phân chia miền thời gian không phải sắp xếp lại. Hình 6.9 giới thiệu trường hợp với M=4 và L=1. W W W W n=0 n=0 đến 1 n=0 đến 3 n=0 đến 7 0 0 0 0 0 8 8 4 2 1 4 4 8 4 12 12 12 6 2 2 2 8 10 10 6 10 6 6 10 12 14 14 14 14 1 1 1 1 9 9 5 3 5 5 9 5 13 13 13 7 3 3 3 9 11 11 7 11 7 7Lưu đồ cho giảm lược đầu ra FFT, N = 4. 11 13 Hình 6.9 15 15 15 15 104
- Chương trình 6.4 “FFTOP.C” Giảm lược đầu ra FFT. /***************************** * Program developed by: * * M.A.Sid-Ahmed. * * ver. 1.0 1992. * * @ 1994 * *****************************/ /* FFT - output pruning using Decimation-in-time routine. */ # define pi 3.141592654 void bit_reversal(unsigned int *, int , int); void WTS(float *, float *, int, int); void FFTP(float *xr, float *xi, float *, float *,int, int, int, int); void FFTP(float *xr, float *xi, float *wr, float *wi, int m, int N, int m_output, int N_output) { /* FFT output pruning algorithm using Decimation-in-time. Note : 1. N=number of input samples =2 to the power m. N-output = number of output samples =2 to the power motput. 2. The input arrays are assumed to be rearranged in bit-reverse order. You will need to use routine "bit-reversal" for that purpose. 3. The twiddle factors are assumed to be stored in LUT's wr[] and wi[]. You will need to use routine LUT for calculating and storing twiddle factors.*/ int ip,k,kk,l,incr,iter,j,i; float Tr,Ti; 105
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Xử lý ảnh số - Những nguyên lý cơ bản part 5
2 p | 161 | 26
-
Giáo trình xử lý ảnh y tế Tập 1a P1
11 p | 774 | 25
-
Giáo trình xử lý ảnh y tế Tập 1a P17
10 p | 670 | 17
-
Giáo trình xử lý ảnh y tế Tập 1b P1
8 p | 136 | 16
-
Giáo trình xử lý ảnh y tế Tập 1b P15
8 p | 142 | 13
-
Giáo trình xử lý ảnh y tế Tập 1b P5
8 p | 154 | 13
-
Giáo trình xử lý ảnh y tế Tập 1b P3
8 p | 127 | 13
-
Giáo trình xử lý ảnh y tế Tập 1b P4
8 p | 122 | 10
-
Giáo trình Xử lý ảnh y sinh (Ngành Kỹ thuật y sinh): Phần 1
138 p | 46 | 10
-
Giáo trình xử lý ảnh y tế Tập 1b P2
8 p | 124 | 10
-
Giáo trình xử lý ảnh y tế Tập 1b P16
8 p | 110 | 10
-
Giáo trình xử lý ảnh y tế Tập 1a P4
11 p | 586 | 8
-
Giáo trình xử lý ảnh y tế Tập 4 P2
7 p | 98 | 7
-
Giáo trình xử lý ảnh y tế Tập 3 P7
9 p | 98 | 7
-
Giáo trình xử lý ảnh y tế Tập 1b P14
8 p | 107 | 7
-
Giáo trình Xử lý ảnh y sinh (Ngành Kỹ thuật y sinh): Phần 2
115 p | 22 | 7
-
Giáo trình xử lý ảnh y tế Tập 4 P5
6 p | 136 | 6
-
Giáo trình xử lý ảnh y tế Tập 2 P15
8 p | 115 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn