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

Các cấu trúc bộ lọc số

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 (376.4 KB, 40 trang )

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
−==







+

+

=

=
−−



×