Thiết kế các bộ lọc
138
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Tan so chuan hoa
B
ien d
o
Hình 10.8.
Thiết kế các bộ lọc FIR nhiều dải tần
Trong trường hợp này, ta dùng hàm fircls với cú pháp như sau:
>> b = fircls(n,f,a,up,lo)
trong đó n là bậc của bộ lọc, f là một vector xác định các tần số ranh giới giữa các dải tần, a
là vector xác định biên độ mong muốn trong các dải tần và up, lo lần lượt là các vector xác
định các giới hạn trên và dưới của biên độ trong các dải tần nói trên. Các giá trị tần số đều là
tần số chuẩn hoá.
Ví dụ 10-9. Thiết kế bộ lọc FIR bậc 129 với các mô tả như sau:
Dải tần từ 0 -0,3: biên độ bằng 0, giới hạn trên 0,005, giới hạn dưới -0,005.
Dải tần từ 0,3 -0,5: biên độ bằng 0,5, giới hạn trên 0,51, giới hạn dưới 0,49.
Dải tần từ 0,5 -0,7: biên độ bằng 0, giới hạn trên 0,03, giới hạn dưới -0,03.
Dải tần từ 0,7 -0,9: biên độ bằng 1, giới hạn trên 1,02, giới hạn dưới 0,98.
Dải tần từ 0,9 -1: biên độ bằng 0, giới hạn trên 0,05, giới hạn dưới -0,05.
n = 129; % Bậc bộ lọc
f = [0 0.3 0.5 0.7 0.9 1]; % Các tần số ngưỡng
a = [0 0.5 0 1 0]; % Biên độ mong muốn
up = [0.005 0.51 0.03 1.02 0.05]; % Giới hạn trên của biên độ
lo = [-0.005 0.49 -0.03 0.98 -0.05]; % Giới hạn dưới của biên độ
b = fircls(n,f,a,up,lo); % Các hệ số bộ lọc
[hh,ff] = freqz(b,1,512,2); % Vẽ đáp ứng tần số
plot(ff,abs(hh),'b-');grid
xlabel('Tan so chuan hoa');