Tải bản đầy đủ (.pdf) (99 trang)

Thiết kế bộ lọc số với công nghệ epga

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.44 MB, 99 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

àả

TRAN TAN PHUC
ẹE TAỉI:

THIET KE BO LOẽC SO
VễI CONG NGHE FPGA

CHUYÊN NGÀNH: KỸ THUẬT VÔ TUYẾN ĐIỆN TỬ
MÃ NGÀNH: 2 . 07. 01

LUẬN VĂN THẠC SĨ

Tháng 6 -2003


Kết luận

Kết luận
KẾT LUẬN :

Bộ lọc số được ứng dụng rất rộng rãi trong ứng dụng xử lý tín hiệu số.
Bộ lọc số được dùng để thực hiện việc phân tích phổ, lọc những tín hiệu
nhiễu không mong muốn hay cung cấp dạng phổ tín hiệu. Những kết quả thu
được từ việc thiết kế mạch lọc số này là chúng được sử dụng rộng rãi trong
các hệ thông thông tin số.
FPGA là công nghệ rất mới và được ứng dụng rất rộng rãi, do đó cần


có thời gian nhất định để tiếp cận và nghiên cứu, cho nên việc thiết kế bộ
lọc số của chúng tôi còn nhiều thiếu sót cũng như hạn chế. Chẳng hạn,
không thể nâng cao thêm số bậc lọc của mạch lọc để tăng độ chính xác của
mạch lọc, hay hệ số bộ lọc chưa được chuyển trực tiếp từ phần mềm vào
FPGA, mà phải nạp bằng bảng khai báo hằng số những điều hạn chế này do
chương trình thực hiện chưa tối ưu để có thể hạn chế tối đa số logic cell.
Trong luận văn này em đã thực hiện bộ lọc số FIR và IIR trên FPGA
với tốc độ ( tần số lấy mẫu) 10MHz, do những giơiù hạn về thiết bị nên luận
văn chỉ giới hạn thiết kế bậc của bộ lọc trong khuôn khổ nhất định. Tài
nguyên cuả FPGA là có hạn nên chúng ta chỉ có thể thực hiện bộ lọc với hệ
số không cao. Trong đề tài này chúng ta thực hiện bộ lọc FIR bậc 16, bộ lọc
IIR bậc 5. Điều đó sẽ dẫn tới việc không thể thoả mãn đầy đủ yêu cầu
phẩm chất cuả bộ lọc. Một điểm khác nữa là mỗi lần thay đổi hệ số cuả bộ
lọc phải thực hiện biên dịch lại cả thiết kế. Và vấn đề chuyển đổi hệ số bộ
lọc từ dạng số thực sang dạng nhị phân 8 bit vàtính bảng tra LUT 16x8 còn
phải thực hiện thủ công . Đó cũng là một hạn chế cuả thiết kế. Nếu giải
quyết tốt vấn đề này sẽ làm cho người sử dụng dễ dàng hơn.
Kết quả của các bộ lọc đã được thử nghiệm trên kit UP, cho kết quả
lọc tương đối tốt. Nhưng để kết quả tốt hơn ta phải nâng số bit lượng tử hoá
giá trị số đầu vào (ADC có số bit nhiều hơn), và phải tìm cách nâng cao
được số bậc bộ lọc.
HƯỚNG PHÁT TRIỂN:

Để hoàn thiện hơn kết quả đạt được, chúng ta cần tăng thêm số bit dữ
liệu từ 8 bit lên 16bit hay 32 bit để tăng độ phân giải cao hơn.
GVHD: TS.Nguyễn Như Anh và ThS.Hồ Trung Mỹ

HV: Trần Tấn Phúc

98



Kết luận

Thực hiện chương trình chuyển đổi hệ số bộ lọc từ dạng thực sang dạng
nhị phân một cách liên thông tạo dễ dàng cho người sử dụng. Từ đó thực
hiện bộ lưu hệ số như một ROM, hoặc chuyển trực tiếp bằng cách viết vào
RAM , điều đó sẽ làm cho việc biên dịch thiết kế sẽ dễ dàng hơn.
Sử dụng các FPGA có dung lượng bộ nhớ lớn và số cổng logic lớn để có
thể thực hiện bộ lọc có bậc cao hơn, chất lượng lọc tốt hơn.
Bộ xử lý lọc số này có thể tích hợp trong các card xử lý số như: hệ thống
lọc nhiễu, hệ thống phân tích phổ, hệ thống xử lý ảnh, hệ thống nén dữ
liệu…

GVHD: TS.Nguyễn Như Anh và ThS.Hồ Trung Mỹ

HV: Trần Tấn Phúc

99


Lời nói đầu
Trong những năm gần đây, công nghệ ASIC phát triển với tốc độ rất nhanh
trên thế giới. Đây là một công nghệ tiên tiến cung cấp cho chúng ta một phương
thức thiết kế các hệ thống số một cách nhanh chóng, tiện lợi và rẻ tiền, do đó nó
đặc biệt thích hợp với việc nghiên cứu thử nghiệm trước khi đưa vào sản xuất đại
trà ở quy mô lớn. Với những công cụ thiết bị phần cứng lập trình được và phần
mềm tích hợp, công nghệ ASIC cho người thiết kế một cái nhìn trực quan về các
hệ thống kỹ thuật số, điều rất có lợi khi đưa vào nghiên cứu giảng dạy ở các
trường đại học nhằm giúp sinh viên hiểu rõ hơn bản chất hoạt đọâng của các mạch

số đã học trên lý thuyết.
Trong luận văn này, để có cái nhìn tổng quát về quy trình thiết kế một
mạch số với công nghệ ASIC, và trong điều kiện các thiết bị thí nghiệm hiện có
của trường, đề tài sẽ đi vào nghiên cứu ứng dụng các thiết bị phần cứng lập trình
được với công nghệ FPGA, bước phát triển trước của ASIC. Mục tiêu là thiết kế
một bộ lọc số FIR và IIR trong xử lý số tín hiệu. Ngôn ngữ mô tả phần cứng được
sử dụng là VHDL, công cụ phần mềm hổ trợ được sử dụng là MAX+PLUS II của
hãng ALTERA. Sau khi thiết kế và mô phỏng thành công, chip được hiện thực trên
phần cứng là board UP của ALTERA.
Luận văn được chia thành 4 chương. Các chương được sắp xếp như sau:
Chương 1 : Giới thiệu về bộ lọc số FIR và IIR
Chương này nhằm cung cấp những kiến thức cơ bản nhằm giúp ta có nền
tảng lý thuyết để thực hiện việc thiết kế bộ lọc số FIR và IIR ở những chương sau.
Chương 2: Công Nghệ FPGA và Ngôn Ngữ VHDL
Chương này giới thiệu tổng quát về công nghệ FPGA và ngôn ngữ VHDL,
cách sử dụng phần mềm hổ trợ Max Plus II.
Chương 3: Thiết Kế Bộ Lọc Số Lập Trình Được Với FPGA
Chương này trình bày ý tưởng thiết kế, mô hình thực hiện trên phần cứng
FPGA, các mạch ADC, DAC giao tiếp với nó.
Đồng thời trong chương này, luận văn sẽ trình bày việc xây dựng phần
mềm tính toán trước hệ số bộ lọc số bằng ngôn ngữ Matlab. Giao diện tính hệ số
bộ lọc có 6 phương pháp lựa chọn để thiết kế bộ lọc số.
Chương 4: Thiết Kế Giải Thuật Cho Bộ Lọc Số Bằng Ngôn Ngữ Mô Tả Phần
Cứng VHDL
Chương này trình bày cách tối ưu hóa giải thuật tính bộ lọc số, và các giải
thuật thực hiện bộ lọc số bằng ngôn ngữ VHDL trên thiết bị FLEX10K. Kết quả
mô phỏng trên Max Plus II và thực nghiệm của bộ lọc số được thực hiện trên
FLEX10K của kit UP của hãng Altera.
Tháng 5/2003



