LỜI MỞ ĐẦU Xử lý tín hiệu số (Digital Signal Processing – DSP) là một lĩnh vực mới, đã phát triển mạnh mẽ về mặt lý thuyết và công nghệ. Ngày nay, nó đã trở thành môn học không thể thiếu cho nhiều ngành học về khoa học và kỹ thuật. Các thuật toán của nó đã mang lại những thuận tiện cho công nghệ và ứng dụng mới, nhất là các lĩnh vực về kỹ thuật điện tử và điều khiển tự động. Phép xử lý cơ bản nhất của DSP là lọc, và các hệ thống được đề cập đến nhiều nhất trong xử lý tín hiệu số là các bộ lọc số (Digital Filter). Nếu xét về đáp ứng xung có thể chia các bộ lọc số thành 2 loại chính là bộ lọc có đáp ứng xung hữu hạn FIR (Finite Impulse Response) còn gọi là lọc không đệ quy, và bộ lọc có đáp ứng xung vô hạn IIR (Infinte Impulse Response) còn gọi là lọc đệ quy. Xét về đáp ứng tần số biên độ có thể chia các bộ lọc, FIR hay IIR, thành 4 loại cơ bản: thông thấp, thông cao, thông dải và chắn dải. Các bộ lọc này có thể được thiết kế bằng những phương pháp sau đây: Phương pháp cửa sổ (Window Design Techniques), Phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) và Phương pháp xấp xỉ tối ưu cân bằng gợn sóng (Optimal Equiripple Design Techniques). Mỗi phương pháp đều có những đặc điểm và ưu khuyết điểm riêng. Với tiểu luận này,nhóm 1 xin phép được trình bày bài toán “ Thiết kế bộ lọc cấu trúc FIR bằng phương pháp cửa sổ ‘’ Nội dung tiểu luận được chia thành 3 phần: Phần 1. Cơ sở lý thuyết chung. Phần 2. Thiết kế bộ lọc theo cấu trúc FIR bằng phương pháp cửa sổ. Nhóm 1 xin trân trọng cảm ơn Thầy giáo TS. Ngô Văn Sỹ đã tận giảng dạy và hướng dẫn để chúng tôi có thể hoành thành tốt tiểu luận này. Phần lớn nội dung trình bày ở báo cáo này được lấy từ bài giảng, tài liệu tham khảo do thầy cung cấp. Trong quá trình thực hiện tiểu luận, tuy đã hết sức cố gắng song không tránh khỏi những sai sót. Rất mong nhận được sự góp ý của Thầy, các bạn học viên cùng lớp để nội dung của tiểu luận được hoàn chỉnh hơn Đà Nẵng, ngày 27 tháng 4 năm 2011 PHẦN 1: CƠ SỞ LÝ THUYẾT CHUNG 1.1 Cấu trúc của bộ lọc FIR Một bộ lọc đáp ứng xung hữu hạn với hàm hệ thống có dạng: (1.1) Như vậy đáp ứng xung h(n) là: c (1.2) Và phương trình sai phân là: (1.3) Đây chính là tích chập tuyến tính của các dãy hữu hạn. Bậc của bộ lọc là M1, trong khi chiều dài của bộ lọc là M (bằng với số lượng các hệ số). Các cấu trúc bộ lọc FIR luôn luôn ổn định, và tương đối đơn giản hơn so với các cấu trúc bộ lọc IIR. Hơn thế nữa, các bộ lọc FIR có thể được thiết kế để có một đáp ứng pha tuyến tính và đó là điều cần thiết trong một số ứng dụng. Chúng ta sẽ xem xét lần lượt các cấu trúc của bộ lọc FIR sau đây: a. Cấu trúc dạng trực tiếp Phương trình sai phân được thực hiện bởi một dãy liên tiếp các bộ trễ do không có đường phản hồi: (1.4) Do mẫu thức bằng đơn vị nên ta chỉ có một cấu trúc dạng trực tiếp duy nhất. Cấu trúc dạng trực tiếp được cho trong hình 1.1 với M = 5
Trang 1LỜI MỞ ĐẦU
Xử lý tín hiệu số (Digital Signal Processing – DSP) là một lĩnh vực mới, đã phát
triển mạnh mẽ về mặt lý thuyết và công nghệ Ngày nay, nó đã trở thành môn họckhông thể thiếu cho nhiều ngành học về khoa học và kỹ thuật Các thuật toán của nó
đã mang lại những thuận tiện cho công nghệ và ứng dụng mới, nhất là các lĩnh vực về
kỹ thuật điện tử và điều khiển tự động
Phép xử lý cơ bản nhất của DSP là lọc, và các hệ thống được đề cập đến nhiều nhất
trong xử lý tín hiệu số là các bộ lọc số (Digital Filter)
Nếu xét về đáp ứng xung có thể chia các bộ lọc số thành 2 loại chính là bộ lọc có đáp
ứng xung hữu hạn FIR (Finite Impulse Response) còn gọi là lọc không đệ quy, và bộ lọc có đáp ứng xung vô hạn IIR (Infinte Impulse Response) còn gọi là lọc đệ quy.
Xét về đáp ứng tần số biên độ có thể chia các bộ lọc, FIR hay IIR, thành 4 loại cơ bản:thông thấp, thông cao, thông dải và chắn dải Các bộ lọc này có thể được thiết kế bằng
những phương pháp sau đây: Phương pháp cửa sổ (Window Design Techniques), Phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) và Phương pháp xấp xỉ tối ưu cân bằng gợn sóng (Optimal Equiripple Design Techniques) Mỗi
phương pháp đều có những đặc điểm và ưu khuyết điểm riêng
Với tiểu luận này,nhóm 1 xin phép được trình bày bài toán “ Thiết kế bộ lọc cấu trúcFIR bằng phương pháp cửa sổ ‘’
Nội dung tiểu luận được chia thành 3 phần:
Phần 1 Cơ sở lý thuyết chung.
Phần 2 Thiết kế bộ lọc theo cấu trúc FIR bằng phương pháp cửa sổ.
Nhóm 1 xin trân trọng cảm ơn Thầy giáo TS Ngô Văn Sỹ đã tận giảng dạy và hướngdẫn để chúng tôi có thể hoành thành tốt tiểu luận này Phần lớn nội dung trình bày ởbáo cáo này được lấy từ bài giảng, tài liệu tham khảo do thầy cung cấp
Trong quá trình thực hiện tiểu luận, tuy đã hết sức cố gắng song không tránh khỏinhững sai sót Rất mong nhận được sự góp ý của Thầy, các bạn học viên cùng lớp đểnội dung của tiểu luận được hoàn chỉnh hơn
Đà Nẵng, ngày 27 tháng 4 năm 2011
Trang 2PHẦN 1: CƠ SỞ LÝ THUYẾT CHUNG1.1 Cấu trúc của bộ lọc FIR
Một bộ lọc đáp ứng xung hữu hạn với hàm hệ thống có dạng:
n n M
1 1 M
1 1
b )
n
0
1 0
)
Và phương trình sai phân là:
)1Mn(xb)
1n(xb)n(xb)
n
(
Đây chính là tích chập tuyến tính của các dãy hữu hạn
Bậc của bộ lọc là M-1, trong khi chiều dài của bộ lọc là M (bằng với số lượng các
hệ số) Các cấu trúc bộ lọc FIR luôn luôn ổn định, và tương đối đơn giản hơn so vớicác cấu trúc bộ lọc IIR Hơn thế nữa, các bộ lọc FIR có thể được thiết kế để có mộtđáp ứng pha tuyến tính và đó là điều cần thiết trong một số ứng dụng
Chúng ta sẽ xem xét lần lượt các cấu trúc của bộ lọc FIR sau đây:
a Cấu trúc dạng trực tiếp
Phương trình sai phân được thực hiện bởi một dãy liên tiếp các bộ trễ do không cóđường phản hồi:
)1Mn(xb)
1n(xb)n(xb)
Hình 1.1 Cấu trúc lọc FIR dạng trực tiếp
Trang 31 0
M 1 1 M
1 1
b
bz
b
b1bz
bz
2 2 , k
1 1 , k
K , Bk,1 và Bk,2 là các số thực đại diện cho các hệ số của các
khâu bậc 2 Cấu trúc dạng ghép tầng cho trong hình 1.2 với M=7
c Cấu trúc dạng pha tuyến tính:
Đối với các bộ lọc chọn tần, người ta mong muốn có đáp ứng pha là hàm tuyến tínhtheo tần số, nghĩa là:
n 1 M ( h )
n
(
1 M n 0 , 2 / );
n 1 M ( h )
1n(xb)n(x
Trang 4Rõ ràng, với cùng một bậc của bộ lọc (cùng M) cấu trúc pha tuyến tính sẽ tiết kiệmđược 50% các bộ nhân so với cấu trúc dạng trực tiếp
1.2 Các đặc tính của bộ lọc FIR pha tuyến tính:
Trong phần này chúng ta sẽ thảo luận về hình dạng của đáp ứng xung, đáp ứng tần
số trong hàm hệ thống của các bộ lọc FIR pha tuyến tính
Cho h(n), trong đó 0 n M – 1, là đáp ứng xung có chiều dài M thì hàm truyền
n 1 M )
1 M ( 1
M 0 n
n z h ( n ) z z
) n ( h )
z (
e (
0 n
n j j
2
1 M ,
1 M n 0 ), n 1 M ( h ) n (
Trang 5 M lẻ: Trong trường hợp này,
Đáp ứng xung được mô tả trong hình 1.4
M chẵn: Trong trường hợp này, M 2 1 không phải là một số nguyên Đápứng xung được mô tả bằng hình 1.5 dưới đây:
Ta cũng có bộ lọc FIR pha tuyến tính loại hai nếu ta yêu cầu đáp ứng pha
H ej
thoả mãn điều kiện:
H ( e j )
với (1.13)Đáp ứng pha là đường thẳng nhưng không đi qua gốc Trong trường hợp này không phải là hằng số trễ pha, nhưng:
(1.14)
Hình 1.4 Đáp ứng xung đối xứng, M lẻ
Hình 1.5 Đáp ứng xung đối xứng, M chẵn
Trang 6là hằng số, chính là trễ nhóm ( là một hằng số trễ nhóm) Trong trường hợp này, cáctần số được làm trễ với một tốc độ không đổi Nhưng một số tần số có thể được làm trễvới tốc độ lớn hơn hoặc nhỏ hơn.
Đối với kiểu pha tuyến tính này, có thể thấy rằng:
1 M n 0 ), n 1 M ( h ) n (
Một lần nữa chúng ta lại có 2 kiểu, cho M lẻ và M chẵn
M lẻ: Trong trường hợp này, M 2 1 là một số nguyên Đáp ứng xungđược mô tả bằng hình 1.6 dưới đây:
Lưu ý rằng mẫu h() tại M 2 1 phải bằng 0, nghĩa là, 0
2
1 M
Trang 7; e ) e ( H ) e (
Bộ lọc FIR pha tuyến tính Loại-1 (Type 1): Đáp ứng xung đối xứng, M lẻ
Trong trường hợp này 0, M 2 1 là một biến nguyên, và h n hM 1 n,
2 / 1 M 0 n
2
3 M n
Bộ lọc FIR pha tuyến tính Loại-2 (Type 2): Đáp ứng xung đối xứng, M chẵn
Trong trường hợp này 0, h n hM 1 n, 0nM1, nhưng M 2 1
không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
2 / M
1 n
2
1ncosnb)
e(
2
1 n cos n b ) (
Trang 8Lưu ý: Tại , ta có 0
2
1 n cos n b ) (
1 n
b(n) hoặc h(n) Do đó chúng ta không thể sử dụng loại này (h(n) đối xứng, M chẵn)đối với bộ lọc thông cao hoặc bộ lọc chắn dải
Bộ lọc FIR pha tuyến tính Loại-3 (Type 3): Đáp ứng xung phản đối xứng,
/ 1 M 0 n
j ) c n sin n ee
Bộ lọc FIR pha tuyến tính Loại-4(Type 4):Đáp ứng xung phản đối xứng, M
/ M
1 n
2
1nsinnd)
e
(
trong đó:
Trang 91 n sin n d ) (
Lưu ý: Tại , Hr(0)0 và ej2 j
Do vậy, loại này cũng thích hợp cho việcthiết kế các bộ vi phân số và bộ biến đổi Hilbert số
Bảng sau đây mô tả khả năng thích hợp trong việc thiết kế các bộ lọc và các bộ biếnđổi Hilbert số, bộ vi phân số của 4 loại lọc FIR pha tuyến tính đã nêu:
1.3 Các kỹ thuật thiết kế cửa sổ
Ý tưởng cơ bản của việc thiết kế là: chọn một bộ lọc chọn tần lý tưởng (mà đáp ứng
xung luôn luôn phi nhân quả, dài vô hạn) và cắt (lấy cửa sổ - window) đáp ứng xung của nó để thu được bộ lọc FIR có pha tuyến tính và nhân quả (linear phase and causal FIR filter) Bởi vậy, điểm quan trọng trong phương pháp này là việc chọn một hàm
cửa sổ thích hợp và một bộ lọc lý tưởng tương ứng
Bộ lọc thông thấp lý tưởng (ideal LPF) có tần số cắt wc < được cho bởi:
| c w if 0,
1.e ) ( , if |w| wc
của bộ lọc lý tưởng này được cho bởi:
Chú ý rằng h d (n) là đối xứng theo , sự kiện này tiện dụng cho bộ lọc FIR có pha tuyến tính Ngoài ra h d (n) có độ dài vô hạn và phi nhân quả.
Để thu được bộ lọc FIR có pha tuyến tính và nhân quả h(n) có độ dài M, ta cần có:
)(
)]
(sin[
)(2
1)()
e e H e
H F n
d
jw d
2
1 ,
0
1 0
) ( ) ( M
and elsewhere
M n n
h n
h d
Trang 10Thao tác này được gọi là lấy cửa sổ (window) Tổng quát, đáp ứng xung h(n) có thể
có được bằng cách lấy đáp ứng xung của bộ lọc lý tưởng h d (n) nhân với hàm cửa sổ w(n) như sau:
Tuỳ thuộc vào cách định nghĩa hàm cửa sổ w(n) (window function) chúng ta có
những cửa sổ thiết kế khác nhau Chẳng hạn nếu dùng cửa sổ chữ nhật (Rectangular),thì hàm cửa sổ được định nghĩa:
, 0
, 1 )
Hình dạng của H(e jw ) có thể được mô tả trực quan trên hình 1.8 Từ hình vẽ này
chúng ta có một số nhận xét quan trọng sau đây:
Trang 11 Do cửa sổ w(n) có chiều dài M hữu hạn, đáp ứng của nó có một búp chính
(main-lobe) có độ rộng tỷ lệ với 1/M, và các búp bên (side-lobe) của nó có
chiều cao thấp hơn
Tích chập tuần hoàn sinh ra một phiên bản méo của đáp ứng xung lý tưởng
Các búp bên (side-lobes) sinh ra các gợn sóng có hình dạng như nhau trong cả
dải thông và dải chắn
Với các chỉ tiêu bộ lọc đã cho, chọn chiều dài bộ lọc và một hàm cửa sổ w(n) với độrộng main-lobe hẹp nhất và hệ số suy giảm side-lobe bé nhất có thể được Từ nhận xét
4 nêu trên ta chú ý rằng dung sai dải thông 1 và dung sai dải chắn 2 không thể ấnđịnh một cách độc lập Ta lấy chung 1 = 2
Tiếp theo chúng ta xem xét các hàm cửa sổ thường được dùng, bao gồm: cửa sổ chữnhật (Rectangular), cửa sổ tam giác (Bartlett), cửa sổ Hanning, cửa sổ Hamming, cửa
sổ Blackman và cửa sổ Kaiser
a Cửa sổ chữ nhật (Rectangular Window)
Trong miền n cửa sổ chữ nhật được định nghĩa như sau:
b Cửa sổ tam giác (Bartlett Window)
Với mục đích giảm biên độ của các đỉnh thứ cấp của cửa sổ chữ nhật, chúng ta chọnmột cửa sổ khác có dạng tam giác cân, gọi là cửa sổ tam giác hay cửa sổ Bartlett
Trong miền n cửa sổ tam giác được định nghĩa như sau:
M-1
Trang 12c Cửa sổ Hanning (Hanning Window)
d.Cửa sổ Hamming (Hamming Window)
e Cửa sổ Blackman (Blackman Window)
Trên hình 1.10 cho chúng ta một sự so sánh giữa các hàm cửa sổ thường dùng về các
đặc tính: độ rộng dải chuyển tiếp w, độ suy giảm ở dải chắn A s
f Cửa sổ Kaiser (Kaiser Window)
cos 08 0
2 cos 5 0 42
cos 08 0
2 cos 5 0 42
Trang 13Để đạt được độ suy giảm của dải chặn như mong muốn, các nhà thiết kế tìm mộthàm cửa sổ đáp ứng được các yêu cầu của thiết kế Nhưng các hàm cửa sổ có mức búpbên càng thấp thì độ rộng của búp chính lại càng lớn dẫn đến độ rộng dải chuyển tiếpcũng tăng Do đó phải tăng bậc của bộ lọc để đạt được dải thông mong muốn.
Cửa sổ Kaiser có thông số có thể điều chỉnh được, do vậy có thể điều chỉnh được
độ rộng búp bên so với đỉnh của búp chính Cũng giống các hàm cửa sổ khác, độ rộngbúp chính có thể thay đổi được bằng cách điều chỉnh chiều dài cửa sổ, do vậy điềuchỉnh được độ rộng của dải chuyển tiếp Với mục tiêu này, các bộ lọc số được thiết kếrất có hiệu quả khi dùng hàm cửa sổ Kaiser
Cửa sổ Kaiser được định nghĩa như sau:
] [ 1
2 1 1 )
(
0
2 0
I M
n I
thiết kế theo kinh nghiệm (empirical design equation) và chúng ta có thể sử dụng mà
không cần phải chứng minh
PHẦN 2: THIẾT KẾ BỘ LỌC BẰNG PHƯƠNG PHÁP CỬA SỔ
BẢN PHÂN CÔNG NHIỆM VỤ:
Trang 14STT HỌ VÀ TÊN NHIỆM VỤ
HỌC VIÊN: NGUYỄN THỊ LAN ANH
Thiết kế lọc FIR thông thấp bằng phương pháp cửa sổ
Phương pháp cửa sổ đối với bộ lọc thông thấp
Ý tưởng cơ bản của việc thiết kế là: chọn một bộ lọc chọn tần lý tưởng (mà đáp ứng
xung luôn luôn phi nhân quả, dài vô hạn) và cắt (lấy cửa sổ - window) đáp ứng xung của nó để thu được bộ lọc FIR có pha tuyến tính và nhân quả (linear phase and causal
Trang 15FIR filter) Bởi vậy, điểm quan trọng trong phương pháp này là việc chọn một hàm
cửa sổ thích hợp và một bộ lọc lý tưởng tương ứng
Bộ lọc thông thấp lý tưởng (ideal LPF) có tần số cắt c < được cho bởi:
d
nêu
nêu e
e
H
, 0
,
e e H e
H F n
d
j d d
sin 2
1 )
Chú ý rằng h d (n) là đối xứng theo , sự kiện này tiện dụng cho bộ lọc FIR có pha
tuyến tính Ngoài ra h d (n) có độ dài vô hạn và phi nhân quả.
Để thu được bộ lọc FIR có pha tuyến tính và nhân quả h(n) có độ dài M, ta cần có:
Thao tác này được gọi là lấy cửa sổ (window) Tổng quát, đáp ứng xung h(n) có thể có được bằng cách lấy đáp ứng xung của bộ lọc lý tưởng h d (n) nhân với hàm cửa sổ w(n)
như sau:
h(n) = h d (n). (n)
Tuỳ thuộc vào cách định nghĩa hàm cửa sổ (n) (window function) chúng ta có
những cửa sổ thiết kế khác nhau Chẳng hạn nếu dùng cửa sổ chữ nhật (Rectangular),thì hàm cửa sổ được định nghĩa:
, 0
, 1 )
Hình dạng của H(e j) có thể được mô tả trực quan trên hình 2.Từ hình vẽ này chúng
ta có một số nhận xét quan trọng sau đây:
-Do cửa sổ w(n) có chiều dài M hữu hạn, đáp ứng của nó có một búp chính lobe) có độ rộng tỷ lệ với 1/M, và các búp bên (side-lobe) của nó có chiều cao thấp
(main-hơn
-Tích chập tuần hoàn sinh ra một phiên bản méo của đáp ứng xung lý tưởng H d (e j) -Búp chính (main-lobe) sinh ra một dải chuyển tiếp trong H(e j) mà độ rộng là nguyên nhân tạo nên độ rộng dải chuyển tiếp (transition bandwidth) Độ rộng này tỷ lệ
với 1/M Độ rộng búp chính càng lớn thì độ rộng dải chuyển tiếp càng lớn
2
1 ,
0
1 0
) ( )
h n
nếu 0 n M-1
Trang 16-Các búp bên (side-lobes) sinh ra các gợn sóng có hình dạng như nhau trong cả dải
thông và dải chắn
-Với các chỉ tiêu bộ lọc đã cho, chọn chiều dài bộ lọc và một hàm cửa sổ w(n) với độrộng main-lobe hẹp nhất và hệ số suy giảm side-lobe bé nhất có thể được Từ 4 nhậnxét nêu trên ta chú ý rằng dung sai dải thông 1 và dung sai dải chắn 2 không thể ấn
2
1
1 1
1
2 2
2 2
S
C C
C
S
C C
C
f
F f
f
F f
2 / ) (
2 2 2
1 1 1
P S C
P S C
f f f
f f f
Trang 171 (
)
hd(n): là đáp ứng xung của bộ lọc thiết kế
- Từ hd(n) tính hd(Z) → Xây dựng sơ đồ cấu trúc
- Lượng tử hóa và mã hóa các hệ số của bộ lọc
- Kiểm tra lại: Nếu không thỏa mãn yêu cầu thì tăng độ dài từ mã biểu diễn hệ
Tính toán, thiết kế bằng phương pháp cửa sổ:
- Với A S =50dB chọn cửa sổ Hamming với hàm cửa sổ như sau:
(tâm đối xứng tại n = 0)
- Tìm đáp ứng xung h d (n) của bộ lọc thực tế (bộ lọc cần thiết kế):
C C d
C
M Sin n
h n
M n
Trang 18h n
n n
Đến đây chúng ta đã có được bộ lọc cần thiết kế
Thuật toán giải quyết bài toán
Trong phần này sẽ thực hiện chương trình thiết kế bộ lọc thông thấp bằng cách sử
dụng cửa sổ Hamming Chương trình sẽ nhận các chỉ tiêu yêu cầu của bộ lọc cần thiết
kế, sau đó thực hiện các bước thiết kế để tìm được đáp ứng xung h(n)
Để khảo sát bộ lọc vừa thiết kế, chương trình cũng sẽ thực hiện tính toán và vẽ đápứng biên độ - tần số của bộ lọc theo dB, cũng như vẽ các đáp ứng xung lý tưởng hd(n),hàm cửa sổ w(n) và đáp ứng xung bộ lọc thực tế h(n)
Chương trình được viết và chạy trên nền Matlab , với việc sử dụng một số hàm hỗ trợ
có sẵn của Matlab cho xử lý tín hiệu số, và một số hàm viết thêm được tham khảo từtài liệu (các hàm dưới dạng các file m)
% kd = ideal impulse response betveen 0 to M-1
% wc = cutoff frequency in radians
% M = length of the ideal filter
% mag=absolute magnitude computed over 0 to pi radians
% grd= Group delay over 0 to pi radians
% w=501 frequency samples between 0 to pi radians
% b=numerator polynomial of H(z) (for FIR: a=h)
% a=demonitor polynomial of H(z) (for FIR: a=[1])
[H,w]=freqz(b,a,1000, 'whole' );
H=(H(1:1:501))';w=(w(1:1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
Trang 19Title( 'Magnitude Response in dB' );
xlabel( 'Frequency in pi units' );
Như vậy bộ lọc vừa thiết kế thỏa mãn yêu cầu của bài toán
Hình dạng của đáp ứng xung lý tưởng, đáp ứng xung thực tế bộ lọc, hàm cửa sổHamming và đáp ứng biên độ tần số (theo dB) của bộ lọc được cho như trên
Trang 22HỌC VIÊN: PHAN VIỆT HÙNG
Thiết Kế Bộ Lọc FIR Thông Dải Bằng Phương Pháp Cửa Sổ
Bài toán thiết kế
Hãy thiết kế bộ lọc FIR thông dải pha tuyến tính theo phương pháp cửa sổ, với các chỉtiêu bộ lọc cần thiết kế được cho như sau:
Cạnh thấp của dải chắn: ws1
Cạnh thấp của dải thông: wp1
Cạnh cao của dải thông: wp2
Cạnh cao của dải chắn: ws2
Độ gợn sóng trong dải thông: Rp
Suy hao trong dải chắn: As
Các đại lượng này có thể được mô tả trên hình 2.1 như sau:
Trang 23Điều kiện: ws1 < wp1 < wp2 < ws2
Hoặc bài toán cho các chỉ tiêu 1 và 2 ta cũng có thể tính được As và Rp
dựa vào quan hệ giữa chúng theo công thức
0
1 1 1 1 10 log
2 10 log
Bước 1 Chọn loại cửa sổ sử dụng
Việc chọn loại cửa sổ sử dụng nhằm đảm bảo suy hao trong dải chắn thoả mãnchỉ tiêu thiết kế As yêu cầu của bài toán đặt ra
Có đến 6 loại cửa sổ khác nhau, trong đó ngoại trừ cửa sổ Kaiser có suy haotrong dải chắn có thể đạt được bằng cách thay đổi hệ số , còn các cửa sổ khác có suyhao trong dải chắn là cố định
Ngoài ra, bậc M của bộ lọc phụ thuộc vào độ rộng của dải chuyển tiếp w và phụthuộc vào loại cửa sổ được chọn Với cùng 1 chỉ tiêu thiết kế, tức là cùng 1 giá trị độ
rộng dải chuyển tiếp w, bậc của bộ lọc sẽ khác nhau nếu chọn các cửa sổ khác nhau
Bởi vậy, việc chọn loại cửa sổ nào còn phụ thuộc vào quan điểm của người thiết
kế trên cơ sở dung hoà giữa việc đảm bảo được suy hao trong dải chắn theo đúng yêucầu bài toán và đảm bảo bậc bộ lọc đủ nhỏ
Tuy nhiên, thông số được ưu tiên ở đây là suy hao As, bởi sự thay đổi của bậc bộlọc M khi sử dụng các loại cửa sổ khác nhau là không nhiều lắm
Bước 2 Xác định bậc M của bộ lọc
Nếu sử dụng cửa sổ Kaiser: M được tính theo nhóm công thức (1.40), cũng từ
công thức này ta tính được hệ số
Nếu sử dụng các cửa sổ khác: M được xác định nhờ vào quan hệ giữa M với độ
rộng dải chuyển tiếp w và có thể tính được dựa vào bảng tóm tắt được chotrong hình 1.10
Bước 3 Tìm hàm cửa sổ w(n)
Sử dụng các hàm có sẵn của Matlab với bậc bộ lọc M đã tìm được ở bước 2
Bước 4 Tìm đáp ứng xung của bộ lọc thông dải lý tưởng h d (n)
Đáp ứng xung của bộ lọc thông dải lý tưởng có thể tìm được trên cơ sở kết hợp
Trang 24đáp ứng xung của 2 bộ lọc thông thấp lý tưởng theo như hình 2.2 sau đây:Trong đó wc1
và wc2 lần lượt là tần số cắt của 2 bộ lọc thông thấp lý tưởng tương ứng, có thể đượctính từ các chỉ tiêu đã cho của bộ lọc thông dải thực tế:
wc1 = (ws1 + wp1) / 2
wc2 = (wp2 + ws2) / 2
Trang 25Đáp ứng xung của lọc thông thấp lý tưởng có thể tìm được từ công thức (1.29).
Bước 5 Tìm đáp ứng xung h(n) của bộ lọc thực tế (bộ lọc cần thiết kế)
Đáp ứng xung của bộ lọc thông dải thực tế được tính bằng cách lấy đáp ứng xung
lý tưởng nhân với hàm cửa sổ (công thức 1.31), đây chính là thao tác lấy cửa sổ
Để khảo sát bộ lọc vừa thiết kế, chương trình cũng sẽ thực hiện tính toán và vẽ đápứng biên độ - tần số của bộ lọc theo dB, cũng như vẽ các đáp ứng xung lý tưởng hd(n),hàm cửa sổ w(n) và đáp ứng xung bộ lọc thực tế h(n)
1 Dùng cửa sổ kaiser
)(
)]
(sin[
)(2
1)()
e e H e
H F n
d
jw d
Trang 26-a Lưu đồ thuật toán:
b Chương trình Matlab
Chương trình chính: Hàm bpf_kai(ws1,wp1,wp2,ws2,Rp,As) thực hiện thiết kế bộ
lọc thông dải dùng cửa sổ Kaiser
BEGIN
Nhập các chỉ tiêu
w1s, w1p, w2p, w2s, A
s, R
p
Chỉ tiêu có hợp lệ không?
No
Tính bậc M và hệ số của cửa sổ Kaiser theo công thức (1.40)
Tìm hàm cửa sổ w(n)(Gọi hàm của Matlabw=kaiser(M,beta) )
Tính hd(n)h(n)=hd(n).w(n)
Vẽ hd(n), w(n), h(n) và đáp ứng biên độ (dB) của
bộ lọc thiết kế
ENDYes
Trang 27function [h] = bpf_kai(ws1,wp1,wp2,ws2,Rp,As);
%thiet ke bo loc Fix thong dai dung cua so kaiser
% -% h = bpf_kai(ws1,wp1,wp2,ws2,Rp,As)
% ws1: Canh thap cua dai chan
% wp1: Canh thap cua dai thong
% wp2: Canh cao cua dai thong
% ws2: Canh cao cua dai chan
% Rp : Do gon song trong dai thong
% As : Suy hao trong dai chan
temp=input('Canh thap cua dai chan: ws1 = ');
if (temp <= 0)|(temp>=1), error('Canh thap cua dai chan ws1: 0< ws1 <1');
end
ws1=temp;
temp=input('Canh thap cua dai thong: wp1 = ');
if (temp <= ws1)|(temp>=1), error('Canh thap cua dai thong wp1: ws1 < wp1 < 1'); end
wp1=temp;
temp=input('Canh cao cua dai thong: wp2 = ');
if (temp <= wp1)|(temp>=1), error('Canh cao cua dai thong wp2: wp1 < wp2 < 1'); end
wp2=temp;
temp=input('Canh cao cua dai chan: ws2 = ');
if (temp <= wp2)|(temp>=1), error('Canh cao cua dai chan ws2: wp2 < ws2 < 1'); end
ws2=temp;
temp=input('Do gon song trong dai thong (0 < Rp < 1): Rp = ');
if (temp <= 0)|(temp>=1), error('Error: 0 < Rp < 1');
end
Rp=temp;
temp=input('Suy hao trong dai chan (As > 21): As = ');
if (temp < 0), error('Error: As lon hon 21 dB !!');