Thiết kế các bộ lọc
125
xlabel('Frequency (Hz)');
title('Dap ung bien do');
Kết quả như sau:
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
10
-14
10
-12
10
-10
10
-8
10
-6
10
-4
10
-2
10
0
Frequency (Hz)
Dap ung bien do
Hình 10.5.
Các hàm thiết kế bộ lọc IIR hoàn chỉnh
Để thuận tiện cho người sử dụng khi thực hiện quá trình thiết kế các nộ lọc IIR cổ điển,
MATLAB cũng cung cấp các hàm thiết kế hoàn chỉnh các bộ lọc IIR thay vì phải thực hiện
từng bước quy trình thiết kế như ở phần trên. Các hàm này tích hợp các quy trình đã đề cập
trên đây lại, trong đó ở bước thứ ba của quá trình, tức là bước rời rạc hoá các bộ lọc tương tự,
các hàm này đều sử dụng phương pháp biến đổi song tuyến tính.
Bộ lọc Butterworth: dùng hàm butter:
>> [b,a] = butter(n,Wn,form)
>> [z,p,k] = butter(n,Wn,form)
>> [A,B,C,D] = butter(n,Wn,form)
trong đó:
Wn là vector gồm 2 phần tử xác định các tần số cắt (với các bộ lọc thông thấp, thông cao, Wn
trở thành một vô hướng). Wn được chuẩn hoá theo ½ tần số lấy mẫu.
form là một chuỗi xác định dạng bộ lọc: ‘low’ (bộ lọc thông thấp), ‘high’ (thông cao),
‘stop’ (chắn dải). Nếu Wn có hai phần tử và không có thông số form, hàm sẽ tạo ra bộ lọc
thông dải.
Để tạo các bộ lọc tương tự, ta thêm vào chuỗi ‘s’ vào danh sách các thông số.
MATLAB cũng cung cấp hàm buttord để ước lượng bậc bộ lọc tối thiểu thoả mãn các yêu
cầu thiết kế.
>> [N, Wn] = buttord(Wp, Ws, Rp, Rs)