You are on page 1of 33

THIẾT KẾ BỘ LỌC SỐ

Chương 2 – Cấu trúc bộ lọc


Cấu trúc Lattice

Hồ Phước Tiến

Trường Đại học Bách Khoa – Đại học Đà Nẵng


Cấu trúc lattice
• Rất phổ biến trong xử lý tiếng nói
• Có thể dùng để biểu diễn bộ lọc FIR và bộ lọc IIR
• FIR: cấu trúc all-zero lattice
• IIR: cấu trúc lattice ladder
• IIR toàn cực: cấu trúc all-pole lattice

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

𝑓𝑚 𝑛 = 𝑓𝑚−1 𝑛 + 𝐾𝑚 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 1,2, . . , 𝑀 − 1

𝑔𝑚 𝑛 = 𝐾𝑚 𝑓𝑚−1 𝑛 + 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 1,2, . . , 𝑀 − 1

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

𝑔𝑚 𝑛 = 𝐾𝑚 𝑓𝑚−1 𝑛 + 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 1,2, . . , 𝑀 − 1

• 𝐾𝑚 , 𝑚 = 1,2, . . , 𝑀 − 1 là hệ số phản xạ (reflection


coefficient) và cũng là hệ số của bộ lọc lattice
• Đầu vào – đầu ra
𝑓0 𝑛 = 𝑔0 𝑛 = 𝐾0 𝑥 𝑛
𝑦 𝑛 = 𝑓𝑀−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

𝐴𝑚 𝑧 = 𝐴𝑚−1 𝑧 + 𝐾𝑚 𝑧 −1 𝐽𝑚−1 𝑧 , 𝑚 = 1,2, . . , 𝑀 − 1


𝐽𝑚 𝑧 = 𝑧 −𝑚 𝐴𝑚 𝑧 −1 , 𝑚 = 1,2, . . , 𝑀 − 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 𝑛

• Các tham số Km, m=1,2,..,M-1 là hệ số phản xạ của cấu


trúc toàn cực và được tính như trước đây
• K0 luôn bằng 1

? Thực hiện các phương trình trên như thế nào?


18
All-pole lattice
• Chú ý
𝑓𝑚−1 𝑛 = 𝑓𝑚 𝑛 − 𝐾𝑚 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 𝑁, 𝑁 − 1, … , 1
𝑔𝑚 𝑛 = 𝐾𝑚 𝑓𝑚−1 𝑛 + 𝑔𝑚−1 𝑛 − 1 , 𝑚 = 𝑁, 𝑁 − 1, … , 1

Biến n là chỉ số thời gian


Chỉ số m thể hiện số tầng
• Ví dụ 𝑓𝑚−1 𝑛 = 𝑓𝑚 𝑛 − 𝐾𝑚 𝑔𝑚−1 𝑛 − 1 : giá trị f tại thời
điểm n tại tầng (m-1) phụ thuộc vào giá trị f tại thời điểm
n ở tầng m và giá trị g tại thời điểm (n-1) ở tầng (m-1)
• Tại thời điểm n, đã biết các giá trị ở thời điểm (n-1)
• f và g khởi động với giá trị 0, f(N,:) = x (tầng N)

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

𝐵𝑚 𝑧 = 𝐵𝑚−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

You might also like