MỤC LỤC
Chương1:

Trang

Giới thiệu về bộ lọc FIR và IIR
1. Giới thiệu
2. Mạch lọc FIR
3. Các phương pháp thiết kế mạch lọc FIR
4. Mạch lọc IIR
5. Các phương pháp thiết kế mạch lọc IIR

5
5
7
11
26
28

Chương 2:

Công nghệ FPGA và ngôn ngữ VHDL
1. Công nghệ FPGA
1.1. Giới thiệu
1.2. Mô tả cấu trúc
1.3. Ứng dụng của FPGA
1.4. Cài đặt cho FPGA
1.5. Giới thiệu các loại FPGA
2. Giới thiệu về Ngôn ngữ VHDL

2.1. Khái quát về VHDL
2.2. Các điểm mạnh của VHDL
2.3. Cấu trúc ngôn ngữ VHDL
3. Giới thiệu về phần mềm Max Plus II
3.1.Giới thiệu
3.2. Các ứng dụng của Max Plus II
3.3. Trình biện dịch Max Plus II

38
38
38
39
41
43
45
48
48
49
49
58
58
58
59

Chương 3:

Thiết kế bộ lọc số lập trình được với FPGA
1. Ý tưởng thiết kế
2. Mô hình thực hiện
3. Phần mềm tính hệ số bộ lọc FIR và IIR

4. Mạch biến đổi ADC và DAC
5. Giới thiệu phần cứng hổ trợ: Kit UP của ALTERA

63
63
66
67
69
75

Chương 4:

Thiết kế giải thuật cho bộ lọc số bằng
ngôn ngữ mô tả phần cứng VHDL

77

1.Tối ưu hóa cách thiết kế bộ lọc FIR trên FLEX10K
2. Thiết kế giải thuật cho bộ lọc số FIR
3. Thiết kế giải thuật cho bộ lọc số IIR

77
85
91

Kết luận

98



CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Chương

1

GIỚI THIỆU VỀ BỘ LỌC SỐ FIR VÀ IIR
1. Giới thiệu:
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 cho trên hình sau:
h(n)

x(n)

y(n)

đây:

y( n ) = h( n ) * x( n ) =







∑ x( m ) h( n − m )

h ( m )x ( n − m ) = x ( n ) * h ( n ) =


m = −∞

m = −∞

h(n) : đáp ứng xung cuả hệ thống.
Và ta đã biết rằ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ằng phương trình sai
phân tuyến tính sau đây:
N

M

k =0

r=0

∑ a k y( n − k ) = ∑ b r x( n − r )
Tổng hợp tất cả các hệ số ak, br 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ố ak, br 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):
M

H( Z) = ZT[h(n)] =

Y ( Z)
=
X( Z)

∑b Z
r=0

N

∑a
k =0

HV: Trần Tấn Phúc

5

r

k

−r

Z −k

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

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(ejω):
M

Y(e jω )
H(e jω ) =
=
X(e jω )


∑b e
r

r=0
N

∑a
k =0

k

− j ωr

e − j ωk

Y(e ) = H(e ).X(e jω )




Quan hệ trên cho thấy rằng việc phân bố tần số cuả biên độ và pha cuả
tín hiệu vào x(n) được biến dạng bởi hệ thống tùy thuộc vào dạng cuả
H(ejω). Chính dạng cuả H(ejω) đã xác định việc suy giảm hay khuếch đại các
thành phần tần số khác nhau. Hệ thống tương ứng với H(ejω) này được gọi là
bộ lọc.
Vấn đề tổng quát trong lọc số là việc tạo ra một hệ thống tuyến tính bất
biến. Hệ thống này có đáp ứng tần số mong muốn và có thể thực hiện dược.
Quan hệ giữa đầu vào, đầu ra và đáp ứng xung cuả hệ thống phải thoả
mãn điều kiện sau đây:



y ( n ) = h ( n ) * x ( n ) = ∑ h ( m )x ( n − m )
m =0

L[h(n)] = [0,∞]


∑ h( n ) < ∞
n =0

Các quan hệ này cho thấy rằng chiều dài cuả đáp ứng xung h(n) là rất
quan trọng, các hệ số h(n) là đặc trưng cho hệ thống.
Vì thế chúng ta có thể phân loại các hệ thống thành hai loại lớn tùy theo
chiều dài cuả đáp ứng xung h(n):
Loại 1: hệ thống được đặc trưng bởi đáp ứng xung có chiều dài hữu
hạn. Nó được gọi là hệ thống có đáp ứng xung chiều dài hữu hạn (FIR), tức
là h(n) chỉ khác không trong một khoảng có chiều dài hữu hạn N (từ 0 đến
N-1).
Loại 2: hệ thống được gọi là hệ thống có đáp ứng xung chiều dài vô hạn,
tức là h(n) khác không trong một khoảng vô hạn từ 0 đến ∞. Gọi là bộ lọc
IIR.
HV: Trần Tấn Phúc

6

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR


2. Mạch Lọc Số FIR:
Ta xét một mạch lọc FIR độ dài M với tín hiệu vào x(n) và tín hiệu ra
y(n) được mô tả bởi phương trình sai phaân sau:
y(n) = b0x(n) + b1x(n-1) + …+ bM-1x(n-M-1)
=

M −1

∑ b x(n − k )
k =0

k

Với bk là các hệ số của mạch lọc. Do vậy ta có biểu diễn tín hiệu của hệ
thống theo công thức tính:
y ( n) =

M −1

∑ h( k ) x ( n − k )
k =0

H ( z) =

M −1

∑ h( k ) z

−k


k =0

