You are on page 1of 9

NGUYỄN VĂN ĐỨC - 40700577

1. Giới thiệu bộ lọc IIR


- Có đáp ứng xung vô hạn.

- Có thể mô tả bộ lọc tương tự bằng hàm hệ thống của nó:

ở đây { } và { } là các hệ số lọc.


- Ưu điểm:
+ Chi phí tính toán thấp
+ Thực hiện hiệu quả theo kiểu cascade
- Nhược điểm:
+ Có sự bất ổn định do quá trình lượng tử hóa các hệ số có thể đẩy các cực
ra ngoài vòng tròn đơn vị.
+ Không thể đạt pha tuyến tính trên toàn khoảng Nyquist
2. Thiết kế bộ lọc số IIR :
- Phương pháp thiết kế bộ lọc IIR
+ Thiết kế bộ lọc số từ các bộ lọc tương tự.
+ Thiết kế trực tiếp bộ lọc số

Phương pháp 1 ít phức tạp về toán học và được sử dụng rộng rãi hơn
phương pháp thứ 2.
Chúng ta sẽ đi sâu vào phương pháp thứ nhất :
Theo kỹ thuật này, trước tiên chúng ta thiết kế 1 bộ lọc tương tự có đáp
ứng tần số mong muốn, sau đó dùng các phương pháp gần đúng để chuyển
đổi sang bộ lọc số.

 Các phương pháp gần đúng :

 Bộ lọc tương tự :

1
NGUYỄN VĂN ĐỨC - 40700577

Ở bài tập này, chúng ta thiết kế bộ lọc IIR dùng phương pháp gần
đúng “Biến đổi song tuyến tính”

2.1 Biến đổi song tuyến tính (Bilinear transformation)


- Đó là biến đổi từ mặt phẳng s vào mặt phẳng z. Biến đổi song tuyến
tính là phép ánh xạ biến đổi trục thành đường tròn đơn vị trong
mặt phẳng z . Tất cả các điểm trong nửa trái mặt phẳng s, được ánh
xạ vào phía trong đường tròn đơn vị và tất cả các điểm cực ở nửa
phải mặt s được ánh xạ vào các điểm tương ứng ngoài đường tròn
đơn vị thuộc mặt phẳng z. Thông thường bằng việc thay s bằng giá trị
sau :

- Nhận xét :
+ Toàn bộ mặt phẳng nửa trái ánh xạ vào bên trong vòng tròn đơn vị. Đây là
phép biến đổi ổn định.
+ Trục ảo ánh xạ lên đường tròn đơn vị là ánh xạ 1-1.Do đó không có aliasing
trong miền tần số.
+ Quan hệ của ω theo Ω là phi tuyến

2
NGUYỄN VĂN ĐỨC - 40700577

2.2 Các bộ lọc tương tự


- Mạch lọc thực tế :
Mặc dù bộ lọc lý tưởng là điều chúng ta mong muốn, nhưng trong ứng dụng
thực tế không nhất thiết phải có sự chính xác tuyệt đối như vậy. Ta có thể
thực hiện các bộ lọc có đáp ứng tần số xấp xĩ với mạch lọc lý tưởng ta mong
muốn.

Do đó với 1 bài toán thiết kế cho bộ lọc thực tế ta cần đưa ra các thông số:
+ Tần số lấy mẫu (khz)
+ Tần số cắt dãi thông (khz)

+ Tần số cắt dãi chặn (khz)

+ Độ gợn dãi thông (dB)

+ Độ gợn dãi chặn (dB)


a. Bộ Lọc Butterworth
- Tính chất: Bộ lọc này được đặc trưng bởi tính chất đáp ứng biên độ là bằng
phẳng trong cả dải thông và dải chắn.Nhưng đòi hỏi bậc N cao hơn so với các bộ lọc khác
(có nhiều điểm cực hơn) để đạt cùng một chỉ tiêu dải chắn và nó có một đáp ứng pha không
tuyến tính trong dải thông.
- Đáp ứng biên độ bình phương:

Trong đó, Ωc là tần số cắt tính theo rad/s.

3
NGUYỄN VĂN ĐỨC - 40700577

Đáp ứng biên độ


• |Ha(0)|2 =1, |Ha(jΩc)|2 = 0.5, với mọi N (hệ số suy giảm 3dB ở Ωc)
• |Ha(jΩ)|2 đơn điệu giảm theo Ω
• Tiến đến bộ lọc lý tưởng khi N→∞
- Ưu điểm của thiết kế trong trường hơp bộ lọc Butterworth là thu được bậc N và tần số cắt
Ωc.

Đối với dải chắn,ta có quan hệ:

Đối với dải thông ta có quan hệ:

Kết hợp lại,ta rút ra được biểu thức tính bậc N của bộ lọc Butterworth

4
NGUYỄN VĂN ĐỨC - 40700577

