You are on page 1of 8

D Thnh Nam - robotdengmail.

com
1
Thit k b lc FIR su dng chuong trnh Matlab
D Thnh Nam - Lp TKCTHTDKTL - K41
Hc Vin K Thut Qun S
Email: robotdengmail.com
Hin nay, co mt vai cng cu dung d thit k cac b loc, nhung ph bin
nht la phn mm Matlab. Trong Matlab, ta co th su dung ca: SPTool,
FDATool, hoc la cac ham cua Matlab d thit k b loc.
Cch 1: Su dng hm trong Matlab d thit k b lc FIR
Ham fir1(A,W
n
,window)
>> b fir1(N,W
n
,window);
b - la vecto dong, no chua (N1) h s cua b loc FIR thng thp
pha tuyn tinh bc N voi tn s ct Wn, h s cua b loc duoc sp xp
theo thu tu nhu trong phuong trinh duoi dy:
M n x b n x b n x b n v
M
. ... 1 . .
1 0
W
n
- la tn s ct chun hoa (chun hoa voi a) va la mt s nm
trong khoang (0,1). Nu tn s ct W
n
, la mt vecto 2 thanh phn
W
n
w
1
w
2
], thi tro thanh mt b loc voi bng thng: w
1
< w < w
2
.
N - la bc cua b loc
Window - la mt vecto ct chua (N1) thanh phn d duoc chi r
boi ham cua s w(n). Nu khng co cua s nao duoc chi ra, fir1 dung
cua s Hamming.
Cac b loc thng cao, bng thng va bng chn duoc thit k bng
vic thm chui 'high" va "stop" vao trong lnh nhu sau:
>> b fir1(N,W
n
,`high`,window);
>> b fir1(N,W
n
,`stop`,window);
Tuong tu, ta co mt s ham: fir2(A,f,H,window), freqz(B,A,..),
filter(B,A,X), firpm(A,F,A),. D bit them thng tin v cac ham nay,
trong cua s lnh cua Matlab, vi du, ta g lnh sau:
>> help firpm
FIRPM Parks-McClellan optimal equiripple FIR Iilter design.
BFIRPM(A,F,A) returns a length N1 linear phase (real, symmetric
coeIIicients) FIR Iilter which has the best approximation to the desired
Irequency response described by F and A in the minimax sense. F is a
vector oI Irequency band edges in pairs, in ascending order between 0 and 1.
1 corresponds to the Nyquist Irequency or halI the sampling Irequency. A is
D Thnh Nam - robotdengmail.com
2
a real vector the same size as F which speciIies the desired amplitude oI the
Irequency response oI the resultant Iilter B. ...
V d 1:
Thit k b loc FIR su dung ham: fir1(A,W
n
,window)
Thit k b loc FIR bng thng giua tn s 1.6 ( 0.4*(Fs/2)) KHz
va 2.4 ( 0.6*(Fs/2)) KHz, tai tn s ly mu Fs 8 KHz, su dung d
loc tin hiu.
tao tin hiu t hop
>> Fs=8e3; tn s ly mu Fs=8000 (Hz)
>> Ts=1/Fs; chu ky ly mu
>> Ns=512; s mu duoc biu din trn d
thi
>> t=[0:Ts:Ts*(Ns-1)]; tao mt mang thi
gian cha Ns thnh phn
>> f1=500;
>> f2=1800;
>> f3=2000;
>> f4=3200;
>> x1=sin(2*pi*f1*t);
>> x2=sin(2*pi*f2*t);
>> x3=sin(2*pi*f3*t);
>> x4=sin(2*pi*f4*t);
>> x=x1+x2+x3+x4; tao tn hiu hn hop
% thit k b loc v v dp ng bin d v
dp ng pha cua b loc
>> N=16; bc cua b loc
>> wn=[0.4 0.6]; b loc bang thng gia:
0.4*(Fs/2) v 0.6*(Fs/2)
>> b=fir1(N,wn);
>> b
b =
Columns 1 through 7
0.0051 -0.0000 -0.0294 0.0000 0.1107 -0.0000 -0.2193
Columns 8 through 14
D Thnh Nam - robotdengmail.com
3
-0.0000 0.2710 -0.0000 -0.2193 -0.0000 0.1107 0.0000
Columns 15 through 17
-0.0294 -0.0000 0.0051
>> a=1; b loc khng c cc, chi c khng
dim
>> freqz(b,a); dp ng bin d v dp ng
pha
>> pause;
>> figure;
0 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1
-1000
-500
0
500
t an s o (Hz )
p
h
o

d
a
u

r
a
0 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1
-100
-50
0
Norm al i z ed Frequenc y ( rad/ s am pl e)
M
a
g
n
i
t
u
d
e