Mạch lọc FIR phase tuyến tính nếu đáp ứng xung của nó thỏa mãn
điều kiện đối xứng và phản đối xứng:
h(n) = ± h(M-1-n)

n = 0, 1, 2, ……, M-1

Thay thế đáp ứng xung có điều kiện đối xứng và phản đối xứng này
vào, ta có:
H ( z ) = h(0) + h(1).z −1 + h(2).z −2 + ...... + h(m − 2).z − ( M − 2 ) + h( M − 1).z − ( M −1)

[

]

⎧ M − 1 ( M −3) / 2

) + ∑ h(n) z ( M −1− 2 k / 2 ) ± z −( M −1− 2 k / 2) ⎬ khi M leû
2
n =0



= Z −( M −1) / 2 ⎨h(

[

]


⎧( M −3) / 2

h(n) z ( M −1− 2 k / 2 ) ± z −( M −1− 2 k / 2 ) ⎬

⎩ n =0


= Z −( M −1) / 2 ⎨

khi M chẵn

Bây giờ nếu ta thay thế z-1 bởi z và nhân cả hai vế của phương trình
nhận được với z-(M-1) ta thu được:
z − ( M −1) H ( z −1 ) = ± H ( z )

HV: Trần Tấn Phúc

7

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Kết quả cho thấy nghiệm của đa thức H(z) cũng là nghiệm của đa thức

H(z-1). Vì vậy, nghiệm của đa thức H(z) xảy ra từng cặp nghịch đảo với
nhau. Nói cách khác, nếu z1 là nghiệm của đa thức H(z) thì 1/z1 cũng là
nghiệm. Hơn nữa, nếu đáp ứng H(n) của lọc là thực thì các nghiệm phức sẽ

có từng cặp liên hợp phức. Vì vậy, nếu z1 là nghiệm phức thì z1* cũng là
nghiệm, và H(z) có điểm không là 1/ z1*.

Đáp ứng tần số của mạch lọc FIR phase tuyến tính thu được bằng cách
tính trên vòng tròn đơn vị. Sự thay thế này thu được biểu thức của H(ω) như
sau:
H (ω ) = H r (ω )e j [( βπ / 2 )−ω ( M −1) / 2 ]

Với H r (ω ) là một hàm thực của tần số, phụ thuộc vào giá trị của đáp
ứng xung h(n) và phase θ H (ω ) của mạch lọc:
θ H (ω ) =

βπ
2



ω ( M − 1)
2

Vấn đề còn lại của việc thiết kế mạch lọc FIR phase tuyến tính là xác
định các hệ số của mạch lọc, tức là các giá trị h(n), n=0, 1, 2, ……, M từ đáp
ứng tần số H d (ω ) của mạch lọc.
Trước khi một bộ lọc được thiết kế, tập các đặc tính của bộ lọc được xác
định . Thí dụ, giả sử rằng ta muốn thiết kế một bộ lọc thông thấp lý tưởng có
pha tuyến tính và tần số cắt ω c là
⎧e − jω
H d (e ) = ⎨
⎩ 0



ω ≤ ωc
ωc ≤ ω ≤ π

Đáp ứng xung đơn vị của bộ lọc trên là:
h d (n)=

sin( n − α )ω c
π (n − α )

do bộ lọc này không thể hiện thực được (do không nhân quả và không ổn
định ), ta cần phải nới lỏng (giảm bớt các ràng buộc lý tưởng về đáp ứng tần
số và cho phép một độ lệch sai số so với đáp ứng lý tưởng . Các đặc tính
cho bộ lọc thông thấp điển hình sẽ có dạng :

HV: Trần Tấn Phúc

8

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

1- δp < H(e jw ) <= 1 + δp

0<= ω <= ωp
ω s <= ω <= Π

H (e jw ) <= δ s


Như được minh hoạ trong hình được trình bày dưới đây các đặc tính bao
gồm: tần số cắt dải thông ω p , tần số cắt dải chận ω s , độ lệch dải thông
δ p và độ lệch dải chận δ s .
H ( e jω )

1+ δ p
1- δ p
Dải thông

Dải chận

δs

π

ωs

ωp

Quá độ

Các đặc tính của bộ lọc thông thấp
Tính theo đơn vị dB:
α p = 20 log(1+δ p )
α s = −20 log(δ s )



Khoảng [ω p , ω s ]được gọi la ødải chuyển tiếp (transition band).

Một khi các đặc tính của bộ lọc đã được xác định, bước kế tiếp là
thiết kế bộ lọc sao cho thoả các đặc tính được định .
Chúng ta có thể tóm tắt ngắn gọn các tính chất cơ bản cuả bộ lọc số
có pha tuyến tính như sau:

h(n) đối xứng

h(n) phản đối xứng

h(n) = h(N-1-n)

h(n) = - h(N-1-n)

HV: Trần Tấn Phúc

9

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

H (e ) = e


− jω

N −1
2


A (e )

H(e ) = e





A(e jω ) = ∑ a(n) cos ωn

A(e jω ) = ∑ c(n) sin ωn

⎛ N −1⎞
a(0) = h⎜

⎝ 2 ⎠
⎧ ⎛ N −1
N −1

− n⎟ 1 ≤ n ≤
⎪2 h⎜
a(n) = ⎨ ⎝ 2
2

⎪⎩
n còn lại
0
A(e jω ) đối xứng trong khoảng tần

⎧ ⎛ N −1

N −1

⎪2 h⎜
− n⎟ 1 ≤ n ≤
c(n) = ⎨ ⎝ 2
2

⎪⎩
n còn lại
0
A(e jω ) phản đối xứng trong khoảng
tần số 0 ≤ ω ≤ 2π

soá 0 ≤ ω ≤ 2π

H(e jω ) = A(e jω ) là đối xứng trong

H(e jω ) = A(e jω ) là đối xứng trong

khoảng 0 ≤ ω ≤ 2π

khoảng 0 ≤ ω ≤ 2π
Bộ lọc FIR loại 1)

A(e jω ) = 0 ở ω = 0 và ω = π
(Bộ lọc FIR loại 3)

n=0

n=0


Lẻ

H(e ) = e


− jω

N −1
2

H ( e jω ) = e

A(e )


Chaün

N −1
π
)
− j( − ω
2
2

A(e jω )

N −1
2


N
2

N

A ( e jω )

N −1
2

N −1
2

N

π N −1
j( − ω
)
2
2

1 ⎞⎤
⎡ ⎛
A(e jω ) = ∑ b(n) cos ⎢ω⎜ n − ⎟⎥
2 ⎠⎦
n=0
⎣ ⎝

1 ⎞⎤
⎡ ⎛

A(e jω ) = ∑ d(n) sin ⎢ω⎜ n − ⎟⎥
2 ⎠⎦
n=0
⎣ ⎝

⎧ ⎛N
N

⎪2 h⎜ − n ⎟ 1 ≤ n ≤
b(n) = ⎨ ⎝ 2
2

⎪⎩
n còn lại
0
A(e jω ) phản đối xứng trong khoảng

⎧ ⎛N
N

⎪2 h⎜ − n ⎟ 1 ≤ n ≤
d (n ) = ⎨ ⎝ 2
2

⎪⎩
n còn lại
0
A(e jω ) đối xứng trong khoảng

tần số 0 ≤ ω ≤ 2π

H(e ) = A(e ) là đối xứng trong




khoảng 0 ≤ ω ≤ 2π

tần số 0 ≤ ω ≤ 2π
H(e jω ) = A(e jω ) là đối xứng trong
khoảng 0 ≤ ω ≤ 2π
A(e jω ) = 0 ở ω = π

A(e ) = 0 ở ω = π
(Bộ lọc FIR loại 2)


(Bộ lọc FIR loại 4)

3. Các Phương Pháp Thiết Kế Mạch Lọc FIR:

HV: Trần Tấn Phúc

10

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

3.1. Thiết kế mạch lọc FIR phase tuyến tính bằng phương pháp

cửa sổ:
Ta có hd (n) là đáp ứng của bộ lọc cần xác định có quan hệ với
H d (ω ) bởi biến đổi Fourier sau:


H d (ω ) = ∑ hd (n)e − jωn
n =0

hd (n) =

1


π

∫π H

d

(ω )e − jωn dω



Do vậy, ta có thể xác định đáp ứng xung hd(n) bằng cách tính tích
phân trên, đáp ứng xung hd(n) thu được có độ dài hữu hạn và làm tròn
tại một vài điểm, như n = M-1 để thu được mạch lọc FIR độ dài M bằng
cách nhân hd(n) với một “cửa sổ chữ nhật” được định nghóa như sau:
1

n = 0, 1, 2, …., M-1


0

n còn lại

w(n) =

Vì vậy, đáp ứng xung của mạch lọc FIR trở thành:
hd(n) n = 0, 1, 2, …
h(n) = hd(n)w(n) =
0

n còn lại

Lưu ý rằng tích số của hai chuỗi w(n) và hd(n) tương ứng với
tích chập của H d (ω ) với W (ω ) , với W (ω ) là biến đổi Fourier của hàm
cửa sổ, tức là:
W (ω ) =

M −1

∑ w(n)e

− j ωn

n =0

Vì vậy, từ tích chập của H d (ω ) với W (ω ) thu được đáp ứng tần
số của mạch lọc FIR (đã làm tròn):


HV: Trần Tấn Phúc

11

GVHD: Thầy Hồ Trung Myõ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

1


H (ω ) =

π

∫H

d

(v)W (ω − v)dv

−π

Biến đổi Fourier của hàm cửa sổ chữ nhật là:
W (ω ) =

M −1

∑e

n =0

− jωn

1 − e − jωM
sin(ωM / 2)
=
= e − jω ( M −1) / 2
− jω
sin(ω / 2)
1− e

Đáp ứng biên độ của hàm cửa sổ chữ nhật là:
W (ω ) =

sin(ωM / 2)
sin(ω / 2)

Và đáp ứng pha:

⎛ M −1⎞
⎪⎪ − ω ⎜ 2 ⎟


θ w (ω ) = ⎨
M
1
⎪− ω ⎛⎜ − ⎞⎟ + π
⎪⎩ ⎝ 2 ⎠


⎛ ωM ⎞
sin⎜
⎟≥0
⎝ 2 ⎠
⎛ω ⎞
sin ⎜ ⎟ < 0
⎝2⎠

Đối với đáp ứng biên độ của hàm cửa sổ chữ nhật, độ rộng của
búp chính (độ rộng này đo được từ điểm triệt tiêu đầu tiên của W (ω )) là
4π / M . Khi M tăng lên thì độ rộng búp chính trở trên hẹp hơn. Tuy
nhiên, búp phụ W (ω ) lại tương đối cao và hầu như không bị ảnh hưởng
khi M tăng lên. Thực tế là độ rộng của mỗi búp phụ giảm đi khi M tăng
lên nhưng độ cao lại tăng lên sao cho diện tích nằm dưới mỗi búp phụ
không đổi khi ta thay đổi M.
Các cửa sổ thường dùng cho việc thiết kế lọc FIR
Tên của cửa sổ

Chuỗi trong miền thời gian
M −1⎞

2⎜ n −

2 ⎠

1−
M −1

Bartlett


2πn
4πn
+ 0,08 cos
M −1
M −1

Blackman

0,42 − 0,5 cos

Hamming

0,54 – 0,46 cos

HV: Trần Tấn Phúc

12

2πn
M −1

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

1⎛
2πn ⎞
⎜1 − cos


2⎝
M −1⎠

Hanning


I 0 ⎢a



Kaiser

2
2⎤
M
M


1
1



⎞ ⎥

⎟ − ⎜n −

2 ⎠ ⎥⎥
⎝ 2 ⎠



⎡ ⎛ M − 1) ⎞⎤
I 0 ⎢α ⎜
⎟⎥
⎣ ⎝ 2 ⎠⎦

