Xem mẫu

  1. fprintf(fptr,"%e",(float)0.0); w1[0]=w2[0]=-pi; dw=pi/16.0; for(i=1;i
  2. getch(); } /* Dinh nghia ham cho tich phan */ float f(float x,float y) { float H(float,float),a; a=H(x,y)*(float)cos((double)(x*n1))*cos((double)(y*n2)); return(a); } /*********************************************/ /*Chuong trinh con Simpson tinh tich phan kep*/ /*********************************************/ float simpson2( float(*f)(float,float),float xmin,float xmax, float ymin, float ymax, int M, int N) /* f la mot ham hai bien dinh nghia boi nguoi dung. xmin, xmax, va ymin, ymax la gioi han cua hai tich phan. M,N la so khoang cach tren huong x va y va chi co gia tri chan*/ { register i,j; float sum1,sum2,dx,dy,x,y,I; float *A; A=(float *) malloc(M*sizeof(float)); dx=(xmax-xmin)/(float) M; dy=(ymax-ymin)/(float) N; x=xmin; for (i=0;i
  3. sum1+=(*f)(x,y); else sum2+=(*f)(x,y); y+=dy; } *(A+i)=(*f)(x,ymin)+2.0*sum1+4.0*sum2+(*f)(x,ymax); x+=dx; } sum1=sum2=0.0; for(i=1;i
  4. a=R2; 2. Phase contrast filters if(R2
  5. 0.008810 0.007494 0.005306 0.003352 0.001956 0.001102 0.003712 0.003578 0.002844 0.001956 0.001242 0.000743 0.002135 0.001873 0.001496 0.001102 0.000743 0.000473 Hình 2.13 Hình ảnh ba chiều đáp ứng biên độ của bộ lọc thông thấp. Ví dụ 2.6 Lặp lại bài toán trước với bộ lọc tuần hoàn đối xứng Butterworth được cho bởi 1 H (1 ,  2 )  2 ( 2  1) D0 1 D(1 ,  2 ) trong đó D(1 ,  2 )  12   2 2 Giải Thay hàm H(w1,w2) trong chương trình 2.1, như đã giải thích trong phần cuối của chương trình, chúng ta thu được hệ số được liệt kê trong bảng 2.2. Đáp ứng tần số được chỉ trong hình 26
  6. 2.14, và hầu như đúng với đáp ứng tần số gốc được tính từ biểu thức của H (1,  2) . Hình 2.14 Đáp ứng tần số được tính từ 11  11 đáp ứng xung. Bảng 2.2 Một phần tư đáp ứng xung của bộ lọc thông cao 0.896408 -0.047501 -0.017311 -0.008811 -0.003712 - 0.002135 -0.047501 -0.031265 -0.014898 -0.007494 -0.003578 - 0.001873 -0.017311 -0.014898 -0.009506 -0.005306 -0.002844 - 0.001496 -0.008811 -0.007494 -0.005306 -0.003352 -0.001956 - 0.001102 -0.003712 -0.003578 -0.002844 -0.001956 -0.001242 - 0.000743 -0.002135 -0.001873 -0.001496 -0.001102 -0.000743 - 0.000473 27
  7. Bài tập 2.2 Thay hàm H(w1,w2) trong chương trình 2.1 để tính đáp ứng xung trên cửa sổ 11  11 có tâm tại điểm gốc, theo hàm truyền đạt được cho dưới đây: 1. Lọc thông thấp: H (1 ,  2 )  e 0.347D (1 , 2 ) / D0 2. Lọc thông cao: H (1 ,  2 )  e 0.347D / D (1 , 2 ) Với giả định đường tròn 3-dB nằm tại mức 0.3. 28
  8. CHƯƠNG 3 CÁC BỘ LỌC HAI CHIỀU CÓ ĐÁP ỨNG XUNG HỮU HẠN 3.1 Chỉ dẫn Trong chương này chúng ta sẽ chuyển sang việc làm nổi ảnh thông qua các bộ lọc 2-D. Hệ thống 2-D mà chúng ta sẽ đề cập ở đây là các bộ lọc hai chiều đáp ứng xung có độ dài hữu hạn, mà được thiết kế với đặc tuyến phù hợp cho việc xử lý ảnh. Chúng ta cũng sẽ đề cập đến việc thiết kế phần mềm xử lý cho các ảnh được coi là chứa trên vùng đệm hoặc bộ nhớ ngoài như đĩa cứng. Với thiết kế này các chương trình chỉ yêu cầu dung lượng của bộ nhớ trong rất nhỏ, làm cho bộ lọc có khả năng lọc được các ảnh có kích thước rất lớn. 3.2 Biến đổi Z Phép biến đổi z đóng một vai trò rất quan trọng trong việc phân tích và biểu diễn các hệ tuyến tính bất biến (linear-shift invariant - TTBB) rời rạc theo cả thời gian lẫn không gian. Mục đích của phần này là giới thiệu sơ lược phép biến đổi z để hiểu rõ hơn về các bộ lọc hai chiều. Biến đổi z của một tín hiệu được lấy mẫu đồng đều f(t), được cho bởi  Z  f (nT )   f (nT ) z  n (3.1) n 0 Biến đổi z của một dãy f(nT) thường được ký hiệu là F(z). Vì vậy F ( z )  Z  f (nT ) (3.2) Xem xét biến đổi z của mẫu xung đơn vị kT, cụ thể f (nT )   ((n  k )T ) Dùng biểu thức (3.1) chúng ta được Z { ((n  k )T )}  z  k (3.3) Bây giờ xem xét biến đổi z của một tín hiệu trễ đi k chu kỳ lấy mẫu của f(nT):  Z { f ((n  k )T )}   f ((n  k )T ) z n n 0 Thay m = n - k trong biểu thức bên tay phải chúng ta được:   ( m k )  f (mT ) z Z { f (n  k )T )}  mk
  9.   Z { f (n  k )T )}  [  f (mT ) z  m ) ]z  k n  k Nếu f (m, T ) = với m < 0 thì Z { f (n  k )T )}  F ( z ) z  k (3.4) Các biểu thức (3.3) và (3.4) coi rằng z-1 biểu diễn một đơn vị trễ cho các tín hiệu mà có giá trị 0 nếu thời gian âm hay còn gọi là tín hiệu nhân quả. Biến đổi cho trong biểu thức (3.1) gọi là phép biến đổi z một phía. Một phép biến đổi z hai phía được cho bởi:  n  f (nT ) z Z { f (nT )}  (3.5) n   Phổ tần số của tín hiệu được tính từ biến đổi Fourier là   f (nT )   jnT  f (nT )e (3.6) n   So sánh biểu thức (3.5) và biểu thức (3.6), chúng ta nhận thấy rằng phổ của một ảnh có thể rút ra từ biến đổi z bằng cách thay z bằng e jT . Ví dụ 3.1 Tìm biến đổi z và phổ tần số của dãy u(nT )   (nT )   ((n  1)T )   ((n  2)T ) ... ((n  N )T ) u 1 012 3 N- 1 N n Giải Từ biểu thức (3.1) chúng ta có thể viết U ( z )  1.0  z 1  z 2  ...  z  N 1  z  ( N 1) hoặc U ( z)  1  z 1 Phổ tần số của u(nT) sẽ là 1  e  j ( N 1)T jT ) U (e 1  e  jT Biến đổi z của một tín hiệu rời rạc đều 2-D f(x,y) được cho bởi
  10.    n1  n2   f (n T , n T ) z Z { f (n1T1 , n2T2 )}  z 11 22 1 2 n1   n2   (3.7) thường được ký hiệu là F(z1, z2) Có thể lập tức nhận ra rằng  (n1  k1 , n2  k 2 )  z1 k1 z 2 k2    (n1  k1 , n2 )  z1 k1 (3.8)   (n1 , n2  k 2 )  z 2 k2 Cũng như vậy nếu f(x,y) = 0 với ( x  0)  ( y  0) thì Z { f (n1  k1 , n 2  k 2 )}  F ( z1 , z 2 ) z1 k1 z 2 k 2  (3.9) ở đây z11 , z21 biểu diễn đơn vị trễ theo hướng x và hướng y. - - y 1 x Biến đổi 2-D Fourier của f(n1T1,n2T2) được cho bởi     f (n1T1 , n2T2 )e  j ( n  n ) (3.10) ( f (n1T1 , n2T2 )}  11 22 n1  n2   Có thể nhận thấy rằng phổ tần số của một tín hiệu 2 -D được rút ra bằng cách thay z1  e  jw T , z2  e  jw T trong biến đổi z của tín hiệu. 11 22 Ví dụ 3.2 Tìm biến đổi z và phổ của tín hiệu nhảy bậc đơn vị được xác định bằng biểu thức (2.4) trong chương 2. Giải Biến đổi z của u1 (n1 , n2 ) được cho bởi     z1n z 2 n  Z u 1 (n1 , n 2 )  1 2 n1 0n2  0
  11. suy ra 1 1 U ( z1 , z 2 )     z1 1 1  z 21 1 Phổ tần số của tín hiệu bước nhảy có thể tính từ 1 1 U (e iw1T1 , e iw2T2 )    iw1T1 1  e iw2T2 1 e 3.3 Các bộ lọc hai chiều có đáp ứng xung hữu hạn 2-D Quan hệ giữa đầu vào và đầu ra cho bộ lọc FIR 2-D (FIR - Finite Impulse Response) được cho bởi N1 N2   h(k1 , k 2 ) x(n1  k1 , n2  k 2 ) (3.11) y (n1 , n2 )  k1   N1 k 2   N 2 Trong biểu thức (3.11), h(n1,n2) là đáp ứng xung của bộ lọc và được định nghĩa trên một cửa sổ có kích thước (2N1 + 1)  (2N2 + 1) có gốc toạ độ ở trung tâm; x(n1,n2) là tín hiệu vào của bộ lọc. Nếu x(n1,n2) = 0 với (n1  0)  (n2  0) , thì bằng cách lấy biến đổi z cả hai phía của biểu thức (3.11) chúng ta được N1 N2  k1  k 2   h(k , k ) X ( z , z )z Y ( z1 , z 2 )  z 1 2 1 2 1 2 k1   N 1 k 2   N 2 (3.12) Hàm truyền đạt của bộ lọc 2-D FIR được cho bởi N1 N2 Y ( z1 , z 2 )    h(k1 , k 2 )z1 k1 z 2 k2  H ( z1 , z 2 )  X ( z1 , z 2 ) k1   N 1 k 2   N 2 (3.13) Các bộ lọc trên được định nghĩa là có kích thước (2N1 + 1)  (2N2 + 1). Trong hầu hết các ứng dụng chúng ta đặt N1 = N2 = N. Đáp ứng tần số của bộ lọc 2-D có thể tính từ N1 N2 H (e j1T1 , e j 2T2 )  )e  j1k1T1 e  j 2 k2T2   h( k , k 1 2 k1   N 1 k 2   N 2 (3.14) Đáp ứng xung có thể tính từ đáp ứng tần số sau khi dùng biểu thức (2.17) trong chương 2. Các bộ lọc có đáp ứng tần với phần số thực thuần tuý được gọi là các bộ lọc pha zero. Trong các bộ lọc này, các pha zero được dịch đi một góc , cụ thể là có các giá trị âm trong phổ tần số. Một bộ lọc pha zero có đáp ứng xung l à số thực thoả mãn h(n1 , n2 )  h( n1 , n 2 )
nguon tai.lieu . vn