LỜI MỞ ĐẦU
Xử lý tín hiệu số !"#$% !& 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ố ($").
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 $'($$#$& còn gọi là lọc không đệ quy, và bộ
lọc có đáp ứng xung vô hạn IIR ()$'($$#$) 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ổ (*#+$$,($),
Phương pháp lấy mẫu tần số ("$,($- '$$,($) và Phương
pháp xấp xỉ tối ưu cân bằng gợn sóng (.'/,("$$$,($). 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
"01
0
10
)(
(1.2)
Và phương trình sai phân là:
)1Mn(xb)1n(xb)n(xb)n(y
1M10
+−++−+=
−
(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à 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.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
tầng của các khâu bậc 2.
+++=+++=
−
−
−−
−
− M1
0
1M
1
0
1
0
M1
1M
1
10
z
b
b
z
b
b
1bzbzbb)z(H
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.6)
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.7)
1Mn0,2/);n1M(h)n(h −≤≤π±=β−−−=
(1.8)
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
+−++−++−+=
1
z
-
1
z
-
1
B
2,2
B
3,2
Hình 1.2 Cấu trúc lọc FIR dạng ghép tầng
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.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 hệ
thống là:
∑∑
−
=
−−−−
−
=
−
==
1M
0n
=α−≤≤−−=
(1.12)
Do đó h(n) là đối xứng theo α, là chỉ số đối xứng. Có hai kiểu đối xứng:
"51
b
0
z
-
1
b
1
b
2
x(n)
z
-
1
z
-
1
z
-
1
y(n)
b
0
z
-
1
b
là một số nguyên.
Đáp ứng xung được mô tả trong hình 1.4
• 27: 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.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
( )
ω
∠
j
eH
thoả mãn điều kiện:
αω−β=∠
ω
)e(H
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:
α−=
ω
∠
2
1M −
=α
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
2
1M −
=α
phải bằng 0, nghĩa là,
0
2
1M
h =
−
.
• 27: "# 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.7.
"91
Hình 1.6 Đáp ứng xung phản đối xứng, M lẻ
ω
) 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.
• :;<(=><;?26
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
−ω−
−
=
ω
−
= n
2
1M
h2na
với
2
3M
n1
−
≤≤
• @:;<(=><;?27
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
−= n
2
M
h2nb
với
2
M
, ,2,1n =
(1.20)
So sánh (1.19) và (1.16), ta có:
( )
∑
=
−π=π
∑
=
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.
• ! !:;<(=><;?
26
Trong trường hợp này ta có
2
π
=β
,
2
1M −
=α
là một biến nguyên,
( ) ( )
n1Mhnh −−−=
,
1Mn0
−≤≤
, và
0
2
=
ω
ω=
∑
2
1M
2
j
2/1M
0n
j
ensinnc)e(H
(1.22)
trong đó
( )
−
−
= n
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à
( )
ω
r
jH
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.
• ""@:;<(=><;?2
7
Trong trường hợp này
2
π
=β
,
( ) ( )
n1Mhnh −−−=
,
1Mn0
−≤≤
, nhưng
2
−ω=
∑
2
1M
2
j
2/M
1n
j
e
2
1
nsinnd)e(H
(1.25)
"B1
trong đó:
( )
2/M
1n
r
2
1
nsinnd)(H
(1.27)
: 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
(1.28)
Đáp ứng xung
&
của bộ lọc lý tưởng này được cho bởi:
Chú ý rằng
& 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
& có độ dài vô hạn và phi nhân quả.
"F1
[ ]
)(
)](sin[
)(
2
1
)()(
1
απ
α
π
π
π
−
−
===
∫
+
Trong miền tần số, đáp ứng của lọc FIR nhân quả E$
D+
& chính là tích chập vòng của
đáp ứng tần số bộ lọc lý tưởng E
$
D+
& và đáp ứng tần số của hàm cửa sổ *$
D+
& :
E$
D+
&GE
$
D+
&
⊗
*$
D+
& (1.33)
Hình dạng của E$
D+
& 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:
"0I1
2
1
,
0
jw
)
W(e
jw
)
Max side-lobe height
Transition bandwidth
Hình 1.8 Kết quả của việc lấy cửa sổ trong miền tần số
Main-lobe
width
• 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
('1#$) có độ rộng tỷ lệ với 1/M, và các búp bên ($1#$) 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
E
$
D+
&.
• Búp chính ('1#$) sinh ra một dải chuyển tiếp trong E$
D+
& mà độ rộng là
nguyên nhân tạo nên độ rộng dải chuyển tiếp ("#+). Độ 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.
• Các búp bên ($1#$) 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
M-1
M-1
2
2n
M-1
M-1
2
(1.35)
c. 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 J
.
f. Cửa sổ Kaiser (Kaiser Window)
"031
Hình 1.9 Hình dạng một số cửa sổ thường dùng
w(n) =
0 Các trường hợp khác
Π
+
(1.37)
w(n) =
0 Các trường hợp khác
Π
+
Π
−
2
2
4
cos08.0
2
cos5.042.0
0≤ n ≤ M-1
(1.38)
Hình 1.10 Tóm tắt đặc tính của một số loại cửa sổ thường dùng
−
−−
=
, với I
≤
≤
210 (1.39)
Trong đó I
0
[.] là hàm Bessel bậc không được hiệu chỉnh ('#)$K$"#1#"$"
L$$)(#), còn β là tham số phụ thuộc vào bậc bộ lọc M và có thể chọn để có
được những độ rộng dải chuyển tiếp khác nhau cũng như có được độ suy giảm ở dải
chặn là gần tối ưu. Cửa sổ này có thể cung cấp những độ rộng dải chuyển tiếp khác
nhau với cùng một hệ số M, đây là điều mà các hàm cửa sổ khác không làm được.
Tuy nhiên, do tính phức tạp của hàm Bessel nên việc thiết kế bộ lọc với cửa sổ
Kaiser không phải dễ dàng. Thật may mắn là Kaiser đã phát triển những phương trình
thiết kế theo kinh nghiệm ($'"$$,(#) 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Ổ
"041
πωω
ωω
ω
ω
M
M
D
D
N(
N($
$E
,0
,.1
)(
Đáp ứng xung
&
của bộ lọc lý tưởng này được cho bởi:
( )
[ ]
( )
( )
[ ]
( )
απ
αω
ω
π
π
& nhân với hàm cửa sổ +&
như sau:
&G
&H
ω
&
Tuỳ thuộc vào cách định nghĩa hàm cửa sổ
ω
(n) (+#+)(#) 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
)(+
Trong miền tần số, đáp ứng của lọc FIR nhân quả %
ω
D
chính là tích chập vòng của
đáp ứng tần số bộ lọc lý tưởng %
#
ω
D
và đáp ứng tần số của hàm cửa sổ &
&.
"081
2
1
,
0
10)(
)(
−
=
−≤≤
=
2
2
α
(I
≤
≤
210
(1.34)
-Búp chính ('1#$) sinh ra một dải chuyển tiếp trong E$
H
d
(e)
W(e)
Max side-lobe height
Transition bandwidth
EO3@P,(QRST-"#'UV>
Main-lobe
width
- Tính hàm cửa sổ w(n)
M
- Tính tần số cắt
2
2
22
1
1
11
22
22
M
MM
M
MM
)
)
()( +
2
−
−=
h
d
(n): là đáp ứng xung của bộ lọc thiết kế.
- Từ h
d
(n) tính h
d
(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ệ
số bộ lọc.
Chương trình thiết kế:
Thiết kế một bộ lọc thông thấp LPF(Low Pass Filte) với các thông số sau :
0,25 ; 0,25
0,3 ; 50
L
J L
ω π
ω π
= =
= =
Tính toán, thiết kế bˆng phương pháp cửa sổ:
1 1 67
0,1
!
2
π π
ω ω π
⇒ = + = + =
−
- O'V>[@
( )
/ 2 (0,2 0,3 ) / 2 0,25
M !
ω ω ω π π π
= + = + =
- O'=;<(&\]T^@
( )
1
2
M
M
D
M M
M
$
ω
ω
ω
1
2
1
2
M
M
M
2
2
ω
ω
π
ω
−
−
÷
⇒ =
−
−
÷
(tâm đối xứng tại n =
1
π
π
π
π
−
−
−
÷
= =
−
−
−
÷
Ta nhân h(n) với cửa sổ Hamming (với M = 67) để tìm h
d
(n) :
&G
&H+&
Đến đây chúng ta đã có được bộ lọc cần thiết kế.
'()*+,-(
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).
% db=Relative magnitude in dB computed over 0 to pi
radians
"0B1
% 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));
pha=angle(H);
grd=grpdelay(b,a,w);
Chương trình thực hiện
%==========KHAI BAO THONG SO BO LOC==========
wp=0.2*pi;
ws=0.3*pi;
Tw=ws-wp;
M=ceil(6.6*pi/Tw)+1;
n=[0:1:M-1]
wc=(ws+wp)/2;
hd=ideal_lp(wc,M);
% ==========TINH CUA SO Hamming==========
w_ham=(hamming(M))';
%==========TINH DAP UNG XUNG THUC TE==========
h=hd.*w_ham;
% ==========TIM DAP UNG XUNG TAN SO BO LOC FIR==========
[db,mag,pha,grd,w] = freqz_m(h,[1]);
= =
= =
Kết quả chạy chương trình thiết kế:
M=67
R
p
=0.0394
"0F1
A
S
=52
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
"3I1
"301
HỌ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: w
s1
•
Cạnh thấp của dải thông: w
p1
Điều kiện: w
s1
< w
p1
< w
p2
< w
s2
Hoặc bài toán cho các chỉ tiêu δ
1
và δ
2
ta cũng có thể tính được A
s
và R
p
dựa vào quan hệ giữa chúng theo công thức
0
1
1
1
1
10
log20 >
+
−
−=
δ
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êu
cầ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 A
s
, 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. 3(45,'67,
• a(bP$": 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ố β.
• a(b: 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 cho
trong hình 1.10.
Bước 3. 89-9/01:
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. 894(;)<)7,=)#* >)
#
"341
Đá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
đá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 đó w
c1
và w
c2
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ể được
tính từ các chỉ tiêu đã cho của bộ lọc thông dải thực tế:
w
c1
= (w
(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
"381
[ ]
)(
)](sin[
)(
2
1
)()(
1
απ
α
π
π
π
−
−
===
∫
+
−
−
+
+$$E$E
D+D+
D+