⎧ ⎡ ⎛
⎤⎫
M −1⎞
⎟ /( M − 1)⎥ ⎪
⎪ sin ⎢2π ⎜ n −
2 ⎠
⎪ ⎣ ⎝
⎦⎪


⎪ 2π ⎛⎜ n − M − 1 ⎞⎟ / ⎛⎜ M − 1 ⎞⎟ ⎪
⎪⎩
2 ⎠ ⎝ 2 ⎠ ⎪⎭


Lanczos

L

L>0

Giả sử ta muốn thiết kế một mạch lọc FIR phase tuyến tính thông
thấp có đáp ứng tần số là:
0 ≤ ω ≤ ωC


⎧l.e − jω ( M −1) / 2
H d (ω ) = ⎨
0


ω > ωC

(n ≠ (M-1)/2)
Ta thấy rằng hd(n) là không nhân quả và có độ dài vô hạn.
Nếu ta nhân hd(n) với hàm cửa sổ chữ nhật ta sẽ thu được mạch
lọc FIR pha tuyến tính có độ dài M có đáp ứng xung nhö sau:
M −1⎞

sin ω C ⎜ n −

2 ⎠

h ( n) =
M −1⎞

π⎜n −

2 ⎠


vaø

0 ≤ n ≤ M −1


(n ≠ (M-1)/2

Nếu được chọn là lẻ, thì giá trị của h(n) tại n=(M-1)/2 là:
M −1⎞ ωC

h⎜ n −
⎟=
2 ⎠ π


HV: Trần Tấn Phúc

13

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Trên đáp ứng biên độ của mạch lọc này, ta sẽ thấy có những dao
động tương đối lớn hay độ gợn sóng xung quanh trục chuyển biến tần số
đột ngột. Tần số của các dao động này tăng lên khi M tăng nhưng biên
độ của chúng không bị giảm xuống. Hiện tượng này xảy ra chính là do
kết quả của việc hạn chế độ dài đáp ứng xung bằng hàm cửa sổ chữ
nhật. Hiện tượng này chính là hiện tượng Gibbs.
Các cửa sổ và đặc tính thường dùng cho việc thiết kế bộ lọc FIR:
Tên hàm
cửa sổ

Độ rộng dải

Độ gợn
Độ gợn
chuyển tiếp(Hz) dải thông dải chắn
(dB)
(dB)
(đã huẩn hoa)ù

Hàm cửa sổ
w(n) , n ≤ (N - 1)/2

Chữ nhật

0,9/N

0,7416

21

1

Hanning

3,1/N

0,0546

44

1⎛
2πn ⎞

⎜ 1 − cos

2⎝
N −1⎠

Hamming

3,3/N

0,0194

53

Blackman

5,5/N

0,0017

74

Kaiser

2,93/N (β=5,54)

0,0274

50

4,32/N (β=6,76)


0,00275

70

5,71/N (β=8,96)

0,000275

90

0,54 – 0,46 cos
0,42 − 0,5 cos

2πn
N −1

2πn
4πn
+ 0,08 cos
N −1
N −1

I 0 (β{1 − [2n /(N − 1)]2 } )
I 0 (β)
1/ 2

Tóm tắt cách tính toán các hệ số bộ lọc theo phương pháp cửa sổ:
• Bước 1 : Xác định đáp ứng tần số theo yêu cầu hoặc lý tưởng cuả bộ lọc
HD(n).

• Bước 2 : Tính đáp ứng xung hD(n) cuả bộ lọc cần thiết kế bằng cách biến
đổi Fourier ngược như công thức đã cho. Đối với một số bộ lọc thông
thường, công thức hD(n) đã cho trong bảng trên.
• Bước 3 : Chọn hàm cửa sổ thoả mãn băng thông hay độ suy hao, sau đó
số hệ số bằng cách dùng quan hệ sẵn có giữa độ dài bộ lọc và độ rộng
chuyển tiếp Δf .
• Bước 4 : Tính giá trị w(n) cho cửa sổ đã chọn và giá trị cuả hệ số FIR
thực tế h(n) bằng cách nhân hD(n) với w(n)

h(n) = hD(n) w(n).
HV: Trần Tấn Phúc

14

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Việc dùng phương pháp cửa sổ có lợi thế là ít tính toán, chúng ta có
thể tính thủ công bằng máy tính bỏ túi. Tuy nhiên kết quả là không tối ưu,
trong nhiếu trường hợp nếu dùng phương pháp khác sẽ có số hệ số thấp hơn.
Ưu, khuyết điểm của phương pháp này:
• Một ưu điểm quan trọng cuả phương pháp cửa sổ là sự đơn giản : dễ áp
dụng và dễ hiểu, không phải tính toán nhiều ngay cả với cửa sổ Kaiser
tương đối phức tạp.
• Một nhược điểm chính cuả nó là : độ gợn đỉnh cuả dải thông và dải chắn
được ước lượng xấp xỉ, do đó người thiết kế sẽ dừng lại với độ dợn dải
thông quá nhỏ hay độ suy hao dải chắn quá lớn.
• Do ảnh hưởng cuả việc chồng phổ cuả hàm cửa sổ và đáp ứng mong

muốn, tần số cạnh cuả dải thông và dải chắn không thể xác định chính
xác.
• Đối với một cửa sổ cho trước (ngoại trừ cửa sổ Kaiser) biên độ gợn cực
đại cuả đáp ứng bộ lọc được cố định bất kể giá trị N lớn bao nhiêu dẫn
đến suy hao dải chắn được cố định. Do đó, với một độ suy hao cho trước,
người thiết kế phải tìm một cửa sổ thích hợp.


Trong một vài ứng dụng, biểu thức cuả đáp ứng bộ lọc yêu cầu HD(ω) sẽ
làm cho việc tính hD(n) trở nên quá phức tạp. Trong trường hợp này hD(n)
sẽ được tính thông qua phương pháp lấy mẫu tần số trước khi áp dụng
hàm cửa sổ.
3.2. Thiết kế mạch lọc FIR bằng phương pháp lấy mẫu tần số
Về cơ bản, phương pháp này cần đưa ra đáp ứng tần số Hd(ω) tại
các tần số rời rạc cách đều nhau, tức là:
ωk =


(k + α )
M

k = 0, 1, ……, (M-1)/2 M leû

α = 0 hoaëc α = 1 / 2 k = 0, 1, ……, (M-1)-1 M chẵn

Và đưa ra lời giải cho đáp ứng xung h(n) của bộ lọc FIR từ các đặc
tính tần số cách đều nhau. Mặt khác cần tối ưu đặc tính tần số trong dải
tần phát của bộ lọc. Việc tối ưu này được thực hiện theo phương pháp số
trên máy tính bằng kỹ thuật chương trình tuyến tính.


HV: Trần Tấn Phúc

15

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Trong phần này ta sẽ lợi dụng đặc tính đối xứng căn bản của hàm
đáp ứng tần số lấy mẫu để đơn giản hóa việc tính toán. Hãy bắt đầu với
đáp ứng tần của bộ lọc FIR:
H (ω ) =

M −1

∑ h(n).e

− j ωn

n=0

⎛ 2π

(k + α ) ⎟
H (k + α ) ≡ H ⎜
⎝M

H (k + α ) ≡


M −1

∑ h(n).e

− j 2π ( k +α ) n / M

k = 0, 1, ……, M-1

n =0

1
h( n) =
M

M −1

∑ h(k + α ).e

j 2π ( k +α ) n / M

k = 0, 1, ……, M-1

n=0

Quan heä trên cho phép ta xác định giá trị của đáp ứng xung h(n) từ
các giá trị đặc biệt của đáp ứng tần số H(k+α), k = 0, 1, …, M-1.
Vì h(n) là thực, ta có thể thấy các mẫu của đáp ứng tần số H(k+α)
thỏa mãn điều kiện đối xứng:
H(k+α) = H* (M-k-α)
Ta có thể sử dụng tính đối xứng này để giảm tính đối xứng của

các tần số đặc biệt từ M điểm còn (M+1)/2 điểm với M lẻ và M/2 điểm
với M chẵn. Khi đó hệ phương trình tuyến tính để tính h(n) từ các giá trị
H(k+α) trở nên đơn giản hơn.
Khi phương trình trên đơn giản là các mẫu tại các tần số
ωk=2π(k+α)/M, k=0, 1, …., (M-1) ta thu được:
⎡ βπ 2π ( k +α ( M −1)) ⎤

2
2M


⎞ j⎢
⎛ 2π
H (k + α ) = H r ⎜
( k + α ) ⎟e ⎣

⎝M

Với β = 0 khi h(n) là đối xứng và β = 1 khi h(n) là phản đối xứng.
Ta định nghóa tập hợp các mẫu tần số thực G(k=m):
k
⎛ 2π

(k + α ) ⎟
G ( k + α ) = (−1) H r ⎜
⎝M


k = 0, 1, ……, M-1


Ta khử đi H t (ωk ) và thu được:
HV: Trần Tấn Phúc

16

GVHD: Thầy Hồ Trung Myõ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

H ( k + α ) = G ( k + α )e

jπk

.e

⎡ βπ 2π ( k +α ( M −1)) ⎤
j⎢

2M
⎣ 2


Bây giờ điều kiện đối xứng ở trên đối với H(k+α) chuyển thành
điều kiện đối xứng tương ứng đối với G(k+α), mà ta có thể sử dụng
bằng cách thay thế các giá trị α = 0, α = 1 2 ; β =0, β =1 vaø thay vào để
tính được đáp ứng xung của mạch lọc FIR.
Trong phương pháp lấy mẫu tần số, chúng ta sẽ làm gần đúng
H(e ) bằng một hàm Hd(ejω) cuả bộ lọc thực tế. Hd(ejω) nhận được qua


việc nội suy giữa các mẫu H(k) lấy trên H(ejω) tại các tần số ω k =
k
N


Sai số cuả phép gần đúng này bằng không tại tần số ωk và sẽ là
hữu hạn đối với các tần số khác. Tức là :

H(e jω ) ω = ωk = H d (e jω ) ω = ωk
hay ta có thể viết

H(e jω ) = H d (e jω )
k

k

hoặc viết theo k (biểu diễn trong miền k) ta có:
H(k) = Hd(k)
Như vậy qua phép gần đúng này bộ lọc số lý tưởng
⎧1
H(e jω ) = ⎨
⎩0

ở dải thông
ở dải chắn

sẽ trở thành không lý tưởng bởi công thức nội suy sau đây:
H(e




) = H d (e jω ) = e

− jω

N −1
2

1
∑ H d (k)e
N k =0
N −1

π
−j k
N

ωN
2
⎛ω π ⎞
sin⎜ − k ⎟
⎝2 N ⎠
sin

ở đây :
e

HV: Trần Tấn Phúc

π

−j k
N

ωN
2
ω
π ⎞

sin⎜ − k ⎟
⎝2 N ⎠
sin

gọi là hàm nội suy

17

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

Như thế chúng ta có thể lấy từ N mẫu cuả đáp ứng tần số H(ejω) cuả
bộ lọc số lý tưởng đã cho ( thông thấp, thông cao, …) để thu được đáp ứng
tần số cuả bộ lọc thực tế Hd(ejω).
Chú ý rằng đối với lấy mẫu tần số chúng ta có hai loại:
Loại 1:

ωk =



k
N

Loại 2:

ωk =


1
(k + )
N
2

3.2.1 Tổng hợp bộ lọc số FIR pha tuyến tính với lấy mẫu tần số loại 1
Trước hết chúng ta tìm Ad(ejω) theo hàm cuả Ad(k) , ta biết rằng trong

trường hợp này: ω k =
k , và ta có thể viết :
N
H d (k ) = H d ( Z )
H d (e jω ) = e

− jω

Z = e jω k

N −1
2

1

N

N −1

∑H
k =0

d

( k )e

−j

π
N

k

sin

ωN
2

⎛ω π
sin ⎜ −
⎝2 N


k⎟



H d (e jω ) = Ad (e jω )e jθ (ω )
H d (k ) = Ad (k )e jθ ( k )

Đối với bộ lọc số FIR pha tuyến tính thì :
θ(ω) = −ω

N −1
2

Vậy :
θ( k ) = −ω k

N −1
2π N − 1
=− k
2
N
2

Ta seõ xét các loại bộ lọc cụ thể.
a) Trường hợp N lẻ , h(n) đối xứng (FIR loại 1)
Trong trường hợp này Ad(ejω) la đối xứng trong khoảng tần số 0 ≤ ω
≤2π. Vậy đối với ωk ta có thể viết :
0 ≤ ωk ≤2π