(
d
B
)
Hnh 3.1 Dp ng bin d v dp ng pha cua b lc
% v biu d m ta tn hiu vo v tn hiu
ra sau khi qua b loc
>> subplot(2,1,1);
>> Npts=200;
>> plot(t(1:Npts),x(1:Npts));
>> title('Bieu do thoi gian dau vao va dau
ra');
>> xlabel('time (s)');
>> ylabel('Dau vao');
>> y=filter(b,a,x); loc, thu tn hiu du
ra sau b loc
>> subplot(2,1,2);
>> plot(t(1:Npts),y(1:Npts));
>> xlabel('time (s)');
>> ylabel('Dau ra');
D Thnh Nam - robotdengmail.com
4
>> pause;
>> figure;
0 0. 005 0. 01 0. 015 0. 02 0. 025
-4
-2
0
2
4
B i eu do t hoi gi an dau vao va dau ra
t i m e (s )
D
a
u

v
a
o
0 0. 005 0. 01 0. 015 0. 02 0. 025
-2
-1
0
1
2
t i m e (s )
D
a
u

r
a
Hnh 3.2 1in hiu du vo v du ra sau khi qua b
lc
% v v tnh ton ph cua tn hiu du vo
v tn hiu du ra
>> subplot(2,1,1);
>> xfftmag=(abs(fft(x,Ns)));
>> xfftmagh=xfftmag(1:length(xfftmag)/2);
>> f=[1:1:length(xfftmagh)]*Fs/Ns;
>> plot(f,xfftmagh);
>> title('Pho dau vao va dau ra');
>> xlabel('tan so (Hz)');
>> ylabel('pho dau vao')
>> subplot(2,1,2);
>> yfftmag=(abs(fft(y,Ns)));
>> yfftmagh=yfftmag(1:length(yfftmag)/2);
>> plot(f,yfftmagh);
>> xlabel('tan so (Hz)');
>> ylabel('pho dau ra');
D Thnh Nam - robotdengmail.com
5
0 500 1000 1500 2000 2500 3000 3500 4000
0
100
200
300
Pho dau vao va dau ra
tan so (Hz)
p
h
o

d
a
u

v
a
o
0 500 1000 1500 2000 2500 3000 3500 4000
0
100
200
300
tan so (Hz)
p
h
o

d
a
u

r
a
Hnh 3.3 Ph cua tin hiu du vo v tin hiu du ra sau b lc
Thit k vi cua s Keisel
fsamp 8;
fcuts [1 15j;
mags [1 j;
devs [.5 .1j;
[n,Wn,beta,ftypej kaiserord(fcuts,mags,devs,fsamp);
hh fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
freqz(hh)
Cch 2: Su dng FDATool d thit k b lc
FDATool la mt cng cu ht suc huu dung va chung duoc su dung
rng ri d thit k b loc hin nay. D kich hoat cng cu thit k nay, trong
cua s lnh cua Matlab, ta thuc hin nhp lnh sau:
~~ Idatool
Va cua s FDATool duoc goi ra nhu sau:
D Thnh Nam - robotdengmail.com
6
Hnh 3.4 Cua s FDA1ool
Tu dy, ta co th chon mt vai loai dap ung (cua cac b loc): Thng
thp (Lowpass), Thng cao (Highpass), Dai thng (Bandpass), Dai ch}n
(Bandstop) va B vi phn (DiIIerentiator). Cac dc dim k thut cua b loc
thay di theo loai dap ung va phuong phap thit k.
Nhu hinh 3.4, chung ta co th nhp: Bc cua b lc (Filter Order), Cc ty
chn (Options), D}c tnh tn s (Frequency SpeciIications), D}c tnh bin
d ( Magnitude SpeciIications).
V d 2: Thit k b loc dai thng co dc tinh k thut nhu b loc dai
thng duoc thit k trong vi du 1.
Trong cua s FDATool,
Ta chon Bandpass, trong min Response Type.
Trong min Design Method, ta chon FIR va the Window.
Trong min Filter Order, ta chon Specify Order va nhp s 16.
Trong min Options, chon the Hamming tai tuy chon Window.
Trong min Frequency Specifications, o tuy chon units ta chon
Hz, nhp 8000 trong Fs, 1600 trong Fc1 va 2400 trong Fc2.
D Thnh Nam - robotdengmail.com
7
Thm vao do, tu manu Analysis keo xung, chung ta co th phn
tich dap ung bin d (Magnitude Response), dap ung pha
(Phase Response), h s b loc (Filter Ceofficients),.
Click vao Design Filter, ta thu duoc kt qua cn thit k.
Cac tuy chon nay duoc thuc hin nhu hinh 3.5 duoi dy:
Hnh 3.5 Chn tham s v dc tinh k thut cua b lc
Hon nua, chung ta co th export cac h s cua b bng vic su dung
tuy chon Export trong manu File. Tu Export to ta co th chon Workspace,
Coefficient File (ASCII), MAT-File va SPTool. Tu Export As ta cung co
th chon Coefficients va Objects. Chung ta cung co th nhp tn bin trong
truong Variable Names. Sau do Click ln luot Apply, OK, ta thu duoc kt
qua nhu hinh 3.6 duoi dy:
D Thnh Nam - robotdengmail.com
8
Hnh 3.6 Cua s Export cc h s b lc
D thm thng tin chi tit, co th tham khao Signal Processing Toolbox
Users, va tim hiu cach thuc thit k b loc su dung cng cu SPTool.

You might also like