Chương 6. Các cấutrúcbộ lọcsố
Ts.Ngô vănSỹ
Đạihọc Bách Khoa ĐàNẵng.
Giớithiệu
Trong các chương trước đãnghiêncứulýthuyếtvề
các hệ thống rờirạc trong các miềnthờigianvàtần
số.
Chương này bắt đầusử dụng các cơ sở lý thuyết đó
để xử lý các tín hiệusố.
Để xử lý các tín hiệucầnphải thiếtkế và thi hành
các hệ thống đượcgọilà các bộ lọc.
Việcthiếtkế lọc được phân chia tuỳ theo các thông
số
Loại bộ lọc: IIR hoặcFIR
Dạng thi hành bộ lọc: structures
Các cấutrúc khác nhau dẫn đếncácchiếnlược thiếtkế
Giớithiệu
Các bộ lọcIIR được đặctrưng bởi đáp ứng
xung vô hạn. Có thể đượcmôhìnhhoábằng:
Các hàm hệ thống hữutỷ.
Các phương trình sai phân
Các bộ lọc ARMA hoặc đệ qui
Các bộ lọcFIR sẽ đượckhảo sát riêng về
phương pháp thiếtkế cũng như thi hành.
Giớithiệu
Do các bộ lọclàcáchệ thống LTI , cầncó3 phầntử
cơ bảnsauđể biểudiễnchobộ lọc.
Bộ cộngr
Bộ nhân (Khuếch đại)
Bộ trễ (dịch hoặcnhớ)
x1(n)
x2(n)
x1(n)+x2(n)
x(n) ax(n)
a
x(n) x(n-1)
1/z
Các cấutrúcbộ lọc IIR
Hàm hệ thống củabộ lọc IIR đượcviết:
1;
1)(
)(
)(
0
1
1
1
10
0
0
=
+++
+++
===
−−
−−
=
−
=
−
∑
∑
a
zaza
zbzbb
za
zb
zA
zB
zH
N
N
M
M
N
n
n
n
M
n
n
n
L
L
Bậc củabộ lọc IIR là N nếu a
N
≠
0.
Phương trình sai phân biểudiễn cho bộ lọcIIR filter như sau:
∑∑
==
−−−=
M
m
N
m
mm
mnyamnxbny
01
)()()(
Ba dạng cấutrúccóthể sử dụng để thi
hành lọcIIR
Dạng trựctiếp
Trong dạng này, có hai phầncủabộ lọc, phần chuyểndịch đều (moving
average part) và phần đệ qui (recursive part) (hoặccácphần tử thức và mẫu
thức(numerator and denominator parts))
Hai phiên bản: dạng trựctiếp I và dạng trựctiếpII
Dạng ghép tầng
Hàm hệ thống H(z) đượcthừasố hoá thành các khâu lọcbậc hai , đượcgọilà
biquads. H(z) khi ấy đượcbiểudiễnlà tích của các biquads.
Mỗi biquad đượcthựchiện theo dạng trựctiếp, và toàn bộ hàm hệ thống
đượcthựchiệnnhư ghép tầng của các khâu biquad .
Dạng song song
H(z) đượcbiểudiễnbằng tổng các khâu lọc bậc hai hoặcbéhơn.
Mỗi khâu lọc đượcthựchiện theo dạng trựctiếp
Hàm hệ thống tổng quát đượcthựchiệnnhư một mạng song song của các khâu
lọc.
Cấutrúcdạng trựctiếpI
Phương trình sai phân có thể được thi hành thông qua các bộ
trễ, bộ nhân và bộ công.
Để minh hoạ, cho M=N=2, ta có phương trình và hệ thống sau:
)2()1()2()1()()(
21210
−
−
−
−
−
+
−
+
= nyanyanxbnxbnxbny
x( n) y( n)b0
b1
b2
-a1
-a2
1/ z
1/ z
1/ z
1/ z
H1 ( z ) H2 ( z )
Cấutrúcdạng trựctiếpII
x( n) y( n)
H1 ( z )
-a1
-a2
1/ z
1/ z
H2 ( z )
b0
b1
b2
1/ z
1/ z
x( n) y( n)
H( z )
-a1
-a2
1/ z
1/ z
b0
b1
b2
Direct Form II structure
Theo tiính
chấtgiao
hoán củatích
chập
Thi hành với Matlab
TrongMatlabcấutrúcdạng trựctiếp đượcmô
tả bởi các vector hàng:
b chứacáchệ số {bn} và a chứacáchệ số
{an}
Cấutrúcđược thi hành bằng hàm filter trong
chương 2.
Dạng ghép tầng
Ở dạng này hàm truyềnhệ thống H(z) được
viếtdướidạng tích of các khâu lọcbậc2với
các hệ số thực.
Điềunàyđượcthựchiệnbằng cách phân tích
thành thừasố các tử thứcvàmẫuthứctheo
các nghiệm của chúng và tổ hợpcặp nghiệm
phức liên hợp hoặchainghiệmthực bấtkỳ
thành các đathứcbậc2.
Dạng ghép tầng
Giả sử N là chẵn . Ta có
2
2,
1
1,
2
2,
1
1,
1
0
1
1
1
0
1
1
1
10
1
1
1
1
1
)(
00
1
−−
−−
=
−−
−−
−−
−−
++
++
Π=
+++
+++
=
+++
+++
=
zAzA
zBzB
b
zaza
zz
b
zaza
zbzbb
zH
kk
kk
K
k
N
N
N
b
b
b
b
N
N
N
N
N
L
L
L
L
Trong đó, K bằng N/2, và B
k,1,
B
k,2,
A
k,1,
A
k,2
là các số thực biểudiễn các
hệ số của các khâu lọcbậc2.
Khâu lọcbậc2
)()();()(
,,2,1,
1
1
)(
)(
)(
101
2
2,
1
1,
2
2,
1
1,
1
zYzYzXbzYwith
Kk
zAzA
zBzB
zY
zY
zH
K
kk
kk
k
k
k
==
=
++
++
==
+
−−
−−
+
L
Đượcgọilàhàmtruyềncủa khâu lọcbậc2 thứ f ( k-th biquad). Tín hiệuvào
của khâu lọcthứ k là tín hiệuracủa khâu lọcthứ k-1, và tín hiệuracủa khâu
lọcthứ k là tín hiệuvàocủa khâu lọcthứ k+1.Mỗi khâu lọcbậc2 cóthể được
thi hành theo cấutrúcdạng trựctiếp II.
Yk ( n) =XK+1 ( n)
Yk +1 ( n)
-Ak,1
-Ak,2
1/ z
1/ z
Bk , 1
Bk , 2
Toàn hệ thống đượcthựchiênbằng
cách ghép tầng các khâu lọcbậc2
x( n)
y( n)
-A1,1
-A1,2
1/ z
1/ z
B1, 1
B1, 2
-A2,1
-A2,2
1/ z
1/ z
B2, 1
B2, 2
b0
Cascade form structure for N=4
Thi hành bằngMatlab
Cho các hệ số {b
n
} và {a
n
} củabộ lọcdạng trựctiếp
Dùng hàm [b0,B,A] = dir2cas(b,a) để tính các hệ số b
0
, {B
k,i}
,
và {A
k,i
}.
Dạng ghép tầng đượcthựchiệnbằng hàm casfiltr
Hàm y = casfiltr(b0,B,A,x)
Hàm cas2dir chuyển đổidạng ghép tầng thành dạng trựctiếp.
Hàm [b,a] = cas2dir(b0,B,A)
Examples: 6.1
Dạng song song
Ở dạng này, hàm hệ thống H(z) đượcviếtdướidạng
tổng của các khâu lọcbậc2 bằng cách khai triển.
43421
43421
L
L
L
L
NMifonly
NM
k
k
k
K
k
kk
kk
NMifonly
NM
k
k
k
N
N
N
M
N
N
M
M
zC
zAzA
zBB
zC
zaza
zbzbb
zaza
zbzbb
zA
zB
zH
≥
−
=
−
=
−−
−
≥
−
=
−
−−
−−
−−
−−
∑∑
∑
+
++
+
=
+
+++
+++
=
+++
+++
==
01
2
2,
1
1,
1
1,0,
0
1
1
1
10
1
1
1
10
1
1
ˆˆˆ
1)(
)(
)(
K=N/2, and
B,A are real
numbers
Các khâu lọcbậc2
∑
<==
=
++
+
==
−−
−
+
NMzYzYzXzHzYwith
Kk
zAzA
zBB
zY
zY
zH
kkk
kk
kk
k
k
k
),()(),()()(
,,2,1,
1)(
)(
)(
2
2,
1
1,
1
1,0,
1
L
Là hàm truyềncủa khâu lọcthứ k.
Đầu vào là chung cho tấtcả các khâu lọc, kể cả phầnbộ lọc
FIR nếuM>=N
Đầuracủa các khâu lọc đượccộng lại thành đầuracủabộ lọc.
Mỗikhâulọccóthể được thi hành bằng dạng trựctiếpII.
Cấutrúcdạng song song
C0
B1, 0
-A1,1
-A1,2
B1, 1
B2, 0
-A2,1
-A2,2
B2, 1
x( n) y( n)
1/ z
1/ z
1/ z
1/ z
Parallel form structure for N=4 (M=N=4)
Thi hành bằng Matlab
Hàm dir2par chuyển đổicáchệ số dạng trựctiếp{b
n
} và {a
n
}
thành các hệ số dạng song song {B
k,i
} và {A
k,i
}
Các hàm đượcsử dụng:
[C,B,A] = dir2par(b,a)
I = cplxcomp(p1,p2)
y = parfiltr(C,B,A,x)
[b,a] = par2dir(C,B,A)
Examples 6.2
Cấutrúcbộ lọcFIR
Mộtbộ lọc đáp ứng xung hữuhạnvới hàm hệ thống có dạng:
∑
−
=
−−
−
−
=+++=
1
0
1
1
1
10
)(
M
n
n
n
M
M
zbzbzbbzH L
Như vậy đáp ứng xung h(n) là
⎩
⎨
⎧
−≤≤
=
else
Mnbn
nh
0
10
)(
Và phương trình sai phân là
)1()1()()(
110
+
−
+
+
−
+
=
−
Mnxbnxbnxbny
M
L
Chính là tích chậptuyến tính của các dãy hữuhạn.
Bậc củabộ lọc là M-1, trong khi chiều dài củabộ lọclàM
Cấutrúcbộ lọcFIR
Dạng trựctiếp:
Phương trình sai phân đượcthựchiệnbởimột
dãy liên tiếpcácbộ trễ do không có đường phản
hồi.
Xem hình 6.10
Do mẫuthứcbằng đơnvị nên chỉ có mộtcấutrúc
dạng trựctiếp duy nhất.
Thi hành bằng Matlab
Hàm: y = filter(b,1,x)
Cấutrúcbộ lọcFIR
Dạng ghép tầng:
Xem hình 6.11
Thi hành bằng Matlab
Hàm : dir2cas, cas2dir
⎣⎦
2/);1(
1
)(
2
2,
1
1,
1
0
1
0
1
1
0
1
0
1
1
1
10
MKzBzBb
z
b
b
z
b
b
b
zbzbbzH
kk
K
k
M
M
M
M
=++Π=
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
+++=
+++=
−−
=
−
−
−
−
−
−
L
L
Cấutrúcbộ lọcFIR
Dạng pha tuyếntuyến tính
Đốivới các bộ lọcchọntần, người ta mong muốncóđáp
ứng pha là hàm tuyếntínhtheo tầnsố. Nghĩalà
Đốivớibộ lọcFIR nhân quả có đáp ứng xung trong
khoảng [0,M-1] , thì các điềukiệntuyến tính là
2
0,,)(
π
βππαβ
±=≤<−−=∠ orwweH
jw
10,2/);1()(
10,0);1()(
−≤≤±=−−−=
−
≤
≤
=
−
−
=
MnnMhnh
MnnMhnh
πβ
β
Symmetric impulse response
vs.
antisymmetric impulse response
Dạng pha tuyến tính
Xét phương trình sai phân với đáp ứng xung
tuyến tính
Hình 6.12: M=7(lẻ) and M=6(chẵn)
Thựchiệnbằng Matlab
Cấutrúcphatuyến tính và dạng trựctiếpchỉ khác nhau ở
các hệ số nhân. Do đóviệc thi hành trên Matlab cũng
tương tự dạng trựctiếp
L
L
++−+−++−+=
+
−
+
+
−
+
+
−
+
=
)]2()1([)]1()([
)1()2()1()()(
10
0110
MnxnxbMnxnxb
MnxbMnxbnxbnxbny
Dạng lấymẫutầnsố
Trong dạng này chúng ta sử dụng sự kiệnlàhàmhệ thống
H(z) củabộ lọc FIR filter có thể được khôi phục từ các mẫu
củanótrênđường tròn đơnvị
)1,,0()(
)1,,0(
1
)(1
)(
1
0
1
−=
−=
−
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
−
=
−
−
=
−
−
−
∑
MkresiduesthearekH
MkrootstheareW
zW
kH
M
z
zH
k
M
M
k
k
M
M
L
L
Chú ý rằng bộ lọcFIR đượcmôtả bởiphương trình trên có dạng
đệ qui tương tự bộ lọc IIR bởivìnóchứacả các điểmcựcvàđiểm
không.
Dạng lấymẫutầnsố
Hàm hệ thống dẫn đếncấu trúc song song như Hình
6.15 vớiM=4.
Vấn đề đặtravớicấu trúc hình 6.15 là phảithực
hiện các phép tính số học phức.
Sử dụng tính chất đốixứng của DFT và các hệ số
(W
M
–k
) .
evenMforLoddMforL
z
MH
z
H
zHkH
M
z
zH
MM
L
k
k
M
1;
1
)2/(
1
)0(
)(|)(|2
1
)(
22
1
1
11
−==
⎭
⎬
⎫
⎩
⎨
⎧
−
+
−
+
−
=
−
=
−−
−
∑