0≤



k ≤ 2π
N



0≤k≤N

thế thì Ad(k) là đối xứng trong khoảng 0 ≤ k ≤ N, tức là :
HV: Trần Tấn Phúc

18

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

Ad(0) = Ad(N) , Ad(1) = Ad(N-1) , Ad(2) = Ad(N-2) , …
⎛ N −1 ⎞
⎛ N −1 ⎞
⎛ N −1⎞
Ad ⎜
− 1⎟ = A d ⎜
+ 1⎟ , A d ⎜

⎝ 2

⎝ 2


⎝ 2 ⎠

ωN
2 +
ω
sin
2
⎧ ⎡ ⎛ ω π ⎞⎤
⎡ ⎛ ω π ⎞⎤ ⎫
N −1
sin ⎢N⎜ − k ⎟⎥ sin sin ⎢N⎜ + k ⎟⎥ ⎪

2 A( k )
⎪ ⎣ ⎝ 2 N ⎠⎦
⎣ ⎝ 2 N ⎠⎦ ⎪
+
+ ∑


N ⎪
⎛ω π ⎞
⎛ω π ⎞
k =1

sin⎜ − k ⎟
sin⎜ + k ⎟
⎪⎩
⎪⎭
⎝2 N ⎠
⎝2 N ⎠


