Xử lý ảnh
Trang 1Chơng 9
xỉ hoá bằng bộ lọc FIR bậc thấp Nhng dù thế nào đi chăng nữa, thì hệ thống có miền chuyển đổi dốc cũng đòi hỏi các bộ lọc FIR bậc cao Đấy là do sự hội tụ chậm của chuỗi Fourier Biểu thức của chuỗi Fourier biểu diễn cho hệ số của bộ lọc FIR Bằng cách cắt bớt chuỗi này, nhằm sử dụng các bộ lọc FIR bậc thấp đ dẫn đến các dao động Gibbs, đ đã ã ợc cho
ở trong chơng 8 Mặc dù các hàm cửa sổ có thể giảm thiểu các dao động này, nhng rút cục
là một bộ lọc có miền chuyển tiếp dốc hơn và các nhiễu gợn nhỏ hơn Vì vậy, chúng ta chỉ có một lựa chọn duy nhất là sử dụng các bộ lọc bậc cao để rút ra các miền chuyển tiếp dốc, nếu chúng ta kiên trì với các bộ lọc FIR Điều này cũng có nghĩa là thời gian tính toán cho một ảnh lọc cũng nhiều hơn Nếu chúng ta cần một bộ lọc với thời gian thực thì phần cứng cần phải đợc đợc cung cấp đi kèm, và các bậc cao hơn thì đẫn đến kết quả giá cả cao hơn
Nh một sự lựa chọn, chúng ta sẽ bắt đầu với hàm chuyển đổi mà có đáp ứng xung vô hạn Tất cả các hàm chuyển đổi này đợc biết dới cái tên bộ lọc có đáp ứng xung vô hạn
(Infinite-Impulse-Response filter) hay là gọi là bộ lọc IIR Các kiểu bộ lọc sẽ đạt đợc dải chuyển đổi dốc với bậc nhỏ hơn kiểu lọc FIR Nếu nh vậy, chắc bạn sẽ tự hỏi là tại sao chúng ta không bỏ lọc FIR đi mà sử dụng lọc IIR? Nguyên nhân là thiết kế và phần cứng
bộ lọc FIR đ có sẵn, còn thiết kế cho bộ lọc IIR vẫn chã a có Ví dụ, nếu bộ lọc IIR có đáp ứng xung vô hạn, thì chúng có xu hớng ngày càng không ổn định Vì vậy, đáp ứng xung có thể tăng lên rất lớn nếu ta không có một sự cẩn thận trong thiết kế Pha tuyến tính, một yêu cầu cần thiết trong lọc ảnh, có thể đạt đợc dễ dàng từ lọc FIR hơn là từ lọc IIR Tuy nhiên,
sự thuận lợi cung cấp bởi các hàm chuyển đổi IIR khiến cho chúng có đủ sức thu hút chúng
ta quan tâm đến vấ đề này Trong chơng này chúng ta sẽ xem một số giả thiết đơn giản cho thiết kế bộ lọc IIR với đặc tuyến pha gần tuyến tính
9.2 Bộ lọc IIR
Hàm truyền đạt của bộ lọc cho bởi :
Trang 2z z b
z z a z
z H
0 0 2
1
0 0 2
1 2
n i m x a n
m n
n m
Biểu thức (9.4) dẫn đến kết luận khi xem xét kỹ thuật thiết kế cho các bộ lọc IIR là phơng pháp dùng đáp ứng không gian thuận tiện hơn phơng pháp dùng đáp ứng tần số Nếu nh phơng pháp đáp ứng không gian không hiệu quả khi m, n tăng, thì thiết kế một bộ
lọc xấp xỉ nhng ổn định là cần thiết Vậy thì bộ lọc đó phải thoả m n điều kiện cho bởi côngãthức (9.4) Bởi vì đáp ứng không gian và đáp ứng tần số liên hệ với nhau qua chuyển đổi Fourier, Ta có thể rút ra kết luận là bộ lọc xấp xỉ với đáp ứng xung là tơng đơng với bộ lọc xấp xỉ với đáp ứng tần số tơng ứng Điều này nói chung là đúng Tuy nhiên, nh chúng ta đã thấy thiết kế của bộ lọc FIR, cái đặc trng cơ bản nhất là phổ biên độ với điểm pha không Câu hỏi sẽ là, với đặc điểm pha nào φ(ω1, ω2) thì bộ lọc ổn định? Biết rằng chúng ta cần pha
tuyến tính hoặc các hằng số trễ, ở đây các nhóm trễ đợc định nghĩa là
2
2 1 2
1 2
1
2 1 2
1 1
) , ( ) , (
) , ( ) , (
ω
ω ω φ ω
ω τ
ω
ω ω φ ω
ω τ
đầu xem xét phơng pháp này trong miền tần số, sau đó nội suy sang miền không gian Lý
do của cách làm này đợc thể hiện qua một loạt các biểu thức Đáp ứng tần số của các bộ lọc IIR đợc mô tả ở bằng biểu thức (4.93) có thể rút ra bằng cách đặt ω1π
1 e j
z = − , và π
ω 2
j
e
z = − Vì vậy,
Trang 3lke e a
A
0 0 2
lke e b
B
0 0 2
) , ( ) , ( )
, (
2 1
2 1 2
1 2
ω ω ω
ω ω
ω ε
n i m a n
, ( )
0 0
2( , )
ε (9.12)
ở đây M ì M là số các mẫu đợc cung cấp từ đáp ứng xung.
Để rút ra các hệ số của bộ lọc ta cần tối thiểu hoá Q Điều này đạt đợc nếu ta đạo hàm
Q theo các hệ số của bộ lọc và cho kết quả sau khi đạo hàm bằng 0.
Q
0 0
) , ( ) , ( 2
∂
∂ε ε
Q
0 0
) , ( ) , ( 2
∂
∂ε ε
tìm đợc bộ lọc yêu cầu
Để tránh phải tính toán một loạt các phơng trình phi tuyến mô tả ở trên, Shanks và một số ngời đa ra phơng pháp cho phép tối thiểu hoá một hàm lỗi đợc biến đổi Mặc dù ph-
Trang 4ơng pháp này đợc xây dựng bởi Shanks, Treitel, Justice, nó vẫn đợc biết đến dới tên là
ph-ơng pháp Shanks Nhân biểu thức (4.99) với B(ω1, ω2) chúng ta rút ra
ε ( ω1, ω2) B ( ω1, ω2) = B ( ω1, ω2) Hd( ω1, ω2) − A ( ω1, ω2) (9.15)Thay thế sai số “tải trọng”ε ω ω ( ,1 2) ( , B ω ω1 2)bằngε ′ ( ω1, ω2)trong biểu thức (9.15)
và chuyển kết quả sang miền không gian ta đợc
N i
N j ij
d
b n
m
0 0 0 0
) , ( )
, ( )
n m Q
Để tối thiểu hoá Q ta đạo hàm biểu thức này theo các hệ số của bộ lọc và cho kết quả
lk
j n i m h b j
n i m a a
Q
0 0 0 0 0 0
) , ( )
, (
j n i m h b
) , (
ở đây R là miền không gạch chéo ở hình (9.14) Bởi vậy, biểu thức (9.17) có thể đợc viết lại
dới dạng
,
) , (
2
0 0
R n m
j n i m h b Q
N i
N j
d ij
k n l m h j n i m h b b
Q
m n
d N
i
N
j
d ij lk
0 ) , ( ) , ( 2
0 0
∂
∂
(9.21)
Trang 5
0
, , 2 , 1 , 0 , ,
) , ( ) , ( -
) , ( ) , (
m n
0 0
≠ +
k l R n m
k n l m h n m h
k n l m h j n i m h b
d d
m n
d d
1 Rút ra M ì M điểm của phổ biên độ mong muốn, H d (m,n), với điểm tần số (0,0) nằm
tại trung tâm của mảng, cụ thể tại (M/2, M/2) M nên là bội số của 2, H d (m,n) nên đối
xứng một cách chặt chẽ
2 Rút ra IFFT của H d (m,n)(-1) (m+n), bằng cách thừa nhận phổ pha không
3 Nhân kết quả thu đợc với (-1)(m+n) Điều này sẽ giúp thu đợc đáp ứng xung với gốc toạ
độ nằm tại (M/2, M/2).
π ω
) , ( 414 0 1
1
2 1
1, )
( ω ω = ω + ω
R , và tần số cắt là ωc = 1.0 rad/đơn vị n đặc trng cho bậc của
hàm Butterworth Các bộ lọc có bậc càng cao, miền chuyển tiếp càng dốc, n không phải là
n
(M,M)(N,N)
R
Trang 6bậc của bộ lọc 2-D Bậc của bộ lọc 2-D sẽ đợc chọn khi thiết kế bộ lọc Trong ví dụ này thì n
đợc chọn bằng 2 Đáp ứng trong miền không gian đợc cho ở hình 9.2
Chơng trình dùng để tính đáp ứng xung từ đáp ứng tần số đợc cho ở chơng trình 9.1 Trong chơng trình này chúng tôi cho cung cấp một số tuỳ chọn nh lựa chọn giữa lọc thông thấp và thông cao, lựa chọn dùng các hàm Butterworth hay là kiểu có miền chuyển tiếp dốc
Dựa trên các giả thiết ở trên chúng ta có thể đa ra đợc thuật toán thiết kế bộ lọc 2-D
có pha tuyến tính ổn định Chơng trình cho giải thuật này sẽ trình bày ở phần tiếp theo
Hình 9.2 Đặc tuyến không gian rút ra từ chơng trình giải thích cho ví dụ của phần nói về
đặc tuyến truyền đạt Butterworth
Chơng trình 9.1 “IMPULSE.C” Sinh đáp ứng xung từ đáp ứng tần số.
/* Program for calculating impulse-response from
frequency-specifications
Result is stored with the (0,O) point centered at the middle of the output 2-D array You can either supply your own data or select from a set of standard functions If you supply your own data the first two values should be the dimensions of the array e.g 32 x32 The dimensions of the array should be a power of two The data that follows is the magnitude specifications in "%f " format stored in a row by row fashion, with no return code after every row */
Trang 7void 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 *,
printf("Freq.- response can be calculated using standard\n");
printf(" functions available to you if your reply to the\n");
printf(" following question is negative.\n");
printf("Is freq response provided in a file? (y or n) >");
Trang 8printf(" 1 Low-pass with abrupt transition.\n");
printf(" 2 High-pass with abrupt transition.\n");
printf(" 3 Low-pass Butterworth.\n");
printf(" 4 High-pass Butterworth.\n");
printf(" 5 Homomorphic characteristcs ->");
Trang 10/* Allocating memory for bit reversal LUT */
L=(unsigned int *)malloc(N1*sizeof(unsigned int));
/* Generate Look-up table for bit reversal */
Trang 121 Dùng bốn góc phần t của đáp ứng xung với điểm (0,0) nằm ở tại trung tâm của miền.
2 Dịch chuyển các trục để (0,0) nằm ở góc cao bên trái (Hình 9.3a)
3 Tính đáp ứng xung từ góc phần t nằm ở bên phải phía dới (Hình 9.3a)
4 Dịch chuyển các trục một đoạn đủ lớn để bao khối lớn nhất của đáp ứng xung (Hình 9.3b)
Đáp ứng xung mong muốn đợc trích ra từ miền gạch chéo trong hình 9.3b Lựa chọn
đầu tiên yêu cầu chúng ta phải chuyển hàm truyền đạt dới dạng :
Hình 9.3 (a) Chọn một phần t hay góc phần t thứ t (b) Chọn miền lớn hơn
bao gồm những giá trị trội trong đáp ứng xung
Trang 13j i ij N
N j
N
N i
j i ij N
N j
N
N i
z z b
z z a z
z H
2 1 2
Lựa chọn thứ hai yêu cầu một bộ lọc có bậc nhỏ nhất là
22
M
M ì Điều này làm tiêu tan những mục đích mà chúng ta đặt ra trớc đây khi chọn bộ lọc IIR trớc FIR Sự cần thiết cho những bậc cao phát sinh từ thực tế là: đáp ứng xung bắt đầu gần nh từ không và tăng lên
đến cực đại sau trễ của
Lựa chọn thứ t, dùng hai tính chất của biến đổi Fourier :
1 Đáp ứng xung giảm đi rất nhanh khi ra xa khỏi trung tâm
2 Một dịch chuyển trong đáp ứng xung thì tơng đơng với một phép cộng một pha tuyến tính vào đặc tuyến tần số Nh chúng tôi đ nhấn mạnh trong các chã ơng trớc, pha tuyến tính là một mong muốn trong xử lý ảnh
Nếu chúng ta bắt đầu với trờng hợp pha không, sau đó áp dụng lựa chọn cuối cùng chúng ta có thể thiết kế bộ lọc với pha gần nh tuyến tính Chú ý rằng “dịch chuyển” trong hình 9.3b tốt nhất là nên đặt là N - 1.
Dùng đặc tuyến tần số cho bộ lọc thông cao với N = 2, và dịch chuyển = 1, ta có thể thiết
kế hàm truyền đạt dùng các giả thiết của Shanks Độ lớn, góc pha, và đáp ứng xung của bộ lọc thiết kế cho ở hình 9.4, 9.5 và 9.6 Các hệ số của bộ lọc cho ở bảng 9.1
Trang 14Dễ thấy từ các hình này là bộ lọc có miền chuyển tiếp dốc hơn so với bộ lọc FIR 5 ì 5 cùng thông số Nó có đặc tuyến pha tuyến tính và ổn định hơn Để chứng minh là bộ lọc IIR có miền chuyển tiếp dốc hơn bộ lọc FIR có cùng các hệ số, bạn h y chạy thử chã ơng trình thiết kế bộ lọc FIR và sau đó so sánh kết quả.
Hình 9.4 Phổ biên độ của bộ lọc 2-D.
Hình 9.5 Phổ pha của bộ lọc IIR 2-D.
Trang 15Hình 9.6 Đáp ứng tần số của bộ lọc IIR.
Chơng trình dùng để thiết kế bộ lọc IIR dùng các giả thiết của Shanks cho ở chơng trình 9.2
Chơng trình 9.2 "IIRD.C" Thiết kế mạch lọc dùng phơng pháp Shanks.
/* This program is for designing 2-D IIR filters
using Shanks's method You will need to run IMPULSE.EXE
float zrt,zit,zrb,zib,mag,*w,winc;
float *h,xrm,xim,xrn,xin,rl,im,theta;
char file_name[14],ch;
clrscr();
Trang 16printf("Enter file name for impulse response >");
/* printf("Enter offset of impulse response.\n");
printf(" Optimum value is (order of filter-1). >");
Trang 18printf ("\n\n Do you wish to calculate and store impulse \n");
printf(" magnitude and phase responses for 3-D plotting? >");
Trang 19printf("\nEnter file_name for storing impulse response");
printf("\n of designed filter > ");
Trang 21Hình 9.7 Đáp ứng biên độ của bộ lọc thông cao IIR kích thớc 3 ì 3.
Hình 9.8 Đáp ứng pha của bộ lọc IIR kích thớc 3 ì 3
Trang 22biểu thức (9.15) chúng ta có thể viết:
) , (
1 )
, ( ) , (
) , ( ) , ( )
, (
) , ( )
,
(
2 1 1 2 1 2
1 1
2 1 2
1 2
1 1
2 1 2
1
ω ω ω
ω ω
ω
ω ω ω
ω ω
ω
ω ω ω
d L
L
L L
B
A B
H B
B
B
(9.25)
ở đây L=1,2,3,
Đặt B 0 (ω1 ,ω2 ) = 1.0 làm cho sai số trong phép lặp đầu tiên có dạng đợc dùng trong phơng
pháp Shanks Các sai số về mặt lý thuyết sẽ tiếp cận các sai số không trọng số trong mỗi vòng lặp Sự hội tụ sẽ đạt đợc khi
) , ( )
, ( ω1 ω2 = L−1 ω1ω2
Ký hiệu sai số dới dạng
) , (
) , ( ) , ( ) , (
2 1 1
2 1 2
1 2
ω ω ω
ω ε ω ω
B
B
(9.26)Chúng ta có thể viết :
) , (
1 )
, ( ) , (
) , ( ) , ( ) ,
(
2 1 1 2 1 2
1 1
2 1 2
1 2
ω ω ω
ω ω
d L
B
A B
H
Trang 23Khi phép nhân trong miền tần số tơng đơng với tích chập trong miền không gian, chúng
ta có thể viết :
) , ( )
( )
, ( )
( )
,
0 0
1 0
0
j n i m g a j
n i m h b n
j
N
i L
L ij N
1 )
, (
2 1 1 2
) , ( )
, (
2 1 1
2 1 2
1
1 B z z
z z H z
z H
L
d L
N i
0 0 ) , ( ) ,
m
j i
0 0 ) , ( ) ,
j i
Xây dựng chuẩn L2 dùng sai số cho bởi biểu thức (9.28) ta có :
) , ( 0
2 0
n m M
n
M m
) , ( ) , ( )
( 0 0
) , ( ) , ( )
(
1 0
1 0
1 0
1 0
0
1
1 0
0
k n l m g n m h
k n l m g j n i m h b
N j
N i
k n l m g j n i m g a
L M
n L M
m
L M
n L M
m L ij j
i
L N
i
M
n L M
m
N
j
L ij
Trang 24Đạo hàm theo (b P ) L và cho các biểu thức này bằng không chúng ta có
) , ( ) , ( )
1 0
0
k n l m h j n i m g
) , ( ) , ( )
( 0 0
1 0
1 0
1 0
1 0
0
k n l m h n m h
k n l m h j n i m h b
N j
N i
L M
n L M
m
L M
n L M
m L ij j
2
2 1
F
F X C C
C C
3 Rút ra tập hợp của các phơng trình đại số tuyến tính từ biểu thức (9.35) và (9.36)
4 Giải ra các giá trị của {a ij}L và {b ij}L
}
Trong phần lớn các trờng hợp, luôn luôn đòi hỏi phải có một phép lặp Hàm sai số (chuẩn L2) thờng giảm mạnh trong lần lặp đầu tiên và sau đó giảm dần dần qua các lần lặp còn lại Để kiểm tra phép lặp gần đúng này, chúng ta sẽ áp dụng ví dụ của bộ lọc thông cao có kích thớc 2 ì 2 cho ở phần 9.5 Các hệ số của bộ lọc dùng các giả thiết Shanks cho ở bảng 9.1 Hàm sai số ban đầu, Q, cho trong biểu thức (9.12) đợc tính dùng các hệ số cho ở bảng 9.1 và kết quả là 0.001145 Sau một lần lặp, Q giảm xuống chỉ còn là 0.000770 Trong lần lặp thứ hai, nó giảm xuống 0.00078 và giữ nguyên giá trị này cho đến lần lặp thứ ba
Bài tập 9.1 Phát triển chơng trình C “IIRDITER.C” dùng giả thiết lặp để thiết kế bộ
lọc IIR Giá trị ban đầu của hệ số nhập vào đợc rút ra từ lần chạy đầu tiên của chơng trình 9.2 Chơng trình cần đọc bậc của bộ lọc và hệ số ban đầu từ file
Trang 259.7 Lọc ảnh dùng bộ lọc IIR
Các bớc thực hiện của biểu thức (9.2) cho lọc ảnh 2-D cũng giống nh các bớc thực hiện của bộ lọc FIR mà chúng ta đ nghiên cứu trong chã ơng 3, phần 3.4 (xem hình 3.1) Sự khác nhau cơ bản trong trờng hợp này là chúng ta cần hai bộ đệm chuyển đổi ảnh, một cho nhập vào và một chứa số lợng dòng cần thiết cho ảnh xuất ra Mỗi một bộ đệm này đều có kích thớc (N + 1) ì độ rộng ảnh Bộ đệm chuyển đổi nhập vào có thể có kiểu dữ liệu “char” Bộ
đệm chuyển đổi đầu ra nên có kiểu dữ liệu là ”float” hoặc là “double” Nếu chúng ta coi
wx[i][j] và wy[i][j] là bộ đệm chuyển đổi nhập ảnh vào và xuất ảnh ra, thì thuật toán lọc
IIR 2-D có thể theo những bớc sau:
1.Xoá bộ đệm chuyển đổi ảnh nhập vào và xuất ra
2.Cho n = 0,1,2, ,(chiều dài ảnh - 1)
N j
N i j m i j N
, 0 , 0
3.Chuyển hàng đầu tiên của wy vào một file xuất ra, chẳng hạn, xuất ra [n][j] = wy[0] [j]; j = 0,1,2, ,(chiều rộng ảnh -1).
/* This program is for filtering images using 2-D
iir filters The filter's coefficients can be obtained
from iird.exe or lirditer.exe */
Trang 26printf("\n Image size %dx%d.",image_length,image_width);
printf("\nEnter file name for filter's coefficients >");
Trang 29kết quả sau khi lọc Trên ảnh đ lọc có nhiều chi tiết đã ợc làm rõ ảnh đợc cho sẵn trên đĩa với tên file là "RIBS.IMG".
Hình 9.9 ảnh chụp x quang lồng ngực.
Hình 9.10 ảnh lồng ngực sau khi đợc làm nổi.
Trang 30Bài tập 9.2
Sử dụng ảnh "CAMEL.IMG" thu đợc trong chơng 8 và áp dụng bộ lọc thông cao 2-D đợc thiết kế để xấp xỉ hàm Butterworth Dùng n = 1 và n = 2 cho hàm Butterworth, và ωc = 0.6, 0.8 và 1.0 So sánh kết quả với kết quả thu đợc trong chơng 8 Kiểu bộ lọc nào, IIR hay FIR, bạn nghĩ có thể đợc sử dụng để cho ảnh kết quả rõ hơn với cùng số hệ số, tại sao?
Bài tập 9.3
Chơng trình 9.4 đa ra m và giải thuật hiệu quả hơn những chã ơng trình đợc viết cho bộ lọc FIR, ví dụ chơng trình 3.1 (FIR.C) và 3.2 (FIRSYM.C) Nguyên nhân thứ nhất là trong chơng trình 9.3 chúng ta sử dụng fread thay cho fgetc trong chơng trình 3.1 và 3.2 Nguyên
nhân thứ hai là mỗi một dòng ảnh mới đợc chuyển đổi thành dòng đầu tiên của bộ chuyển
đổi ảnh vào thay thế cho dòng cuối cùng nh chúng ta đ làm trong chã ơng trình 3.1 và 3.2
Điều này có khuynh hớng đơn giản hoá công thức đệ qui sử dụng trong giải thuật
Viết lại chơng trình 3.1 và 3.2 bằng cách thực hiện hai thay đổi này Kiểm tra chơng trình đ đã ợc viết lại và so sánh thời gian chạy
9.8 Nhân đôi ảnh dùng bộ lọc IIR
Trong phần này chúng ta sẽ tận dụng một phép tiếp cận xen kẽ để nhân đôi độ phân giải ảnh thay cho các phơng pháp chúng ta đ nghiên cứu trã ớc đây Phép tiếp cận này cũng giống nh cách tiếp cận FFT trong chơng 7 Giải thuật bao gồm các bớc sau :
1 Nhân đôi ảnh bằng cách sao chép các điểm và các đờng nằm ngang, ví dụ, mỗi điểm
đợc đọc từ bộ đệm ảnh đợc sao chép vào hai vị trí liên tục trên bộ đệm nhập vào của thuật toán, và tất cả các dòng nằm ngang đợc sao chép Điều này bao gồm cả việc làm tăng chu
kỳ lấy mẫu dòng và mành bằng cách nhân đôi giá trị của nó.Nếu T H = T V = T, thì trong
ảnh mới phải có chu kỳ lấy mẫu là 2T theo mọi hớng Bớc này tơng đơng với áp dụng hàm
nội suy hình vuông trong chơng 7, hình 7.8
Trong miền tần số, phóng đại ảnh bằng bản sao có phổ tần số đợc mô tả bằng một miền chữ nhật
T
π ω π π
ω π
Phổ này, nh chúng ta đ biết, là tuần hoàn hai chiều ã
2 Cho ảnh đ phóng qua bộ lọc thông thấp có đặc tuyến tần số biên độ nhã hình 9.11b
Điều này tơng đơng việc cộng các không vào phổ tần số nh đ làm trong cách tiếp cận nộiãsuy biến đổi Fourier
3 ảnh phóng đại đợc rút ra giống nh cách rút ra ảnh từ cách tiếp cận FFT
Các bớc trên đòi hỏi phải thiết kế bộ lọc thông thấp kiểu đáp ứng hình vuông Chúng ta
có thể thay đổi chơng trình 9.1 để tính đáp ứng xung của bộ lọc thông thấp đáp ứng hình vuông Điều này có thể dùng với chơng trình 9.2 và 9.3 thiết kế bộ lọc đáp ứng hình vuông IIR Bạn cũng có thể dùng hai bộ lọc IIR 1-D thiết kế bất kỳ kiểu bộ lọc nào trong tham khảo 3 Một bộ lọc 1-D phải là hàm của z 1 và bộ lọc còn lại là hàm của z 2 Một bộ lọc đáp ứng hình chữ nhật thông thấp đợc trình bày ở hình 9.12 Bộ lọc đợc thiết kế dùng chơng trình 9.1 và 9.2 Bộ lọc kích thớc 2 ì 2 với ωc=1.4 và đợc thiết kế đáp ứng hình chữ nhật Phơng pháp lặp đợc dùng để rút ra một xấp xỉ tốt hơn (ba lần lặp) Các hệ số của bộ lọc cho
ở bảng 9.3 Thay đổi chơng trình 9.3 để phóng đại ảnh dùng các bớc trên qua sự sao chép
và sau đó sử dụng bộ lọc thông thấp IIR đợc cho ở chơng trình 9.4