Ba dạng cấu trúc có thể sử dụng để thi hành lọc IIR Dạng trực tiếp Trong dạng này, có hai phần của bộ lọc, phần chuyển dịch đều moving average part và phần đệ qui recursive part hoặc
Trang 1Chương 6 Các cấu trúc bộ lọc số
Ts.Ngô văn SỹĐại học Bách Khoa Đà Nẵng
ngvnsy@yahoo.com
Trang 2Giới thiệu
các hệ thống rời rạc trong các miền thời gian và tần số.
Trang 3Giới thiệu
Các bộ lọc IIR được đặc trưng bởi đáp ứng
Các phương trình sai phân
Các bộ lọc FIR sẽ được khảo sát riêng về
phương pháp thiết kế cũng như thi hành.
Trang 5Các cấu trúc bộ lọc IIR
Hàm hệ thống của bộ lọc IIR được viết :
1
;1
)(
)
()
1
1 1 0
0
++
+
++
a z
a
z b z
b b
z a
z b z
A
z
B z
N
M M
N n
n n
M n
n n
LL
Bậc của bộ lọc IIR là N nếu a N ≠ 0
Phương trình sai phân biểu diễn cho bộ lọcIIR filter như sau:
n
y
)(
)(
)(
Trang 6Ba dạng cấu trúc có thể sử dụng để thi hành lọc IIR
Dạng trực tiếp
Trong dạng này, có hai phần của bộ lọc, phần chuyển dịch đều (moving
average part) và phần đệ qui (recursive part) (hoặc các phần tử thức và mẫu thức(numerator and denominator parts))
Hai phiên bản: dạng trực tiếp I và dạng trực tiếp II
Dạng ghép tầng
Hàm hệ thống H(z) được thừa số hoá thành các khâu lọc bậc hai , được gọi là
biquads H(z) khi ấy được biểu diễn là tích của các biquads.
Mỗi biquad được thực hiện theo dạng trực tiếp, và toàn bộ hàm hệ thống
được thực hiện như ghép tầng của các khâu biquad
Dạng song song
H(z) được biểu diễn bằng tổng các khâu lọc bậc hai hoặc bé hơn.
Mỗi khâu lọc được thực hiện theo dạng trực tiếp
Hàm hệ thống tổng quát được thực hiện như một mạng song song của các khâu lọc.
Trang 7)2(
)1(
)()
(n = b0x n + b1x n − + b2x n − − a1y n − − a2y n −
y
b1 b2
- a1
- a2
1/ z 1/ z
1/ z 1/ z
Trang 81/ z 1/ z
b0 b1 b2
Direct Form II structure
Theo tiính
chất giao
hoán của tích
chập
Trang 9Thi hành với Matlab
Trong Matlab cấu trúc dạng trực tiếp được mô
Trang 10Dạng ghép tầng
Ở dạng này hàm truyền hệ thống H(z) được viết dưới dạng tích of các khâu lọc bậc 2 với các hệ số thực
Điều này được thực hiện bằng cách phân tích
thành các đa thức bậc 2.
Trang 11Dạ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 1 0
1111
1
)(
0 0
+
+Π
=
++
+
++
+
=
++
+
++
+
=
z A z
A
z B z
B b
z a z
a
z
z b
z a z
a
z b z
b
b z
H
k k
k k
K k
N N
N b
b b
b
N N
N N
N
LL
LL
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ểu diễn các
hệ số của các khâu lọc bậc 2
Trang 12Khâu lọc bậc 2
)()
();
()
(
,,2,1
,1
1)
(
)
()
(
1 0
1
2 2 ,
1 1 ,
2 2 ,
1 1 , 1
z Y z
Y z
X b z
Y with
K
k z
A z
A
z B z
B z
Y
z
Y z
H
K
k k
k k
k
k k
=
=
=+
L
Được gọi là hàm truyền của khâu lọc bậc 2 thứ f ( k-th biquad) Tín hiệu vào của khâu lọc thứ k là tín hiệu ra của khâu lọc thứ k-1, và tín hiệu ra của khâu lọc thứ k là tín hiệu vào của khâu lọc thứ k+1.Mỗi khâu lọc bậc 2 có thể được thi hành theo cấu trúc dạng trực tiếp II.
- Ak, 1
- Ak, 2
1/ z 1/ z
Bk, 1
Bk, 2
Trang 13Toàn hệ thống được thực hiên bằng cách ghép tầng các khâu lọc bậc 2
- 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
Trang 14Thi hành bằngMatlab
Cho các hệ số {bn} và {an} của bộ lọc dạng trực tiếp
Dùng hàm [b0,B,A] = dir2cas(b,a) để tính các hệ số b0, {B k,i},
và {A k,i}
Dạng ghép tầng được thực hiện bằng hàm casfiltr
Hàm y = casfiltr(b0,B,A,x)
Hàm cas2dir chuyển đổi dạng ghép tầng thành dạng trực tiếp
Hàm [b,a] = cas2dir(b0,B,A)
Examples: 6.1
Trang 15Dạng song song
tổng của các khâu lọc bậc 2 bằng cách khai triển
43421
43421L
L
LL
N M if only
N M
k
k k
K
k k
N M if only
N M
k
k k N
N
N M
N N
M M
z
C z
A z
A
z B B
z
C z
a z
a
z b z
b b
z a z
a
z b z
b
b z
A
z
B z
+
+
=
++
++
++
+
=
++
+
++
,
0
1 1
1 1 0
1 1
1 1 0
1
1
ˆˆ
ˆ
1)
(
)
()
(
K=N/2, andB,A are real numbers
Trang 16N M
z Y z
Y z
X z H z
Y with
K
k z
A z
A
z B
B z
Y
z
Y z
H
k k
k
k k
k k
k
k k
), ( )
( ), ( ) ( )
(
, , 2 , 1
, 1
) (
)
( )
2 ,
1 1 ,
1 1 , 0
, 1
L
Là hàm truyền của khâu lọc thứ k
Đầu vào là chung cho tất cả các khâu lọc, kể cả phần bộ lọcFIR nếu M>=N
Đầu ra của các khâu lọc được cộng lại thành đầu ra của bộ lọc.Mỗi khâu lọc có thể được thi hành bằng dạng trực tiếp II
Trang 17Cấu trúc dạng song song
1/ z 1/ z
Parallel form structure for N=4 (M=N=4)
Trang 18Thi hành bằng Matlab
Hàm dir2par chuyển đổi các hệ số dạng trực tiếp {b n } và {a n}
thành các hệ số dạng song song {B k,i } và {A k,i}
Trang 191 1 0
)
n
n n
M
b z
b b
bn n
h
0
1
0 )
(
Và phương trình sai phân là
) 1 (
) 1 (
) ( )
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
Trang 20Cấu trúc bộ lọc FIR
Dạng trực tiếp:
dãy liên tiếp các bộ trễ do không có đường phản hồi.
Trang 21) (
2 2 ,
1 1 , 1
0
1 0
1 1
0
1 0
1 1
1 1 0
M K
z B z
B b
z b
b z
b
b b
z b
z b b
z H
k k
K
k
M M
M M
= +
+ Π
+
=
+ +
Trang 22Cấu trúc bộ lọc FIR
Đố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à
Đố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à
2
0 ,
, )
( = β − α − π < ≤ π β = ± π
1 0
, 2 / );
1 (
) (
1 0
, 0 );
1 (
n M
h n
h
M n
n M
h n
h
π β
β
Symmetric impulse response vs antisymmetric impulse response
Trang 23− +
− +
+
− +
=
+
− +
+
− +
+
− +
=
)]
2 (
) 1 (
[ )]
1 (
) ( [
) 1 (
) 2 (
) 1 (
) ( )
(
1 0
0 1
1 0
M n
x n
x b M
n x n
x b
M n
x b M
n x b n
x b n
x b n
y
Trang 24Dạng lấy mẫu tần số
Trong dạng này chúng ta sử dụng sự kiện là hàm hệ thống
H(z) của bộ lọc FIR filter có thể được khôi phục từ các mẫucủa nó trên đường tròn đơn vị
) 1 ,
, 0 (
) (
) 1 ,
, 0 (
1
) (
1 )
residues the
are k
H
M k
roots the
are W
z W
k
H M
z z
H
k M
M
M
L L
Chú ý rằng bộ lọc FIR được mô tả bởi phương trình trên có dạng
đệ qui tương tự bộ lọc IIR bởi vì nó chứa cả các điểm cực và điểmkhông
Trang 25for L
odd M
for L
z
M
H z
H z
H k
H M
z z
H
M M
(1
)0
()
(
|)(
|2
1)
Trang 261
* 1
*
1 1
) /
2 cos(
2 1
) /
2 cos(
1 1
) (
k z
M k
H z
H H
z p
H z
p
H z
H
k
k k
k
k k
π
πFigure 6.16
Trang 27Các hàm MATLAB và ví dụ
Vấn đề thực tế: không ổn định, để tránh vấn
đề này cần lấy mẫu H(z) trên đường tròn |z|=r.
Ex6.6 tìm dạng lấy mẫu tần số
Ex6.7 Trong ví dụ này, dạng lấy mẫu tần số
có độ phức tạp tính toán bé hơn dạng trực
tiếp.
Trang 28 All-zeros lattice là biểu diễn lọc FIR của bộ lọc lattice.
Bộ lattice ladder là thể hiện bộ lọcIIR
Trang 29Các bộ lọc All-zero Lattice
Một bộ lọc FIR có chiều dài M (hoặc bậc M-1) có
cấu trúc lattice với M-1 tầng.
K2 K2
KM KM
1 ,
, 2 , 1 ),
( )
( )
(
1 ,
, 2 , 1 ),
( )
( )
(
1 1
1 1
−
= +
=
−
= +
n g
n f
K n
g
M m
n g
K n
f n
f
m m
m m
m m m
m
L L
Km: reflection coefficients
Trang 30All-zero lattice filters
m
M m
m m
m
b
b b
z b z
H
If the FIR filter is given by the direct form
And if we denote the polynomial
1 ,
, 1 ,
) (
; )
( 1
)
(
0 1
z m z
M M
m
m M
Then the lattice filter coefficients {Km} can be obtained by the following recursive algorithm
Trang 311 , ,
2 );
(
1 , ,
1
; 1
) ( )
( )
(
1 , ,
1 );
1 (
) (
) 1 (
2 1
1 1
0 0
L
L L
m K
M
m K
z J
K z
A z
A
M m
z A
z z
J
M K
b K
m m
m
m m
m m
m
m m
M M
α α
Chú ý rằng thuật toán trên sai nếu |Km|=1 với m bất kỳ Rõ ràng điều kiện này xảy ra khi bộ lọc FIR có pha tuyến tính
Vì vậy bộ lọc FIR có pha tuyến tính không thể sử dụng cấu trúc lattice.
Trang 33Bộ lọc All-pole Lattice
Cấu trúc lattice đối với lọc IIR bắt buộc là một hệ thống pole
all- Có thể được phát triển từ một cấu trúc FIR lattice
Bộ lọc IIR có bậc N có một cấu trúc lattice với N tầng như
1)
(1
1)
(
1
z A z
m a
z
H
N N
m
m N
=+
=
∑
=
−
Trang 34K2
K1 gN-1(n)
f1(n)
1/z
) ( )
( )
(
1 , ,
1 ,
), 1 (
) ( )
(
, 1 ,
), 1 (
) ( )
(
) ( )
(
0 0
1 1
1 1
n g
n f
n y
N N m
n g
n f
K n
g
N N m
n g
K n
f n
f
n x n
f
m m
m m
m m m
m N
Trang 35Thi hành Matlab
Function [K] = dir2latc(a)
Cẩn thận khi hệ số K0 trong mảng K bị bỏ qua.
Function [a] = latc2dir(K)
Trang 36Các bộ lọc Lattice ladder
Bộ lọc IIR nói chung có cả các điểm cực và điểm không cóthể được thực thi bằng cấu trúc kiểu-lattice bằng cách sửdụng all-pole lattice như các khối cơ bản
Xét một bộ lọc IIR với hàm truyền hệ thống
Trong đó, không mất đi tính tổng quát, ta giả thiết rằng
N>=M
) (
) ( )
( 1
)
( )
(
0
0
z A
z B z
k a
z k
b z
H
N
M N
k
k N
M k
k M
= +
Trang 38C n
y
0
)()
(
{Cm} được gọi là các hệ số ladder xác định các điểm khôngcủa hàm truyền hệ thống H(z)
0,,1,
);
(
,,2,0);
()
()
(
)()
(
1
1 0
=
=+
m i
C b
C
M m
z J
C z
B z
B
z J
C n
B
i
M m
m m
m m m
Trang 39Thi hành Matlab
Hàm [K,C] = dir2ladr(b,a)
Để sử dụng hàm này, N>=M Nếu M>N, thì tử
thức AN(z) được chia cho mẫu thức BM(z) sử
thức Phần hữu tỷ có thể được thực hiện theo cấu
trúc lattice-ladder , còn phần đa thức được thực
hiện theo cấu trúc dạng trực tiếp.
Hàm [b,a] ladr2dir(K,C)
Hàm [y] = ladrfilt(K,C,x)