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 em gồm Lê Anh Khoa và Nguyễn Văn Thông xin phép được trình bày bài toán “ Tìm hiểu bộ lọc chuyên dụng” có đáp ứng xung hữu hạn FIR. Nội dung tiểu luận được chia thành 2 phần: Phần 1. Cơ sở lý thuyết bộ lọc có đáp ứng xung hữu hạn FIR Phần 2. Các bộ lọc chuyên dụng có đáp ứng xung hữu hạn và chương trình chạy mô phỏng Chúng em xin trân trọng cảm ơn Thầy TS. Ngô Văn Sỹ đã tận tình giảng dạy và hướng dẫn để chúng em 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 16 tháng 03 năm 2013 PHẦN 1. CƠ SỞ LÝ THUYẾT BỘ LỌC CÓ ĐÁP ỨNG XUNG HỮU HẠN FIR 1.1. Mở đầu 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 (Specifications): Để thiết kế một bộ lọc, đầu tiên 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. - Tìm các xấp xỉ (Appproximations): 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. Bước này là chủ đề chính của việc thiết kế lọc số. - Thực hiện bộ lọc (Implementation): Kết quả của các bước trên được 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 nhiều ứng dụng như xử lý tiếng nói hoặc xử lý âm thanh, bộ lọc số được dùng để thực hiện các thao tác chọn tần. Do đó, các chỉ tiêu được đòi hỏi trong vùng tần số ở mỗi chu kỳ về số lượng và đáp ứng pha của bộ lọc mong muốn. Nói chung đáp ứng pha cần tuyến tính trong dải thông. - Trong trường hợp các bộ lọc FIR , Có thể đạt được chính xác yêu cầu về pha tuyến tính. - Trong trường hợp các bộ lọc IIR, một dải thông tuyến tính là rất khó đạt. Do đó, chúng ta chỉ xét các chỉ tiêu về biên độ. Có 2 nhóm chỉ tiêu: • Các chỉ tiêu tuyệt đối (Absolute Specifications) : Đưa ra một tập các yêu cầu trên hàm đáp ứng biên độ |H(ejw)|. Những chỉ tiêu này được sử dụng chung cho các bộ lọc FIR. • Các chỉ tiêu tương đối (Relative Specifications - DB) : Đưa ra các yêu cầu tính theo decibels (dB), được cho bởi
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 em gồm Lê Anh Khoa và Nguyễn Văn Thông xin phép
được trình bày bài toán “ Tìm hiểu bộ lọc chuyên dụng” có đáp ứng xung hữu hạn
FIR.
Nội dung tiểu luận được chia thành 2 phần:
Phần 1 Cơ sở lý thuyết bộ lọc có đáp ứng xung hữu hạn FIR
Phần 2 Các bộ lọc chuyên dụng có đáp ứng xung hữu hạn và chương trình chạy
mô phỏng
Chúng em xin trân trọng cảm ơn Thầy TS Ngô Văn Sỹ đã tận tình giảng dạy vàhướng dẫn để chúng em có thể hoành thành tốt tiểu luận này Phần lớn nội dung trìnhbà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 16 tháng 03 năm 2013
Trang 2PHẦN 1 CƠ SỞ LÝ THUYẾT BỘ LỌC CÓ ĐÁP ỨNG XUNG HỮU HẠN FIR
1.1 Mở đầu
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 (Specifications): Để thiết kế một bộ lọc, đầu tiên 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
- Tìm các xấp xỉ (Appproximations): 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 đúngcho bộ lọc với tập các chỉ tiêu đã cho Bước này là chủ đề chính của việc thiết kế lọcsố
- Thực hiện bộ lọc (Implementation): Kết quả của các bước trên được 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 nhiều ứng dụng như xử lý tiếng nói hoặc xử lý âm thanh, bộ lọc số đượcdùng để thực hiện các thao tác chọn tần Do đó, các chỉ tiêu được đòi hỏi trong vùngtần số ở mỗi chu kỳ về số lượng và đáp ứng pha của bộ lọc mong muốn Nói chungđáp ứng pha cần tuyến tính trong dải thông
- Trong trường hợp các bộ lọc FIR , Có thể đạt được chính xác yêu cầu về pha tuyếntính
- Trong trường hợp các bộ lọc IIR, một dải thông tuyến tính là rất khó đạt
(
)(log
e H
Trang 3Phương pháp này được là một phương pháp phổ biến nhất trong thực tế và được sửdụng cho cả bộ lọc FIR và IIR.
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ở để thiết cho bộ lọc FIR
1.2 Các chỉ tiêu của bộ lọc FIR
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.2.1.Các chỉ tiêu tuyệt đối
•Band [0, wp] được gọi là dải thông, và δ1 là dung sai (gợn sóng) được chấpnhậ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
1.2.2 Các chỉ tiêu tương đối (DB)
R p: Độ gợn sóng trong dải thông tính theo dB
A s : Suy hao trong dải chắn tính theo dB
ω ω
Trang 4Quan hệ giữa các chỉ tiêu này như sau:
Các thuận lợi trong thiết kế và thi hành lọc số FIR
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
•Mặc dầu vậy dải đã cho là dải thông hay dải chắn chỉ là tương đối có thể đảo
lại ( minor issue).
Các thuận lợi của đáp ứng pha tuyến tính
Đá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
•Đố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 thi hành pha tuyến tính
1.3 Cấu trúc của bộ lọc FIR
Cho h(n), n=0,1,…,M-1 là đáp ứng xung có chiều dài M Thì hàm truyền hệ thống
là 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)z(
210
110log
Trang 50
10
)
Và phương trình sai phân là:
)1(
)1()()(n =b0x n +b1x n− + +b −1x n−M +
Đâ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:
1.3.1 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(
++
0
1 0
M 1 1 M
1 1
b
bz
b
b1bz
bz
2 2 , k
1 1 , k
btrong đó = 2
Hình (1.2) Cấu trúc lọc FIR dạng trực tiếp
Trang 61.3.3 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ếntính theo tần số, nghĩa là:
αω
−β
n1M(h)n(
1Mn0,2/);
n1M(h)n(
Xét phương trình sai phân được cho trong phương trình (1.6) với đáp ứng xung đốixứng trong phương trình (1.10), ta có:
)1Mn(xb)2Mn(xb)
1n(xb)n(xb)
Đối với M lẻ: M = 7, còn đối với M chẵn: M = 6 ( hình 1.4 )
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
B1,1
y(n)x(n)
Trang 71.4 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à:
n 1 M )
1 M ( 1
M
0 n
n z h(n)zz
)n(h)
z(
0 n
n j j
<
π
−αω
1Mn0),n1M(h)
n
(
(1.15)
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,
được mô tả trong (hình 1.5) dưới đây:
• M chẵn: Trong trường hợp này,
Trang 8Ta 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(ej ω)
với −π<ω≤π (1.16) Đá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(H
α 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,
Hình 1.6 Đáp ứng xung đối xứng, M chẵn
Hình 1.7 Đáp ứng xung phản đối xứng, M lẻ
Trang 9Lưu ý rằng mẫu h(α) tại
α không phải là một số nguyên
Đáp ứng xung được mô tả trong hình 1.8
1.4.2 Đáp ứng tần số H(e jω)
Như vậy, 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ìnhdạ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ủaH(ej ω) như sau:
2
1M,
2
;e)e(H)e(
r
jω = ω −αω β=±π α= −
(1.19)
trong đó H r (e jω) 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êntụ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,
/ 1 M
0 n
j ) a n cos n ee
Trang 10không phải là một biến nguyên, thì ta có thể chứng tỏ rằng:
( ) j ( M 1 ) / 2
2 / M
1 n
2
1ncosnb)
e(
2
M, ,2,1
=
ω M/2
1 n r
2
1ncosnb)
(
H M/2
1 n
=
đế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, Mchẵ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, Mlẻ:
Trong trường hợp này ta có
/ 1 M
0 n
j ) c n sin n ee
(
trong đó :
Trang 11M, ,2,1
Lưu ý: Tại ω=0 và ω=π, ta có Hr( )ω =0 mà không cần quan tâm c(n) hoặch(n) Hơn thế nữa, ejπ2 = j, điều đó có nghĩa là jHr( )ω 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ố
1 M 2 j 2
/ M
1 n
2
1nsinnd)
e(
2
M, ,2,1
=
ω M/2
1 n r
2
1nsinnd)
(
Lưu ý: Tại ω=π, Hr(0)=0 và ejπ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:
Bảng 1.1
Trang 12FIR Type 2
PHẦN 2 CÁC BỘ LỌC CHUYÊN DỤNG CÓ ĐÁP ỨNG XUNG HỮU HẠN
VÀ CHƯƠNG TRÌNH CHẠY MÔ PHỎNG
2.1 Thiết kế bộ lọc biên độ tùy ý
2.1.1 Mô hình bộ lọc FIR bằng phương pháp lấy mẫu tần số
Trong mục này ta sẽ mô tả các trường hợp bộ lọc có biên độ được xác định theo dảiNyquist hoàn chỉnh Chúng ta sẽ dùng thuật toán lấy mẫu tần số và các loại chỉ tiêu kỹthuật băng đơn Hãy tưởng tượng một bộ lọc mà biên độ của nó bao gồm ba thànhphần: thành phần hình sin, thành phần piecewise linear, và thành phần quadratic Hình dạng của bộ lọc kiểu này khá phức tạp (như trong hình 2.1)
Trang 13N = 300;
B1 = 0:0.01:0.18;
B2 = [.2 38 4 55 562 585 6 78];
B3 = [0.79:0.01:1];
A1 = 5+sin(2*pi*7.5*B1)/4; % Sinusoidal section
A2 = [.5 2.3 1 1 -.2 -.2 1 1]; % Piecewise linear section
Trang 15Hình 2.3
2.1.3 Thiết kế bộ loc FIR cân bằng gợn sóng đơn băng và đa băng
Trong một số ứng dụng, việc tạo hình cho dải chắn của bộ lọc nhằm tối thiểu hóanăng lượng các side-lobe là một công việc khá thú vị Để thiết kế một bộ lọc thôngthấp có dải chắn dạng hình bậc thang thì ta phải sử dụng một chuỗi phân bố trọng sốsao cho nó làm tăng suy hao 5dB mỗi bước
Trang 162.2 Thiết kế bộ lọc có pha và biên độ tùy ý
2.2.1 Mô hình bộ lọc FIR
Trong ví dụ đầu tiên này, chúng ta sẽ so sánh một vài kỹ thuật thiết kế bộ lọc FIR để
mô hình hóa bộ lọc thông dải RF phức có pha và biên độ dựa trên dải Nyquist hoànchỉnh
Trang 182.2.2 Bộ lọc thông dải FIR trễ nhóm thấp
Việc từ bỏ tính chính xác tuyến tính của pha để làm giảm trễ bộ lọc đồng thời vẫnduy trì pha xấp xỉ tuyến tính trong dải thông là một giải pháp khá thú vị Sau đây ta sẽ
đi xác định 3 băng của bộ lọc thông dải:
Trang 20Hình 2.9
2.3 Thiết kế bộ lọc thông dải phức
2.3.1 Thiết kế bộ lọc FIR đơn tầng đơn tốc
Trong trường hợp thiết kế một bộ lọc FIR đơn tốc, chúng ta chỉ đơn giản là nhânmột tập hợp các hệ số với một lũy thừa phức Trong ví dụ sau đây, chúng ta sẽ luânphiên các giá trị zeros của bộ lọc Nyquist thông thấp bằng giá trị tần số chuẩn hóa 0.6
Trang 21
Hình 2.10
Kỹ thuật tương tự cũng sẽ được áp dụng cho bộ lọc đa tốc đơn tầng
2.3.2 Thiết kế bộ lọc FIR đa tần đa tốc
Trong trường hợp này, chúng ta cần xem mỗi bộ lọc hoạt động dựa trên các tần sốliên quan khác nhau Đối với bộ decimator đa tầng thì độ dịch tần số mong muốn chỉ
áp dụng cho tầng đầu tiên Các tầng kế tiếp cũng phải chia theo tỷ lệ giữa dộ dịch tần
số mong muốn với yếu tố decimation tích lũy tương ứng
Fc = -.2; % Desired frequency shift
Fc1 = Fc; % Frequency shift applied to the first stage
Fc2 = Fc*M12; % Frequency shift applied to the second stage
Trang 22Fc3 = Fc*M12*M23; % Frequency shift applied to the third stage
Hdbp = copy(Hd);
Hdbp.Stage(1).Numerator = Hdbp.Stage(1).Numerator.*exp(j*Fc1*pi*(0:N1)); Hdbp.Stage(2).Numerator = Hdbp.Stage(2).Numerator.*exp(j*Fc2*pi*(0:N2)); Hdbp.Stage(3).Numerator = Hdbp.Stage(3).Numerator.*exp(j*Fc3*pi*(0:N3)); set(hfvt,'Filters',[Hd,Hdbp])
legend(hfvt,'Lowpass Prototype','Complex Bandpass','Location','NorthWest')
Kết quả:
Hình 2.11
Tương tự đối với bộ interpolator, độ dịch tần số mong muốn được áp dụng cho tầngcuối cùng Các tầng trước cũng phải chia theo tỷ lệ giữa dộ dịch tần số mong muốnvới yếu tố interpolation tích lũy tương ứng
Trang 23Fc = 4; % Desired frequency shift
Fc3 = Fc; % Frequency shift applied to the third stage
Fc2 = Fc*L23; % Frequency shift applied to the second stage
Fc1 = Fc*L12*L23; % Frequency shift applied to the first stage
Hibp = copy(Hi);
Hibp.Stage(1).Numerator = Hibp.Stage(1).Numerator.*exp(j*Fc1*pi*(0:N1)); Hibp.Stage(2).Numerator = Hibp.Stage(2).Numerator.*exp(j*Fc2*pi*(0:N2)); Hibp.Stage(3).Numerator = Hibp.Stage(3).Numerator.*exp(j*Fc3*pi*(0:N3)); set(hfvt,'Filters',[Hi,Hibp])
legend(hfvt,'Lowpass Prototype','Complex Bandpass','Location','NorthWest')
Kết quả:
Hình 2.12