Để thiết kế mạch lọc FIR bán dải, trong hộp công cụ MATLAB còn có các hàm sau đây:
b = firhaỉfbandịN ^p) b = firhaìfbandịN ,win) b = firhaỊfband(N ,dev,'dev')
b = firlialfband('mỉnorder\fp,dev)
h = firhaìfbandCminorder'Jp,dev,'kaiser') b = firhalfbancl( ...,'liigh')
b = fỉrhalfband(..., 'minphase')
Phiên bản b = /irhal/bandịn/p) thiết kế mạch lọc FIR thông thấp bậc N có đặc tính đồng mấp mô ở trong dải chặn. N phải là số nguyên chẵn.
fp xác định tần sô' ở mép dải thông và phải thoả mãn điều kiện 0 < fp < 1/2, ở đây 1/2 tương ứng với rad/mẫu.
178
Phiên bản b = firìỉaỉfband{n,win) thiết kế inạch lọc thông thấp bậc có đáp ứng xung bị cất nhờ hàm cửa sổ. win là một vcctơ có chiều dài n+1.
Phiên bản b - firlìalfbandịn,dev,'cỉev'} thiết kế mạch lọc thông thấp bậc N đồng mấp mô trong dải chặn Thông số dev cho phép đặt giá trị của dải thông cực đại và cho phép mấp mô trong dải chặn.
b - fỉrhalfband('minonier'J'p,dev) thiết kế mạch lọc thông thấp có bậc cực tiểu và tần số ở mép dải thông là fp. Độ mấp mô lớn nhất được giới hạn bởi vô hướng dev.
b = firhalJband(’minorder'fp,dev,'kaiser') thiết kế mạch lọc thông thấp bậc cực tiểu với tần số ở mép dải thông là fp. Độ mấp mô cực đại được giới hạn bởi thông sô' dev. Mạch lọc này được thiết kế dùng cửa sổ Kaiser.
b - fìrhalfband(...,'high') thiết kế mạch lọc FIR bán dải thông cao.
b = firhalfbancl(...,'minphase') thiết kế mạch lọc FIR pha cực tiểu. Đây cũng là một dạng của mạch lọc bán dải (nên nhớ rằng h = conv(b,fliplr(b)) là một mạch lọc bán dải ). Điều này rất tiện ích cho việc thiết kế các dàn lọc khôi phục tín hiệu hoàn hảo hai kênh.
Ví dụ thiết kế mạch lọc FIR bán dải có bậc cực tiểu và có độ mấp mô cực đại, ta dùng lệnh.
% chương trình 9-6
%Đáp ứng xung của mạch lọc FỈR bán dải bậc cực tiểu b = firhalfband('minorder',.45,0.0001);
h = dfilt.dfsymfir(b);
impz(b)
Title('Đáp ứng xung đơn vị') xlabelCSố mẫu');
ylabel('Biên độ')
Đáp ứng xung của mạch lọc vừa thiết kế này cho trên hình 9.6.
Dap ung xung don vi
Hình 9.6. Đáp ứng xung đơn vị của mạch lọc FIR bán dải của chương trình 9-6.
Chưcíng trình P9-7 sau đây sẽ thiết kế mạch lọc FIR bán dải với độ mấp mô trong dải thông và dải chặn cực đại bằng 0,0001 dB.
% Chương trình 9-7
% Thiết k ế mạch lọc FIR bán dải độ mấp mô cực đại b = firhalfband(98,0.0001,'dev’);
h = mfilt.firdecim(2,b); %Tạo ra hộ giảm tốc độ mẩu đa pha
freqz(h); % Độ siiy giảm trong dải chặn bâng 80 dB Title('Dap ung bien do va pha');
xlabel(\omegaApi so');ylabel('Bien do,dB')
Hình 9.7 cho thấy đáp ứng biên độ và pha của mạch lọc vừa thiết kế.
180
20 -16
-68
-124
-160
\
\
\
Dap ung bien do va pha
\
\
\ , ...
\
J______ L J ______ ^______ i___
Ịịịvm ị
nN
0 0.1 0.2 0 3 0.4 0.5 0 6 Ữ.7 0.3 0,9
Cử/ti,ta n so
•1000
-2000 ịỊ Ò3
0) -3000 I
Q.
-40ŨŨ
-5000
H ình 9.7. Đáp ứng biên độ và pha của mạch lọc FIR bán dải được thiết kế theo chương trình 9-7.
TH Í NGH IỆM 10
T H IẾ T K Ế VÀ MÔ PHỎNG CÁC M ẠCH LỌC NYQUIST 10.1. MẠCH LỌC NYQUIST
Mạch lọc Nyquist hay còn gọi là mạch lọc FIR bán dải (half-band) có đáp ứng tần số dạng:
l, 0 < 0)< cOp
0, 71 - ( O p < (ủ < 7Ĩ (10.1)
ở đây dải chuyển tiếp không được phân định vì nó là dải không ảnh hưởng nhiều đến tính chất của mạch lọc. Đáp ứng biên độ của mạch lọc bán dải cho trên hình 10.1.
Các mạch lọc bán dải bậc lẻ dùng để giảm hoặc tăng tốc độ lấy mẫu bởi hệ số 2. Như thấy trong hình vẽ, đáp ứng tần số có đối xứng lẻ xung quanh tần số 7t/4.
Hình 10.1. Đáp ứng biên độ của mạch lọc bán dải, Các mạch lọc bán dải có tính chất như sau:
1. Độ mấp mô đồng đều trong dải thông và dải chặn :
ô = ôs = ôp (10.2)
182
2. Tần số cắt cho bởi:
0:)S = 7I-C0p (10.3)
3. Dải quá độ được xác định bởi:
Aco = 7 i - 2 o j p ( 1 0 .4 )
4. Giá trị của đáp ứng xung tại n = 0 là 0,5; Có nghĩa là h[0] = 0,5.
5. Đáp ứng biên độ phản đối xứng xưng quanh tần số Cừ = 7ĩ/2. Có nghĩa ià
H (t:/ 2 + ® ) = 1- H(7t/2 - co) ( 1 0 .5 )
N h ư vậy tại 0) = tt/2 thu được:
H(e^“) = = 0,5 (10.6)
Chương trình MATLAB P10_l sau đây dùng để thiết kế mạch lọc FIR Nyquist dải thứ L. Chương trình cũng so sánh các mạch lọc được thiết kế PIRNYQƯIST với mạch lọc cosin tăng PIRRCOS. Cả hai mạch lọc thông thấp này đều được sử dụng rộng rãi trong việc tạo dạng xung cho các hệ thống truyền dẫn số cũng như trong các hệ thống tăng và giảm tốc độ mẫu của dàn lọc.
% Chương trinh p.10.1
N = 56; % Bậc của mạch lọc R = 0.5; % hệ số cuốn
b = firnyquist(N,4,R,0,'non');
h = firrcos(N,0.25,R,2,'rolloff):
hFig = fvtool(b,l,h,l);
HAx = findall(hFig,Type','Axes');
legend(HAx,’FIRNYQUIST de.sign','FIRRCOS design',:^):
Hlnh 10.2 là đáp ứng biên độ của các mạch lọc thu được từ chưcíng trình này.
M a g n i t u d e R e s p o n s e in d B
Hình 10.2. Đáp ứng biên độ của mạch lọc FIR Nyquist và PIRRCOS.
Để có độ suy giảm tương tự như nhau thì thiết kế cosin tăng cần phải tãng bậc của mạch lọc đến giá trị 1400.
Bây giờ so sánh đáp ứng xung.
Lưu ý rằng đáp ứng xung bằng không cứ sau 4 mẫu (ngoại trừ mẫu ở giữa). Mạch lọc Nyquist cũng chính là mạch lọc dải thứ L bởi vì tần số cắt là Pi/L và đáp ứng xung bằng không cứ sau mẫu thứ L. Trong trường hợp này ta có mach loc dải thứ 4.
% Chương trình P.I0.2 N = 38;R = 0.5;
b = fimyquist(N,4,R,0,'non');
h = firrcos(N,0.25,R,2;rolloff);
stem([b(:),h(:)]);
legend('FIRN YQUIST','FIRRCOS');
title('Impulse response, Order=38, Rolloff = 0.5');
Đáp ứng xung thu được vẽ trên hình 10.3.
184
Ũ.3
0.25
0.2
0.15
0.1
0.Ũ5
Dap ung xung, Bac=38, tha so cuon = 0.5
0 00008®
o PlRNYQUiST PIRRCOS
Q
f?
0
0
. . 0 0 O G O O O
s
-0.05
è s ĩ
10 15 20 25 30 35 4Ũ
H ình 10.3. Đáp ứng xung của mạch lọc FIR Nyquist và PIRRcos bậc 38.