A ( 0)
A(e jω ) ≈ A d (e jω ) = d
N

sin

Biểu thức trên chỉ đúng với các dãy có chiều dài hữu hạn N. Còn đối
với bộ lọc số lý tưởng thì chiều dài cuả đáp ứng xung là vô hạn, và đây
chính là biểu thức gần đúng đối với đáp ứng tần số cuả bộ lọc số lý tưởng

H(ejω), nhưng tại các điểm ω k =
k thì sai số giữa Hd(ejω) và H(ejω) bằng
N
không.
Công thức để tính hd(n):
N −1

2
A
(
0
)
2
⎡π


+
(−1) k A(k ) cos⎢ k(2n + 1)⎥


h d (n ) = ⎨
N
N k =1
⎣N


0


0 ≤ n ≤ N −1
n còn lại

b) Trường hợp N chẵn, hd(n) đối xứng:

Trong trường hợp này Ad(ejω) là phản đối xứng trong khoảng tần số 0
≤ ω ≤2π. Vậy đối với ωk ta có thể viết :
0 ≤ ωk ≤2π



0≤


k ≤ 2π
N



0≤k≤N


thế thì Ad(k) là phản đối xứng trong khoảng 0 ≤ k ≤ N, tức là :
Ad(0) = -Ad(N) , Ad(1) = -Ad(N-1) , Ad(2) = -Ad(N-2) , …
HV: Trần Tấn Phúc