b. Bộ lọc Chebyshev
Đối với bộ lọc tương tự Butterworth,đáp ứng biên độ giảm đơn điệu cả ở dải thông và
dải chắn.Chính vì vậy gần đúng Butterworth không cho ta kết quả tốt,tức là với cùng một chỉ
tiêu kĩ thuật đã cho thì bậc của bộ lọc tương tự Butterworth sẽ lớn hơn.Để giảm bậc của bộ
lọc tương tự,chúng ta sử dụng gần đúng Chebyshev (cho kết quả tốt hơn).
b1. Bộ lọc Chebyshev 1
- Tính chất: là các bộ lọc toàn cực có tính chất gợn sóng đều ở dải thông và tính
đơn điệu ở dải chặn.
- Đáp ứng biên độ bình phương:

Trong đó, ε là một tham số xác định biên độ của gợn sóng ở dải thông ; TN (x) là đa
thức Chebyshev bậc N được định nghĩa như sau:

Đa thức Chebyshev có thể được thành lập bằng phương trình đệ quy:

Trong đó T0 (x) = 0 và T1 (x) = 1


Các tính chất của đa thức Chebyshev:

5
NGUYỄN VĂN ĐỨC - 40700577

Đặc tuyến tần số của bộ lọc Chebyshev bậc 1, ε = 0.8

b2. Bộ lọc Chebyshev 2


- Tính chất: là các bộ lọc chứa cả cực và zero,có tính đơn điệu ở dải thông và tính
gợn sóng đều ở dải chặn.Các zero của bộ lọc Chebyshev loại 2 nằm trên trục ảo trong mặt
phẳng s.Đáp ứng pha tuyến tính hơn trong dải thông so với bộ lọc Chebyshev loại 1.
- Đáp ứng biên độ bình phương:

Trong đó, TN(x) là đa thức Chebyshev bậc N và Ωs là tần số giới hạn dải chặn.

6
NGUYỄN VĂN ĐỨC - 40700577

Đặc tuyến tần số của bộ lọc Chebyshev loại 2

Nhìn chung ta thấy các bộ lọc Chebyshev được đặc trưng bởi các thông số N, ε và tỉ số Ω
.Có thể xác định được bậc của bộ lọc từ biểu thức:

Nếu so sánh bộ lọc Butterworth với bộ lọc Chebyshev có cùng số cực,cùng dải thông và dải
chặn thì bộ lọc Chebyshev có dải quá độ hẹp hơn.
c. Bộ lọc Elliptic
- Tính chất:
+ Có tính gợn sóng ở cả dải thông cũng như dải chặn ; có các đặc trưng đáp ứng
biên độ tương tự như các bộ lọc FIR cân bằng gợn sóng.
+ Vì vậy các bộ lọc elliptic là các bộ lọc tối ưu trong đó đạt được bậc tối thiểu N đối
với các chỉ tiêu đã cho.
+ Vì rất khó để phân tích và thiết kế nên không thể dùng các công cụ đơn giản mà
thường phải sử dụng các chương trình hoặc bảng để thiết kế.
Bộ lọc Elliptic cho tính năng tối ưu về đáp ứng bình phương biên độ nhưng lại có
đáp ứng pha phi tuyến hơn trong dải thông.

7
NGUYỄN VĂN ĐỨC - 40700577

- Đáp ứng biên độ bình phương:

Trong đó, N là bậc; ε là gợn sóng dải thông; UN(x) là hàm Jacobian elliptic bậc N.

Đặc tuyến tần số của bộ lọc Elliptic


3. Các lệnh cơ bản dùng trong MATLAB:
- Lệnh ước lượng bậc tối thiểu cho các bộ lọc áp dụng phương pháp biến đổi
song tuyến tính :
1. [N,Wn] = buttord(Wp,Ws,Rp,Rs)
2. [N,Wn] = cheb1ord(Wp,Ws,Rp,Rs)
3. [N,Wn] = cheb2ord(Wp,Ws,Rp,Rs)
4. [N,Wn] = ellipord(Wp,Ws,Rp,Rs)
- Lệnh tìm các hệ số của hàm truyền các bộ lọc :
1. [b,a] = butter(N,Wn)
2. [b,a] = cheby1(N,Rp,Wn)
3. [b,a] = cheby2(N,Rs,Wn)
4. [b,a] = ellip(N,Rp,Rs,Wn)

8
NGUYỄN VĂN ĐỨC - 40700577

- Lệnh tìm đáp ứng hàm truyền khi đã biết các hệ số [a,b]
[h,w]=freqz(b,a,256)
- Lệnh xuất ra các hệ số SOS (Second Order Sections)
[z,p,k]=butter(n,Wn)
[s,g] = zp2sos(z,p,k)
Và các lệnh cơ bản khác : plot, set(), get(), xlabel(),ylabel(), axes(handles.axes), …

You might also like