Professional Documents
Culture Documents
Hồ Phước Tiến
2
Nội dung chính
• Cấu trúc all-zero lattice
• Cấu trúc all-pole lattice
• Cấu trúc lattice ladder
• Vấn đề về độ chính xác hữu hạn
3
All-zero lattice
• Bộ lọc FIR bậc M-1 (chiều dài M) có cấu trúc lattice với
M-1 tầng
4
All-zero lattice
• Bộ lọc FIR bậc M-1 (chiều dài M) có cấu trúc lattice với
M-1 tầng
𝑓𝑚 𝑛 = 𝑓𝑚−1 𝑛 + 𝐾𝑚 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 1,2, . . , 𝑀 − 1
5
All-zero lattice
• Nếu bộ lọc FIR được cho dưới dạng trực tiếp
𝑀−1 𝑀−1
−𝑚
𝑏𝑚 −𝑚
𝐻 𝑧 = 𝑏𝑚 𝑧 = 𝑏0 1 + 𝑧
𝑏0
𝑚=0 𝑚=1
Đặt
𝑀−1
𝑏𝑚
𝐴𝑀−1 𝑧 = 1 + 𝛼𝑀−1 (𝑚)𝑧 −𝑚 ; 𝛼𝑀−1 𝑚 = ,𝑚
𝑏0
𝑚=1
= 1, . . , 𝑀 − 1
6
All-zero lattice
• Các hệ số 𝐾𝑚 được tìm như sau
𝐾0 = 𝑏0
𝐾𝑀−1 = 𝛼𝑀−1 𝑀 − 1
𝐽𝑚 𝑧 = 𝑧 −𝑚 𝐴𝑚 𝑧 −1 ; 𝑚 = 𝑀 − 1, . . , 1
𝐴𝑚 𝑧 − 𝐾𝑚 𝐽𝑚 (𝑧)
𝐴𝑚−1 𝑧 = 2 ; 𝑚 = 𝑀 − 1, . . , 1
1 − 𝐾𝑚
𝐾𝑚 = 𝛼𝑚 𝑚 ; 𝑚 = 𝑀 − 2, . . , 1
7
All-zero lattice
• Giải thuật trên không thực hiện được nếu 𝐾𝑚 = 1 với
một trong những giá trị m=M-1,..,1.
• Với bộ lọc FIR có pha tuyến tính
𝑏𝑀−1
𝑏0 = 𝑏𝑀−1 → 𝐾𝑀−1 = 𝛼𝑀−1 (𝑀 − 1) = =1
𝑏0
• Tức là, bộ lọc FIR có pha tuyến tính không thực hiện
được với cấu trúc lattice
8
All-zero lattice
• Từ dạng lattice với các hệ số 𝐾𝑚 ta tìm dạng trực tiếp
với các hệ số 𝑏𝑚 như sau
𝐴0 𝑧 = 𝐽0 𝑧 = 1
𝑏𝑚 = 𝐾0 𝛼𝑀−1 𝑚 , 𝑚 = 0,1, . . , 𝑀 − 1
9
All-zero lattice
Matlab
• Hàm [K] = dir2latc(b): tìm các hệ số 𝐾𝑚 từ các hệ số
𝑏𝑚 của cấu trúc trực tiếp
• Hàm [b] = latc2dir(K) : chuyển từ dạng lattice về trực tiếp
• Hàm [y] = latcfilt(K,x): lọc tín hiệu với bộ lọc lattice
10
All-zero lattice
Matlab
11
All-zero lattice
Matlab
12
All-zero lattice
Matlab
13
All-zero lattice
Ví dụ
14
All-zero lattice
Ví dụ
15
All-pole lattice
• Bộ lọc toàn cực (all-pole filter) có thể được thực hiện với
cấu trúc lattice
• Hàm hệ thống
1
𝐻 𝑧 =
1+ 𝑁 𝑚=1 𝑎𝑁 (𝑚)𝑧
−𝑚
Ta có
1
𝐻 𝑧 =
𝐴𝑁 (𝑧)
• Hệ thống này là hệ thống nghịch đảo của bộ lọc FIR (bỏ
qua b0)
16
All-pole lattice
• Bộ lọc IIR toàn cực bậc N có cấu trúc lattice như sau
17
All-pole lattice
• Quan hệ vào-ra tại mỗi tầng
𝑓𝑁 𝑛 = 𝑥(𝑛)
𝑓𝑚−1 𝑛 = 𝑓𝑚 𝑛 − 𝐾𝑚 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 𝑁, 𝑁 − 1, … , 1
𝑔𝑚 𝑛 = 𝐾𝑚 𝑓𝑚−1 𝑛 + 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 𝑁, 𝑁 − 1, … , 1
𝑦 𝑛 = 𝑓0 𝑛 = 𝑔0 𝑛
19
All-pole lattice
Matlab
• Hàm dir2latc tìm các hệ số của cấu trúc IIR lattice, bỏ
qua hệ số K0.
• Hàm latc2dir để chuyển các hệ số Km dạng lattice về
dạng trực tiếp aN(m) với K0 = 1 (phần tử đầu tiên của
vector K).
20
All-pole lattice
Ví dụ
21
All-pole lattice
Ví dụ
22
Lattice-ladder
• Bộ lọc IIR tổng quát chứa cả điểm zero và điểm cực
𝑀 −𝑘
𝑏
𝑘=0 𝑀 (𝑘)𝑧 𝐵𝑀 (𝑧)
𝐻 𝑧 = 𝑁 −𝑘
=
1 + 𝑘=1 𝑎𝑁 (𝑘)𝑧 𝐴𝑁 (𝑧)
• Cấu trúc lattice của bộ lọc IIR tổng quát được thực hiện
dựa trên cấu trúc all-pole lattice
• Bước 1: xác định cấu trúc all-pole lattice 𝐾𝑚 , 1 ≤ 𝑚 ≤
𝑁 ứng với mẫu số
• Bước 2: tìm bộ ladder 𝐶𝑚 để tính đầu ra theo tổng có
trọng số của 𝑔𝑚 (𝑛) . Giả sử M=N
𝑀
𝑦 𝑛 = 𝐶𝑚 𝑔𝑚 (𝑛)
𝑚=0
23
Lattice-ladder
𝑀
𝑦 𝑛 = 𝐶𝑚 𝑔𝑚 (𝑛)
𝑚=0
24
Lattice-ladder
• 𝐶𝑚 là các hệ số ladder
• Ta có mối quan hệ
𝑀
𝐵𝑀 𝑧 = 𝐶𝑚 𝐽𝑚 (𝑧)
𝑚=0
Và
𝐵𝑚 𝑧 = 𝐵𝑚−1 𝑧 + 𝐶𝑚 𝐽𝑚 𝑧 ; 𝑚 = 1,2, … , 𝑀
Hay
𝑀
𝐶𝑚 = 𝑏𝑚 + 𝐶𝑖 𝛼𝑖 (𝑖 − 𝑚) ; 𝑚 = 𝑀, 𝑀 − 1, . . , 0
𝑖=𝑚+1
25
Lattice-ladder
Matlab
• Hàm [K,C] = dir2ladr(b,a) thực hiện chuyển từ dạng trực
tiếp sang dạng lattice đối với bộ lọc IIR tổng quát.
• Khi dùng với bộ lọc IIR toàn cực, ta chỉ cần cho b = 1
• Khi N < M, ta chia tử số cho mẫu số để thu được dạng
phân số (dùng cấu trúc lattice-ladder) cộng với một đa
thức (dùng dạng trực tiếp)
• Hàm [b,a] = ladr2dir(K,C) chuyển dạng lattice-ladder
thành dạng trực tiếp
• Hàm [y] = ladrfilt(K,C,x) dùng để lọc một tín hiệu với bộ
lọc IIR có cấu trúc lattice-ladder
26
Lattice-ladder
Matlab
27
Lattice-ladder
Matlab
28
Lattice-ladder
Matlab
29
Lattice-ladder
Ví dụ
30
Lattice-ladder
Ví dụ
31
Độ chính xác hữu hạn
• Khi hệ thống rời rạc được thực hiện trên phần cứng hay
phần mềm, tất cả các tham số và các phép toán đều
được biểu diễn với độ chính xác hữu hạn
• Ba yếu tố ảnh hưởng đến kết quả cuối cùng:
– Các hệ số bộ lọc 𝑎𝑘 , 𝑏𝑘 được lượng tử hóa
– Đầu vào x(n) được lượng tử hóa
– Các phép toán bên trong hệ thống được biểu diễn ở
dạng tốt nhất có thể
• Bộ lọc H(z) biến thành 𝐻 (𝑧)
• Mong muốn 𝐻 (𝑧) gần với H(z) nhất có thể
32
Độ chính xác hữu hạn
33