Xem mẫu

  1. N N n H (n1  , n2  )  F00 (k1 , k 2 )  W N 1 F01 (k1 , k 2 ) 2 2  W N 2 F10 (k1 , k 2 )  W N 1  n2 F11 (k1 , k 2 ) n n (6.68d) Dạng công thức cuối cùng được biết đến như một bướm cơ số (2  2). Mỗi bướm cần đến ba phép nhân và tám phép cộng, để tính toán một bước của giải thuật FFT đòi hỏi N2/4 bướm (việc kiểm chứng được giành cho độc giả coi như là một bài tập). Số bước cần thiết để thực hiện giải thuật FFT 2-D là log2N, vì vậy số phép nhân cần thực hiện là 3N 2 log 2 N 4 Với phương pháp này số hàng-cột cần thiết sẽ nhỏ hơn 25 phần trăm so với số hàng-cột được mô tả trước đây. Tuy nhiên phương pháp này sẽ chỉ có hiệu quả nếu có đủ bộ nhớ hoạt động lưu giữ N  N số phức. Bài tập 6.9 1. Phát triển thuật toán và chương trình C cho giải thuật phân chia thời gian 2- D FFT cơ số vector 2. Biến đổi công thức để chia tần số vector FFT 2-D. 3. Phát triển thuật toán giảm lược đầu vào và đầu ra, viết chương trình C cho 2- D FFT cơ số vector. 136
  2. CHƯƠNG 7 CÁC THUỘC TÍNH CỦA ẢNH SỐ 7.1 Chỉ dẫn Trong chương này chúng ta sẽ nghiên cứu các vấn đề sau: Tầm quan trọng của pha trong các ảnh số. Các giả thiết lấy mẫu 2 -D với các ứng dụng trên các ảnh. Nhân đôi độ phân giải trên ảnh. 7.2 Tầm quan trọng của pha Trong chương 6, phần 6.4.2, tầm quan trọng của đặc tính tuyến tính hoặc đặc tính pha zero cho các bộ lọc 2 -D đ ã được đề cập. Tuy nhiên, chúng ta chưa kiểm tra tác dụng phân bố đặc tính pha của các ảnh số đối với các nội dung thông tin có trên ảnh. Để làm vậy, chúng ta sẽ đưa ra hai thử nghiệm. Thử nghiệm 1: 1 . Rút ra 2 -D FFT của một ảnh đ ược cho. 2 . Tính đặc tuyến pha:  x (k )   k  tan   i  x (k )   r  ở đ ây xi (k) biểu diễn cho các phần giá trị ảo và xr(k) biểu diễn các giá trị thực của FFT. 3 . Tính toán và lưu trong m ột file các giá trị phức cos( k )  i sin(k ), i = -1 4 . Rút ra biến đổi ngược FFT của file cuối cùng. Để đưa các bước trên, chương trình 7.1 được cung cấp. Chương trình thực hiện trên ảnh “IKRAM.IMG” của h ình 3.2a (Chương 3). Kết quả được đưa ra trên hình 7.1. 125
  3. Chương trình 7.1 "PHASE.C". Kiểm tra tầm quan trọng của pha. /* Program for testing the importance of phase in digital images.*/ #define pi 3.141592654 #include #include #include #include #include #include #include void bit_reversal(unsigned int *, int , int); void WTS(float *, float *, int, int); void FFT(float *xr, float *xi, float *, float *,int, int); void transpose(FILE *, int, int); void FFT2D(FILE *, FILE *, float *, float *, unsigned int *, int,int,int); 126
  4. H ình 7.1 Tách riêng pha đối với ảnh "IKRAM.IMG". void main() { int N,n2,m,i,j,NT; unsigned int *L; float *wr,*wi ; double nsq,xr,xi,theta; FILE *fptri,*fptro,*fptrt,*fptrr; float *buffi,*buffo, max,min,scale; unsigned char file_name[14], *buff,file_name2[14]; clrscr() ; printf("Enter name of file containing FFT data-->"); scanf("%s",file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("\nFile does not exist."); exit(1); } fptrt=fopen("temp.img","wb+"); again : gotoxy(1,2); 127
  5. printf(" "); gotoxy(1,2); printf("Enter File for storing display IFFT data- >"); scanf("%s",file_name); if(((stricmp("temp.img",file_name2))==0)|| ((stricmp("temp2.img",file_name2))==0)) printf("This is a reserved file name. Use some other name."); goto again; fptrr=fopen(file_name,"wb"); nsq=(double)filelength(fileno(fptri))/(2*sizeof(floa t)); N=(int)sqrt(nsq); m=(int)(log10((double)N)/log10((double)2)); clrscr( ) ; NT=2*N*sizeof(float); buffi=(float *)malloc(NT*sizeof(float)); buffo=(float *)malloc(NT*sizeof(float)); buff=(char *)malloc(N*sizeof(char)); for(i=0;i
  6. /* Allocating memory for twiddle factors.*/ n2=(N>>1)-1; wr=(float *)malloc(n2*sizeof(float)); wi=(float *)malloc(n2*sizeof(float)); fptro=fopen("temp2.img","wb+"), WTS(wr,wi,N,1); FFT2D(fptrt,fptro,wr,wi,L,N,m,1); fptro=fopen("temp2.img","rb"); max=0.0; min=1.e10; for(i=0;i
  7. { fread(buffi,NT,1,fptro); for(j=0;j
  8. ở đ ây T tính theo giây và W tính theo herzt. Ch ứng minh. Xem xét biểu diễn Fourier của một dãy các tín hiệu liên tục xa(t)  1 ( j)e jt d (7.1a) x a (t )  X a 2    j t (7.1b) X a ( j )   x a (t )e dt  Nếu x(n) biểu diễn một d ãy được rút ra từ việc lấy mẫu xa(t) tại các khoảng bằng nhau T, chúng ta có thể dùng biểu thức (7.1a) để viết:  1 jnT (7.2) x(n)  x a (nT )   X a ( j)e d 2  Từ biến đổi rời rạc Fourier chúng ta cũng rút ra  1 j ) e j n d  (7.3) x ( n)   X (e 2  ở đ ây X (e j ) là biến đổi Fourier rời rạc của x(n). Bây giờ cần tính mối quan hệ X a ( j) theo X (e j ) . Để xem xét mối quan hệ giữa các biểu thức (7.2) và (7.3) ta cần xem xét biểu thức (7.2) như một tổng của các tích phân trong các khoảng có độ dài 2/T.  ( 2 r 1)  T 1 jnT  (7.4) x ( n)   X a ( j ) e d 2 r   ( 2 r 1) T   Mỗi phần trong tổng có thể quy về tích phân trong khoảng từ  đến T T bằng cách thay đổi biến để rút ra  T  2r jnT j 2rn 1  (7.5) x(n )  X a ( j  j d )e e 2 T r     T Nếu thay đổi thứ tự của tích phân và tính tổng và chú ý rằng e j 2rn  1 với mọi giá trị nguyên của r và n, thì chúng ta rút ra 131
  9.  T  2r  jnT 1   X a ( j  j (7.6) x ( n)  d )e  2 T r      T Với thay thế , biểu thức (7.6) trở th ành  1  2r  jn  1  T  X a ( j T  j T )e d (7.7) x ( n)  2   r     có cùng d ạng với biểu thức (7.3). Vì vậy, chúng ta có thể xác định   2r 1 X ( e j )   (7.8) j Xa(j ) T T T r   Tương tự, chúng ta có thể biểu diễn biểu thức (7.8) theo biến tần số tương tự  như  2r 1 X ( e j T )   (7.9) X a ( j  j ) T T r   Biểu thức (7.8) và (7.9) cung cấp mối quan hệ giữa biến đổi Fourier thời gian liên tục và biến đổi Fourier của một dãy các mẫu. Cho ví dụ, nếu X a ( j) được giới thiệu trong hình 7.3a, thì X (e j ) sẽ được giới thiệu trong hình 7.3b nếu W  (/T) (hoặc T  (2/2W)), cụ thể, nếu W tính theo hezt T  (1 / 2W ) . Vì thế, nếu lấy mẫu tại tốc độ tối thiểu gấp đôi tần số cao nhất trong x a ( j) , thì X (e j ) được xác định thành X a ( j) trong kho ảng       . Tần số lấy mẫu này thư ờng được gọi là tần số Nyquist. Nếu T  T T 1/(2W), thì các b ản dịch của X a ( j) sẽ bị chồng lên nhau như trong hình 7.3c. Vấn đề này gọi là hiện tượng trùm phổ (aliasing). Nếu T  1/(2W) (W tính theo hezt), thì có khả năng khôi phục xa(t) từ x(nT) bởi một phép nội suy xấp xỉ, mà sẽ được chúng ta đề cập đến phần tiếp theo. Từ phép biến đổi Fourier thời gian liên tục:  T 1 jt (7.10) x a (t )   X a ( j)e d 2   T 132
  10. Xa(j) Biến đổi Fourier của tín hiệu liên tục w -w  (a) j  w T  -w   w  T (b) T  X ( e j ) w T  -w   w  T T (c) Hình 7.3 Phổ tần số của trạng thái liên tục và trạng thái đã lấy mẫu của một tín hiệu.   1 X ( e jT )  Nếu (7.11) X a ( j )  - T T T  X ( e j T )   xa (kT )e  jkT và k   Kết hợp biểu thức (7.10) và (7.11)  T T jt x a (t )   X ( j)e d 2   T Vì vậy 133
nguon tai.lieu . vn