Thiết kế các bộ lọc
134
ứng tần số lý tưởng. Do đó các bộ lọc này còn gọi là bộ lọc minimax. Một tính chất của các
bộ lọc này là có độ gợn sóng cân bằng, nên còn được gọi là các bộ lọc gợn sóng cân bằng
(equiripple).
Cú pháp của hai hàm nói trên hoàn toàn tương tự nhau. Chúng chỉ khác nhau về giải thuật
thực hiện. Chúng ta sẽ lần lượt tìm hiểu các cú pháp này trong từng trường hợp ứng dụng cụ
thể.
Các cấu hình cơ bản
Chế độ hoạt động cơ bản nhất của các hàm firls và firpm là thiết kế các bộ lọc FIR pha tuyến
tính loại I và II (phụ thuộc vào bậc của bộ lọc là chẵn hay lẻ) với cú pháp như sau:
>> b=firpm(N,f,a)
>> b=firls(N,f,a)
N là bậc của bộ lọc còn (f,a) là cặp vector xác định đáp ứng tần số mong muốn của bộ lọc
(giống như hàm fir1 và fir2).
Ví dụ 10-6. Thiết kế bộ lọc FIR thông thấp bậc 20 có đáp ứng tần số xấp xỉ bằng 1 trong
khoảng tần số từ 0Hz đến 0,4Hz và xấp xỉ bằng 0 trong khoảng tần số từ 0,5Hz đến 1Hz (giả
sử tần số lấy mẫu là 2Hz) bằng hai phương pháp: bình phương cực tiểu và Parks-McCllelan.
n = 20; % Bậc bộ lọc
f = [0 0.4 0.5 1]; % Các tần số ngưỡng của các dải tần
a = [1 1 0 0]; % Biên độ mong muốn
b = firpm(n,f,a); % Thiết kế bằng giải thuật Parks-McCllelan
[h1,f1] = freqz(b,1,256,2); % Tính đáp ứng tần số
bb = firls(n,f,a); % Thiết kế bằng giải thuật bình phương cực tiểu
[h2,f2] = freqz(bb,1,256,2); % Tính đáp ứng tần số
plot(f2,abs(h2),'b-',f1,abs(h1),'r--');grid % Vẽ đáp ứng biên độ
legend('Giai thuat binh phuong cuc tieu','Giai thuat Parks-McCllelan');
xlabel('Frequency (Hz)');
ylabel('Magnitude')