Trong phần này sẽ thực hiện chương trình thiết kế bộ lọc thông cao bằng phương
pháp lấy mẫu tần số. Chương trình sẽnhận cácchỉ 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 h
d(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 [1] (các hàm dưới dạng các file .m).
22 trang |
Chia sẻ: lylyngoc | Lượt xem: 4168 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế bộ lọc FIR thông cao bằng phương pháp lấy mẫu tần số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUY NHƠN
--- oOo ---
BÀI TẬP LỚN
MÔN HỌC: XỬ LÝ SỐ TÍN HIỆU
ĐỀ TÀI: THIẾT KẾ BỘ LỌC FIR THÔNG CAO
BẰNG PHƯƠNG PHÁP LẤY MẪU TẦN SỐ
Người hướng dẫn :
Sinh viên thực hiện :
Lớp :
Quy Nhơn , tháng 5/2011
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 2
LỜI NÓI ĐẦU
Với xu hướng số hóa các hệ thống thông tin hiện nay,việc xử lý tín hiệu số ngày
càng trở nên quan trọng với khả năng xử lý thông tin một các ưu việt.
Để có thể tiếp cận được lĩnh vực này, chúng ta cần có những kiến thức cơ bản về
tín hiệu số và các phương pháp xử lý. Một trong những kiến thức quan trọng đó là
thiết kế bộ lọc số - hệ thống có thể làm thay đổi tín hiệu để phù hợp với mục đích của
con người.
Trong xử lý số tín hiệu, tồn tại nhiều bộ lọc số khác nhau như: bộ lọc thông thấp,
bộ lọc thông dải, bộ lọc vi phân,… Để thiết kế các bộ lọc thích hợp, trước hết phải xác
định yêu cầu thực tế dựa trên các chỉ tiêu kỹ thuật cho trước, trên cơ sở đó định hình
cấu trúc bộ lọc và phương pháp thiết kế tối ưu. Cấu trúc bộ lọc có thể là: cấu trúc FIR
(bộ lọc số có đáp ứng xung chiều dài xác định) hoặc cấu trúc IIR (bộ lọc số có đáp
ứng xung chiều dài không xác định). Phương pháp thiết kế có thể là: phương pháp cửa
sổ, phương pháp lấy mẫu tần số, hoặc phương pháp xấp xỉ tối ưu,…
Được sự phân công của thầy giáo , trên cơ sở những kiến thức đã học, tôi đã tìm
hiểu bộ lọc FIR theo phương pháp lấy mẫu tần số.
Tôi xin chân thành cám ơn thầy giáo , bạn bè cùng lớp đã tận tình hướng dẫn để
tôi có thể hoàn thành đề tài này. Chắc chắn đề tài sẽ không tránh khỏi những thiếu sót
rất mong được sự góp ý của quý thầy cô và các bạn.
Xin chân thành cảm ơn!
Quy nhơn, tháng 5 năm 2011
Người thực hiện
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 3
MỤC LỤC
LỜI NÓI ĐẦU.............................................................................................................2
MỤC LỤC...................................................................................................................3
Phần 1. CƠ SỞ LÝ THUYẾT ......................................................................................4
1.1. Dẫn nhập...........................................................................................................4
1.2. Cấu trúc của bộ lọc FIR.....................................................................................6
a. Cấu trúc dạng trực tiếp .....................................................................................6
b. Cấu trúc dạng ghép tầng:..................................................................................7
c. Cấu trúc dạng pha tuyến tính: ...........................................................................7
1.3. Các đặc tính của bộ lọc FIR pha tuyến tính .......................................................8
a. Đáp ứng xung h(n): ..........................................................................................9
b. Đáp ứng tần số H(ej):....................................................................................11
1.4 Phương pháp thiết kế lấy mẫu tần số : ..............................................................14
a. Phương pháp thiết kế đơn giản .......................................................................15
b. Phương pháp thiết kế tối ưu............................................................................15
Phần 2. THIẾT KẾ LỌC FIR THÔNG CAO .............................................................16
2.1. Bài toán thiết kế ..............................................................................................16
2.2. Phương pháp thiết kế.......................................................................................16
2.3. Thuật toán và chương trình Matlab..................................................................17
a. Lưu đồ thuật toán: ..........................................................................................17
b) Chương trình..................................................................................................19
c) Kết quả ..........................................................................................................21
TÀI LIỆU THAM KHẢO..........................................................................................22
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 4
Phần 1. CƠ SỞ LÝ THUYẾT
1.1. Dẫn nhập
Việc thiết kế một bộ lọc số tiến hành theo 3 bước:
Đưa ra các chỉ tiêu: Trước khi thiết kế một bộ lọc chúng ta cần xác định các chỉ
tiêu. Các chỉ tiêu được xác định bởi các ứng dụng cụ thể khác nhau.
Tìm các xấp xỉ: Một khi chỉ tiêu đã được xác định, ta sử dụng các khái niệm và
công cụ toán học khác nhau để tiến tới biểu diễn và tính gần đúng cho bộ lọc
với tập các chỉ tiêu đã cho. Và đây là chủ đề chính của việc thiết kế lọc số.
Thực hiện bộ lọc: Kết quả của các bước trên cho mô tả dưới dạng một phương
trình sai phân, hoặc một hàm hệ thống H(z), hoặc một đáp ứng xung h(n). Từ
các mô tả này chúng ta có thể thi hành bộ lọc bằng phần cứng hoặc phần mềm
mô phỏng trên máy tính.
Trong những phần tiếp sau đây, để mô tả các chỉ tiêu của bộ lọc chúng ta sẽ xem xét
việc thiết kế một bộ lọc thông thấp như một ví dụ cơ sở. Có 2 nhóm chỉ tiêu: Các chỉ
tiêu tuyệt đối (Absolute Specifications) và các chỉ tiêu tương đối (Relative
Specifications - DB).
Trên hình 1.1 là mô tả các chỉ tiêu của bộ lọc FIR thông thấp (Low Pass Filter):
1
1+1
1-1
Độ gợn dải thông
Độ gợn dải chắn Dải chuyển tiếp
2
Rp
As
wp ws 0
0
|H(ejw)|
Decibels
Hình 1.1 Các chỉ tiêu của bộ lọc FIR: các chỉ tiêu tuyệt đối và tương đối
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 5
Trong đó:
Band [0, wp] được gọi là dải thông, và 1 là dung sai (gợn sóng) được chấp
nhận trong đáp ứng dải thông lý tưởng.
Band [ws, ] được gọi là dải chắn, và 2 là dung sai ở dải chắn.
Band [wp, ws] được gọi là dải chuyển tiếp, và không có ràng buộc nào về đáp
ứng biên độ trong dải này
Các chỉ tiêu tương đối gồm có:
Rp: Độ gợn sóng trong dải thông tính theo dB.
As : Suy hao trong dải chắn tính theo dB.
Quan hệ giữa các chỉ tiêu này như sau:
0
11
11
10log20
pR (0) (1.1)
0
11
2
10log20
sA (>>1) (1.2)
Các chỉ tiêu trên được đưa ra đối với bộ lọc FIR thông thấp, và tất nhiên đối với các
bộ lọc khác như thông cao HPF (High Pass Filter), thông dải BPF (Band Pass Filter)
đều có thể được định nghĩa tương tự. Tuy nhiên, các tham số thiết kế quan trọng nhất
là các dung sai dải tần và các tần số cạnh-dải (tolerance or ripples and band-edge
frequencies). Bởi vậy, trong phần 1 về cơ sở lý thuyết này chúng ta chỉ tập trung vào
bộ lọc FIR thông thấp. Việc thiết kế cụ thể cho bộ lọc FIR thông dải bằng kỹ thuật cửa
sổ sẽ được phát triển trên cơ sở lọc thông thấp và sẽ được mô tả chi tiết trong phần 2.
Việc thiết kế và thực hiện lọc FIR có những thuận lợi sau đây:
Đáp ứng pha là tuyến tính.
Dễ thiết kế do không gặp các vấn đề ổn định (lọc FIR luôn ổn định).
Việc thực hiện rất hiệu quả.
Có thể sử dụng DFT để thực hiện
Đáp ứng pha là tuyến tính (linear phase response) mang lại những thuận lợi sau:
Bài toán thiết kế chỉ gồm các phép tính số học thực chứ không cần phép tính
số học phức.
Bộ lọc pha tuyến tính không có méo trễ nhóm và chỉ bị trễ một khoảng không
đổi.
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 6
Đối với bộ lọc có chiều dài M (hoặc bậc M-1) số phép toán có bậc M/2 như
đã khảo sát trong thực hiện bộ lọc có pha tuyến tính.
1.2. 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:
1M
0n
n
n
M1
1M
1
10 zbzbzbb)z(H (1.3)
Như vậy đáp ứng xung h(n) là:
else
Mnb
nh n
0
10
)( (1.4)
Và phương trình sai phân là:
)1Mn(xb)1n(xb)n(xb)n(y 1M10 (1.5)
Đâ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ớ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:
)1Mn(xb)1n(xb)n(xb)n(y 1M10 (1.6)
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.2 với M = 5:
b0
z-1 b1
z-1 b2
z-1 b3
z-1 b4
y(n)
x(n)
Hình 1.2 Cấu trúc lọc FIR dạng trực tiếp
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 7
b. Cấu trúc dạng ghép tầng:
Hàm hệ thống H(z) được biến đổi thành các tích của các khâu bậc 2 với các hệ số
thực. Các khâu này được thực hiện ở dạng trực tiếp và bộ lọc tổng thể có dạng ghép
tầng của các khâu bậc 2.
M1
0
1M1
0
1
0
M1
1M
1
10 zb
bz
b
b1bzbzbb)z(H
K
1k
2
2,k
1
1,k0 )zBzB1(b (1.7)
trong đó
2
MK , 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 được cho trong hình 1.3 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ính
theo tần số, nghĩa là:
)e(H j (1.8)
trong đó 0 hoặc
2
và là một hằng số.
Đối với bộ lọc FIR nhân quả có đáp ứng xung trong khoảng [0, M-1], thì các điều
kiện tuyến tính là:
1Mn0,0);n1M(h)n(h (1.9)
1Mn0,2/);n1M(h)n(h (1.10)
Xét phương trình sai phân được cho trong phương trình (1.5) với đáp ứng xung đối
xứng trong phương trình (1.9), ta có:
)1Mn(xb)2Mn(xb)1n(xb)n(xb)n(y 0110
)]2Mn(x)1n(x[b)]1Mn(x)n(x[b 10
B1,1
z-1 z-1 z-1
y(n) x(n)
B2,1 B3,1
b0
B1,2
z-1 z-1 z-1 B2,2 B3,2
Hình 1.3 Cấu trúc lọc FIR dạng ghép tầng
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 8
Sơ đồ khối thực hiện phương trình sai phân trên được mô tả trong hình 1.4 dưới đây
đối với cả M lẻ và M chẵn:
Đối với M lẻ: M = 7, còn đối với M chẵn: M = 6
Rõ 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.3. 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 hệ
thống là:
1M
0n
n1M)1M(1M
0n
n z)n(hzz)n(h)z(H (1.11)
có (M-1) điểm cực ở gốc (trivial poles) và M-1 điểm không nằm ở vị trí bất kỳ trên
mặt phẳng z. Đáp ứng tần số là:
,e)n(h)e(H
1M
0n
njj (1.12)
b0
z-1
b1
z-1
b2
x(n)
z-1 z-1
z-1
y(n)
b0
z-1
b1
z-1
b2 b3 y(n)
x(n)
z-1 z-1
z-1
z-1
M=7
M=6
Hình 1.4 Cấu trúc lọc FIR pha tuyến tính với các hệ số M chẵn và lẻ
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 9
a. Đáp ứng xung h(n):
Chúng ta có thể đưa ra ràng buộc pha tuyến tính:
,)e(H j (1.13)
trong đó: là một hằng số trễ pha. Ta đã biết rằng h(n) phải đối xứng, nghĩa là:
2
1M,1Mn0),n1M(h)n(h (1.14)
Do đó h(n) là đối xứng theo , là chỉ số đối xứng. Có hai kiểu đối xứng:
M lẻ: Trong trường hợp này,
2
1M
là một số nguyên. Đáp ứng xung
được mô tả trong hình 1.5 dưới đây:
M chẵn: Trong trường hợp này,
2
1M
không phải là một số nguyên. Đáp
ứng xung được mô tả bằng hình 1.6 dưới đây:
Hình 1.5 Đáp ứng xung đối xứng, M lẻ
Hình 1.6 Đáp ứng xung đối xứng, M chẵn
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 10
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 jeH
thoả mãn điều kiện:
)e(H j với (1.15)
Đá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:
d
)e(Hd j (1.16)
là 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ác
tầ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:
1Mn0),n1M(h)n(h và
2
,
2
1M
(1.17)
Điều này có nghĩa rằng đáp ứng xung h(n) là phản đối xứng (antisymmetric). Chỉ
số đối xứng vẫn là
2
1M
. 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,
2
1M
là một số nguyên. Đáp ứng xung
được mô tả bằng hình 1.7 dưới đây:
Lưu ý rằng mẫu h() tại
2
1M
phải bằng 0, nghĩa là, 0
2
1Mh
.
Hình 1.7 Đáp ứng xung phản đối xứng, M lẻ
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 11
M chẵn: Trong trường hợp này,
2
1M
không phải là một số nguyên. Đáp
ứng xung được mô tả trong hình 1.8.
b. Đáp ứng tần số H(ej):
Khi tổ hợp hai loại đối xứng và phản đối xứng với M chẵn và M lẻ, ta có bốn kiểu
lọc FIR pha tuyến tính. Đáp ứng tần số của mỗi kiểu có biểu thức và hình dạng riêng.
Để nghiên cứu các đáp ứng pha của các kiểu này, ta viết biểu thức của H(ej) như sau:
2
1M,
2
;e)e(H)e(H )(jjrj
(1.18)
trong đó Hr(ej) là hàm đáp ứng độ lớn chứ không phải là hàm đáp ứng biên độ. Đáp
ứng độ lớn là một hàm thực, có thể vừa dương vừa âm, không giống đáp ứng biên độ
luôn luôn dương. Đáp ứng pha kết hợp với đáp ứng biên độ là một hàm không liên tục,
trong khi kết hợp với đáp ứng độ lớn là một hàm tuyến tính liên tục.
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 ,
2
1M
là một biến nguyên, và n1Mhnh ,
1Mn0 , thì ta có thể chứng tỏ rằng:
2/1Mj
2/1M
0n
j encosna)e(H
(1.19)
trong đó:
Hình 1.8 Đáp ứng xung phản đối xứng, M chẵn
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 12
2
1Mh0a với mẫu ở chính giữa (1.20)
n
2
1Mh2na với
2
3Mn1
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 , n1Mhnh , 1Mn0 , nhưng
2
1M
không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
2/1Mj
2/M
1n
j e
2
1ncosnb)e(H
(1.21)
trong đó:
n
2
Mh2nb với
2
M,...,2,1n (1.22)
So sánh (1.21) và (1.18), ta có:
2/M
1n
r 2
1ncosnb)(H (1.23)
Lưu ý: Tại , ta có 0
2
1ncosnb)(H
2/M
1n
r
mà không cần quan tâm
đế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.
Lọc FIR pha tuyến tính Loại-3 (Type 3): Đáp ứng xung phản đối xứng, M lẻ
Trong trường hợp này ta có
2
,
2
1M
là một biến nguyên,
n1Mhnh , 1Mn0 , và 0
2
1Mh
thì ta có thể chứng tỏ:
2
1M
2
j2/1M
0n
j ensinnc)e(H (1.24)
trong đó
n
2
1Mh2nc với
2
M,...,2,1n (1.25)
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 13
So sánh (1.24) và (1.18), ta có:
2/1M
0n
r nsinncH (1.26)
Lưu ý: Tại 0 và , ta có 0H r mà không cần quan tâm c(n) hoặc h(n).
Hơn thế nữa, je 2
j
, điều đó có nghĩa là rjH là thuần ảo. Do đó, loại bộ lọc này
không thích hợp đối với việc thiết kế bộ lọc thông thấp hoặc thông cao. Tuy nhiên,
điều này thích hợp đối với việc xấp xỉ các bộ vi phân và bộ biến đổi Hilbert số lý
tưởng.
Lọc FIR pha tuyến tính Loại-4(Type 4):Đáp ứng xung phản đối xứng, M chẵn
Trong trường hợp này
2
, n1Mhnh , 10 Mn , nhưng
2
1M
không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
2
1M
2
j2/M
1n
j e
2
1nsinnd)e(H (1.27)
trong đó:
n
2
Mh2nd với
2
M,...,2,1n (1.28)
So sánh (1.27) và (1.18), ta có:
2/M
1n
r 2
1nsinnd)(H (1.29)
Lưu ý: Tại , 0)0(H r và je 2
j
. Do vậy, loại này cũng thích hợp cho việc
thiế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:
Type LPF HPF BPF SBF Hilbert Differentiator
FIR Type 1
FIR Type 2
FIR Type 3
FIR Type 4
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 14
1.4 Phương pháp thiết kế lấy mẫu tần số :
Theo phương pháp lấy mẫu tần số, đáp ứng tần số yêu cầu Hd(ejw) trước tiên được
lấy mẫu đều ở M điểm cách đều nhau giữa 0 và 2pi :
H(k)= Hd(ej2k/M) k=0,1,........M-1
Các mẫu tần số này tạo thành DFT M điểm mà biến đổi nghịch là bộ lọc FIR có bậc
M-1:
1
0
/2)(1)(
M
k
MnkjekH
M
nh 10 Mn
Đáp ứng thực tế là nội suy của các mẫu được cho bởi:
1
0
/21
1
0 1
)(1)()(
M
k
Mnkj
MM
n
n
ez
kH
M
zznhzH
Đáp ứng pha đối với kiểu 1 và 2 :
Đáp ứng pha đối với kiểu 3 và 4
Hình 1.9 mô tả kỹ thuật lấy mẫu tần số :
Từ hình trên ta nhận thấy :
Lỗi xấp xỉ là hiệu của đáp ứng lý tưởng và đáp ứng thực tế bằng không tại các tần số
được lấy mẫu.
0 1 2 3 4 5 6 7
. 1 . .
. .
. .
. . .
0 1 2 3 4 5 6 7 8
. 1 . .
. . .
.
. . .
1,,1
2
1,)(2
2
1
2
1,,0,2
2
1
)(
MMk
M
kMM
Mk
M
kM
kH
1,,1
2
1,)(2
2
1
2
2
1,,0,2
2
1
2)(
MMk
M
kMM
Mk
M
kM
kH
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 15
Lỗi xấp xỉ ở tất cả các tần số khác phụ thuộc vào hình dạng của đáp ứng tần số lý
tưởng; nghĩa là, đáp ứng tần số lý tưởng càng sắc nét thì lỗi xấp xỉ càng lớn.
Lỗi càng lớn khi ở gần cạnh dải và càng bé khi ở bên trong dải.
- Có hai cách tiếp cận thiết kế :
a. Phương pháp thiết kế đơn giản : sử dụng ý tưởng cơ bản và không đưa ra một
ràng buộc nào về lỗi xấp xỉ, nghĩa là chấp nhận lỗi sinh ra do thiết kế.
Trong phương pháp này ta đặt H(k)= Hd(ej2k/M) k=0,1,........M-1 và sử dụng các
công thức để thu được đáp ứng xung h(n). Phương pháp này ít được sử dụng trong
thực tế.
b. Phương pháp thiết kế tối ưu : cố gắng tối thiểu hóa lỗi trong dải chắn bằng cách
thay đổi các giá trị của mẫu trong dải chuyển tiếp.
Trong phương pháp này, chúng ta phải tăng M để tạo ra các mẫu tự do trong dải
chuyển tiếp nghĩa là chúng ta thay đổi các giá trị của chúng để thu được hệ số suy
giảm lớn nhất đối với M và độ rộng dải chuyển tiếp đã cho. Đây là một bài toán tối ưu
hóa và được giải quyết bằng kỹ thuật quy hoạch tuyến tính.
Trong thực tế độ rộng dải chuyển tiếp nói chung khá bé, chỉ chưa được một hoặc hai
mẫu. Do đó chúng ta cần tối ưu hóa tốt nhất hai mẫu để thu được hệ số suy giảm dải
chắn lớn nhất.
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 16
Phần 2. THIẾT KẾ BỘ LỌC FIR THÔNG CAO
2.1. Bài toán thiết kế
Hãy thiết kế bộ lọc FIR thông cao pha tuyến tính theo phương pháp lấy mẫu tần số,
với các chỉ tiêu bộ lọc cần thiết kế được cho như sau:
Cạnh dải chắn: ws
Cạnh dải thông: wp
Độ 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:
Điều kiện: ws< wp<1
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 (1.1) và (1.2).
2.2. Phương pháp thiết kế
Bước 1. Chọn số mẫu để lấy mẫu tần số của bộ lọc lý tưởng:
Trong phương pháp lấy mẫu tần số, việc chọn số mẫu để lấy mẫu bộ lọc lý tưởng là
rất quan trọng. Ở đây, chọn số mẫu M để có 02 mẫu rơi vào dải chuyển tiếp.
M = [round(1/(ws1-wp1))]*6+1;
Bước 2. Thực hiện lấy M mẫu tần số bộ lọc lý tưởng
Lúc này ta có M điểm lấy mẫu, trong đó đáp ứng tần số biên độ của các điểm trong
dải thông là 1, trong dải chắn là 0. Việc xác định đáp ứng tần số biên độ của 02 mẫu
Hình 2.1 Các chỉ tiêu của bộ lọc thông cao HPF (high pass filter)
Mag(dB)
F (Hz)
0
RP
As
ws wp
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 17
trong dải chuyển tiếp được thực hiện lặp để xác đinh được bộ lọc có Rp và As là tốt
nhất.
Bước 3. Tìm đáp ứng xung của bộ lọc thông cao cần thiết kế
Đáp ứng xung của bộ lọc thông cao có thể tìm được bằng phép biển đổi DFT
ngược các mẫu hd(n) :
1
0
/2)(1)(
M
k
MnkjekH
M
nh 10 Mn
2.3. Thuật toán và chương trình Matlab
Trong phần này sẽ thực hiện chương trình thiết kế bộ lọc thông cao bằng phương
pháp lấy mẫu tần số. 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 [1] (các hàm dưới dạng các file .m).
a. Lưu đồ thuật toán:
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 18
BEGIN
Nhập các chỉ tiêu
ws, wp
As, Rp
Chỉ tiêu có
hợp lệ
không?
No
Tính số mẫu M
Tìm gía trị của T1, T2 tốt
nhất ( ứng với Rpd và
Asd tốt nhất )
Tính hd(n)
Yes
Vẽ hd(n), h(n) và đáp
ứng biên độ (dB) của bộ
lọc thiết kế.
END
Rpd và Asd có
thỏa mãn yêu
cầu không?
Yes
No
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 19
b) Chương trình
function [ws wp As Rp]=loc_FIR_thongcao()
fprintf('\n');
fprintf('Nhap vao cac thong so cua bo loc thong cao :');
fprintf('\n');
ws1=input('Nhap 0<ws <1, ws = ');
while((ws1=1))
ws1=input('Nhap sai, nhap lai 0<ws <1, ws = ');
end
wp1=input('Nhap wp>ws ,0<wp <1, wp = ');
while(((wp1=1))|(wp1<=ws1))
wp1=input('Nhap sai, nhap lai wp>ws ,0<wp <1, wp = ');
end
As1=input('Nhap As >21, As = ');
while(As1<=21)
As1=input('Nhap sai, nhap lai As>21, As = ');
end
Rp1=input('Nhap 0 < Rp < 1, Rp = ');
while((Rp1=1))
Rp1=input('Nhap sai, nhap lai 0 < Rp < 1, Rp = ');
end
ws=ws1;
wp=wp1;
As=As1;
Rp=Rp1;
M=round(1/(wp-ws))*6+1;
alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l;
%Tim cac gia tri toi uu
MaxAs=As;
MinRp=Rp;
N1=ceil(ws*alpha)+1;
N2=ceil((2-wp)*alpha)+1;
for T1 = 0.05:0.01:0.5
for T2 = 1:-0.01:0.5
Hrs = [zeros(1,N1),T1,T2,ones(1,N2-N1-2),T2,T1,zeros(1,M-N2-2)];
Hdr = [0,0,1,1]; wdl = [0,ws,wp,1];
k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;
angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];
H = Hrs.*exp(j*angH);
h = real(ifft(H,M));
[db,mag,pha,grd,w] = freqz_m(h,1);
[Hr,ww,a,L] = Hr_Type1(h);
delta_w=1/500;
Asd = -max( db(1:ws/delta_w+1));
Rpd = -min(db(wp/delta_w+1):501)
if((Asd>=MaxAs)&(Rpd<=MinRp))
MaxAs=Asd;
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 20
MinRp=Rpd;
T1op=T1;
T2op=T2;
end
end
end
Hrs = [zeros(1,N1),T1op,T2op,ones(1,N2-N1-2),T2op,T1op,zeros(1,M-N2-2)];
Hdr = [0,0,1,1]; wdl = [0,ws,wp,1];
k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;
angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];
H = Hrs.*exp(j*angH);
h = real(ifft(H,M));
[db,mag,pha,grd,w] = freqz_m(h,1);
[Hr,ww,a,L] = Hr_Type1(h);
subplot(1,1,1);
subplot(2,2,1);plot(wl(1:alpha+1)/pi,Hrs(1:alpha+1),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]); title('Frequency Samples at M=%2.4f',M);
xlabel('Frequency in pi units'); ylabel('Hr(k)')
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[0;ws;wp; 1])
set(gca,'YTickMode','manual','YTick',[0,T1op,T2op,1]); grid
subplot(2,2,2); stem(l,h); axis([-1,M,-0.4,0.4])
title('Impulse Response'); xlabel('n');ylabel('h(n)');text(M+1,-0.4,'n')
subplot(2,2,3); plot(ww/pi,Hr,wl(1:alpha+1)/pi,Hrs(1:alpha+1),'o');
axis([0,1,-0.1,1.1]); title('Amplitude Response')
xlabel('Frequency in pi units'); ylabel('Hr(w)')
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[ 0;ws;wp;1])
set(gca,'YTickMode','manual','YTick',[T1op,T2op]); grid
subplot(2,2,4);plot(w/pi,db); axis([0,1,-100,10]); grid
title('Magnitude Response');xlabel('Frequency in pi units'); ylabel('Decibels');
set(gca,'XTickMode','manual','XTick',[0;ws;wp;1])
set(gca,'XTickLabelMode','manual','XTickLabels',[ 0;ws;wp; 1])
set(gca,'YTickMode','Manual','YTick',[-As;0]);
set(gca,'YTickLabelMode','manual','YTickLabels',[As; 0])
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 21
c) Kết quả
Kết quả chương trình được thực hiện với ws=0.4pi, wp=0.65pi, Rp=0.4, As=45
Thiết kế lọc FIR thông cao bằng phương pháp lấy mẫu tần số Trang 22
TÀI LIỆU THAM KHẢO
------
[1] Ngô Văn Sỹ, giảng Xử lý Tín hiệu số, Đại học Bách Khoa Đà Nẵng.
[2] Monson H. Hayes (Sách dịch - Tống Văn On), Lý thuyết và Bài tập Xử lý Tín
hiệu số, Nhà xuất bản Lao động xã hội.
[3] Quách Tuấn Ngọc, Xử lý Tín hiệu số, Đại học Bách Khoa Hà Nội.
[4] Nguyễn Quốc Trung (2002), Xử lý Tín hiệu và Lọc số, Nhà xuất bản Khoa học
và Kỹ thuật.
[5] Nguyễn Phùng Quang, Matlab & Simulink dành cho kỹ sư điều khiển tự
động, NXB Khoa Học Kỹ Thuật, 2004.
[6] Vinay K. Ingle & John G. Proalis, Digital Signal Procesing Using MATLAB,
Brooks/Cole Thomson Learning.
[7] Hồ Văn Sung, Thực hành Xử Lý Số Tín Hiệu Trên Máy Tính PC Với
Matlab, NXB Khoa Học Kỹ Thuật, 2005.
Các file đính kèm theo tài liệu này:
- hpf_fir_0663.pdf