19

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

⎛N ⎞
⎛N ⎞
⎛N⎞
A d ⎜ − 1⎟ = − A d ⎜ + 1⎟ , A d ⎜ ⎟ = 0
⎝2

⎝2

⎝2⎠

ωN
A ( 0)
2 +
A(e jω ) ≈ A d (e jω ) = d
ω
N
sin
2
⎧ ⎡ ⎛ ω π ⎞⎤

⎡ ⎛ ω π ⎞⎤ ⎫
N
sin ⎢N⎜ − k ⎟⎥ sin ⎢N⎜ + k ⎟⎥ ⎪
−1

2
A( k ) ⎪ ⎣ ⎝ 2 N ⎠ ⎦
⎝ 2 N ⎠⎦ ⎪
+ ⎣
+ ∑


N ⎪
⎛ω π ⎞
⎛ω π ⎞
k =1
sin⎜ − k ⎟
sin⎜ + k ⎟ ⎪
⎪⎩
⎝ 2 N ⎠ ⎪⎭
⎝2 N ⎠
sin

vaø

⎪ A ( 0) + 2
h d (n) = ⎨
N
N




N
−1
2

∑ (−1)
k =1

k

⎡π

A(k ) cos⎢ k(2n + 1)⎥
⎣N

0

0 ≤ n ≤ N −1
n còn lại

3.2.2. Tổng hợp bộ lọc số FIR pha tuyến tính với lấy mẫu tần số loại 2
a) Trường hợp N lẻ , hd(n) đối xứng (FIR loại 1):

Trong trường hợp này Ad(ejω) là đối xứng trong khoảng tần số 0 ≤ ω
≤2π. Vậy đối với ωk ta có thể vieát :
0 ≤ ωk ≤2π




0≤

2π ⎛
1⎞
⎜ k + ⎟ ≤ 2π
N⎝
2⎠

thế thì Ad(k) là đối xứng trong khoảng 0 ≤ k ≤ N-1, tức là :
Ad(0) = Ad(N-1) , Ad(1) = Ad(N-2) , Ad(2) = Ad(N-3) , …
⎛ N −1 ⎞
⎛ N −1 ⎞
⎛ N −1⎞
Ad ⎜
− 1⎟ = A d ⎜
+ 1⎟ , A d ⎜

⎝ 2

⎝ 2

⎝ 2 ⎠

HV: Trần Tấn Phúc

20

GVHD: Thầy Hồ Trung Mỹ



CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

⎛ N − 1 ⎞ sin⎧N ⎡ ω − π ⎛⎜ N − 1 + 1 ⎞⎟⎤ ⎫
A⎜

⎟ ⎨ ⎢
2 ⎠⎥⎦ ⎭
2 ⎠ ⎩ ⎣2 N⎝ 2


+
A d (e ) =
N
⎡ ω π ⎛ N − 1 1 ⎞⎤
+ ⎟⎥
sin ⎢ − ⎜
2 ⎠⎦
⎣2 N⎝ 2

+

N −1
−1
2


k =0

⎧ ⎧ ⎡ω π ⎛
⎧ ⎡ω π ⎛

1 ⎞⎤ ⎫
1 ⎞⎤ ⎫ ⎫
⎪ sin ⎨N ⎢ − ⎜ k + ⎟⎥ ⎬ sin⎨N ⎢ + ⎜ k + ⎟⎥ ⎬ ⎪
2 ⎠⎦ ⎭
2 ⎠⎦ ⎭ ⎪
A( k ) ⎪ ⎩ ⎣ 2 N ⎝
⎣2 N⎝
+ ⎩


N ⎪
1 ⎞⎤
1 ⎞⎤ ⎪
⎡ω π ⎛
⎡ω π ⎛
sin ⎢ − ⎜ k + ⎟⎥
sin ⎢ + ⎜ k + ⎟⎥

2
N
2
2 ⎠⎦ ⎪⎭




⎣2 N⎝


vaø :

h d (n) = (−1)

⎛ N −1 ⎞
+n ⎟

⎝ 2


⎛ N −1⎞
N −1
A⎜
−1

2
2
1⎞
⎡π⎛

2

⎠+
(−1) k A( k ) sin ⎢ ⎜ k + ⎟(2n + 1)⎥

N
N k =0
2⎠
⎣N ⎝


b) Trường hợp N chẵn, hd(n) đối xứng ( FIR loại 2):


Trong trường hợp này Ad(ejω) là phản đối xứng trong khoảng tần số 0
≤ ω ≤2π. Vậy đối với ωk ta có thể viết :
0 ≤ ωk ≤2π



0≤

2π ⎛
1⎞
⎜ k + ⎟ ≤ 2π
2⎠
N⎝

thế thì Ad(k) là đối xứng trong khoảng 0 ≤ k ≤ N-1, tức là :
Ad(0) = -Ad(N-1) , Ad(1) = - Ad(N-2) , Ad(2) = -Ad(N-3) , …
⎛N ⎞
⎛N⎞
A d ⎜ − 1⎟ = − A d ⎜ ⎟
⎝2

⎝2⎠

A d (e jω ) =

N −1
−1
2



k =0

⎧ ⎧ ⎡ω π ⎛
⎧ ⎡ω π ⎛
1 ⎞⎤ ⎫
1 ⎞⎤ ⎫ ⎫
⎪ sin ⎨N ⎢ − ⎜ k + ⎟⎥ ⎬ sin ⎨N ⎢ + ⎜ k + ⎟⎥ ⎬ ⎪
2 ⎠⎦ ⎭
2 ⎠⎦ ⎭ ⎪
A( k ) ⎪ ⎩ ⎣ 2 N ⎝
⎣2 N⎝
+ ⎩


N ⎪
1 ⎞⎤
1 ⎞⎤ ⎪
⎡ω π ⎛
⎡ω π ⎛
sin ⎢ − ⎜ k + ⎟⎥
sin ⎢ + ⎜ k + ⎟⎥

2
N
2
2 ⎠⎦ ⎪⎭


⎣2 N⎝





và:

HV: Trần Tấn Phúc

21

GVHD: Thầy Hồ Trung Myõ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR vaø IIR

hd (n) =

2
N

N −1
−1
2

∑ (−1)
k =0

k

⎡π ⎛


1⎞
Ad (k ) sin ⎢ ⎜ k + ⎟(2n + 1)⎥
2⎠
⎣N ⎝


3.3. Phương Pháp Tối Ưu Hóa :

