158
h[i][j]*=win;
break;
case '3':
win=0.54+0.46*cos((double)(theta*nsqrt));
h[i][j]*=win;
break;
case '4':
win=0.42+0.5*cos((double)(theta*nsqrt))
+0.08*cos((double)(2.0*theta*nsqrt));
h[i][j]*=win;
break;
case '5':
if((i+i)==0);
{
printf("\n\nEnter a value for alpha (O to
8)-->");
scanf("%f",&alpha);
alpha/=2.0;
}
beta=nsqrt/(float)N1;
beta*=beta;
beta=alpha*sqrt(fabs((double)(1.0-beta)));
T=alpha ;
sum1=1.0+T*T;
for(k=2;k<11;k++)
{
T=(1.0/(float)k)*alpha*T;
sum2+=T*T;
}
T=beta;
sum2=1.0+T*T;
for(k=2;k<11;k++)
{
T=(1.0/(float)k)*beta*T;
sum2+=T*T;
}
win=sum2/sum1;
h[i][j]*=win;
break;
}
fprintf(fptri,"%f ",h[i][j]);
159
}
}
printf("\n\nFIR filter's coefficients. ");
for(i=0;i<N;i++)
{
printf ( "\n" ) ;
for(j=0;j<N;j++)
printf(" %f",h[i][i]);
}
fclose(fptri ) ;
fclose(fptro);
remove("FFT.DAT");
remove("IFFT.DAT");
remove("temp.dat");
printf("\nDo you wish to store magnitude spectrum
");
printf(" \n for 3-D plotting? (y or n)-->");
while(((ch=getche())!='y')&&(ch!='n'));
if(ch=='n') exit(1),
printf("\nEnter file for storing magnitude spectrum
--> ");
scanf("%s",file_name);
fptro=fopen(file_name,"w");
Nt=M1+1 ;
fprintf(fptro,"%d %d\n",Nt,Nt);
fprintf(fptro,"%e",(float)0.0),
w=(float *)malloc((M1+1)*sizeof(float));
w[0]=-pi ;
winc=2.0*pi/(float)M1;
for(i=1;i<Nt;i++)
w[i]=w[i-1]+winc;
for(i=0;i<Nt;i++)
fprintf(fptro," %e",w[i]);
gotoxy(70,25);
textattr(WHITE+(GREEN<<4)+BLINK);
cputs("WAIT");
for(m=0;m<Nt;m++)
{
fprintf(fptro,"\n%e",w[m]);
for(n=0;n<Nt;n++)
{
zrt=zit=(float)0.0;
160
for(i=-N1;i<=N1;i++)
for(j=-N1;j<=N1;j++)
{
Hình 8.2 Blc 5 5 dùng hàm ca sổ Blackmann.
xrm=(float)cos((double)(i*w[m]));
xim=(float)sin(-(double)(i*w[m]));
xrn=(float)cos((double)(j*w[n]));
xin=(float)sin(-(double)(j*w[n]));
r1=(xrm*xrn-xim*xin);
im=(xrm*xin+xim*xrn);
zrt+=h[i+N1][j+N1]*r1;
zit+=h[i+N1][j+N1]*im;
}
mag=(float)sqrt((double)(zrt*zrt+zit*zit));
fprintf(fptro," %e",mag);
}
}
fclose(fptro);
gotoxy(70,25);
textattr(WHITE+(BLACK<<4));
cputs(" ");
}
161
y giờ, chúng ta hãy nghiên cu thuận lợi thu được nhờ sử dụng cửa sổ.
Chúng ta sthiết kế bộ lọc FIR 5 5 s dụng cửa s Blackmann đặc tính
tần số đẻ thiết kế bộ lọc cho hình 8.1. Kết quả đạt được ở hình 8.2. Hình 8.3
8.4 là kết qu của việc sử dụng hàm cửa sổ Kaiser với = 2 và = 3.
Hình 8.3 Bộ lọc 5 5 dùng hàm cửa sổ Kaiser với = 2.
8.4 Nhân đôi độ pn giải của ảnh
Ảnh cho hình 8.5 kết qunhân đôi đphân giải nh "CAMEL.IMG"
qua phép ni suy ba chiều dùng b lọc thông cao bậc 5 5 thiết kế theo
kiểu lọc Butterworth với c = 0.6. Hình 8.6 cho kết quả nh này ng áp dụng
các bước ơng tự nhưng với c = 0.8. So sánh ảnh thu được với ảnh rút ra từ
các phép xấp xỉ FFT ta nhận thấy các ảnh này sáng hơn. Nguyên nhân th
là do nh gốc "CAMEL.IMG" chỉ hơi mvà blọc thông cao giảm thiểu được
mờ. Phương pháp FFT tuân theo định lý lấy mu vì vậy theo lý thuyết thì kết
qucho ra sẽ tốt hơn. Tuy nhiên, phương pháp không gian d thực hiện hơn
nhiu, mà lại cho ra kết quả tương tự hoặc thậm chí tốt hơn. Cần chú ý rằng
m trên ảnh là một hàm ca toán tử nội suy và không phải là ảnh. Do vậy, mt
b lọc thông cao đã được thiết kế cho kết quả thoả mãn với một hàm ni suy
đặc biệt, nó có thể dùng cho tất cả các nh.
162
Hình 8.4 B lọc 5 5 với cửa sổ hàm Kaiser vi = 3.
i tập 8.1 Phóng đại ảnh "CAMEL.IMG " dùng phép nội suy ba chiều áp
dụng blọc thông cao FIR dùng hàm ca sổ Blackman và một tần số thông
thấp chuyn tiếp dốc đứng với tần số cát c = 1,4 rad/đơn vị.
i tp 8.2 Cho ảnh nằm trên đĩa tên "MAHER.IMG ". Kích thưc của
ảnh là 256 256 điểm ảnh.
1. Nhân đôi ảnh dùng phép ni suy hệ toạ độ ba chiều với bộ lọc thông cao.
Lựa chọn các c khác nhau, các loi hàm ca sổ khác nhau và so sánh kết
quả .
2. Nhân đôi nh dùng phép nội suy của định lấy mẫu trong miền tần số
.So sánh kết quả thu được với kết quả tốt nhất của phần 1 bài tập.
Chú ý: Tất cc chương trình mà bạn scần đến cho bài tp này được
cung ở trong các chương trước.
Bởi vì phép ni suy cũng chlà blọc thông thp đối xứng vuông nên kết
qucó thể tốt n nếu ta thdùng blọc thông thấp FIR đối xứng vòng
tròn (LPF) đthay thế. Điểm cắt tần số của blọc này phải đủ cao đcho qua
toàn b phcủa ảnh. Phương pháp dùng blọc thông thấp nhân đôi độ phân
giải ảnh tương tự như phép nội suy xấp xỉ. Ảnh y đầu tiên được căng ra
bằng cách u vào một mng kích thước 2N 2N, đây N là chiều rộng
hoặc chiều cao của ảnh. Tất ccác hàng hoặc ct đều chứa các giá trị zero
các vtrí còn trống. Sau đó ảnh này được lọc qua một b lọc thông thp, rồi