Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
LỜI MỞ ĐẦU
Xử lý tín hiệu số (Digital Signal Processing – DSP) đã trở thành một môn học cơ
sở cho nhiều ngành khoa học, kỹ thuật như: Điện, Điện Tử, Tin học, Viễn thông, Tự động
hoá Xử lý tín hiệu số được ứng dụng rộng rãi trong nhiều lĩnh vực và thiết bị như: CD,
VCD, DVD, camera, scanner, y khoa , trong các hệ thống truyền hình số, thông tin địa
lý, bản đồ số, viễn thông v.v
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.
Trong khuôn khổ của bài tiểu luận môn học, nhóm tôi xin phép được trình bày bài
toán thiết kế bộ lọc FIR thông dải bằng phương pháp cửa sổ và phương pháp lấy mẫu tần
số. Nội dung tiểu luận được chia thành 5 chương:
Chương 1: Bài toán thiết kế
Chương 2: Cơ sở lý thuyết của bộ lọc FIR
Chương 3: Phương pháp thiết kế
- Thiết kế lọc FIR bằng phương pháp cửa sổ
- Thiết kế lọc FIR bằng phương pháp lấy mẫu tần số
Chương 4:Chương trình thiết kế.
Chương 5:Kết luận
Nhóm tôi xin trân trọng cảm ơn Thầy giáo TS. Ngô Văn Sỹ đã tận tình hướng dẫn,
truyền đạt những kiến thức quý giá, cung cấp tài liệu tham khảo và chỉ bảo cho tôi
phương pháp làm việc khoa học.
s
theo dB).
P
δ
: Dung sai dãi thông
S
δ
: Dung sai dãi chắn
PP 21
,
ωω
: Tần số giới hạn dãi thông
SS 21
,
ωω
: Tần số giới hạn dãi chắn
A
S
: Suy hao dãi chắn
R
p
: Độ gợn sóng trong dãi thông
Thiết kế bộ lọc thỏa mãn các chỉ tiêu đã cho với cấu trúc đơn giản nhất.
Các thông số thiết kế:
dBA
dbR
dBR
dBA
Ss
pp
khác nhau.
Quá trình thiết kế bộ lọc được bắt đầu với các đặc tính của bộ lọc bao gồm các
ràng buộc về biên độ và pha của đáp ứng tần số, về biên độ hoặc pha của đáp ứng tần số,
các ràng buộc về đáp ứng xung đơn vị hoặc đáp ứng nấc của bộ lọc Sau khi đã xác định
được các đặc tính bộ lọc, ta tiếp tục tìm tập các hệ số của bộ lọc mà các hệ số tạo ra một
bộ lọc chấp nhận được. Bước sau cùng là dùng hệ thống phần cứng hoặc phần mềm minh
họa, lượng tử hoá các hệ số của bộ lọc và chọn cấu trúc bộ lọc thích hợp.
2.1. Bộ lọc – lọc số:
2.1.1. Bộ lọc:
Bộ lọc là một hệ thống xử lý tín hiệu thực hiện chức năng chọn lọc tín hiệu theo
tần số (bộ lọc cho tín hiệu trong một dãi tần số nào đó đi qua và ngăn không cho tín hiệu
trong các dãi tần khác đi qua). Dãi cho qua gọi là dãi thông, và dãi không cho qua gọi là
dãi chắn.
2.1.2. Lọc số:
Lọc số là một trường hợp riêng của bộ lọc. Trong đó tín hiệu vào là số và tín hiệu
ra là số thường dùng máy tính, IC, vi xử lý.
Sơ đồ khối chức năng của quá trình lọc số:
Hình 2.1: sơ đồ khối chức năng quá trình lọc
- 3 -
Lọc
Lấy mẫu ADC
DF
DAC
Lọc
(khôiphục)
Th
A
Th ra
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
Phân loại lọc số:
+
ω
c2
ω
c1
ω
c1
ω
c2
-
+
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
∑
−
=
−−
−
−
=+++=
1
0
1
1
1
10
)(
M
n
n
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:
2.2.2.1Cấ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()1()()(
110
+−++−+=
−
Mnxbnxbnxbny
N
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:
2.2.2.2Cấ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.
+++=+++=
−
++=
K
1k
2
2,k
1
1,k0
)zBzB1(b
- 5 -
b
0
z
-
1
b
1
z
-
1
b
2
z
-
1
b
3
z
-
1
b
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à:
10,0);1()( −≤≤=−−= MnnMhnh
β
10,2/);1()( −≤≤±=−−−= MnnMhnh
πβ
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ó:
)1()2()1()()(
0110
+−++−++−+= MnxbMnxbnxbnxbny
++−+−++−+= )]2()1([)]1()([
10
MnxnxbMnxnxb
Sơ đồ khối thực hiện phương trình sai phân trên được mô tả trong hình 2.5 dưới đây
đối với cả M lẻ và M chẵn:
- 6 -
B
1,1
z
3,2
Hình 2.4: Cấu trúc lọc FIR dạng ghép tầng
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
Đố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.
2.2.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 N thì hàm truyền hệ
thống là:
∑∑
−
=
−−−−
−
=
−
==
1
0
1)1(
1
0
)()()(
M
n
nMN
N
n
1
b
1
z
-
1
b
2
x(n)
z
-
1
z
-
1
z
-
1
y(n)
b
0
z
-
1
b
1
z
-
1
b
xứng:
• M lẻ: Trong trường hợp này,
2
1−
=
M
α
là một số nguyên. Đáp ứng xung ứng
xung được mô tả bằng hình 2.6 dưới đây:
• M chẵn:Trong trường hợp này,
2
1−
=
M
α
là một số nguyên. Đáp ứng xung ứng
xung được mô tả bằng hình 2.7 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
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 2.8 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 =
−
.M chẵn:
Trong trường hợp này,
2
1M −
(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ê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
−ω−
−
−
= n
2
1M
h2na
với
2
3M
n1
−
≤≤
• 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:
- 10 -
Hình 2.9 Đáp ứng xung phản đối xứng, M chẵn
−ω=
∑
Trong đó:
( )
−= n
2
M
h2nb
với
2
M
, ,2,1n =
So sánh hai công thức trên 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.
• 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
1M
2
j
2/1M
0n
j
ensinnc)e(H
Trong đó
( )
−
−
= n
2
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.
• Lọc FIR pha tuyến tính Loại-4(Type 4):Đáp ứng xung phản đối xứng, M chẵn
- 11 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
Trong trường hợp này
2
π
=β
,
( ) ( )
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
1M
2
j
2/M
1n
j
e
2
1
nsinnd)e(H
Trong đó:
( )
−= n
2
π=ω
,
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
- 12 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
2.2.4. Đáp ứng tần số bộ lọc thông dãi
( ) ( ){ } ( )
===
∑
( )
n
Sin
n
nSin
dedenh
C
CC
C
CC
njnj
C
C
C
C
1
11
2
22
1
2
1
21
2
ω
ω
π
ω
ω
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ế:
+=
+=
2/)(
2/)(
222
111
PSC
PSC
ωωω
ωωω
- 13 -
A
s
R
p
w
s1
w
p1
w
p2
w
s2
π
0
nêue
eH
,0
,.1
)(
Đáp ứng xung h
d
(n)
của bộ lọc lý tưởng này được cho bởi:
( )
[ ]
( )
( )
[ ]
( )
απ
αω
ω
π
π
π
ωωω
−
−
===
∫
−
−
n
n
(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
)(nw
- 14 -
2
1
,
0
10)(
)(
−
=
−≤≤
=
M
khac
Mnnh
nh
d
α
⊗
W(e
ω
j
)
Hình dạng của H(e
ω
j
) có thể được mô tả trực quan trên hình 3.1. 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
(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 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
- 15 -
H(e)
H
d
(e)
W(e)
Trong miền n cửa sổ tam giác được định nghĩa như sau:
3.1.3 Cửa sổ Hanning (Hanning Window)
3.1.4 Cửa sổ Hamming (Hamming Window)
- 16 -
w(n) =
1 0≤ n ≤ M-1
0 Các trường hợp khác
0 Các trường hợp khác
w(n) =
0≤ n ≤
2 -
≤ n ≤ M - 1
2n
M-1
M-1
2
2n
M-1
M-1
2
w(n) =
0 Các trường hợp khác
Π
+
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
3.1.5 Cửa sổ Blackman (Blackman Window)
3.1.6 Các bước thiết kế
- Dựa vào A
s
chọn cửa sổ thiết kế
- Từ F
p
, F
S
→tính TW →Tính M
- 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
S
C
CC
S
C
CC
f
F
1
()( nw
M
nhnh
d
−
−=
- 17 -
w(n) =
0 Các trường hợp khác
Π
+
Π
−
M
n
M
n 4
j
N
eH
của bộ lọc số cần tổng hợp theo đặc tính tần số
)(
ω
j
eH
của bộ lọc số lý
tưởng cùng loại.
Việc xấp xỉ được thực hiện bằng cách lấy mẫu tần số qua DFT, tức là làm cho các
mẫu của
)(
ω
j
N
eH
và
)(
ω
j
eH
bằng nhau tại các tần số rời rạc ω
k
= kω
1
= (k.2π/N):
11
)()(
ωω
)(
ω
j
eH
bằng 0, còn tại các tần số ở giữa khoảng kω
1
và (k+1)ω
1
thì sai số
xấp xỉ là hữu hạn. Sai số xấp xỉ sẽ giảm nhỏ nếu giảm tần số lấy mẫu cơ bản ω
1
= (2π /
N), điều đó tương ứng với tăng độ dài N của đặc tính xung h(n)
N
của bộ lọc số được tổng
hợp.
Ta có thể xác định được đặc tính biên độ tần số
)(
ω
j
N
eH
của 4 loại bộ lọc số
FIR pha tuyến tính theo công thức sau:
2
sin
)(
)1(
5.0sin(
- 18 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
αωωωϕ
−=
−
−= .
2
1
)(
N
N
, với
ωα
.
2
1
−
=
−
=
N
Để đánh giá sai số khi xấp xỉ đặc tính tần số
)(
ω
j
N
eH
theo đặc tính tần số bộ lọc
lý tưởng
)(
ω
j
eH
, người ta dung hàm sai số:
)()()(
ωωω
j
N
j
eHeHeE
−=
3.2.2 Các bước thiết kế bộ lọc theo kiểu lấy mẫu tần số
−
−=
1
0
2
sin
)(
)1(
N
)sin(0.5N
)(
N
k
N
kj
N
N
k
kA
eH
πω
ω
ω
Để tính
)(
ω
j
eH
có đạt các tiêu chí kỹ thuật đã
cho δ1, δ2, ω
c
, Δω hay không? Hoặc
p
jj
eE )E(e )(
max
ωω
≤
Nếu đạt tất cả các tiêu chí kỹ thuật đã cho thì giảm số điểm lấy mẫu N và thực
hiện lại các bước trên cho đến khi chọn được N
min
đảm bảo đạt tất cả các chỉ tiêu kỹ thuật
đã cho.
Nếu không đạt thì tăng số điểm lấy mẫu N và thực hiện lại các bước trên cho đến
khi chọn được N
min
để
)(
ω
j
N
eH
của bộ lọc cần tổng hợp đạt được tất cả các chỉ tiêu kỹ
thuật đã cho.
Bước 4: Xác định đặc tính xung h(n)
N
của bộ lọc số FIR pha tuyến tính cần tổng
N
N
n
N
k
kA
NN
A
nh
π
- Đối với bộ lọc loại 2: để tìm h(n)
N
có thể tính IDFT theo công thức:
∑
−
=
+−+=
1
2
1
2
)12(cos.)()1(
2
)0(
1
1
1
3
)12(sin.)()1(
2
)(
N
k
N
k
N
n
N
k
kA
N
nh
π
- Đối với bộ lọc loại 4: để tìm h(n)
N
có thể tính IDFT theo công thức:
∑
−
=
kA
N
N
A
N
nh
π
- 20 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
CHƯƠNG 4: CHƯƠNG TRÌNH THIẾT KẾ
4.1. Thiết kế theo phương pháp cửa sổ.
4.1.1. Tính toán thiết kế.
Các bước tính toán thiết kế lọc FIR thông dãi với các thông số sau:
dBA
dbR
dBR
dBA
Ss
pp
pp
SS
60;8,0
1;65,0
1;35,0
60;2,0
2
2
1
1
==
=
Mandnn
Mn
M
n
M
n
nw
00
0
4
cos08,0
2
cos5,042,0
)(
ππ
- Tính M với :
πππωωω
πππωωω
15,065.08,0
15,02,035,0
222
111
=−=−=∆
=−=−=∆
PS
SP
πωω
15.0),(
21
n
nSin
dedenh
C
CC
C
CC
njnj
d
C
C
C
C
1
11
2
22
1
2
1
21
2
ω
ω
π
ω
ω
ω
π
ω
4.1.2. 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 dải bằng cách sử
dụng cửa sổ Blackman. 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 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 6.5, 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).
SƠ ĐỒ THUẬT TOÁN
- 22 -
YES
S
Begin
Nhập các chỉ tiêu
w
1s
, w
1p
, w
2p
, w
2s
,
A
s
, R
% [hd] = ideal_lp(wc,M)
% kd = ideal impulse response betveen 0 to M-1
% wc = cutoff frequency in radians
% M = length of the ideal filter
alpha =(M-1)/2;
n = [0:1:(M-1)];
m = n - alpha + eps;
hd = sin(wc*m)./(pi*m);
freqz_m(b,a): Tính đáp ứng tần số của bộ lọc FIR có đáp ứng xung h.
function [db,mag,pha,grd,w] = freqz_m(b,a);
% Modified version of freqz subroutine
%
% [db,mag,pha.grd.wl = freqz_m(b,a);
% db - Relative magnitude in dB computed over 0 to pi radians
% mag - absolute magnitude computed over 0 to pi radians
% pha = Phase response in radians over 0 to pi radians
% grd = Craup delay over 0 to pi radians
%w = 501 frequency samples between 0 to pi radians
% b = numerator polynomial of A h ) (for FIR: b=h)
% a = denominator 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);
- 23 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
4.1.3.2Chương trình thực hiện
ws1=0.2*pi;
xlabel('n');ylabel('h(n)');
Subplot(2,2,4);plot(w/pi,db);%axis(0 1 -150 10];
Title('dap ung cuong do theo db');
Xlabel('tan so trong gioi han pi');
- 24 -
Tiểu luận thiết kế lọc FIR thông dãi bằng phương pháp cửa sổ và phương pháplấy mẫu tần số
Ylabel('dB');
4.1.3.3Kết quả chạy chương trình
Các chỉ tiêu thiết kế:
dBA
dbR
dBR
dBA
Ss
pp
pp
SS
60;8,0
1;65,0
1;35,0
60;2,0
2
2
1
1
==
==
==
==
πω