ĐẠI HỌC ĐÀ NẴNG
oOo
TIỂU LUẬN MÔN HỌC
XỬ LÝ TÍN HIỆU SỐ
ĐỀ TÀI:
THIẾT KẾ BỘ LỌC FIR
BẰNG PHƯƠNG PHÁP CỬA SỔ
(BỘ LỌC CHẮN DẢI)
GVHD: TS. NGÔ VĂN SỸ
HỌC VIÊN: NGUYỄN HỮU KHÁNH
LỚP : TĐH K24
Đà Nẵng, tháng 4/2012
MỤC LỤC
1
GVHD: TS. NGÔ VĂN SỸ 1
!"#"$%%&$!'()*+%,%&$&-('()*./0&12'3456
789:;<
=
I. Cấu trúc của bộ lọc FIR 8
>"?@AB?C0&D=
>"?@ABED#F
>"?@ABDG" &HF
II. Các đặc #nh của bộ lọc FIR pha tuyến #nh 10
DIJ"KL
DI#./K1MωL
NON789:;<7PQQRQST
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 27
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, tôi xin phép được trình bày bài toán “ Thiết kế bộ lộc thông dải
cấu trúc FIR bằng phương pháp lấy mẫu tần số “
Nội dung tiểu luận được chia thành 3 phần:
Chương 1. TỔNG QUAN
Chương 2. BỘ LỌC FIR
Chương 3. THIẾT KẾ BỘ LỌC FIR BẲNG PHƯƠNG PHÁP CỬA SỔ
Chúng tôi 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 để 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 25 tháng 4 năm 2012
CHƯƠNG 1 TỔNG QUAN
Mục đích của việc thiết kế các bộ lọc chủ yếu cũng phục vụ cho công việc xử lý các tín
hiệu số, như vậy trước tiên ta cần tìm hiểu qua các vấn đề về xử lý tín hiệu số.
I. Xử lý tín hiệu số
Xử lý tín hiệu liên quan với sự biểu diễn, vận hành tín hiệu và các thông tin mà
chúng chứa đựng. Xử lý tín hiệu được sử dụng trong nhiều lĩnh vực. Chẳng hạn khi ta
muốn tách hai hay nhiều tín hiệu mà do một lý do nào đấy chúng bị kết hợp với nhau,
hoặc muốn tăng cường chất lượng một số thành phần hoặc một số thông số của một mô
hình tín hiệu nào đấy.
I.1.Tín hiệu số
Tín hiệu số là tín hiệu rời rạc (theo biến độc lập theo thời gian) đồng thời có biên
độ cũng rời rạc hoá. Tín hiệu số cung cấp đầu vào cần thiết cho tất cả các hoạt động xử lý
tín hiệu số. Tín hiệu số trong hầu hết các trường hợp được tạo ra từ bộ A/D bằng cách lấy
mẫu tín hiệu liên tục với chu kỳ lấy mẫu T
s
. Giá trị của tín hiệu số ở thời điểm lấy mẫu là
giá trị lượng tử hoá chọn gần giá trị tương tự nhất.
Có thể xem tín hiệu số như là hàm theo biến nguyên n, với n chỉ số mẫu. Vậy có thể
ký hiệu tín hiệu số là x(n)
I.2.Hệ thống xử lý tín hiệu số (hệ thống số)
Hệ thống xử lý tín hiệu số là hệ thống thực hiện biến đổi tín hiệu vào x(n) thành tín
hiệu ra y(n) nhằm một mục đích nào đó. Tín hiệu vào và ra đều là tín hiệu số. Tín hiệu
vào x(n) được gọi là tác động và tín hiệu ra y(n) được gọi là đáp ứng.
Vào
Ra
Tín hiệu số
x(n)
Tín hiệu số
y(n)
Hệ thống số
Xử lý tín hiệu sử dụng trong rất nhiều lĩnh vực, chẳng hạn như khi muốn tách hai
hay nhiều tín hiệu mà do một lý do nào đấy chúng bị kết hợp với nhau, hoặc muốn tăng
cường chất lượng một số thành phần, phục hồi các tín hiệu đã bị bóp méo
- Một hệ thống được gọi là tuyến tính nếu nó thoả mãn nguyên lý xếp chồng
T[a.x
1
(n) + b.x
2
(n)] = a.T[x
1
(n)] + b.T[x
2
(n)] = a.y
1
(n) + b.y
2
(n)
Trong đó: a,b là các hệ số
x
1
(n) , x
2
(n) : các tác động
y
1
(n) , y
2
(n) : các đáp ứng
- Một hệ thống được gọi là bất biến theo thời gian nếu đáp ứng của hệ đối với tác động
x(n) là y(n) thì đáp ứng của hệ đối với tác động x(n - k) sẽ là y(n – k)
- Một hệ thống tuyến tính bất biến được gọi là ổn định nếu và chỉ nếu đáp ứng xung thỏa
mãn điều kiện sau:
I. 3.Bộ lọc số
Một hệ thống dùng để làm biến dạng sự phân bố tần số của các thành phần của một tín
hiệu theo các chỉ tiêu đã cho được gọi là bộ lọc số.
Các thao tác của xử lý dùng để làm biến dạng sự phân bố tần số của các thành phần
của một tín hiệu theo các chỉ tiêu đã cho nhờ một hệ thống số được gọi là sự lọc số.
Một bộ lọc số là một hệ thống tuyến tính bất biến trong miền biến số n, sơ đồ khối như
sau:
ở đây:
Trong đó:
h(n):đáp ứng xung của hệ thống. Đáp ứng xung là đặc trưng hoàn toàn cho hệ thống
trong miền n.
Ngoài ra hệ thống còn được biểu diễn bởi phương trình sai phân tuyến tính sau đây:
Tổng hợp tất cả các hệ số a
k
và b
r
sẽ biểu diễn một hệ thống tuyến tính bất biến. Tức là
các hệ số a
k
và b
r
là đặc trưng hoàn toàn cho hệ thống
Trong miền Z hệ thống được đặc trưng bởi hàm truyền đạt H(Z)
H(n)
y(n)x(n)
∑∑
∞
−∞=
∞
−∞=
−==−
mm
mnhmxnhnxmnxmh )()()(*)()()(
y(n) = h(n)*x(n)=
∑∑
==
−=−
M
r
r
N
k
k
rnxbknya
00
)()(
∑
∑
=
−
=
−
=
N
k
k
k
M
r
r
r
Za
Zb
ZX
ZY
0
0
)(
)(
H(Z)=ZT[h(n)]=
∑
∞
−∞=
∞<=
n
nhS |)(|
Nếu hàm truyền đặt H(Z) được đánh giá trên vòng tròn đơn vị đối với |Z|=1, thì chúng
ta có đáp ứng tần số H(e
j
ω
):
Y(e
j
ω
)=H(e
j
ω
).X(e
j
ω
)
Quan hệ cho thấy việc phân bố tần số của biên độ và pha của tín hiệu vào x(n) được
biến dạng bởi hệ thống tuỳ thuộc vào dạng của H(e
j
ω
).Chính dạng của H(e
j
ω
) đã xác
định việc suy giảm hoặc khuyếch đại các thành phần tần số khác nhau. Hệ thống
tương ứng với H(e
j
ω
) này được gọi là bộ lọc.
I.4.Các loại bộ lọc
Các bộ lọc có thể được mô tả đặc tính theo các tính chất của hệ thống, chẳng hạn
như tuyến tính, bất biến, nhân quả, ổn định Các bộ lọc còn được phân loại dựa vào
các dạng của đáp ứng tần số. Một số loại bộ lọc được mô tả dưới đây
I.4.1.Pha tuyến tính
Một hệ thống tuyến tính và bất biến được gọi là có pha tuyến tính (linear phase) nếu
đáp ứng tần số của hệ thống có dạng
H(e
j
ω
) =A(e
j
ω
) e
-j
αω
trong đó α là một số thực và A(e
j
ω
) là một hàm có giá trị thực của ω. Lưu ý rằng pha
của H(e
j
ω
) là
Tương tự, một bộ lọc được gọi là có pha tuyến tính được tổng quát hoà (generalized
linear phase) hay suy rộng nếu đáp ứng tấn số của bộ lọc có dạng
H(e
j
ω
) =A(e
j
ω
) e
-j(
αω
-
β
)
Như vậy, các bộ lọc có pha tuyến tính hoặc pha tuyến tính được tổng quát hoá sẽ có trì
hoãn nhóm là hằng số.
I.4.2.Cho mọi tần số
Một hệ thống được gọi là bộ lọc cho qua mọi tần số (allpass) nếu biên độ của đáp
ứng tần số là hằng số |H(e
j
ω
) |=c
Một ví dụ cho bộ lọc cho qua mọi tần số là hệ thống có đáp ứng tần số
trong đó α là một số thực và |α|<1
Đáp ứng xung đơn vị của bộ lọc cho qua mọi tần số này là
∑
∑
=
−
=
−
=
N
k
kj
k
M
r
rj
r
j
j
ea
eb
eX
eY
0
0
)(
)(
ω
ω
ω
ω
H(e
jω
)=
φ
h
(ω) =
-αω khi A(e
jω
) ≥ 0
-αω + π khi A(e
jω
) < 0
H(e
jω
) =
ω
ω
α
α
j
j
e
e
−
−
−
−
1
h(n) = -αδ(n) + (1 - α
2
) α
n-1
u(n-1)
I.4.3.Các bộ lọc chọn lọc tần số
Nhiều bộ lọc trong các ứng dụng quan trọng cần có các biên độ của đáp ứng tần số là
hằng số trong từng khoảng tần số. Các bộ lọc này bao gồm bộ lọc thông thấp (low-
pass filter), bộ lọc thông cao (high-pass filter), bộ lọc thông dải (band-pass filter), bộ
lọc chắn dải (band-stop filter).
Các khoảng tần số mà ứng với khoảng này đáp ứng tần số có biên độ bằng 1 được gọi là
các dải thông (passband), còn các khoảng tần số có biên độ của đáp ứng tần số bằng 0
được gọi là các dải chắn (stopband). Các tần số đánh dấu các cạnh của các dải thông và
dải chắn được gọi là các tần số cắt (cutoff frequency).
I.5. Các yêu cầu khi thiết kê bộ lọc. 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.
-π
-ω
c
ω
c
π
|H(e
jω
)|
1
0
Bộ lọc thông thấp lý tưởng
-π
-ω
c
ω
c
π
|H(e
jω
)|
1
0
Bộ lọc thông cao lý tưởng
ω
ω
-π
-ω
1
π
|H(e
jω
)|
1
0
Bộ lọc dải thông lý tưởng
ω
-ω
2
ω
1
ω
2
-π
-ω
1
π
|H(e
jω
)|
1
0
Bộ lọc chắn dải lý tưởng
ω
-ω
2
ω
1
ω
2
- 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 có pha 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(e
jw
)|. 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 :
Phươ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.
0
)(
)(
log20
max
10
≥−=
ω
ω
j
j
eH
eH
dBscale
(1.1)
CHƯƠNG 2 BỘ LỌC FIR
I. 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:
∑
−
=
−−
−
−
=+++=
1M
0n
n
n
M1
1M
1
10
zbzbzbb)z(H
(1.4)
Như vậy đáp ứng xung h(n) là:
−≤≤
=
else
Mnb
nh
n
0
10
)(
(1.5)
Và phương trình sai phân là:
)1()1()()(
110
+−++−+=
−
Mnxbnxbnxbny
M
(1.6)
Đâ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:
I.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(y
1M10
+−++−+=
−
(1.7)
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:
b
0
z
-
1
b
1
z
-
1
b
2
z
-
1
b
3
z
-
1
b
4
y(n)
x(n)
Hình (1.2) Cấu trúc lọc FIR dạng trực tiếp
I.2. 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
1M
1
0
1
0
M1
1M
1
10
z
b
b
z
b
b
1bzbzbb)z(H
(1.8)
∏
=
−−
++=
K
1k
2
2,k
1
1,k0
)zBzB1(b
trong đó
=
2
M
K
, B
k,1
và B
k,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:
I.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ến tính
theo tần số, nghĩa là:
αω−β=∠
ω
)e(H
j
π≤ω≤π−
(1.9)
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.10)
1Mn0,2/);n1M(h)n(h −≤≤π±=β−−−=
(1.11)
Xét phương trình sai phân được cho trong phương trình (1.6) với đáp ứng xung đối
xứng trong phương trình (1.10), ta có:
)1Mn(xb)2Mn(xb)1n(xb)n(xb)n(y
0110
+−++−++−+=
++−+−++−+= )]2Mn(x)1n(x[b)]1Mn(x)n(x[b
10
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 ( 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.
B
1,1
z
-
1
z
-
1
z
-
1
y(n)
x(n)
B
2,1
B
3,1
b
0
B
1,2
z
-
1
z
-
1
z
-
1
B
2,2
B
3,2
Hình (1.3) Cấu trúc lọc FIR dạng ghép tầng
II. 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.12)
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.13)
II.1. Đá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.14)
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.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,
2
1M −
=α
là một số nguyên. Đáp ứng xung được
mô tả trong (hình 1.5) dưới đây:
Hình 1.5 Đáp ứng xung đối xứng, M lẻ
• 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:
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.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(Hd
j
(1.17)
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.
Đố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.18)
Đ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:
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ẻ
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 −
=α
không phải là một số nguyên. Đáp
ứng xung được mô tả trong hình 1.8.
II. 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ì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(e
j
ω
) như sau:
2
1M
,
2
;e)e(H)e(H
)(jj
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ê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à
( ) ( )
nMhnh −−= 1
,
1Mn0 −≤≤
, thì ta có thể chứng tỏ rằng:
( )
( )
( )
2/1Mj
2/1M
0n
j
encosna)e(H
−ω−
−
=
ω
ω=
∑
(1.20)
trong đó:
( )
−
=
2
1M
h0a
với mẫu ở chính giữa
(1.21)
( )
−
−
= n
M
hna
2
1
2
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
Hình 1.8 Đáp ứng xung phản đố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
1
ncosnb)e(H
−ω−
=
ω
−ω=
∑
(1.22)
trong đó:
( )
−= n
2
M
h2nb
với
2
M
, ,2,1n =
(1.23)
Sosánh (1.21) và (1.18), ta có:
( )
∑
=
−ω=ω
2/M
1n
r
2
1
ncosnb)(H
(1.24)
Lưu ý: Tại
π=ω
, ta có
( )
0
2
1
ncosnb)(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
1M
h =
−
thì ta có thể chứng tỏ:
( )
( )
ω
−
−
π
−
=
ω
ω=
∑
2
1M
2
j
2/1M
0n
j
ensinnc)e(H
(1.25)
trong đó :
( )
−
−
= n
2
1M
h2nc
với
2
M
, ,2,1n =
(1.26)
So sánh (1.24) và (1.18), ta có:
( ) ( )
( )
∑
−
=
ω=ω
2/1M
0n
r
nsinncH
(1.27)
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à
( )
ω
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
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
(1.28)
trong đó:
( )
−= n
2
M
h2nd
với
2
M
, ,2,1n =
(1.29)
So sánh (1.27) và (1.18), ta có:
( )
∑
=
−ω=ω
2/M
1n
r
2
1
nsinnd)(H
(1.30)
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:
Bảng 1.1
Type LPF HPF BPF SBF Hilbert Differentiator
FIR Type 1
FIR Type 2
FIR Type 3
FIR Type 4
III. Những ưu điểm của bộ lọc số FIR
Thiết kế bộ lọc số FIR tức là tìm cách thu được hàm truyền của bộ lọc số đó hoặc phương
trình sai phân của nó với dải thông ω
p
, sai số trong dải thông (hay còn gọi là độ mấp mô)
δ
1
, tần số cắt ω
s
và độ mấp mô δ
2
(hay còn gọi là độ suy giảm A
s
) của dải chắn cho trước.
Đặc điểm chính của bộ loc FIR là:
- Các bộ lọc FIR được thực hiện một cách không đệ quy là ổn định cố hữu, vì đáp
ứng xung của nó có độ dài hữu hạn và do đó luôn luôn bị giới nội.
- Có thể thực hiện các bộ lọc số FIR và đáp ứng pha của nó tuyến tính một cách
tuyệt đối. Vì vậy không có sự bóp méo dạng do trễ và chỉ có số lượng độ cố định
các bộ trễ. Đặc điểm này đóng vai trò quan trọng trong xử lý tiếng nói, trong dẫn
truyền số liệu và trong xử lý tương quan. Ở đây sự phi tuyến của pha là tác nhân
gây nên sự bóp méo tín hiệu.
- Các bộ lọc FIR được thực hiện rất có hiệu quả trong các DSP đa tốc độ, vì có thể
sử dụng DFT để thực hiện chúng
- Các bộ lọc FIR có thể được thiết kế chỉ sử dụng các phép tính số thực học, không
chứa các phép tính số học trên số phức.
- Các vấn đề về độ chính xác hệ số vốn là nhữung yêu cầu rất nghiêm ngặt đối với
các bộ lọc IIR, thì đối với các bộ lọc FIR nó ít nghiêm ngặt hơn, nếu cả hai có cùng
tính chất như nhau.
- Nhược điểm chính của mạch lọc FIR so với IIR là bậc cao hơn nếu cả hai có cùng
quy định, do vậy trong mạch lọc FIR đòi hỏi nhiều bộ nhớ hơn.
CHƯƠNG 3 THIẾT KẾ BỘ LỌC FIR BẲNG PHƯƠNG PHÁP CỬA SỔ
I.Thiết kế bộ lọc Fir
I.1.Các bước thiết kế bộ lọc
Bước 1 : Quá trình thiết kế được bắt đầu bằng việc xác định các đặc tính (thông số)
của bộ lọc.
Bước 2 : Khi các đặc tính của bộ lọc đã được xác định thì bước kế tiếp là tìm tập các
hệ số của bộ lọc, các hệ số này phải tạo ra một bộ lọc chấp nhận được.Sản phẩm của bước
2 là phương trình sai phân (diference equation) hoặc hàm hệ thống H(z) hoặc đáp ứng
xung H(n).Ở đây chỉ nghiên cứu việc thiết kế bằng phương pháp cửa sổ.
Bước 3 :
Sau khi bộ lọc đã được thiết kế, bước sau cùng là thực hiện hệ thống này bằng phần
cứng hoặc phần mềm, lượng tử hoá các hệ số của bộ lọc nếu cần và chọn cấu trúc bộ lọc
thích hợp
I.2.Thiết kế bộ lọc FIR bằng phương pháp cửa sổ
Phương pháp này sử dụng các hàm cửa số để thiết kế bộ lọc FIR. Nó được xây dựng bằng
cách cắt gọt 1 đáp ứng xung lý tưởng có độ dài vô hạn h
d
[n] tương ứng với đáp ứng tần số
H
d
(e
j
ω
) bằng một hàm cửa sổ ω[n] có độ dài hữu hạn thích hợp. Các hệ số đáp ứng xung
được cho bởi công thức:
h[n] = h
d
[n]*ω[n]
Nhờ việc chọn hàm cửa sổ ω[n] mà có các thiết kế tối ưu. Ta có các loại cửa sổ:
I.2.1.Cửa sổ chữ nhật
-Trong miền n cửa sổ chữ nhật được định nghĩa như sau:
-Đồ thị có dạng
I.2.2.Cửa sổ Hanning
I.2.3.Cửa sổ Hamming
I.2.4.Cửa sổ Blackman
I.2.5.Cửa sổ Barlett
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ọn mộ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ổ Barlett
-Trong miền n cửa sổ tam giác được định nghĩa như sau:
I.2.6.Cửa sổ Kaiser
Để đạt được độ suy giảm của dải chắn như mong muốn, các nhà thiết kế tìm một hà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 cánh bên càng
thấp thì độ rộng của cánh chính lại càng lớn. 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 cánh bên so với đỉnh của cánh chính. Cũng giống các hàm cửa sổ khác, độ rộng cánh
w(n) =
1 0≤ n ≤ M-1
0 Các trường hợp khác
n
ω(n)
0 M-1
1
-1
1 M
w(n) =
0 Các trường hợp khác
Π
+
Π
−
M
n
M
n 4
cos08.0
2
cos5.042.0
0≤ n ≤ M
w(n) =
0 Các trường hợp khác
Π
+
Π
−
M
n
M
n 4
cos08.0
2
cos5.042.0
0≤ n ≤ M
w(n) =
0 Các trường hợp khác
Π
−
M
n2
cos46.054.0
0≤ n ≤ M
0 Các trường hợp khác
ω(n) =
0≤ n ≤
2 -
≤ n ≤ M - 1
2n
M-1
M-1
2
2n
M-1
M-1
2
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ều chỉ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
Định nghĩa: Trong miền n dạng tổng quát của cửa sổ Kaiser được định nghĩa như sau:
Ở đây:
+ I
0
(x) là hàm Bessel biến dạng loại 1
+ β: là tham số đặc trưng cho việc trao đổi năng lượng giữa đỉnh trung tâm và đỉnh thứ
cấp.
I.2.7.Thiết kế bộ lọc Fir có pha tuyến tính sử dụng cửa sổ
Đáp ứng tần số của bộ lọc được thiết kế bằng phương pháp thiết kế cửa sổ xấp xỉ ra sao
đối với đáp ứng được yêu cầu, H
d
(e
j
ω
), được xác định bởi hai thừa số :
- Độ rộng của thuỳ chính (main lobe) của W(e
j
ω
)
- Biên độ đỉnh của thuỳ bên cạnh (side-lobe) của W(e
j
ω
)
Một cách lý tưởng, độ rộng của thuỳ chính cần hẹp và biên độ của thuỳ bên cần nhỏ. Tuy
nhiên, với một cửa sổ có chiều dài cố định, hai yêu cầu trên không thể tối thiểu hoá độc
lập được. Một vài tính chất tổng quát của các cửa sổ là :
- Khi chiều dài N của cửa sổ tăng, độ rộng của thuỳ chính giảm, điều này dẫn đến sự
suy giảm trong độ rộng chuyển tiếp giữa các dải thông và dải chận.Quan hệ này
được cho một cách xấp xỉ bởi N∆f=c
với ∆f là độ rộng chuyển tiếp và c là một thông số phụ thuộc vào cửa sổ
- Biên độ đỉnh của thuỳ bên của cửa sổ được xác định bởi dạng của cửa sổ và nhất
thiết độc lập với chiều dài của cửa sổ
- Nếu dạng của cửa sổ được thay đổi để giảm biên độ của biên độ của thuỳ bên, độ
rộng của thuỳ chính, một cách tổng quát sẽ tăng
Mặc dù việc việc sử dụng phương pháp thiết kế dùng cửa sổ sẽ đơn giản hoá việc thiết kế
bộ lọc, nhưng có một số giới hạn của phương pháp này :
- Trước tiên, cần phải tìm hiểu dạng thức đóng cho h
d
(n)
- Giới hạn thứ hai, đối với việc chọn lọc tần số, các độ rộng chuyển tiếp giữa các dải
tần số, và các độ gợn trong dải này, một cách gần đúng sẽ bằng nhau. Kết quả là
phương pháp thiết kế sử dụng cửa sổ đòi hỏi bộ lọc cần được thiết kế với các dung
w(n) =
0≤n≤M-1
−
−−
2
0
1
2
11
M
n
I
β
||
0
β
I
0 Các trường hợp khác
β =
0.1102(A
s
– 8.7) A
s
>50
0.5842(A
s
– 21)
0.4
+ 0.07886(ω
s
- 21) 20≤ As ≤ 50
0 As ≤ 21
I
0
(x) =
( )
2
1
!
2
1
∑
∞
=
+
k
k
k
x
sai khít khao nhất trong mọi dải bằng cách lựa chọn độ rộng chuyển tiếp nhỏ nhất
và độ gợn nhỏ nhất.
Một giới hạn nữa, các bộ lọc được thiết kế theo phương pháp sử dụng cửa sổ, một cách
tổng quát, không tối ưu theo nghĩa các bộ lọc này không có độ gợn nhỏ nhất có thể có đối
với bậc cho trước của bộ lọc và tập các tần số cắt cho trước.
Các giá trị khi sử dụng hàm cửa sổ:
Cửa sổ Độ rộng chuyển
tiếp ∆ω
Độ rộng chuyển tiếp
∆f = ∆ω/2π
Suy giảm dải chắn
(dB)
Chữ nhật
1.8π/M
0.9/M -21dB
Barllet
6.1π/M
3.05/M -25dB
Hanning
6.2π/M
3.1/M -44dB
Hamming
6.6π/M
3.3/M -53dB
Blackman
11π/M
5.5/M -74dB
Với cửa sổ Kaiser:
Thông số β
Độ rộng chuyển tiếp
(N∆f)
Suy giảm dải chắn (dB)
2.0 1.5 -29
3.0 2.0 -37
4.0 2.6 -45
5.0 3.2 -54
6.0 3.8 -63
7.0 4.5 -72
8.0 5.1 -81
9.0 5.7 -90
10.0 6.4 -99
III. Thiết kế bộ lọc chắn dải dùng phương pháp cửa sổ
III.1. Bộ lọc chắn dải
Trước khi thiết kế bộ lọc này ta cần các đặc tính của bộ lọc bao gồm
III.1.1.Bộ lọc chắn dải lý tưởng
- Đáp ứng biên của bộ lọc chắn dải lý tưởng được định nghĩa như sau:
Đồ thị của đáp ứng biên độ của bộ lọc chắn dải:
H(e
jw
) =
-π ≤ ω ≤ -ω
c2
-ω
c1 ≤
ω ≤ ω
c1
ω
c2 ≤
ω ≤ π
1
0 với ω còn lại
Trong đó: H(e
j
ω
) : đáp ứng biên; ω
c1 ,
ω
c2
: tần số cắt
- Đáp ứng xung của bộ lọc lý tưởng
III.1.2. Bộ lọc chắn dải thực tế:
Các bộ lọc chắn dải thực tế được đặc trưng bởi các thông số kỹ thuật trong miền tần số
liên tục ω có các tham số chính:
δ
p
: độ gợn sóng ở dải thông
δ
s
: độ gợn sóng ở dải chắn
ω
p1
, ω
p2
: tần số cắt (biên tần) dải thông
ω
s1
, ω
s2
: tần số cắt (biên tần) dải chắn
∆ω
1
= ω
s1
- ω
p1
, ∆ω
2
= ω
p2
- ω
s2
: bề rộng dải quá độ
Đồ thị đáp ứng biên độ:
III.2.Thiết kế
III.2.1.Thiết kế bộ lọc chắn dải FIR bằng phương pháp cửa sổ.
Thực hiện theo các bước sau:
-π
-ω
c1
π
|H(e
jω
)|
1
0
Bộ lọc chắn dải lý tưởng
ω
-ω
c2
ω
c1
ω
c2
h
d
(n) =
ω
π
ω
π
ω
π
ω
ω
ω
ω
ω
ω
π
π
ω
dedede
cc
c
c
njnjnj
∫∫∫
−−−
+−
12
2
1
2
1
2
1
2
1
h
d
(n) =
n
n
n
n
n
n
c
cc
c
cc
1
11
2
22
sinsinsin
ω
ω
π
ω
ω
ω
π
ω
π
π
+−
ω
1+δ
p
|H(e
jω
)|
π
1
1-δ
p
Dải chắn Dải thông
δ
s
ω
p1
ω
s1
ω
p2
ω
s2
Bước 1: Từ các thông số mà bài toán đã cho có thể xác định các chỉ tiêu kỹ thuật:
+ δ
p
: độ gợn sóng của dải thông
+ δ
s
: độ gợn sóng của dải chắn
+ ω
p1
, ω
p2
: tần số giới hạn (biên tần) dải thông
+ ω
s1
, ω
s2
: tần số giới hạn (biên tần) dải chắn
Tính độ suy giảm dải chắn bằng công thức a
s
= -20log(δ
s
)
Bước 2: Với các bài toán không cho trước bậc N thì phải tính để tìm bậc N của cửa sổ
Xác định dạng cửa sổ cần sử dụng
- Với cửa sổ Kaiser:
Tính thông số β theo công thức β = 0.5824(a
s
- 21)
0.4
+ 0.07886(a
s
- 21)
Sau đó tính bậc N theo công thức
Với độ rộng chuyển tiếp giữa dải chắn thấp và dải thông là ∆ω=ω
s1
- ω
p1
và ∆f = ∆ω/2π
- Với các dạng cửa sổ khác : Sử dụng công thức N.∆f = c để tìm bậc N
Với: ∆f = ∆ω/2π và c là một hằng số tuỳ thuộc loại cửa sổ
Cửa sổ c
Chữ nhật 0.9
Barllet 3.05
Hanning 3.1
Hamming 3.3
Blackman 5.5
Bước 3:Xác định hàm cửa sổ
Từ bậc N có thể xác định sẽ sử dụng bộ lọc Fir loại nào
Từ loại cửa sổ có thể xác định được hàm cửa sổ sẽ sử dụng ω(n)
Bước 4: Tìm đáp ứng xung
Đáp ứng xung lý tưởng của bộ lọc chắn dải là:
Với ω
c1
=(ω
p1
+ω
s1
)/2; ω
c2
=(ω
s2
+ω
p2
)/2
Nhân cửa sổ ω(n)
với h(n) lý tưởng để được h
d
(n) của bộ lọc thực tế
h(n)=ω(n).h
d
(n)
III.2.2. Bài toán áp dung: Để cụ thể ta sử dụng bài tập 9.9 trang 147, sách Lý thuyết và
bài tập xử lý tín hiệu số của Tống Văn On với yêu cầu của đề bài như sau:
Giả sử ta muốn thiết kế một bộ lọc chắn dải thỏa các đặc tính sau:
0.95 ≤ |H
d
(e
j
ω
)| ≤ 1.05 0 ≤ |ω| ≤ 0.2π
|H
d
(e
j
ω
)| ≤ 0.005 0.22π ≤ |ω| ≤ 0.75π
0.95 ≤ |H
d
(e
j
ω
)| ≤ 1.05 0.8π ≤ |ω| ≤ π
Thiết kế bộ lọc FIR có pha tuyến tính thỏa các đặc tính trên bằng cách dùng phương pháp
thiết kế sử dụng cửa sổ.
Các phương pháp thiết kế sử dụng cửa sổ đã trình bày ở trên, ở đây chỉ đi tính toán các
thông số cần thiết khi thiết kế bộ lọc.
N=
f
a
s
∆
−
36.14
95.7
h
d
(n) =
n
n
n
n
n
n
c
cc
c
cc
1
11
2
22
sinsin
sin
ω
ω
π
ω
ω
ω
π
ω
π
π
+−
+ Từ yêu cầu của đề bài ta thấy độ gợn tối thiểu xuất hiện trong dải chận là δ
s
=0.005.
+ Do độ gợn tối thiểu xuất hiện trong các dải chắn δ
s
=0.005, do đó ta phải chọn một cửa
sổ sao cho suy giảm của dải chắn bằng: a
s
= -20log(0.005) = 46.02.
Đến đây ta có thể sử dụng của sổ Hamming hoặc cửa sổ Kaiser.
Với cửa sổ Kaiser ta có: Thông số β = 0.5824(a
s
- 21)
0.4
+ 0.07886(a
s
- 21)
= 0.5824(46.02
- 21)
0.4
+ 0.07886(46.02
- 21) = 4.09 .
+ Độ rộng chuyển tiếp giữa dải chắn thấp và dải thông là ∆ω = (0.22π-0.2π)= 0.02π và độ
rộng chuyển tiếp giữa dải chắn cao và dải thông là ∆ω= (0.8π-0.75π)= 0.05π.
Do vậy ta phải thiết kế bộ lọc thỏa yêu cầu về băng thông chuyển tiếp thấp ∆ω=0.02π
hay ∆f = ∆ω/2π = 0.02π/2π = 0.01.
Như vậy, với cửa sổ Kaiser , bậc của bộ lọc
Vậybậc của bộ lọc là N = 266. Do thiết kế bằng phương pháp cửa sổ với N chẵn nên có
thể sử dụng bộ lọc Fir loại 1 để thiết kế.
+ Xác định hàm cửa sổ sẽ sử dụng: Với β = 4.09 và bậc N= 266 ta có hàm cửa sổ Kaiser:
Tìm đáp ứng xung: Đáp ứng xung lý tưởng của bộ lọc chắn dải là:
Với ω
c1
=(ω
p1
+ω
s1
)/2; ω
c2
=(ω
s2
+ω
p2
)/2
Từ yêu cầu của bài toán:
0.95 ≤ |H
d
(e
j
ω
)| ≤ 1.05 0 ≤ |ω| ≤ 0.2π
|H
d
(e
j
ω
)| ≤ 0.005 0.22π ≤ |ω| ≤ 0.75π
0.95 ≤ |H
d
(e
j
ω
)| ≤ 1.05 0.8π ≤ |ω| ≤ π
Ta có đồ thị đáp ứng là
Với: ω
p1
=0.2π; ω
s1
=0.22π ; ω
s2
=0.75π; ω
p2
=0.8π . Như vậy tần số cắt:
ω
c1
=(ω
p1
+ω
s1
)/2=0.21π
h
d
(n) =
n
n
n
n
n
n
c
cc
c
cc
1
11
2
22
sinsinsin
ω
ω
π
ω
ω
ω
π
ω
π
π
+−
π
|H(e
jω
)|
1.05
0
ω
0.2π
0.95
0.75π0.22π 0.8π
-0.2π
-0.8π -0.75π
-π
-0.22π
0.005
ω
c2
=(ω
s2
+ω
p2
)/2=0.775π
+ Đáp ứng xung lý tưởng (khi chưa nhân với hàm cửa sổ) :
Hay
+ Đáp ứng xung thực tế (sau khi đã nhân với hàm cửa sổ): h(n)=h
d
(n)*ω(n)
III.3. Chương trình MatLab
III.3.1. Định nghĩa một số hàm:
function hd=ideal_lp(wc,M)
% Ideal LowPass filter compution
%
% [hd]=ideal_l(wc,M)
% hd=ideal impulse response between 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; % add smallest number to avoid divide by zero
hd = sin(wc*m)./(pi*m);
Và hàm:
function [db, mag, pha, grd, w] = freqz_m(b, a)
% Modified version of freqz sunroutine
%
% [db,mag,pha,grd,w] = freqz_m(b, a)
% db = Relative magnitude in dB computed over 0 topi radians
% mag = absolute magnitude computed over 0 to piradians
h
d
(n) =
n
n
n
n
n
n
c
cc
c
cc
1
11
2
22
sinsin
sin
ω
ω
π
ω
ω
ω
π
ω
π
π
+−
-π
π
-ω
1
ω
1
-ω
2
ω
2
+
+
+
-
% pha = Phase response in radians over 0 to piradians
% grd = group delay over 0 to pi radians
% w = 501 frequency samples between 0 to pi radians
% b = numerator polynimial of H(z) (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);
% End of function
III.3.2.Chương trình MatLab mô phỏng
%Cac tham so
As=46.02;
M=266;%Bac
n=[0:1:M-1];
beta=4.09
w_kai=(kaiser(M,beta))';%Cua so Kaiser
wc1=0.21*pi;
wc2=0.775*pi;
hd=ideal_lp(wc1,M)+ideal_lp(pi,M)-ideal_lp(wc2,M);
h=hd .* w_kai;
%Dung bo loc Fir loai 1
N=length(h);
L=(N-1)/2;
P=[2*h(L+1:-1:1)];
tmp=[0:1:L];
w=[0:1:500]'*pi/500;
Hr=cos(w*tmp)*P';
[db,mag,pha,grd,w]=freqz_m(h,[1]);
subplot(1,1,1)
subplot(2,2,1);
stem(n,hd);
title('Dap ung xung ly tuong hd(n)')
axis([-1 M -0.2 0.8]);
xlabel('n');
ylabel('hd(n)');
%Cua so Kaiser
subplot(2,2,2);
stem(n,w_kai);
title('Window Kaiser')
axis([-1 M 0 1.2])
xlabel('n');
ylabel('w(n)');
%Ve dap ung xung thuc te (co nhan cua so)
subplot(2,2,3);
stem(n,h);
title('Dap ung xung thuc te h(n)')
axis([-1 M -0.2 0.8])
xlabel('n');
ylabel('h(n)');
%Ve dap ung bien do
subplot(2,2,4);
plot(w/pi,db);
title('Dap ung bien do,db');
grid
axis([0 1 -80 10]);
xlabel('Tan so,w/pi');
ylabel('Decibels');
- Kết quả:
0 100 200
-0.2
0
0.2
0.4
0.6
Dap ung xung ly tuong hd(n)
n
hd(n)
0 100 200
0
0.5
1
Window Kaiser
n
w(n)
0 100 200
-0.2
0
0.2
0.4
0.6
Dap ung xung thuc te h(n)
n
h(n)
0 0.5 1
-80
-60
-40
-20
0
Dap ung bien do,db
Tan so,w/pi
Decibels
Ngoài ra đối với bài toán trên ta có thể sử dụng cửa sổ Hamming:
Nếu ta sử dụng cửa sổ Hamming thì ta có: N=3.3/0.001=330
Khi sử dụng cửa sổ Hamming ta có hàm cửa sổ là:
Đáp ứng xung lý tưởng. tương tự như trên ta cũng có
Đáp ứng xung thực tế:
h(n)=h
d
(n)*ω(n)
Viết chương trình trên MatLab
%Cac tham so
M = 330; alpha = (M-1)/2;
n = 0:M-1;
wc1=0.21*pi;
wc2=0.775*pi;
hd=ideal_lp(wc1,M)+ideal_lp(pi,M)-ideal_lp(wc2,M);
w_ham = (hamming(M))';
h = hd .* w_ham;
%Dung bo loc Fir loai 1
N=length(h);
L=(N-1)/2;
P=[2*h(L+1:-1:1)];
tmp=[0:1:L];
w=[0:1:500]'*pi/500;
Hr=cos(w*tmp)*P';
[db,mag,pha,grd,w]=freqz_m(h,[1]);
subplot(1,1,1)
subplot(2,2,1);
stem(n,hd);
title('Dap ung xung ly tuong hd(n)')
axis([-1 M -0.2 0.8]);
xlabel('n');
ylabel('hd(n)');
%Cua so Kaiser
subplot(2,2,2);
stem(n,w_ham);
title('Window Hamming')
axis([-1 M 0 1.2])
xlabel('n');
ylabel('w(n)');
w(n) =
0 Các trường hợp khác
Π
−
M
n2
cos46.054.0
0≤ n ≤ M