Việc thiết kế bộ lọc thông thấp FIR bằng cách sử dụng kỹ thuật thiết
kế dùng cửa sổ sẽ đơn giản và một cách tổng quát, dẫn đến kết quả là một
bộ lọc có phẩm chất tương đối tốt. Tuy nhiên, các bộ phận này không tối ưu:
• Thứ nhất: các độ lệch dải thông và dải chận, δ p và δ s , xấp xỉ bằng
nhau. Mặc dù thường ta cần δ s nhỏ hơn nhiều so với δ p , các tham số này
không thể được điều khiển một cách độc lập trong phương pháp thiết kế
sử dụng cửa sổ. Do vậy với phương pháp thiết kế sử dụng cửa sổ, ta cần
phải thiết kế lố dải thông của bộ lọc để thoả các yêu cầu nghiêm ngặt
hơn trong dải chận.
• Thứ hai: với đa số các cửa sổ, độ gợn sẽ không đều hoặc trong dải thông
hoặc trong dải chận và một cách tổng quát giảm khi di chuyển từ dải
chuyển tiếp . Việc cho phép độ gợn được phân bố đều trên toàn dải sẽ
tạo ra độ gợn đỉnh nhỏ hơn. Bộ lọc có pha tuyến tính đồng độ gợn, mặt
khác, sẽ tối ưu theo nghóa biên độ của độ gợn được tối thiểu hoá trên tất
cả các dải đối với bậc cho trước N của bộ lọc.
Trong đề cập sau đây, ta khảo sát việc thiết kế bộ lọc có pha tuyến
tính loại 1. Kết quả thiết kế này có thể dễ dàng được sửa đổi để thiết kế các
loại bộ lọc có pha tuyến tính khác .
Đáp ứng của tần số bộ lọc FIR có pha tuyến tính có thể viết như sau:
H(e jω )=a(e jω )e − jω
Với biên độ A(e jω ) là hàm có giá trị thực theo ω .Với bộ lọc có pha

tuyến tính loại 1
h(n)=h(N-1-n)
với n là số nguyên chẵn tính đối xứng của h(n) cho phép đáp ứng tần số
được biểu diễn thành
L

A(e jω )= ∑ a( k ) cos( kω)
k =0

Với L=N/2 và

HV: Trần Tấn Phúc

22

GVHD: Thầy Hồ Trung Mỹ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR

a(0)=h(

N
)
2

a(k)=h(k+

N
)

2

k=1,2,…,N/2

số hạng cos (k ω ) có thể được biễu diễn thành tổng các luỹ thừa của
cos( ω ) dưới dạng :
cos(k ω )=T k (cos ω)
với T k (x) là đa thức Chebyshev bậc k. Do đó, phương trình có thể được viết
thành
L

A(e jω )= ∑ α( k )(cos ω k )
k =0

Như vậy , A(e jω ) là đa thức bậc L theo cos ω .
Với A d e jω là biên độ được yêu cầu và W(e jω ) là hàm trọng số dương, đặt:
E(e jω )= W(e jω )[A d (e jω ) − A(e jω ) ]
sai số xấp xỉ có trọng số. Như vậy vấn đề thiết kế bộ lọc đồng độ gợn bao
gồm việc tìm các hệ số a(k), các hệ số này giảm tối thiểu giá trị tuyệt đối
của E(e jω )trên tập các tần số F.
min ∑{max E(e jω )}
a( k )

Lời giải cho vấn đề tối ưu hóa này được cho trong định lý luân phiên, định
lý này phát biểu như sau:
Định lý luân phiên : Gọi F là hợp của các tập con đóng trên khoảng
[0, π ].Với hàm trọng số dương W(e jω ),điều kiện cần và đủ để
L

A(e jω )= ∑ a( k ) cos( kω)

k =0

Là hàm làm giảm thiểu giá trị cực đại số sai số có trọng số E(e jω ) trên tập
F là E(e jω ) có tối thiểu (L+2) thay đổi . Điều này có nghóa là phải có ít nhất
(L+2) tần số cực trị
ω 0 < ω1 < ... < ω L +1

trên tập F sao cho
E(e jω k )=-E(e jω k + 1 )
HV: Trần Tấn Phúc

23

k=0,1,…,L
GVHD: Thầy Hồ Trung Myõ


CHƯƠNG 1 : Giới thiệu về bộ lọc số FIR và IIR


max E(e jω ) k=0,1,…,L+1

E(e jω k ) =

ω∈F

Như vậy định lý luân phiên phát biểu rằng bộ lọc tối ưu là bộ lọc
đồng bộ gợn. Mặc dù định lý luân phiên xác định số tối thiểu các tần số cực
trị (hay các độ gợn ) mà bộ lọc tối ưu phải có, bộ lọc này có thể có nhiều
hơn. Thí dụ, một bộ lọc thông thấp có thể có (L+2) hoặc (L+3) tần số cực trị.

Một bộ lọc thông thấp có (L+3) tần số cực trị được goiï là bộ lọc độ gợn bổ
sung .
Từ định lý luân phiên ta có được :

W(e jωk [A d (e jωk ) − A(e jωk )] = (−1k ) ∈ k = 0,1,...,1 + 1 )

Với
E(e jω )

∈= ± max
ω∈ F

là sai số có trọng số cực đại . Các phương trình này có thể được viết dưới
dạng ma trận theo các ẩn số a(0),…,a(L)và ∈ như sau:
⎡Ad (ei 0 ) ⎤


⎢Ad (ei 1 ) ⎥


= ⎢ M

⎢A (ei L ) ⎥
⎢ d

⎢⎣Ad (ei L+1 )⎥⎦
ω

⎡ 1 cos(ω Lcos(Lω ) 1 / W(e )


1 cos(ω ) L cos( Lω
−1 / W( e ))


⎢M M

M M
M



⎢ 1 cos(ωL ) Lcos(LωL ) (−1) / W(e )

⎢ 1 cos(ω ) Lcos(Lω ) (−1 ) l+1 / W(e jω )⎥


L +1
L +1
0

0

1

1

jω 0

jω1


L

L +1

⎡a(0) ⎤
⎢a(1) ⎥


⎢ M ⎥


⎢a(L)⎥
⎢⎣∈ ⎥⎦

ω

ω

ω

Với các tần số cực trị cho trước, các phương ttrình này có thể giải
được để tìm a(0),…a(L)và ∈ .
Để tìm các tần số cực trị, ta có thủ tục lặp có hiệu quả thường được
gọi là giải thuật Parks-McClellan, giải thuật này bao gồm các bước sau:
1. Giả định một tập ban đầu các tầng số cực trị
2. Tìm ∈ bằng cách giải phương trình ma trận trên . Giá trị của ∈ tìm được

L +1

∈=


∑ b(k )D(e

jω k

)

k=0

L +1

∑ (−1)

k

ω

b( k ) / W(e j k )

k =0

HV: Trần Tấn Phúc

24

GVHD: Thầy Hồ Trung Mỹ


×