lt 102trang
TRANSCRIPT
-
8/2/2019 LT 102Trang
1/102
Phn I: CSL THUYT
Phn I.I: CBN V MATLAB V LP TRNH TRN MATLAB
MATLAB l mt cng c tnh ton ton hc. MATLAB c thc sdng tnh ton, n cng cho php chng ta v cc biu , th theo nhiu
cch khc nhau. ging nh mt chng trnh phn mm, chng ta c th to,thc thi v lu mt dy cc lnh my tnh c th chy tng. Cui cng,MATLAB cng c th c coi nh l mt ngn ng lp trnh, l mt mitrng dng lp trnh hay tnh ton. MATLAB c thit k lm vic vinhng tp d liu c bit chng hn nh ma trn,vector, hnh nh.
Trong khi chy chng trnh MATLAB, tu theo yu cu ca ngi sdng, MATLAB s to ra mt hoc nhiu ca s trn mn hnh. Ca s quantrng nht l ca s lnh (Command Window), y l ni chng ta giao tip(tng tc) vi MATLAB v cng l ni chng ta nhp vo cc lnh vMATLAB s cho ra kt qu. Du >> l du nhc ca chng trnh MATLAB.Khi MATLAB hot ng, con tr chut s xut hin sau du nhc, lc ny
MATLAB ang chngi s dng nhp lnh vo. Sau khi nhp lnh v nhnEnter , MATLAB p ng li bng cch in ra cc dng kt qu trong ca slnh hay to ra mt ca s hnh (Figure Window). thot khi chng trnhMATLAB chng ta s dng lnh exit hoc quit.
MU
1.1. NHP MT DNG LNH
MATLAB l mt h thng tng tc, lnh sc thc thi ngay lp tckhi nhn Enter. Nhng kt qu ca mi lnh, nu c yu cu, sc xut
hin trn mn hnh. Tuy nhin, mt lnh chc thc thi khi lnh c nhpvo ng c php.
Danh sch cc php ton cbn v cch biu din chng trong chngtrnh MATLAB.
Bng 1Php ton Lnh MATLAB Php ton Lnh MATLABa + b a + b pia b a b 4.103 4 e3 hay 4*10^3a.b a*b i i hay ja/b a/b hay a\b 3 4i 3 4*i hay 3
4*jxb x^b e, ex exp(1), exp(x)
x sqrt(x) hay x^0.5 lnx, logx ln(x), log(x)
x abs(x) sinx, arctanx, sin(x), atan(x),
Lu nhp vo mt dng lnh ng Nhng lnh trong MATLAB c thc thi ngay lp tc khi nhn Enter.
Kt qu ca mi dng lnh sc hin th trn mn hnh ngay lp tc
-
8/2/2019 LT 102Trang
2/102
V d:>> 3 + 7.5ans =
10.5000 Kt qu ca php tnh cui cng sc gn cho bin ans.
V d:>> 14/4ans =
3.5000>>ans^(-6)ans =
5.4399e-045.4399e-04 l mt cch th hin ca 5.4399*10-4
Lu : ans lun c cp nht gi tr bi kt qu ca php tnh cuicng. Chng ta c thnh ngha nhng bin mi mt cch trc tip m khng
cn khai bo. Theo di gi trc lu trong bin a v b.
V d:>>a = 14/4a =
3.5000>>b = a^(-6)b =
5.4399e-04 Khi mt lnh c kt thc bi du ; th kt qu ca n khng c
xut hin trn nm hnh.V d:>>3 + 4; % Kt qu khng hin th ln mn hnh.
thc thi nhiu lnh cng mt lc, cc lnh cn c cch nhau bidu , (hin th kt qu) hay cch nhau bi du ; (khng hin th kt qu)V d:>> sin(pi/4), cos(pi); sin(0)ans =
0.7071ans =
0Lu : Trong cc kt qu trn gi tr ca cos(pi) khng c hin th.
Vi mi gi tr, MATLAB mc nh s hin thdng c 5 ch s. Lnhformat long s tng s ch s hin th ln 15 v lnh format short s gim tr
v 5.V d:>> 312/56ans =
5.5714>>format long>> 312/56ans =
5.57142857142857
-
8/2/2019 LT 102Trang
3/102
Kt qu ca mi lnh c th cha vi dng trng, iu ny c thckhc phc bi lnh format compact. Ngc li lnh format loose s thm vonhng dng trng.
nhp vo mt biu thc qu di ta s dng du xung hngV d:>> sin(1) + sin (2) - sin (3) + sin (4) - sin (5) + sin (6) -
sin (7) + sin (8) - sin (9) + sin (10) - sin (11) + sin (12) MATLAB phn bit ch hoa vi ch thng Tt c cc k t t sau du %n cui dng ch c tc dng ghi ch.
V d:>>sin(3.14159) % gn bng sin(pi)
Ni dung ca lnh thc thi cng c thc ly li bng phm mitn(Ctrl - P) ly li lnh trc (Ctrl - N) gi lnh sau
thay i ni dung ca lnh ta s dng cc phm mi tn v dichuyn con trn v tr mong mun v sa lnh. Trong trng hp lnh qu
di, ta s dng Ctrl a (vu dng) v Ctrl e (v cui dng). gi li lnh thc thi bt u bng k t, v dc, ta nhn phmsau khi nhn phm c. iu ny cng ng vi cm t, v d, cos theo sau biphm s tm nhng lnh thc thi bt u bi cos.
1.2. CNG C GIP
MATLAB cung cp mt cng c gip trc tip.Lnh help l cch n gin nht gip . bit thm chi tit v lnh
help ta nh lnh:>> help help
Nu bit tn mc hay tn mt lnh c th no , ta s dng lnhhelp mt cch c th hn.
>>help ops % lnh ny cho ta bit thng tin v cc ton t v cc k tc bit trong MATLAB
Khi s dng lnh help tn mc bn mun gip phi chnh xc vng.
Lnh lookfor hu dng hn trong trng hp bn khng bit chnh xctn ca lnh hay mc.
>> lookfor inverse % lnh ny th hin danh sch cc lnh v mt m tngn % gn ca cc lnh m trong phn gip c tinverse
Ngoi ra, vi lnh lookfor bn c th s dng mt tn khng hon chnh>> lookfor invBn cnh hai lnh trn cn c lnh helpwin, lnh helpwin mra mt ca
s mi th hin th mc cc mc gip .
-
8/2/2019 LT 102Trang
4/102
1.3. DNG MT LNH HAY CHNG TRNH, NG DN, KHNGGIAN LM VIC
1.3.1. Dng mt lnh hay chng trnhThnh thong chng ta s gp mt li bn trong lnh hay chng trnh
ca mnh, li ny c th lm cho lnh hay chng trnh khng th dng li. dng lnh hay chng trnh ny li ta nhn t hp phm Ctrl C hoc Ctrl Break.
1.3.2. ng dnTrong MATLAB, lnh hay cng trnh c th cha m file, cc file ny
ch l cc file text v c phn mrng l .m. Cc file ny phi c t trongcc th mc m MALAB thy c. Danh sch cc th mc ny c thclit k bi lnh path. Mt trong cc th mc m MATLAB lun nhn thy lth mc lm vic hin ti, th mc ny c thc xc nh bi lnh pwd. Sdng hm path, addpath, rmpath thm hay xo cc th mc ng dn.Cng vic ny cng c thc thc hin t thanh cng c: File Set path.
1.3.3. Khng gian lm vic
Khi lm trong ca s lnh (Command Window), MATLAB s nhtt ccc lnh v tt c cc bin m chng ta to ra. Cc lnh v bin ny chin th trong workspace. Chng ta c th d dng gi li cc lnh ny khi cn.Cc ga tr bin c thc kim tra li bi lnh who, lnh who s cho danhsch cc bin c trong workspace. V lnh who th hin c tn, kch thc vlp ca bin.
Lnh clear s xo bin ny khi workspace, clear hay clearall s xo tt c cc gi tr bin. Vic xo tt c gi tr bin l cn thit khi ta btu mt chng trnh hay mt bi tp mi.
>> clear a x>>who
Your variables are:ans b
1.4. SAVE V LOAD DLIU
Cch d nht save hay load cc bin l s dng thanh cng c, chnFile v sau chn Save Workspace as hay Load Workspace.MATLAB cng c lnh save d liu vo file hoc load d liu ra t file.
Lnh Save s lu cc bin trong workspace mt file nh phn hoc fileASCII, file nh phn tng c phn mrng .mat
Lnh Load cho php chp cc bin v gi tr ca chng t file vo
workspace. C php ging nh lnh save. Lnh Loadc s dng khi chngta cn np cc gi tr c khi to trc vo trong chng trnh.
-
8/2/2019 LT 102Trang
5/102
CHNG 1: CBN V C PHP V BIN
1.1. MATLAB NHL MT CNG C TNH TON.
Cc kiu s cbn c s dng trong MATLAB l s nguyn, s thcv s phc. MATLAB cng c th biu din cc snon number. C hai dngsnon numbertrong MATLAB, l:
Inf: l s v cc dng c to bi php chia 1/0. NaN: l sc to ra bi cc php ton chng hn nh 0/0 hay .
Trong MATLAB c su php ton c bn: +, - , *, /(chia tri) hoc \(chia phi) v ^ (s m).
Lu : Hai php ton chia tri v chia phi l khc nhauV d:>> 19/3 %19 chia cho 3ans =
6.3333>>19\3, 3/19 % php chia phi l 3 chia cho 19
ans = 0.1579ans =
0.1579Cc hm lng gic v cc hm m, logarith cng c s dng trong
MATLAB.
1.2. PHP GN V BIN
Khng ging nh cc ngn ng lp trnh thng thng, trong MATLABta khng cn phi khai bo bin. Mt bin sc tng to ra trong qu
trnh gn d liu cho bin .Mi gi tr khi mi to ra th c mc nh c kiu s l double, kiu s32 bit. Chng c th s dng lnh single chuyn kiu s t dng double sangdng single, l kiu s 16 bit.
>>a = single(a);Lnh single nn c s dng trong trng hp cn x l nhng ma trn
c kch thc ln. Tuy nhin trong trng hp ch c vi gi trc s dngth ta nn chuyn qua dng double c c s chnh xc hn. S dng lnhdouble thc hin php bin i ny.
>> a = double (a);Qui nh v tn bin:
Trong MATLAB, tn ca bin phi c bt u bi mt k t ch, cth l ch thng hay ch in hoa, v theo sau bi cc k t ch, cc k t shoc du gch chn, khng cha du cch.
Tn bin cha nhiu nht 31 k t.Tn bin phn bit ch hoa v ch thng.K t chm cu khng c php dng v n c nhng ngha c bit.Cc bin c to ra bng cch gn gi tr cho chng. Mt cch khc l
gn gi tr ca bin ny cho bin khc.
-
8/2/2019 LT 102Trang
6/102
V d:>> b = 10.5 % bin b c gn gi tr l 10.5>> a = b % bin a c gn bng bin b c gi tr 10.5Theo cch ny bin a c tng to ra, nu bin a tn ti th gi tr
c ca n s b chng ln bi mt gi tr mi.Mt bin cng c thc to ra bi kt qu ca mt php tonV d:>>a = 10.5;>>c = a^2 + sin(pi*a)/4;
Lu : Mt bin cha c nh ngha th khng c s dng gncho mt bin khc
V d:>> clear a;>> f = a^2 + sin(pi*a)/4;on lnh trn s khng cho mt kt qung bi v gi tr ca a cha
c khi to. Biu thc trn c th sa li nh sau:>> a = pi;
>> f = a^2 + sin(pi*a)/4;Kt qu tr v ca mt hm c thc s dng gn v to ra ccbin mi.
V d:>>b = 5; c = 7;>>a = min(b,c); % min l tn ca hm tm gi tr nh nht, gi tr
nh nht ca b v cHm min vi hai bin b v c l hai i s. Kt qu ca hm ny (gi tr
tr v ca hm) sc gn cho bin a.Lu : Ta khng c s dng tn bin trng vi tn hmChng hn, trong trng hp thc hin cc vng lp lin quan n s
phc, ta khng s dng bin i hoc j lm bin m bi v cc gi tr ny cs dng lm s phc.S dng lnh who kim tra thng tin v cc binS dng lnh clear xo cc bin khi workspace.S dng lnh help xc nh xem tn bin c trng vi tn hm
hay khng.Trong MATLAB c nhng sc mc nh to ra v c xem nh l
cc hng s, chng hn nh pi, esp, hay i, mt s cc gi tr khc cho trongbng
Bng 2
Tn bin Gi tr/ nghaans Tn bin mc nh dng lu kt qu ca php tnh cuicng
pi = 3.14159esp S dng nh nhtinf M t s dng nan hay NaN M t mt not a number, v d 0/0nargin/ nargout Si s input/ output ca hmrealmin/ S thc dng nh nht/ ln nht c th
-
8/2/2019 LT 102Trang
7/102
realmaxflops S ca php ton s thci v j i = j = 1
1.3. PHP TON VI VECTOR V MA TRN
Trong MATLAB, tt c cc i tng u c xem l mt ma trn haycn c gi l mng. Mt ch sc xem nh l mt ma trn 1x1 v ma trnch c mt hng hay mt ct c gi l vector.
1.3.1. VectorTrong qu trnh khi to, cc thnh phn ca mt vector c phn bit
vi nhau bi khong trng hoc du chm phy ;. chiu di ca mt vector ls phn t tn ti trong n. Tt c cc thnh phn ca mt vector phi c ttrong du ngoc vung ([ ])
V d>> v = [ - 1 sin(3) 7]
v =-1.0000 0.1411 7.0000
Dng lnh length xc nh chiu di ca vector.>> length(v)ans =
3Ta c th p dng nhiu php tnh cbn khc nhau i vi vector. Mt
vector c th nhn vi mt h s hoc cng / tr vi mt vector khc c cngchiu di. Trong php cng / tr, tng thnh phn ca hai vector cng / tr vinhau v cho ra mt vector c cng chiu di. Ta cng c th s dng php gni vi vector.
V d:>> v = [- 1 2 7];>> w = [2 3 4];>> z = v + w % cng tng thnh phn vector vi nhauz =
1 5 11>> y = v + 2 % 2 c cng vo tng thnh phn ca vector vy =
1 4 9>> t = [2*v, -w] % to vector t t hai vector v v wans =
- 2 4 14 - 2 - 3 - 4Mi thnh phn ca vector cng c th c s dng mt cch ring
bit:V d:>> v(2) = - 1 % thay i gi tr thnh phn th 2 ca vector vv =
- 1 -1 7>> w(2) % hin th gi tr thnh phn th 2 ca vector v
-
8/2/2019 LT 102Trang
8/102
-
8/2/2019 LT 102Trang
9/102
Nhng php tnh i vi vector hng cng c thc s dng vectorct. Tuy nhin, chng ta khng th cng mt vector hng vi mt vector ct. thc hin c php tnh ny, ta cn s dng ton t chuyn v, ton t ny schuyn mt vector hng thnh mt vector ct v ngc li
V d:>> u % u l vector ct, u s l vector hngans =
-1 3 5>> v = [-1 2 3]; % v l mt vector hng>> u + v % khng th cng mt vector ct v mt vector hngKhi s xut hin thng bo li??? Error using = =>+Matrix dimensions must agree>> u + vans =
-2 5 12>> u + v
ans = -2512
Nu z l mt vector phc th khi chuyn v ta phi dng ton t., nukhng th khi chuyn v ta s nhn c chuyn v lin hp ca z.
V d:>> z = [1 + 2i, -1 + i]
z =1.0000 + 2.0000i -1.0000 + 1.0000i
>> z % chuyn v lin hp ca zans =1.0000 2.000i
-1.0000 1.0000i>>z.ans =
1.0000 + 2.0000i-1.0000 + 1.0000i
c. Nhn, chia v s m ca vectorChng ta c th nhn hai vector c cng chiu di, =T i i ix y x y theo
cch n ginV d:>> u = [-1; 3; 5]; % u l vector ct>> v = [-1; 2; 7]; % v l vector ct>> u * v % khng th nhn hai vector ct vi
nhauKhi xut hin thng bo li??? Error using = =>+Inner matrix dimensions must agree>> u * v % kt qu nhn 2 vector
-
8/2/2019 LT 102Trang
10/102
ans =42
Khi nhn hai vector to ra mt vector c cng chiu di th ta s dngton t.*. Vi ton t ny th cc thnh phn tng ng ca hai vector sc nhn vi nhau. Cho hai vector x v y c cng chiu di th tch .* cahai vector l [ x1y1, x2y2, , xnyn]
V d:>> x = u.*v % nhn tng thnh phn tng ngx =
1635
>>sum(u.*v) % tng ng php nhn hai vectorans =
42>> z = [4 3 1]; % z l vector hng>> sum (u.*z) % php nhn hai vector
ans = 10>> u;*z % tch 2 vectorans =
10Trong ton hc khng tn ti php chia hai ma trn cho nhau. Tuy nhin
trong MATLAB ton t./c nh ngha nh l php chia tng thnh phntng ng ca hai ma trn vi nhau. Kt qu cng l mt ma trn c cng kchthc
V d:>> x = 2: 2: 10
x = 2 4 6 8 10>> y = 6:10y =
6 7 8 9 10>>x./yans =
0.3333 0.5714 0.7500 0.8889 1.0000>> z = -1:3z =
-1 0 1 2 3
x./z % 4/0, kt qu l InfWarning: Divide by zero.ans =
-2.0000 Inf 6.0000 4.0000 3.3333>>z./zWarning: Divide by zero.ans =
1 NaN 1 1 1Ton t./ cng c thc s dng chia mt s cho mt vector:
-
8/2/2019 LT 102Trang
11/102
>> x = 1:5; x/2 % chng trnh bo li??? Error using = => /Matrix dimensions must agree>> 2./xans =
2.0000 1.0000 0.6667 0.5000 0.40001.3.2. Ma trn
Vector hng v vector ct l nhng trng hp c bit ca ma trn. Matrn nk l mt mng gm c n hng v k ct. nh ngha mt ma trn trongMATLAB tng t nhnh ngha mt vector. Cc thnh phn ca hng cphn bit vi nhau bi du , hoc khong trng, cn cc hng c phn bitbi du ;.
V d:
Ma trn A =1 2 3
4 5 6
7 8 9
c nh ngha nh sau:
>> A = [1 2 3; 4 5 6; 7 8 9]A =
1 2 34 5 67 8 9
>>A2 = [1:4; -1:2:5]A2 =
1 2 3 4-1 1 3 5
>>A3 = [ 1 3-4 7]
A3 =1 3
-4 7T nhng v d trn ta nhn thy mt vector l mt ma trn 1k v mt
vector ct l mt ma trn n1. Php chuyn v s chuyn mt vector hng thnhmt vector ct v ngc li. iu ny c th m rng cho mt ma trn, phpchuyn v s bin cc hng ca ma trn thnh cc ct v ngc li.
V d:>> A2A2 =
1 2 3 4-1 1 3 5>>A2 % chuyn v ca ma trn A2ans =
1 -12 13 34 5
>> size (A2) % kch thc ca ma trn A2
-
8/2/2019 LT 102Trang
12/102
ans =2 4
>> size (A2)ans =
4 2a. Nhng ma trn c bitTrong MATLAB c mt s hm c s dng to ra cc ma trn cbit
Bng 3Lnh Kt qun = rank (A) S chiu ca ma trn Ax = det(A) nh thc ca ma trn Ax = size (A) Kch thc ca Ax = trace(A) Tng cc thnh phn trn ng cho ca Ax = norm (v) Chiu di Euclide ca vector vC = A + B Tng hai ma trnC = A B Hiu hai ma trn
C = A * B Tch hai ma trnC = A.*B Tch tng thnh phn tng ng ca hai ma trnC = A^k Ly tha ca ma trnC = A.^k Ly tha tng thnh phn ca ma trnC = A Ma trn chuyn v ATC = A./B Chia tng thnh phn tng ng ca hai ma trnC = inv(A) Nghch o ca ma trn AX = A\B Gii phng trnh AX = BX = B\A Gii phng trnh XA = Bx = linspace(a,b,n) Vector x c n thnh phn phn bu trong khong
[a,b]
x= logspace(a,b,n) Vector x c n thnh phn bt u 10a v kt thc vi10b
A = eye(n) Ma trn ng nhtA = zeros(n,m) Ma trn all 0A = ones(n,m) Ma trn all 1A = diag(v) Ma trn zero vi ng cho l cc thnh phn ca
vector vX = tril(A) Trch ma trn tam gic diX = triu (A) Trch ma trn tam gic trnA = rand(n,m) Ma trn A vi cc thnh phn l phn bng nht
gia (0,1)A = randn(n,m) Ging nh trn vi cc thnh phn phn b chunv = max(A) Nu A l mt vector th v l gi tr ln nht ca A
Nu A l ma trn th v l mt vector vi cc thnhphn l gi tr ln nht trn mi ct ca A
v = min(A) Nh trn vi gi tr nh nhtv = sum(A) Nh trn vi tng
V d:>>E = [] % mt ma trn rng 0 hng 0 ct
-
8/2/2019 LT 102Trang
13/102
E =[]
>>sire(E)ans =
0 0>> I = eye(3) % ma trn ng nht 3x3I =
1 0 00 1 00 0 1
>> x = [2; -1; 7]; I*x %I*x = xans =
2-17
>>r = [1 3 -2];>>R = diag(r) % to mt ma trn ng cho
R = 1 0 00 3 00 0 -2
>>A = [1 2 3; 4 5 6; 7 8 9];>>diag(A) % trch ra ng cho ca ma trn Aans =
159
>> B = ones (3,2)
B = 1 11 11 1
>>C = zeros (size(C)) % ma trn all zero vi kch thc ca CC =
0 0 00 0 0
>>D = rand(2,3) % ma trn cc gi tr ngu nhin trongkhong (0,1)
D =
0.0227 0.9101 0.92220.0299 0.0640 0.3309>> v = linspace(1, 2, 4) % v l mt vector c 4 gi tr cch u nhau
trong khong [1,2]v =
1.0000 1.3333 1.6667 2.0000
b. Xy dng ma trn v trch ra mt ma trn con t mt ma trn ln hnChng ta c th to ra mt ma trn ln t cc ma trn nh hn
-
8/2/2019 LT 102Trang
14/102
V d:>> x = [4; -1], y = [-1 3]x =
4-1
y =-1 3
>> X = [x y] % X bao gm cc ct ca x v yX =
4 -1-1 3
>> T = [-1 3 4; 4 5 6]; t = 1:3;>>T = [T; t] % thm mt dng mi bng cch cng t vo TT =
-1 3 44 5 61 2 3
>> G = [1 5; 4 5; 0 2]; % G l ma trn 3x2>>T2 = [T G] % kt ni 2 ma trnT2 =
-1 3 4 1 54 5 6 4 51 2 3 0 2
>>T3 = [T; G ones (3,1)] % G l ma trn 3x2% T l ma trn 3x3
T3 =-1 3 44 5 5
1 2 31 5 14 5 10 2 1
>>[G diag9%:6); ones(3,2) T] % kt ni nhiu ma trnans =
1 4 0 5 05 5 2 0 61 1 -1 3 41 1 4 5 61 1 1 2 3
Cng tng t nh vi vector, chng ta c th trch ra mt s thnh phnca ma trn. Mi thnh phn ca ma trn c nh du bi v tr hng v ct.Thnh phn hng i v ct j c k hiu l Aij, v k hiu trong MATLAB lA(i,j).
V d:>> A = [1:3; 4:6; 7:9]A =
1 2 34 5 67 8 9
-
8/2/2019 LT 102Trang
15/102
>>A(1,2), A(2,3), A(3,1)ans =
2ans =
6ans =
7>>A(4,3) % khng ng v A l ma trn 33??? Index exceeds matrix dimensions.>>A(2,3) = A(2,3) + 2*A(1,1) % thay i gi tr ca A(2,3)A =
1 2 34 5 87 8 9
Mt ma trn cng c thc mrng theo cch sau y>> A(5,2) = 5 % gn 5 cho v tr A(5,2) v cc thnh phn khc l zeroA =
1 2 34 5 87 8 90 0 00 5 0
Cc thnh phn zero ca ma trn A trn cng c thc thay i>> A(4, :) = [2, 1, 2]; % gn vector [2, 1, 2] vo hng th 4 ca A>>A(5,[1,3]) = [4, 4]; % gn A(5,1) = 4 v A(5,3) = 4Nhng phn khc nhau ca ma trn c trch ra theo cch sau y:>>A(3; :) % trch ra hng th 3 ca Aans =
7 8 9>> A(:; 2) % trch ra ct th 2 ca Aans =
25815
>> A(1:2,:) % trch ra hng th 1 v 2 ca Aans =
1 2 3
4 5 8>>A([2,5], 1:2) % trch ra mt phn ca Aans =
4 54 5
Lu : Khi nim ma trn rng [], chng hn cc hng hay ct ca matrn c thc xa b bng cch gn gi tr ca n bi ma trn rng [].
>> C = [1 2 3 4; 5 6 7 8; 1 1 1 1];>> D = C; D (:, 2)= [] % xa ct th 2 ca D
-
8/2/2019 LT 102Trang
16/102
>> C = ([1,3],:) = [] % xa ct th 1 v 2 ca Cc. Tnh ton vi ma trn
Cc hm v php ton thng s dng vi ma trn c cho trong bng1. Lu ton t. trong php nhn ma trn vi ma trn v php nhn ma trnvi vector. Ton t. xut hin trong php nhn, php chia v s m. Khi cton t ny, php ton sc thc hin vi tng phn ca ma trn. C thtrong php nhn/ chia, tng thnh phn tng ng ca 2 ma trn s nhn/ chiavi nhau v kt qu l mt ma trn c cng kch thc vi 2 ma trn ban u.Nh vy trong trng hp s dng ton t ny, 2 ma trn phi c cng kchthc vi nhau
V d:>> B = [1 -1 3; 4 0 7]B =
1 -1 34 0 7
>>B2 = [ 1 2; 5 1; 5 6];>> B = B + B2 % cng 2 ma trn
B = 2 4 86 1 13
>> B -2 % tr cc thnh phn ca B cho 2ans =
0 2 64 -1 11
>> ans = B./4 % chia cc thnh phn ca B cho 4ans =
0.5000 1.0000 2.00001.5000 0.2500 3.2500
>>4/B % sai c php??? Error using = => /Matrix dimensions must agree>> 4./B % tng ng vi 4.*ones(size(B))./Bans =
2.0000 1.0000 0.50000.6667 4.0000 0.3077
>> C = [1 -1 4; 7 0 -1];>> B.*C % nhn tng v tr vi nhauans =
2 -4 32
42 0 -13>> ans.^3 2 % m 3 cc thnh phn sau tr cho 2ans =
6 -66 3276674086 -2 -2199
>>ans./B.^2 % tng v tr chia cho nhauans =
0.7500 -1.0312 63.9961342.9907 -2.0000 -1.0009
-
8/2/2019 LT 102Trang
17/102
>> r = [1 3 -2]; r *B2ans =
6 -7Lu : Cc php nhn ma trn ma trn v php nhn ma trn vector>>b = [1 3 -2]>> B = [1 -1 3; 4 0 7]B =
1 -1 34 0 7
>>b*B % khng th thc hin c??? Error using = => *Inner matrix dimensions must agree>> b *B % thc hin cans =
-8 -10>> B*ones (2,1)ans =
5-110
>> C = [3 1; 1 -3];>> C*Bans =
7 -3 16-11 -1 -16
>>C.^3 % m 3 tng thnh phnans =
27 1
1 -27>>C^3 % tng ng vi C * C* Cans =
30 1010 -30
>> ones (3,4)./4*diag(1:4)ans =
0.2500 0.5000 0.7500 1.00000.2500 0.5000 0.7500 1.00000.2500 0.5000 0.7500 1.0000
-
8/2/2019 LT 102Trang
18/102
CHNG II: TH 2D V 3D
MATLAB c thc s dng th hin cc kt qu di dng th,mi bin s cha tt c cc gi tr ca mt i s trong lnh v th.
2.1.NHNG THN GIN
Vi lnh plot chng ta d dng vc nhng thn gin. Chovector y, lnh plot(y) s xc nh nhng im [1, y(1)], [2, y(2)], , [n, y(n)]v ni cc im ny li bng nhng ng thng. Lnh plot (x,y) thc hin mtcng vic tng t nh vy vi nhng im [x(1), y(1)], [x(2), y(2)], , [x(n),y(n)].
Nhng lnh loglog, semilogx v semilogy c chc nng tng t nhlnh plot, ngoi tr mt hoc hai trc th ca chng c xc nh theologarithm.
Xt on chng trnh sau:>> x = 0:10;
>> y = 2.^x; % y = [1 2 4 8 16 32 64 128 256 512 1024]>> plot(x,y) % biu din di dng th>> semilogy(x, y) % v th vi trc y theo logarithmKhi thc hin chng trnh ny th c hai thu c th hin trong
cng mt ca sFigure No.1. th th nht s b xa b ngay khi th thhai xut hin. v hai th trn hai ca s khc nhau, ta s dng lnh figure to ra mt ca s mi trc khi thc hin lnh v th th hai. Bng cchny chng ta s c hai ca s ring bit th hin 2 th. Chng ta cng cth chuyn n cc ca s khc nhau bng lnh figure(n), lnh ny sa casNo.n ln trn mn hnh.
Khi on lnh trn c vit li nh sau:
>> x = 0:10;>> y = 2.^x;>> plot(x,y)>> figure>> semilogy(x, y) v mt th hm tng i chnh xc v p, iu quan trng l
phi ly mu mt cch thch hpV d:>> n = 5;>> x = 0: 1/n:3; % ly mu khng tt>> y = sin (5*x);
>> plot(x,y)
L y m uL y m u khng
-
8/2/2019 LT 102Trang
19/102
Sa li>> n = 25;>> x = 0: 1/n:3; % ly mu tt>> y = sin (5*x);>> plot(x,y)Lnh plot mc nh s v th bng nhng ng nt lin mu en. Ta
c th thay i kiu cng nh mu sc ca nt vV d:>> x = 0: 0.4: 4;>> y = sin (5*x);>> plot(x, y, r --)
Hnh 1 th trn sc v bng ng nt t mu . Thng s th ba ca
lnh plot chnh mu v kiu ng ca nt v.Cc k hiu mu v kiu ng v ca th
Bng 4K hiu Mu K hiu Kiu vr Red ., o nh du cc im bng du ., og Green * nh du cc im bng du *b Blue x, + nh du cc im bng du x, +y Yellow - V bng ng nt linm Magenta -- V bng ng nt t dic Cyan : V bng ng nt t ngn
k Black -. V bng ng nt t chm gch
Tiu ca th, ng k v nhn cho cc trc c xc nh bi cclnh sau:
>> x = 0: 0.4: 4;>> y = sin (5*x);>> plot(x, y, r --)>> title ( Function y = sin (5*x));>> xlabel(x axis);>> ylabel(y axis);>> grid % loi b cc ng k bng lnh grid off
-
8/2/2019 LT 102Trang
20/102
Hnh 2
2.2. MT S HM C SDNG TRONG V TH
C vi cch v nhiu th trong cng mt ca s hnh. Cch u tinl s dng lnh hold on. Sau lnh ny, tt c cc th sc v trn cng
mt ca s hnh cho n khi c lnh hold off. Khi nhiu hm c v trn cngmt ca s, ta nn s dng mu sc v hnh dng khc nhau cho mi th.V d:>> x1 = 1: .1:3.1; y2 = sin (x1);>>plot(x1, y1, md);>>x2 1: .3: 3.1; y2 = sin (-x2 + pi/3);>> hold on>> plot(x2, y2, k*-.)>> plot(x1, y1, m-)>>hold off
Hnh 3Cch th hai l v nhiu hm cng mt lc. Vi cch ny, cc hm sc v cng mt lc trn cng mt ca s hnh
V d:>> x1 = 1: .1:3.1; y2 = sin (x1);>>x2 1: .3: 3.1; y2 = sin (-x2 + pi/3);>> plot (x1, y1, md, x2, y2, k*-., x1, y1, m-)
-
8/2/2019 LT 102Trang
21/102
Hnh 4 xc nh c th di ca mi trc ta s dng lnh axis.V d:
>> x1 = 1: .1:3.1; y2 = sin (x1);>>x2 1: .3: 3.1; y2 = sin (-x2 + pi/3);>> plot (x1, y1, md, x2, y2, k*-., x1, , m-)>>axis ([0, 4, -2, 2])
Hnh 5 to ghi ch cho mi th ta s dng lnh legendV d:>> x1 = 1: .1:3.1; y2 = sin (x1);>>x2 1: .3: 3.1; y2 = sin (-x2 + pi/3);
>> plot (x1, y1, md, x2, y2, k*-., x1, y1, m-)>>axis ([0, 4, -2, 2])>> legend (cos(x), cos(-x + pi/3));
-
8/2/2019 LT 102Trang
22/102
Hnh 6 to ra nhiu ca s con trong cng mt ca s hnh ta s dng lnh
subplot. Vi lnh subplot, ca s hnh c chia thnh pr ca s con cnh s t 1 n p.r, bt u t ca s trn cng bn tri v m theo tng hng.
Cc lnh plot, title, grid ch lm vic vi ca s con hin ti.>> x = 1: .1:4;>>y1 = sin(3*x);>>y2 = cos(5*x);>>y3 = sin (3*x).*cos(5*x);>>subplot (1,3,1); plot (x, y1, m-); title(sin(3*x))>>subplot (1,3,2); plot (x, y2, g-); title(cos(5*x))>>subplot (1,3,3); plot (x, y3, k-); title(sin(3*x)*cos(5*x))
Hnh 7
2.3. CC THUC TNH KHC CA NG CONG 2D
MATLAB c mt s hm c thit kc bit s dng vi nhnghnh 2D, v d nh cc hm: fill, polar, bar, barh, pie, hist, errorbar haystem.
-
8/2/2019 LT 102Trang
23/102
V d:>> N = 5; k = -N: N;>> x = sin(k*pi/N);>>y = cos (k*pi/N); % (x, y) l cc nh ca a gic>> fill(x, y,g)>> axis square>> text (-0.7, 0, I am a green polygon)
Hnh 82.4. IN N
Trc khi tin hnh in miu t mt cch r rng hn chng ta c ththm mt s thng tin vo th, chng hn nh ta , hay thay i cch trnhby.
Bng 5:Mt slnh thao tc vi thLnh Kt qugrid on/ off Thm li vo th
axis([xmin xmax yminymax]) Xc nh gi tr ln nht v nh nht ca th
box off/on Xa / hin thng vin khung ca thxlabel(text) Nhn ca trc xylabel(text) Nhn ca trc ytitle(text) Ta trn thtext(x, y, text) Thm dng k t vo im (x,y)gtext(text) Thm dng k t vo v tr xc nh bi chutlegend(fun1, fun2) Thm vo tn ca cc hmlegend off Xa tn ca cc hmClf Xa ca s hnh hin ti
subplot To ra nhng ca s hnh con
Cch n gin nht tin hnh in l chn File trn thanh cng c v sau chn Print. Lnh printc s dng gi mt thn my in hoc luvo mt file.
V d:>> print dwinc % s dng my in hin hnh in mn hnh
ang hin th
-
8/2/2019 LT 102Trang
24/102
>> print fi deps myfile.eps % lu hnh Figure no.1 n file myfile.eps dng en trng
>> print fi depsc myfile.eps % lu hnh Figure no.1 n file myfile.eps dng mu
>> print dtiff mufile 1. tiff %lu hnh hin hnh n file myfile1. tiff>> print dpsc myfile1c.ps % lu hnh hin hnh n file myfile1.ps
dng mu>> print f2 djpeg myfile2 % lu hnh Figure no.2 n file myfile2.jpg
2.5. TH 3D
Lnh plot3c s dng v th 3D, lnh ny tng ng lnhplot trong 2D. V hnh thc n ging nh lnh plot tuy nhin lnh plot3cmrng thm cho mt trc ta th 3
V d: vng cong r c nh ngha r(t) = [tsin(t); tcos(t); t] vi tnm trong khong [-10 ; 10 ]
>> t = linspace (-10*pi, 10*pi, 200); % chia mt on thnh cc khongchia tuyn tnh>> plot3(t*sin(t), t*cos(t),t, md-); % vng cong mu hng>> title (Curve r(t) = [tsin(t); tcos(t); t]);>>xlabel(x axis); ylable(y = axis); zlable(z axis);>>grid
Hnh 9
2.6. B MT TH
Mt b mt c nh ngha bi mt hm f(x,y), vi MATLAB mi cpgi tr ca (x,y), cao z c tnh z = f(x,y). v mt b mt, vng ly mu
-
8/2/2019 LT 102Trang
25/102
(x,y) nn l mt vng hnh ch nht. H thng cc gi tr x v y c to ra bilnh meshgrid nh sau:
>> [X, Y] = meshgrid (-1:.5:1, 0:.5:2)X =
-1.0000 -0.5000 0 0.5000 1.0000-1.0000 -0.5000 0 0.5000 1.0000-1.0000 -0.5000 0 0.5000 1.0000-1.0000 -0.5000 0 0.5000 1.0000-1.0000 -0.5000 0 0.5000 1.0000
Y =0 0 0 0 00.5000 0.5000 0.5000 0.5000 0.50001.0000 1.0000 1.0000 1.0000 1.00001.5000 1.5000 1.5000 1.5000 1.50002.0000 2.0000 2.0000 2.0000 2.0000
Vng ly mu trong trng hp ny l [-1, 1][0, 2] v khong ly mul 0.5. b mt th phng hn ta nn ly mu dy c hn.
>> [X, Y] = meshgrid(-1:.05:1, 0:.05:2);>> Z = sin(5*X).*cos(2*Y);>> mesh (X, Y, Z);>> title (Function z = sin(5x) * cos(2y))
Hnh 10Lnh close allc s dng ng tt c cc ca s hnh, ng tngca s ta c th s dng lnh close (close 1ng ca s hnh Figure No.1)
2.7. HNH NG
Trong MATLAB chng ta c th to ra hnh chuyn ng bng cch tora mt chui cc hnh. hiu cch to ra mt hnh ng, phn tch on
-
8/2/2019 LT 102Trang
26/102
chng trnh sau vi th ca hm f(x) = sin(nx) trong x = [0, 2 ] v n =1, , 5.
N = 5;M = moviein(N);x = linspace (0, 2*pi);for n = 1:N
plot (x, cos(n*x), r-);xlabel(x axis)if n > 1,
ss = strcat(cos(,num1str(n),x));else
ss = cos(x);endylabel (ss)title(Cosine functions cos(nx),FontSize,12)axis tight % gii hn cc trc theo gi tr.Grid
M(:,n) = getframe;Pause(1.8)endmovie(M) % chy on film.Cc lnh c t m trn l cc thnh phn chnh to nn mt on
hnh chuyn ng trong MATLAB.Trong on chng trnh trn, cu trc vng lp forc s dng
to ra cc khung nh cho oan film. Lnh strcat dng ni cc chui li vinhau.
Khi chy on film, u tin 5 frame c hin th v sau l 5 framexut hin li vi tc nhanh hn. Lnh moviein (M) bo vi MATLAB rng
c mt on film gm c M frame sc to ra. Cc frame lin tip nhau sc to ra bn trong vng lp. Vi lnh getgrame, cc frame sc lu vocc ct ca ma trn M. Lnh movie(M) s chy on film va to.
Lu : vic to ra on film yu cu kh nhiu b nh, do vy khi ktthc cng vic nnclear M ra khi workspace
CHNG III: BIU THC R NHNH
Cu trc ca biu thc r nhnh bao gm mt nhm lnh cho php thcthi mt on chng trnh c iu kin hay thc hin mt vng lp.
3.1. CC TON TLOGIC V BIU THC QUAN H
thc hin biu thc r nhnh, chng trnh cn thc hin nhng phpton m kt qu ca n l NG hay SAI. Trong MATLAB, kt qu tr v camt ton t logic l 1 nu n ng v kt qu l 0 nu n sai
Bng 6Lnh Kt qua = (b > c) a l 1 nu b ln hn c. Tng t vi =,
-
8/2/2019 LT 102Trang
27/102
a = ( b = = c) a l mt nu b bng ca = (b ~ = c) a l 1 nu b khng bng ca ~ = b Logic b: a bng 1 nu b bng 0a = (b & c) Logic AND: a l 1 nu a = TRUE v b = TRUE.a = ( b | c) Logic OR: a l 1 nu a = TRUE hoc b = TRUE
Nhng ton t quan h =, = = v ~ = c thc s dng so snh hai ma trn c cng kch thc ( lu rng mt sthc c xem nhl mt ma trn 1 1).
Lu rng trong MATLAB cc ton t AND v OR c mc u tinbng nhau, iu ny c ngha l cc ton t ny sc thc thi t tri sangphi.
V d:>> b = 10;>> 1 | b > 0 & 0 % | l logic OR, & l logic AND.ans =
0
>> (1 | b > 0) & 0 % biu thc ny tng ng vi biu thc trnans =
0>> 1 | ( b > 0 & 0)ans =
1Lu : trnh cc trng hp nhm ln ta nn sdng du ngoc
phn bit cc biu thc logic c cp u tin khc nhau.
3.2. BIU THC IU KIN
Cu trc iu kin ifc s dng quyt nh nhm lnh no scthc thi. Di y m t tng qut ca cc lnh iu kin.
Lnh disp dng in ra mn hnh on vn bn gia hai du nhy. Cu trc if end
C php V difbiu thc logic if(a > 0)
Lnh th1 b = a;Lnh th1 disp ( a is positive).. end
end
Cu trc if else end
C php V difbiu thc logic if(temperature > 100)
Cc lnh c thc thi khibiu thc logic TRUE
disp ( above boiling.);toohigh = 1;
else else
-
8/2/2019 LT 102Trang
28/102
Cc lnh c thc thi khibiu thc logic FLASE
disp ( temperature is OK);toohigh = 0;
end end
Cu trc if elseif else end
C php V difbiu thc logic 1 if(height > 190)Cc lnh c thc thi khi biuthc logic 1 TRUE
disp (very tall);elseif(height > 170)
elseifbiu thc logic 2 disp (tall)Cc lnh c thc thi khi biuthc logic 2 TRUE
elseif(height
-
8/2/2019 LT 102Trang
29/102
Vng lp for s thc hin mt nhm cc pht biu trong mt s ln xcnh.
C php V dforindex = first : step: last sumx = 0;
nhm cc pht biu for i = 1: length (x)
end sumx = sumx + x(i);endTrong cu trc vng lp for, step c th l s m, index c th l mt
vector.V d:
V d 1 V d 2for = 1: 2: n for = I = n : -1 : 3
end end
V d 1 V d 2
for i = 0: 0.5: 4 for i = [ 25 9 8]disp (x^2); disp (sqrt(x));end end
Vng lp while thc hin mt nhm cc pht biu cho n khi biu thciu kin l FALSE.
C php V dwhilebiu thc iu kin N = 100;
Pht biu 1; iter = 1;Pht biu 2; msum = 0;Pht biu 3; while iter
-
8/2/2019 LT 102Trang
30/102
3.4. TP LNH V HM
3.4.1. Tp lnh m -file gii quyt nhng vn n gin, s lnh s dng trong chng trnh
t, cc lnh ca MATLAB c th c nhp trc tip vo ca s lnh. Tuynhin trong trng hp phc tp, s lnh cn c s dng kh nhiu v do vyvic nhp trc tip vo ca s lnh l khng kh thi. Gii php trong trng hpny l s dng tp lnh m file. Ngoi u im trong trng hp chng trnhcn s dng nhiu lnh, tp lnh m file cn hu ch khi chng ta mun thayi mt vi gi tr ca bin hay cho chng trnh thc thi nhiu ln. Trongtrng hp ny, m file l mt tp tin cha mt chui cc lnh hay pht biutrong MATLAB. Tuy nhin do chng khng c cc i s vo v ra nn tp tinm file khng phi l hm, n n gin ch l tp hp ca nhiu lnh c thcthi mt cch trnh t.
to ra mt m file, u tin chng ta mmt chng trnh son thosau nhp vo tt c cc lnh cn thit ( khng c du nhc sinplot
3.4.2. Hm m - fileHm m file l mt chng trnh con do chng yu cu cc i s ng
vo v c th tr vi s ng ra. Cc bin c nh ngha v s dng trong
hm th ch c gi tr bn trong hm . C php tng qut ca mt hm nhsau:Function [outputArgs] = function_name (inputArgs)outputArgs (i s ng ra) c t trong du []:
- Tn cc i s ng ra c lit k v cch nhan bi du,.
- C th khng s dng du [] nu ch c duy nht mti s.
- Mt hm cng c th khng c i s ng ra.
-
8/2/2019 LT 102Trang
31/102
inputArgs (i s ng vo) c t trong du ():- Tn cc i s ng vo c lit k v cch nhau bi
du ,.- Mt hm cng c th khng c i s ng vo.
Cu trc chung ca mt hm trong MATLAB nh sau: Dng u tin l nh ngha ca hm, dng ny bao gm: t kha khai
bo hm, tn hm v cc i s ng vo v ng ra. Tip theo l cc dng ch thch, cc dng ny c bt u bi du
%, ni dung ca cc dng ny l gii thch mc ch ca hm cngnh m t ngha cc i s ng vo v ng ra. Cc dng ch thch nys xut hin khi ta s dng lnh help tm hiu v hm chng ta angto ra.
Cui cng l phn ni dung, y chnh l phn chnh ca hm. Vic thcthi ni dung ca hm s kt thc khi chng trnh gp lnh return hocthc thi xong lnh cui cng. Khi qu trnh thc thi kt thc cc i sng ra sc tr v.V d: hm averagec nh ngha nh sau:
function avr = average(x)% AVERAGE tnh gi tr trung bnh ca vector x% v gn kt qu vo bin avr.
%Lu : y l mt v d v cu trc hmn = length(x);avr = sum(x)/n;
return;
Lu : Tn ca hm v tn ca file lu phi ging nhau. Trong trng hptrn, hm nn c lu vi tnaverage.m.
Mt hm m file c th cha nhiu hn mt hm. Trong trng hp mtm file cha nhiu hm th hm xut hin u tin c gi l hm chnh, hmchnh vn c cc tnh cht thng thng ca mt hm: cch hot ng, cc is, tn hm, . Nhng hm cn li c gi l hm con, chng ch c thctruy xut t hm chnh v khng thc truy xut t bt k hm no khc, k
c t ca s lnh. Cu trc con cn c s dng trong trng hp mt hmqu di hay qu phc tp. Cc hm con cn c s dng trong trng hp mthm qu di hay qu phc tp. V d hm average by gil mt hm con cahm stat.m.
V d:function [a, sd] = stat(x) % STAT l hm thng k n gin
% Tnh ton gi tr trung bnh v lchchun ca mt vector x
n = length(x);
Dng u tinl dng nh nghahm
i s ng ra Tn hm i s ng vo
Ch thch
Ni dung ca hm
Dng trng trong ch thch; Mc lu s khng xut hin khi ta s dng lnh helpaverage
-
8/2/2019 LT 102Trang
32/102
a = average(x,n);sd = sqrt(sum((x avr).^2)/n);return;function a = average(x,n) % AVERAGE l mt hm cona = sum(x)/n;return;Trong on chng trnh trn, lnh a = average(x,n)c s dng trong
ni dung ca hm stat gi mt hm con. Trong trng hp ny stat l hmchnh v average l hm con.
a. Nhng bin c bit trong hmKhi mt hm c s dng, chng trnh s tng to ra hai bin ni
l nargin v nargout. Bin nargin l i s ng vo c s dng khi gi hm,nargout l si s ng ra
V d:function [out1, out2] = checkarg (in1, in2, in3)% CHECKARG Mt v d s dng bin nargin v nargoutif (nargin = = 0)
disp (no input arguments);return;elseif (nargin = = 1)
s = in1;p = in1;disp (1 input argument);
elseif (nargin = = 2)s = in1 + in2;p = in1*in2;disp (2 input arguments);
elseif (nargin = = 3)
s = in1 + in2 + in3;p = in1*in2*in3;disp (3 input arguments);
elseerror(Too many inputs);
endif (nargout = = 0)
return;elseif (nargout = = 1)
out1 = s;else
out1 = s;out2 = p;endTrong v d trn, chng trnh s cho ra cc kt qu khc nhau ty thuc
vo c bao nhiu i s ng vo c s dng v c bao nhiu i s ng ra.Trong cc chng trnh ln, mt cch tng qut ngi ta thng hay s dngbin nargin v nargoutiu khin linh hot ni dung ca chng trnh.
b. Bin ton cc v bin cc b
-
8/2/2019 LT 102Trang
33/102
Mi hm m file truy cp n mt phn ring bit ca b nh trongkhng gian lm vic ca MATLAB. iu ny c ngha l mi hm m file cnhng bin cc b ca ring n, nhng hm khc khng th truy cp n ccbin ny. hiu r hn chng ta hy phn tch s sau y:
Bng 7MATLAB myfun.m
>> a = -1; function z = myfun(x,y)>> b = 20; (a, b) (x, y) >> c= myfun(a,b); c z z = x + cos (x y)
return;
Cc bin a, b, c xut hin trong khng gian lm vic ca MATLAB,trong khi cc bin x, y, z ch c gi tr bn trong hm myfun. Tuy nhin, nu takhai bo bin dng ton cc th tt c cc hm khc u c th s dng cbin ny.
Lu : chng ta nn cn thn khi sdng bin ton cc, n dgy nn
nhng xo trn v nhm ln.c. Cch gi hm gin tip chng trnh trnn tng qut hn ta nn s dng cch gi hm gin
tip, trong trng hp ny tn hm c coi nh l mt i s ng vo. Ta sdng lnh feval (function evaluation) gi hm gin tip. Cch s dngthng thng ca lnh feval nh sau:
[y1, , yn] = feval (F, x1, , xn)Vi F l tn ca hm c nh ngha trong MATLAB, x1, , xn l cc
i s ng vo, y1, , yn l cc i s ng ra.V d:>> x = pi; y = cos(x);
>> z = feval (cos, x);Lnh sau tng ng vi c hai lnh u tin. Mt cch s dng khcca hm feval
>> F = cos;>> z = feval(F, x)Cch gi hm gin tip l mt cng c cn thit xy dng chng
trnh xem hm nh l mt i s.
3.4.3. Tp tin v hmim khc nhau cbn nht gia tp tin v hm l tt c cc tham s v
bin s trong tp tin u c thc s dng t bn ngoi (cc tham s v bin
ny nm trong workspace), trong khi cc bin ca hm ch c gi tr bn tronghm v khng c truy xut hoc s dng bi cc hm khc. Do vy trongtrng hp cn gii quyt mt vn vi cc thng s bt k ta nn s dnghm, cn trong trng hp cn th nghim nhiu ln mt vn ta nn s dngtp tin.
3.5. VN BN
3.5.1. Chui k t
-
8/2/2019 LT 102Trang
34/102
Trong MATLAB vn bn c lu dng l chui ca cc k t. Chuil mt vector m cc thnh phn ca n lu tr gi tr ASCII ca cc k ttrong trong chui. Do vn bn l mt vector ca cc k t nn ta cng c th xl vn bn ging nh x l mt vector bt k.
V d:>> t = This is a character stringt =This is a character string>> size(t)ans =
1 27>> whos
Name size Bytes Classt 1x27 54 char array
>> t (10:19)ans =character
>> t ([2, 3, 10, 17])ans =hi t miu t chui di dng m ASCII ta s dng lnh double hoc abs
bin i:>> double (t(1:12))ans =
84 104 105 115 32 105 115 32 97 32 99 104Hm charc s dng bin i t dng m ASCII sang k t chui:>> t ([16:17])ans =
ct>> t([16:17]) + 3 % m ASCII c s dngans =
102 119>> t ([16:17]) 3 % thay i m ASCIIans =
96 113>> char (t([16:17]) 2) % bin i m ASCII sang k t chui
ans =ar
Bng 8 : Cc hm c s dng bin i chuiLnh Kt qu
findstr Tm mt k t hay mt nhm cc kt xut hin trong chui.
strcat Ni hai chui vi nhaustrcmp So snh hai chui (tr v 1 nu hai
chui ging nhau v ngc li l 0)num2str Bin i s thnh chui
-
8/2/2019 LT 102Trang
35/102
str2num Bin i chui thnh sBin i chui thnh vector ca cc s
V d:>> findstr (t, c) % tm v tr ca c xut hin trong tans =
11 16>> findstr(t, racter) % tm v tr chui racter trong tans =
14>>u = t(10:19);>> findstr(t, u) % tm chui u trong chui tans =
11>> u1 = (9:-1:1)ans =
retcarahc % y l t character c ngc li
>> strcat(u,u1) % ni hai chui u v u1 vi nhauans = characterretcarahc>> strcmp(u, u1) % so snh hai chuians =
0>> q = num2str (34.35) % bin i s thnh chuiq =
34.35>> z = str2num(7.6) % bin i chui thnh sz =
7.6
>> t = str2num(1 -7 2) % bin i chui thnh vector ca cc st =1 -7 2
>> t = str2num( 1 7 2) % lu cc khong trng xung quanh du% + hoc , trong trng hp ny l
% [1-7, 2]t =
-6 2Lu : khi bin i tchui sang shoc tssang chui, cc khong
trng xung quanh du + hoc mang ngha rt quan trng.3.5.2. Xut v nhp vn bn
Lnh inputc s dng yu cu ngi dng nhp vo mt s hay mtchui>> myname = input(Enter your neme: , s);>> age = input(Enter your age: );
Lu : ngha ca hai lnh trn, lnh th nht yu cu nhp vo mtchui v lnh thhai yu cu nhp vo mt s.
C hai hm c s dng xut vn bn l disp v fprintf. Hm dispch th hin gi tr ca mt i s l mt ma trn hay ma trn chui.
-
8/2/2019 LT 102Trang
36/102
V d:>> disp (This is a statement.) % xut ra mt chuiThis is a statement.>> disp (rand(3)) % xut ra mt ma trn
0.2221 0.0129 0.85190.4885 0.0538 0.50390.2290 0.3949 0.4239
Hm fprintfc s dng ghi d liu vo file hay xut ra mn hnhnh dng chnh xc ca i s.
V d:>> x = 2;>> fprintf (Square root of %g is %8.6f.\n, x, sqrt(x));Square root of 2 is 1.414214.>> str = beginning;>> fprintf (Every %s is difficult.\n, str);Every beginning is difficult.Hm fptintfc kh nng bin i, nh dng v ghi i s ca n vo
mt file hay th hin chng trn mn hnh theo mt nh dng c bit. c phpsau y c s dng xut ra mn hnh:fprintf (format, a, )Chui format cha cc k t thng thng sc a n ng ra v
cc chnh bin i, mi chnh bin i s chuyn i mt i s ca hmfprintf thnh chui k t c nh dng tng ng sau in ra mn hnh. a lcc i s ca hm fprintf. Mi chnh bin i bt u bng k t % v ktthc bi mt k tchuyn i. Gia % v k tchuyn i c th l:
Du : khi c k t ny i s sc in ra vi nh dng canh ltri, trong trng hp ngc li, mc nh l canh l phi.
S xc nh chiu di ti thiu: l phm vi ti thiu m i s sc in
ra, trong trng hp chiu di ca i s ln hn chiu di ti thiu thphm vi in ra s bng vi chiu di ca i s. S xc nh cc ch s thp phn Du .: l du dng phn bit hai nh dng trn
Bng 9:Mt sk tchuyn i v ngha ca chngK t ngha
d Bin i i s sang kiu s thp phnu Bin i i s sang kiu s thp phn khng duc Bin i i s thnh mt k ts Bin i i s thnh mt chui
e Bin i s sigle hay double thnh s thp phn c dng[ ]m.nnnnnnE[ ]xx.
f Bin i s sigle hay double thnh s thp phn c dng[ ]m.nnnnnn
g nh dng ging trng hp e v f nhng c vit dng ngnhn. Cc s zero khng c ngha s khng c in ra
-
8/2/2019 LT 102Trang
37/102
Cc nh dng \n, \r, \t, \b ln lt c d dng to ra mt dngmi, xung dng, tab v tab ngc (ngc vi phm tab). in ra k t \ tas dng \\, tng t, in ra k t % ta s dng %%.
Lu : lnh fprintf s dng cc chnh bin i khai bo c baonhiu i stheo sau v kiu ca tng i s. Nu chng ta khng cung cp i shay cung cp i skhng ng kiu th chng ta snhn c mt ktqu khng ng. Do vy, cn cn thn vi vic khai bo i s trong lnh
fprintf.V d:>> fprintf (My name is %4s. I am %2d. My salary is
f%7.2f.\n,name,salary);My name is Jonh. I am 6.130500e+03. My salary is f
-
8/2/2019 LT 102Trang
38/102
PHN I.II: NG DNG MATLAB TRONG XL TN HIU
CHNG IV: TN HIU V H THNG
M phng mt h thng vin thng l mt qu trnh lm vic vi cc tnhiu: khi to, bin i, thu pht, so snh, x l, . vic m phng ctin hnh thun li v hiu qu, cn phi c y cc cng c x l tn hiu cbn. i vi MATLAB, cc cng c ny c cung cp trong MATLAB SignalProcessing Toolbox. l mt tp hp cc hm c xy dng trn csccgii thut ton hc v h trhu ht cc thao tc x l tn hiu, bao gm: khito tn hiu, phn tch v thit k cc b lc tng t v s, phn tch ph, x ltn hiu thng k, phn tch cc h thng tuyn tnh, .
4.1. BIU DIN TN HIU TRONG MATLAB
MATLAB l mt mi trng tnh ton s, do mt tn hiu phi cbiu din thng qua cc mu d liu ri rc ca n (tn hiu c ly mu). Ni
cch khc mt tn hiu bt kc biu din bng mt vector hng (kch thc1 x n) hoc vector ct (kch thc n x 1)V d:>> x = [1 1.2 1.5 1.2 1 0.8 0.5 0.8]; biu din mt tn hiu a knh, ta s dng dng ma trn. Mt tn hiu
m knh c chiu di ng vi mi knh u bng n c biu din bng mt matrn kch thc nm, trong mi ct ca ma trn tng ng vi mt knh,mi hng ca ma trn ng vi mt thi im ly mu.
V d biu din ca mt tn hiu 3 knh:>> y = [x 2*x x/pi]y =
1.0000 2.0000 0.31831.2000 2.4000 0.38201.5000 3.0000 0.47751.2000 2.4000 0.38201.0000 2.0000 0.31830.8000 1.6000 0.25460.5000 1.0000 0.15920.8000 1.6000 0.2546
4.2. TO TN HIU: VECTOR THI GIAN
to mt tn hiu tng t trong MATLAB, cn c mt vector thigian xc nh cc thi im ly mu tn hiu. Tn hiu to ra s l mt vectorm mi phn t ca n chnh l gi tr ca mu tn hiu c ly thi imxc nh bi phn t tng ng ca vector thi gian.
V d, to tn hiu y = sin (100 t) + 2 sin (240 t), ta ly mu tn hiuti cc thi im cch nhau 0,001s v ta c cc vector thi gian v vector biudin tn hiu y nh sau:
>> t = (0:0.001:1);>> y = sin(2*pi*50*t) + 2*sin(2*pi*120*t);
-
8/2/2019 LT 102Trang
39/102
>> plot(t(1:100), y(1:100)) % v 100 mu u tin ca y
Hnh 11Vi phng php trn, ta c th khi to bt k tn hiu no ta mun, ch
cn xc nh biu thc thi gian ca n.Mt s tn hiu c bit
Cc tn hiu xung n v, hm nc n v v hm dc n v>> t = (0:0.001:1); %vector thi gian>> y = [1; zeros(99,1)]; %hm xung n v>> y = ones (100,1); % hm nc n v
>> y = t; % hm dc Cc tn hiu tun hon>> fs = 10000; % tn s ly mu>> t = 0:1/fs:1.5; % vector thi gian>> x = sin (2*pi*50*t); % Tn hiu lng gic (sine)>> y = square (2*pi*50*t); % Tn hiu sng vung>> x = sawtooth (2*pi*50*t); % Tn hiu sng rng ca Cc tn hiu aperiodic:
o Hm gauspuls (t, fc, bw) to mt xung Gaussian tn s RF cbin bng 1, tn s trung tm fc v bng thng bw.
o Hm chirp to tn hiu tn s qut, c nhiu phng php qut
khc nhau: tuyn tnh, bc hai hay logarithm. Ngoi ra, cn c cc hm to tn hiu nh:
o Hm sawtooth (t, width) to tn hiu rng ca hoc sng tam gicc cc nh 1 , chu k 2 , width l t l thi gian trn tng chuk
o Hm square (t, width) to tn hiu sng vung c cc mc l 1 ,chu k 2 , width l t l thi gian mc 1 trn tng chu k.
o Hm plustran: to mt chui cc xung c cng dng vi mtxung gc.
-
8/2/2019 LT 102Trang
40/102
o Hm sinc (x): l bin i Fourier ngc ca xung ch nht cchiu rng bng 2 v chiu cao bng 1.
( )( )sin x
sin c xx
=
(4.1)
x c th l mt vector hay mt ma trn.o Hm Dirichlet: cn gi l hm sinc tun hon hay hm sinc chng
ln, c nh ngha nh sau:
( )
( )( )
( )
( )
k n 1
n
1 x 2k , k Z
D x sin nx / 2otherwise
n sin x / 2
=
=
(4.2)
4.3. PHN TCH V THIT K CC B LC
Vn phn tch v thit k cc b lc c mt ngha rt quan trngtrong l thuyt x l tn hiu v bt k mt h thng tuyn tnh no cng c thxem nh l mt b lc vi mt p ng xung hoc mt hm truyn t no .
4.3.1. Cston hc ca qu trnh lc mt tn hiu l php ly tch chp.Nu x(k) l tn hiu ng vo, y(k) l tn hiu ng ra ca mt b lc c p ngxung l h(k) th y(k) chnh l tch chp ca x(k) v h(k).
( ) ( ) ( ) ( ) ( )i
y k h k *x k h k i x i
=
= = (4.3)
Nu x(k) v h(k) c chiu di hu hn th y(k) cng c chiu di hu hnv php ly tch chp ni trn c th thc hin bng cch gi hm conv trongMATLAB
>> y = conv (h, x)Chiu di ca vector y bng length (x) + length (h) 1.V d:>> x = rand(5,1) % tn hiu ngu nhin chiu di 5>> h = [1 1 1 1]/4 % b lc trung bnh chiu di bng 4>> y = conv (h,x)y =
0.23750.29530.44700.56850.5538
0.49600.34430.2228
4.3.2. Hm truyn t ca b lc: Nu X(z) l bin i z ca tn hiuvo x(k), Y(z) l bin i z ca tn hiu ra y(k) v H(z) l bin i z cah(k) th:
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )( )
1 n
1 m
b 1 b 2 z .... b n 1 zY z H z .X z X z
a 1 a 2 z .... a m 1 z
+ + + += =
+ + + +(4.4)
Trong : H(z) gi l hm truyn t ca b lc
-
8/2/2019 LT 102Trang
41/102
-
8/2/2019 LT 102Trang
42/102
ng vi mu th m ca ng ra, hm filter thc hin cc php tnh sau:( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
1
1 2
n 2 n 2
n 1
y m b 1 x m z m 1
z m b 2 x m z m 1 a 2 y m
........................
z m b n 1 x m z m 1 a n 1 y m
z m b n x m a n y m
= +
= +
= +
=
Dng c php cbn ca hm filter:>> [y, zf] = filter (b, a, x, zi)Trong : zi l vector xc nh cc gi tru ca ng ra cc khi tr
zf l vector cha cc gi tr ny sau khi thc hin xong hmfilter.
V d4.1: B lc thng thp tn s ct 0,4= c hm truyn t:
( )1 2 3
1 2 3
0,1 0,3z 0,3z 0,1zH z
1 0,58z 0,42z 0,06z
+ + +=
+
c dng lc b thnh phn tn s cao trong tn hiu x(n) = sin ( n/5) +
cos (4 n/5), vi 0 n 100 . Hy xc nh v v tn hiu raChng trnh>> b = [0.1000 0.3000 0.3000 0.1000]; % Cc h s ca a thc t>> a = [1.0000 -0.5800 0.4200 0.0600]; % Cc h s ca a thc mu>> n = (0:100) % vector thi gian>> x = sin(n*pi/5) + cos (4*n*pi/5); % tn hiu x(n)>> y = filter (b, a, x); % tn hiu ng ra b lc y(n)>> subplot (2, 1, 1);>> plot(x); grid; % v tn hiu vo>> title( Tin hieu vao);>> subplot (2, 1, 2);
>> plot (y); grid % v tn hiu ra>> title (Tin hieu ra);Kt qu chng trnh
Hnh 13
-
8/2/2019 LT 102Trang
43/102
4.4. CC HM KHC THC HIN B LC
Ngoi hm filter, thc hin qu trnh lc, trong Signal ProcessingToolbox, MATLAB cn cung cp thm mt s hm khv, bao gm hmupfirdn thc hin b lc FIR c ly mu li, hm filtfilt cho php loi bmo pha trong qu trnh lc, hm fftfilt thc hin qu trnh lc trong min tns, hm lectfilt thc hin b lc theo cu trc mng.
4.4.1. Thc hin bng lc a tc Cc bng lc a tc c th thc hin bng cch dng hm upfirdn.
Hm ny cho php thay i tc ly mu tn hiu theo mt t l P/Q vi P, Ql cc s nguyn. C th xem hm ny l kt qu ca s ghp lin tip ba hthng:
B ly mu ln ( chn thm bit 0) vi h s t l P B lc FIR c p ng xung h B l mu xung vi h s t l Q
Cu trc ni trn c thc hin bng k thut lc nhiu pha(polyphase). Dng c php ca hm upfirdn
>> y = upfirdn (x, h, P, Q)4.4.2. Kh mo pha cho b lc IIR
Trong trng hp b lc FIR, ta c th thit k b lc pha tuyn tnh, dliu ra ch lch so vi d liu vo mt s lng k hiu cnh. Nhng vi blc IIR, mo pha thng c tnh cht phi tuyn cao. Thng thng, ngi ta sdng cc thng tin v tn hiu ti cc thi im trc v sau thi im hin ti
khc phc hin tng mo pha ny. MATLAB xy dng hm filtfilt thchin gii thut ni trn.dng c php ca hm filtfilt>> y = filtfilt (b, a, x)
4.4.3. Thc hin b lc trong min tn sDo tnh cht i ngu gia hai min thi gian v tn s, bt k mt thao
tc no thc hin c trong min ny th u thc hin c trong min cnli.
Trong min tn s, b lc IIR c thc hin bng cch nhn bin iFourier ri rc (DFT) ca tn hiu vo vi thng s ca cc bin i Fourierca cc h s b lc.
V d:>> n = length (x);>> y = ifft (fft(x).*)Kt qu tnh ton tng t hm filter, tuy vn khc nhau on qu
lc u (hiu ng bin). Khi chiu di ca chui vo cng tng, phng phpny cng km hiu qu do phi thm vo nhiu im zero cho cc h s b lckhi tin hnh tnh FFT, ng thi gii thut FFT cng gim hiu qu khi sim n tng.
|PFIR
H |Qx(n) y(n)
-
8/2/2019 LT 102Trang
44/102
Ngc li, i vi b lc FIR, ta c th tch mt chui di thnh nhiuchui ngn hn, sau dng phng php chng v cng. Hm fftfilt caMATLAB c xy dng da trn gii thut ny.
>> y = fftfilt (b,x)>> fftfilt(b,x,n)Trong : x l chui vo, y l chui ra, b l vector cc h s ca b lc, n
l sim FFT ti thiu. Hm fftfilt (b, x) tng ng vi hm filter (b, 1, x).
4.5. P NG XUNG
p ng xung ca b lc l chui tn hiu ng ra ca b lc khi a vob lc mt tn hiu xung n v
( )1 n 0
x n0 n 0
==
(4.5)
tm p ng xung ca mt b lc, ta c th to mt chui xung n vri dng hm filter.
>> imp = [1; zeros(49,1)];
>> = filter (b, a, imp);
4.6. P NG TN S
Signal Processing Toolbox cho php thc hin cc php phn tch trongmin tn si vi c b lc tng t ln b lc s.
4.6.1. Trong min tn sTrong min s, p ng tn sc tnh ton bng gii thut FFT. Hm
freqz s tr vp ng tn s phc (FFT) p im ca b lc s c cc vector hs l a v b.
>> [H, W] = ferqz (b, a, p)
Trong : H l p ng tn s ca b lc c tnh ti p im tn s chobi vector W. Cc im tn sc chn cch u nhau v nm na trn cavng trn n v.
( )( ) ( ) ( )
( ) ( ) ( )
j j nj
j j m
b 1 b 2 e ... b n 1 eH e
a 1 a 2 e ... a m 1 e
+ + + +=
+ + + +(4.6)
Ngoi ra, cn c th cung cp cho hm freqz cc thng s khc nhau.Sau y l c php khc ca hm:
>> [h, w] = freqz (b, a, n, whole): tnh p ng tn s ti n im phnbu trn ton b vng trn n v.
>> h = freqz (b, a, w): tnh p ng tn s ti cc im xc nh bi
vector w>> [h, f] = freqz (b, a, n, fs) hoc [h, f] = freqz (b, a, n, whole, fs): tnhp ng tn s n im ca b lc vi tn s ly mu l fs, n im tn s phn bu trn khong [0, fs/2] (hoc [0, fs] nu dng whole)
>> h = freqz (b, a, f, fs): tnh p ng tn s ti cc im xc nh bivector f, trong fs l tn s ly mu.
Nu gi hm freqz m khng yu cu tr v cc thng s ra, hm freqzs vp ng bin v p ng pha ca b lc.
-
8/2/2019 LT 102Trang
45/102
Lu : trong MATLAB thng s dng cc gi tr tn s chun ha,trong tn sn v l tn sNyquist, tc mt na tn s ly mu. Munchuyn t tn schun ha sang tn sgc quanh vng trn n v, chcnnhn vi , mun chuyn t tn schun ha sang tn sHertz th nhn vimt na tn sly mu.
V d 4.2: Tnh v vp ng tn s 256 im ca b lc Butterworthbc 9, tn s ct 400Hz. Bit tn s ly mu l 2000Hz.
Chng trnh:>> [b,a] = butter (9, 400/1000); % cc h s ca b lc
Butterworth>> [h, f] = freqz ( b, a, 256, 2000) % p ng tn s>> freqz (b, a, 256, 2000)Kt qu
Hnh 144.6.2. Trong min analog
Hm freqz c th thc hin cc chc nng tng t nh hm freqznhng i vi cc b lc analog
>> [h,w] = freqz(b,a)>> h = freqz(b, a, w)
4.6.3. p ng bin v p ng pha:Mun c p ng bin v p ng pha ca mt b lc, ta ch cn xcnh p ng tn s ca n bng cch dng hm freqz hoc freqs, sau dnghm abs ly p ng bin hoc hm angle ly p ng pha.
MATLAB cn cung cp hm unwrap tr vp ng pha lin tc ti ccv tr 0360 (thng thng gc pha chc tnh trong phm vi 3600n +3600 nn ti cc v tr ny p ng pha s c bc nhy) bng cch thm vocc bi s ca 0360 nu cn thit.
Magnitude(dB)
Frequency (Hz)
Magnitude(dB)
Frequency (Hz)
-
8/2/2019 LT 102Trang
46/102
Ngoi ra, ta cng c th s dng hm phasez c p ng pha lin tcnh trn. C php ca hm phasez hon ton tng t nh hm freqz, ch khcl kt qu tr v l p ng pha thay v p ng tn s.
V d 4.3: xc nh v vp ng bin v p ng pha ca b lc FIRbc 25
Chng trnh>> h = fir 1(25, 0.4);>> [H, f] = freqz (h, 1, 512, 2);>> subplot(3, 1, 1);>> plot (f, abs(H)); grid>> title (Dap ung bien do);>> subplot (3, 1, 2);>> plot (f, angle(H)*180/pi); grid>> title (Dap ung pha (gian doan tai 360 do));>> subplot (3, 1, 3);>> plot (f, unwrap(angle(H))*180/pi);>> title (Dap ung pha (lien tuc));
Hnh 15
-
8/2/2019 LT 102Trang
47/102
4.6.4. Thi gian tr tr nhm ca mt b lc l mt thng snh gi thi gian tr trung
bnh ca b lc (l mt hm ca tn s). Nu p ng tn s phc ca b lc lH ( je ) th tr nhm c xc nh bng biu thc:
( )( )
g
d
d
=
(4.7)
Trong ( ) l p ng pha ca b lcTrong MATLAB, ta c th xc nh tr nhm bng cch dng hm
grpdelay vi c php hon ton tng t nh hm freqz.V d:>> [gd, w] = grpdelay(b, a, n)Tr v tr nhm ( )g ca b lc s xc nh bi cc vector h s a
v b, c tnh ti n im tn s xc nh bi vector w tr pha ca b lc c nh ngha bi:
( )( )
p
=
(4.8)
Tng t vi tr nhm, tr pha cng c thc xc nh bngcch dng hm phasedelay ( vi c php hon ton tng tfreqz )V d 4.4: Xc nh v v tr nhm v tr pha ca b lc
Butterworth bc 10, tn s ct 200Hz, vi tn s ly mu l 2000HzChng trnh>> fs = 2000;>> n = 128;>> [b,a] = butter (100, 200/1000);>> [gd, f] = grpdelay (b, a, n, fs);>> [pd, f] = phasedelay(b, a, n, fs);>> plot (f, gd, b-, f, pd, r- -); grid; hold on;
>> legend (Do tre nhom, Do tre pha);
Hnh 16
-
8/2/2019 LT 102Trang
48/102
4.7. GIN CC - ZERO
Ngoi cc cch biu din thng qua p ng xung hoc truyn t, mth thng tuyn tnh ni chung hay mt b lc ni ring cng c th biu dindi dng gin cc zero, tc l s phn b cc im cc v im zero cahm tryn t trong mt phng z.
Hm zplane cho php v gin cc zero ca mt h thng tuyn tnhnu chng ta cung cp cc im cc v zero ca hm truyn hoc cung cp ccvector h s a v b ca h thng.
>> zplane(z, p): v gin cc zero da vo vector cc zero z vvector cc im cc p.
>> zplane (b,a): v gin cc zero da vo vector cc h s a v b.Lu : gia m hnh hm truyn v m hnh cc zero c thc
chuyn i qua li bng cch dng cc hmtf2zp vzp2tf.>> [b, a] = zp2tf(z, p, k)>> [z, p, k] = tf2zp (b,a)Trong k l h s khuch i khi z
4.8. CC M HNH H THNG TUYN TNH
Mt h thng tuyn tnh c thc m t bng nhiu m hnh khcnhau nh m hnh hm truyn, m hnh cc zero. Trong MATLAB, SignalProcessing Toolbox cung cp cho ta mt cch y cc m hnh ny. Chngta c th la chn m hnh no thch hp m phng h thng mt cch nhanhchng v chnh xc nht.
4.8.1. Cc m hnh h thng ri rc theo thi gianCc m hnh h thng ri rc c MATLAB h trbao gm:
M hnh hm truyn t
M hnh li cc zero M hnh khng gian trng thi M hnh khai trin hu t (m hnh thng d) M hnh cc khu bc hai (SOS Second Order Sections) M hnh lattice M hnh ma trn chp
a. M hnh hm truyn tH thng c m t thng qua hm truyn t H(z) trong min z can:
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )
( )1 n
1 m
b 1 b 2 z .... b n 1 zY z H z .X z X z
a 1 a 2 z .... a m 1 z
+ + + += =
+ + + +
Cc h s b(i), a(i) l cc h s ca b lc, bc ca b lc l max {m, n}.trong MATLAB, hm truyn t c biu din bng hai vector a v b lu cch s ca b lc.
b. M hnh li cc - zeroHm truyn t ca h thng c th vit li di dng nhn t:
( )( )
( )
( )( ) ( )( ) ( )( )( )( ) ( )( ) ( )( )
z q 1 z q 2 ... z q nq zH z k
p z z p 1 z p 2 ... z p m
= =
(4.9)
-
8/2/2019 LT 102Trang
49/102
MATLAB biu din m hnh bng mt v hng k ch li v haivector z v p m cc phn t ca chng ln lt l cc zero (nghim ca q(z))v cc cc (nghim ca p(z))
Hm poly: tr v cc h s ca a thc nu bit cc nghim ca nHm roots: tr v cc nghim ca mt a thc ch cn cung cp cc h
s ca a thc.c. M hnh khng gian trng thiBt k mt b lc s no cng c thc biu din di dng mt h
thng cc phng trnh sai phn cp mt. C th l mt h thng tuyn tnh rirc c thoc m t bng h sau:
( ) ( ) ( )
( ) ( ) ( )
x n 1 Ax n Bu n
y n Cx n Dy n
+ = +
= +
(4.10)Trong : u tn hiu vo; x vector trng thi; y tn hiu ng ra
A mt ma trn kch thc m x n vi m l bc ca b lcB, C cc vector ct; D mt v hng
d. M hnh khai trin cc phn thc
Bt k hm truyn t h(z) no cng c th khai trin thnh tng ca ccphn thc hu t theo dng sau:
Khi H(z) khng c cc bi (nghim lp li)
( )( )
( )
( )
( )
( )
( )( ) ( ) ( ) ( )
m n11 1
b zH z
a z
r 1 r n... k 1 k 2 z ... k m n 1 z
1 p 1 z 1 p n z
=
= + + + + + + +
(4.11)
Khi H(z) c mt cc r no c lp li sr ln, th h(z) s c cc shng sau:
( )
( )
( )
( )( )
( )
( )( )r
r2 s1 1 1
r j r j 1 r j s 1...1 p j z 1 p j z 1 p j z
+ + + + + (4.12)
M hnh ny c biu din bng ba vector ct; vector p cha cc ccca H(z), vector r cha cc thng d tng ng vi cc cc (tc cc h s r(j)trong cc biu thc (4.11), (4.12)) v vector k cha cc h s k(i).
Vy length (r) = length (p) = length (a) 1.Hm residuez cho php chuyn i t m hnh hm truyn sang m hnh
thng d v ngc li>>[r, p, k] = residuez (b, a)>> [b,a] = residuez (r, p, k)b, a l cc h s ca b lc, cn (r, p,k ) biu din m hnh thng d ca
b lce. M hnh cc khu bc haiHm truyn h(z) cng c th biu din di dng:
( ) ( )1 2L L
0k 1k 2kk 1 2
k 1 k 1 0k 1k 2k
b b z b zH z H z
a a z a z
= =
+ += =
+ + (4.13)
Trong L l s khu bc hai trong h thng, mi hm Hk(z) biu dinmt khu bc hai
-
8/2/2019 LT 102Trang
50/102
MATLAB biu din m hnh SOS ca mt h thng bng mt ma trnkch thc L6 vi cc phn tc b tr nh sau:
01 0111 21 11 21
02 0212 22 12 22
0L 0L1L 2L 1L 2L
b ab b a a
b ab b a aSOS
... ...... ... ... ...
b ab b a a
=
(4.14)
f. M hnh latticeVi cc b lc ri rc bc n ton im cc hoc ton zero, c biu
din bi a thc vi cc h s a(i), I = 1, 2, , n+1, ta c th tm c n h stng ng k(i), i = 1, 2, , n, cc h s ny l c s xy dng cu trclattice cho b lc. Cc h s k(i) ny cn gi l cc h s phn x ca b lc.Hnh .. m t cu trc lattice ca cc b lc FIR v IIR vi cc h s phn xk(i) cho trc.
1: Ng ra pha cc tiu2: Ng ra pha cc i
1: Ng ra ton cc2: Ng ra ton thng
Hnh 17: a) B lc FIR cu trc latticeb) B lc IIR cu trc lattice
Vi b lc IIR tng qut (c c cc ln zero) c cc h s b lc chatrong cc vector a v b, ngoi cc h s k(i) ng vi vector a cn c cc h sv(i), i = 1, 2, , N+1, gi l cc h s bc thang. Cu trc lattice ca b lc xy
dng trn cc h s k(i) v v(i) c m thnh tm cc h s ca cu trc lattice t cc h s a, b ca b lc, ta dnghm tf2latc:
>> k = tf2latc (num) hoc k = tf2latc(num,max) hoc k = tf2latc(num,min) tr v cu trc lattice ca b lc FIR hoc b lc FIR pha cc i hoccc tiu.>> k = tf2latc (1, den) tr v cu trc lattice ca b lc IIR ton cc
>> [k,v] = tf2latc(num, den) tr v cu trc lattice ca b lc IIR tngqut
Z-1 Z-1
x(m)
k(i)
k(i)
k(n)
k(n)
y(m)1
2
a)
Z-1 Z-1
x(m) -k(n)
-k(n)
-k(i)
-k(i)
y(m)1
2
b)
-
8/2/2019 LT 102Trang
51/102
Trong : num, den l cc vetor h s ca b lc cn k l vector cc hs lattice, v l vector cc h s bc thang.
Hnh 18:Cu trc lattice ca b lc ARMA(1): Ng ra ARMA
Ngc li, t cu trc lattice ca b lc c th suy ra hm truyn t cab lc bng cch dng hm latc2tf.
>>[num, den] = latc2tf(k,v)>>[num, den] = latc2tf (k,allpole) (k: cu trc lattice ca b lc IIRton cc)
>>[num, den] = lact2tf (k,aiipass) (k: cu trc lattice ca b lc IIRton thng)
>>num = lact2tf(k)>>num = lact2tf(k, max) (k: cu trc lattice ca b lc FIR pha cc i)>>num = lact2tf(k, min) (k: cu trc lattice ca b lc FIR pha cc
tiu)g. M hnh ma trn chpTrong l thuyt x l tn hiu, php ly tch chp hai vector hay hai ma
trn tng ng vi qu trnh lc mt trong hai vector ny bng mt b lc ch s xc nh bi vector cn li. Trn cs, ta c th m t mt b lc bngmt ma trn chp.
Vi mt vector b cho trc, hm convmtx s to ra mt ma trn chp saocho tch ca ma trn ny vi mt vector x no s bng vi tch chp cavector cho trc b vi vector x, vi iu kin vector x phi c chiu di thchhp vi kch thc ca ma trn chp php nhn ma trn c ngha.
V d: Gi s mt b lc FIR c cc h s l b = [1 2 3], ma trn chpca n c xy dng nh sau:
>> b = [1 2 3]; x = rand (3,1);>> C = convmtx (b, 3)
C = 1 0 02 1 03 2 10 3 20 0 3
Nh vy, c hai cch tng ng tnh tch chp ca b v x>> y1 = C*x;>> y2 = conv (b, x);
Z-1 Z-1Z-1
x(m)
g(m)
k(N)
k(N)
v(N+1)
k(2)
k(2)
k(1)
k(1)
v(1)
f(m)
(1)
-
8/2/2019 LT 102Trang
52/102
4.8.2. Cc m hnh h thng lin tc theo thi gianCc m hnh h thng lin tc theo thi gian dng m t cc b lc
analog. a s cc m hnh xy dng cho cc h thng ri rc cp trn cng c th p dng cho cc h thng lin tc theo thi gian. C th l ccm hnh sau:
M hnh khng gian trng thi
M hnh khai trin phn thc hu t M hnh hm truyn t M hnh li cc zero
M hnh khng gian trng thi biu din h thng bng mt h ccphng trnh vi phn bc nht:
x Ax Bu
y Cx Du
= +
= +(4.15)
Trong : u l vector cc ng vo (chiu di nu), y l vector cc ng ra(chiu di ny), x l vector bin trng thi (chiu di nx). A, B, C, D l cc matrn v MATLAB dng cc ma trn ny biu din m hnh khng gian trngthi ca h thng.
H thng lin tc cng c thc m t bng m hnh hm truyn tbng Laplace H(s)
Y(s) = H(s).U(s) (4.16)Gia hm truyn t H(s) vi cc ma trn A, B, C, D c mi lin h:
H(s) = C(sI A)-1 B + D (4.17)Vi h thng mt ng vo, mt ng ra, hm H(s) c dng:
( )( ) ( ) ( )
( ) ( ) ( )
n n 1
m m 1
b 1 s b 2 s ... b n 1H s
a 1 s a 2 s ... a m 1
+ + + +=
+ + + +(4.18)
MATLAB biu din m hnh hm truyn t Laplace bng hai vector av b lu cc h s a(i) v b(i).
Hm truyn t Laplace cng c thc biu din di dng nhn t:( )
( )
( )
( )( ) ( )( ) ( )( )( )( ) ( )( ) ( )( )
s z 1 s z 2 ... s z nz sH s k
p s s p 1 s p 2 ... s p m
= =
(4.19)y chnh l cscho vic xy dng mt m hnh khc cho h thng
lin tc, l m hnh li cc zero. Tng t nh h thng ri rc,MATLAB biu din m hnh ny bng mt v hng k ch li v hai vectorp v z ca cc cc v zero ca H(s).
4.8.3. Cc php bin i h thng tuyn tnhBng . Tm tt cc hm MATLAB dng chuyn i gia cc m
hnh h thng tuyn tnh. chuyn i t mt m hnh (ngun) sang mt mhnh khc (ch), ta xut pht t hng c cha tn m hnh ngun, sau tmn ng vi ct mang tn m hnh ch, ni dung trong ny chnh l tnhm thc hin chuyn i.
-
8/2/2019 LT 102Trang
53/102
Bng 10Hm
truynt
Khnggian
trngthi
li cc zero
Phn thchu t
B lclattice
SOS Ma trnchp
Hmtruynt
tf2sstf2zproots
residuez tf2latcKhng
cconvmtx
Khnggiantrngthi
ss2tf ss2zpKhng
cKhng
css2sos
Khngc
li cc zero
zp2tfpoly
zp2ssKhng
cKhng
czp2sos
Khngc
Phnthc hu
tresiduez
Khngc
Khngc
Khngc
Khngc
Khngc
B lclattice lact2tf
Khngc
Khngc
Khngc
Khngc
Khngc
SOS
sos2tf sos2ss sos2zp
Khng
c
Khng
c
Khng
c
4.9. BIN I FOURIER RI RC
Bin i Fourier ri rc (DFT Discrete Fourier Transform) l cng ccbn nht trong x l s tn hiu. Trong Signal Processing Toolbox, hu htcc hm u c s dng gii thut FFT (mt gii thut tnh DFT nhm gimthi gian thc thi)
Trong MATLAB c hai hm fft v ifft dng tnh ton bin i DFTthun v ngc bng gii thut FFT. Vi mt chui tn hiu vo x v bin iDFT ca n l X, gii thut FFT c thc hin trn cscc biu thc sau:
( ) ( )
( ) ( )
N 1knN
n 0
N 1kn
Nk 0
X k 1 x n 1 W
1x n 1 X k 1 W
N
=
=
+ = + + = +
(4.20)
Trong ( )j 2 / N
NW e =
C php ca cc hm fft v ifft nh sau:>> fft(x)>>ifft(x, N)Trong : x l chui tn hiu vo cn N l sim FFT. Nu x c t hn
n im, hm fft s tng chn thm zero vo, nu x c nhiu hn N im,hm s tng ct b cc im tha.
>> ifft(X)>>ifft(X, N)Trong : X l bin i DFT ca tn hiu vo, N l sim FFTV d 4.5: Hy xc nh v v bin v pha ca bin i DFT ca tn
hiu x(t) = sin(30 t) + sin(80 t), tn s ly mu 100Hz. Dng bin i DFTngc khi phc li tn hiu ban u. So snh vi tn hiu gc.
Chng trnh
-
8/2/2019 LT 102Trang
54/102
>> t = (0:1/100:10-1/100) % Vector thi gian;>> x = sin (2*pi*15*t) + sin (2*pi*49*t); %Tn hiu x(t)>> y = fft (x); % Bin i DFT ca x>> m= abs(y); p = unwrap(angle(y)); % Bin v pha>> f = (0:length(y) -1)*99/length(y); % Vector tn s>> subplot (1, 2, 1);>> plot (f, m); title(Bien do);>> set (gca, Xtick, [15 40 60 85]);>> subplot(1, 2, 2); plot(f, p*180/pi); title (Pha);>> set(gca, Xtick, [15 40 60 85]);>> xr = real(ifft(y)); % Bin i FFT ngc>> figure;>> plot (t, x,b-,t,xr,r- -);>>legend (Tin hieu goc,Tin hieu khoi phuc);Kt qu:
Hnh 19: Bin i DFTNgoi hai hm cbn nu trn, trong Signal Processing Toolbox cn c
mt s hm khc tnh DFT v IDFT:Hm fft2 v ifft2 tnh bin i DFT v IDFT 2 chiu ca ma trn x>> fft2(x);>> fft2(x, M, N); % m, N s hng v ct ca ma DFT>> ifft2(X)
>>ifft2(X, M, N)Hm goertzel tnh bin i DFT theo gii thut Goertzel>> X = goertzel (x, indvec)Trong : x l tn hiu vo, cn indvec l vector ch s (mc nh l 1:
N)i khi ta cn sp xp li chui vo sao cho cc im zero trong chui
ng ra nm khong gia chui. Khi ta dng hm fftshift>> X = fftshift(x)
-
8/2/2019 LT 102Trang
55/102
CHNG V: THIT K CC B LC
Thit k b lc l mt qu trnh xc nh cc h s ca b lc sao chotha mn mt s yu cu thit k. Thc hin b lc l qu trnh la chn v pdng mt cu trc thch hp cho b lc da trn cc h s xc nh trong qutrnh thit k. y l hai qu trnh cbn cn thc hin trc khi c th s dng
b lc lc mt tn hiu no .5.1. CC CH TIU THIT K B LC
Ni chung, mt ch tiu thit k cht chi hi b lc phi tha mnnhng yu cu vp ng tn s bao gm: di thng, di chn, gn sng dithng, suy hao di chn, rng vng chuyn tip. Nhng yu cu chi tit hnc th l: chn b lc c bc ti thiu, chn dng p ng bin hoc yu cus dng b lc FIR.
Trong min tn s, b lc c c trng bi p ng tn s. Da vop ng tn s ca b lc, ton b di tn s c thc chia thnh ba vng:
di thng, di chn v di chuyn tip. Trong thc t, p ng bin trong dithng khng phi l hng s m bin thin trong khong (1 1 )H0 vi H0 l p
ng bin trung bnh. 1 c gi l gn sng di thng. Tng t, p ngbin trong di chn khng phi lun bng 0 m bin thin trong khong t 0n 2 H0 vi 2 l gn sng di chn. B lc c cht lng tt phi c dichuyn tip hp v cc gn sng nh. Hnh .. biu din cc thng s nitrn ca p ng tn s:
Hnh 20Trong MATLAB, ch tiu gn sng di chn c thay bng mt ch tiu
tng t, l suy hao di chnVi cc ch tiu p ng tn s chn, phng php thit k cn phthuc vo cht lng mong mun ca b lc. Nu ch cn cht lng thp, ta cth dng cc thit kn gin; nu i hi cht lng cao th phi dng ccphng php phc tp hn.
Tt c cc hm thit k b lc trong MATLAB u s dng tn s chunha (theo tn n v l tn s Nyquist, tc l tn s ly mu), do khngcn phi cung cp thm thng s tn s ly mu khi gi cc hm ny. Mun
-
8/2/2019 LT 102Trang
56/102
chuyn t tn s chun ha sang tn s gc, ta nhn vi ; mun chuyn sangtn s Herzt, ta nhn vi tn s ly mu
Cc phng php thit k b lc sc phn thnh hai nhm: thit kb lc IIR v thit k b lc FIR
5.2. THIT K B LC IIR
u im: B lc IIR c kh nng tha mn cc ch tiu thit k vi bcca b lc thp hn so vi b lc FIR tng ng
Nhc im: B lc IIR c tnh cht pha phi tuynKhc phc: Do c im ca qu trnh x l d liu trong MATLAB l
ton b chui d liu vo c xc nh trc khi thc hin lc, do c thxy dng b lc khng nhn qu, c pha bng 0 (thng qua hm filtfilt) loib mo pha phi tuyn.
Cc phng php thit k b lc IIR c s dng trong MATLAB gmc:
Phng php thit k cin da trn cc nguyn mu analog. Bao gm
cc b lc: Butterworth, Chebychev loi I, Chebychev loi II, elliptic vBessel Phng php thit k trc tip tm mt b lc c p ng bin xp x
mt hm m ngi thit k mong mun. y cng l mt phng php xy dng mt b lc thng di nhiu bng
Phng php m hnh thng s Phng php thit k Butterworth tng qut.Bng tm tt cc phng php thit k b lc IIR cng vi cc hm c
MATLAB cung cp thc hin cc phng php ny.
Bng 11
Phng phpthit kM t Cc hm MATLAB tng ng
Da vo ccb lc analog
S dng cc ccv zero ca cc blc thng thp cin trong minLaplace (lin tc),chuyn thnh blc s bng ccphp bin i tns v ri rc ha
b lc
Cc hm thit k b lc hon chnh:besself, butter, cheby1, cheby2, ellip.B Cc hm c lng bc ca b lc:buttord, cheb1ord, cheb2ord, ellipord. Cc hm to cc b lc thng thp tngt: besselap, buttap, cheb1ap, cheb2ap,ellipap. Cc hm thc hin cc php bin i tns: lp2bp, lp2bs, lp2hp, lp2lp. Cc hm ri rc ha b lc: bilinear,impinvar.
Thit k trctip
Thit k b lc strc tip trongmin thi gian rirc bng phngphp tim cnbin
Yulewalk
-
8/2/2019 LT 102Trang
57/102
Thit kButterworth
tng qut
Thit k cc blc thng thpButterworth c szero nhiu hn scc
Maxflat
M hnhthng s
Tm mt b lc sxp x mt png thi gian hocp ng tn snh trc
Cc hm to m hnh trong min thi
gian: lpc, prony, stmcb. Cc hm to m hnh trong min tn s:invfreqs, invfreqz.
By gita xt c th tng phng php thit k c th.5.2.1. Thit k cc b lc IIR cin da trn cc nguyn mu analog
Nguyn tc thit k b lc IIR cin l da trn s chuyn i t ccb lc thng thp analog thnh cc b lc s tng ng. Qu trnh thit k blc IIR cin bao gm cc bc sau:
Tm mt b lc thng thp tng t vi tn s ct bng 1 v dng php
bin i tn s chuyn b lc nguyn mu ny thnh b lc vi cuhnh cc di thng v di chn nh ta mong mun Chuyn b lc ni trn sang min tn s Ri rc ha b lc
5.2.1.1. Thit k cc b lc nguyn mu analogMATLAB cung cp cc hm khi to cc b lc thng thp tng t
c tn s ct bng 1, y l bc u tin trong quy trnh thit k b lc IIR cin. C 5 kiu b lc thng thp analog. l:
Bng 12Kiu b lc C php hm MATLAB tng ng
Bessel [z, p, k] = besselap (n)Butterworth [z, p, k] = buttap(n)Chebychev I [z, p, k] = cheb1ap (n, Rp)Chebychev II [z, p, k] = cheb2ap (n, Rs)Elliptic [z, p, k] = ellipap (n, Rp, Rs)
a. B lc Bessel: L b lc ton im cc vi hm h thng:
( )( )N
1H s
B s= (5.1)
Trong : BN(s) l a thc Bessel bc N, xc nh bng cng thc truy
hi: ( ) ( )( ) ( ) ( ) ( )
0 12
N N 1 N 2
B s 1, B s s 1
B s 2N 1 B s s B s
= = +
= +(5.2)
B lc Bessel c tr nhm phng ti a ti tn s bng 0 v gn nhbng phng trong ton b di thng. Do , b lc Bessel c p ng pha tuyntnh trn ton di thng. c tnh ny cho php tn hiu sau khi lc gi nguyndng sng trong phm vi tn s ca di thng. Tuy nhin c tnh ny b mtkhi ta chuyn sang min tn s. V vy MATLAB ch h trcho thit k b lcBessel analog.
-
8/2/2019 LT 102Trang
58/102
tha mn iu kin suy hao di chn, b lc Bessel cn c bc cao
hn so vi cc loi b lc khc. Khi 1 = th ( )1
H j2
< v gim dn khi bc
ca b lc tng ln.
b. B lc Butterworth: L b lc ton im cc, c p ng tn s:
( )2
2N1H 1 = +
Trong : N l bc ca b lcp ng tn s ca b lc Butterworth bng phng trong cc di thng
v di chn, l hm n iu trn [0, + )c. B lc Chebychev loi IB lc Chebychev I ti thiu ho tr tuyt i ca sai s gia p ng tn
s thc t v l tng trn ton b di thng bng cch a vo mt lng gnsng cn bng trong ton di thng Rp (tnh bng dB). y l b lc ton imcc, c p ng gn sng cn bng trong di thng v p ng bng phngtrong di chn. Trong thi gian chuyn tip t di thng sang di chn nhanh
hn b lc Butterworth. ( )Rp/20
H j 10 = ti 1 = vi Rp l gn sng dithng.
p ng bin :
( )( )
2
2 2N
1H
1 T =
+ (5.3)
Trong : l mt h s ph thuc vo gn sng di thngRp/20
1 10 =
( )
22
1
11
1 =
(5.4)
TN(x) l a thc Chebychev bc N, xc nh bng cc cng
thc truy hi:( ) ( )
( ) ( ) ( )
0 1
N 1 N N 1
T x 1,T x x
T x 2xT x T x , N 1, 2,...+ -
= = = - =
(5.5)
d. B lc Chebychev IIB lc Chebychev loi II ti thiu ho tr tuyt i ca sai s gia p
ng tn s thc t v l tng trn ton b di chn bng cch a vo mtlng gn sng cn bng trong ton di chn Rs (tnh bng dB). L b lc c ccc v zero, p ng bng phng trong di thng v gn sng trong di chn.Di chn tin v 0 chm hn so vi b lc Chebychev loi I, thm ch khnghi t v 0 nu N chn. Tuy nhin, u im ca n l di thng bng phng.
( ) Rs/202H j 10 = = ti 1 = vi Rs l gn sng di chn.
( )( )
2
2 2N
1H
1 1/ T =
+
(5.6)B lc Chebychev i hi t im cc hn so vi b lc Butterwurth c
cng thng s yu cu.e. B lc elliptic
-
8/2/2019 LT 102Trang
59/102
L b lc gn sng c di thng v di chn, p ng tn s c c ccln zero v c m t bi phng trnh:
( )( )
2
2N
1H
1 U =
+ (5.7)
Trong : UN(x) hm elliptic Jacobian bc N - mt h s ph thuc vo gn sng di thng
Rp = 10 log10(1+2
)Do sai sc tri u trn cc di thng v di chn nn b lc Ellipticl b lc hiu qu nht trn phng din ti thiu ho s bc ca b lc. Nucng thng s bc v cc yu cu khc th b lc elliptic s c di chuyn tipnh nht. ( ) Rp/201H j 10
= = ti 1 = vi Rp l gn sng di thng.
V d 5.1: Khi to mt b lc elliptic tng t c bc N = 5, gn sngdi thng Rp = 0.5, gn sng di chn Rs = 10. Vp ng bin ca b lc
Chng trnh>> [z, p, k] = ellipap (5, 0.5,20);>> w = logspace (-1, 1, 1000);>> h = freqs(k*poly(z), ploy(p),w);>>semilogx(w, abs(h)), grid
5.2.1.2. Bin i tn sBc th hai trong qu trnh thit k b lc IIR cin l dng cc php
bin i tn s chuyn t cc nguyn mu b lc thng thp analog c tn sct bng 1 thnh cc b lc analog thng thp, thng cao, thng di, hoc chndi c cc tn s ct nh ta mong mun.
Danh sch cc hm MATLAB thc hin cc php bin i tn s nitrn cng vi cc c php tng ng ca chng.
Bng 13: Cc hm thc hin cc php bin i tn s.
Loi bin i Quy tc bin i Hm thc hin bin iThng thpsang thng
thp0
ss =
[numt, dent] = lp2lp(num,den,W0)[At, Bt, Ct, Dt] = lp2lp(A, B, C, D, W0)
Thng thpsang thng
cao
0ss
=
[numt, dent] = lp2hp(num,den,W0)[At, Bt, Ct, Dt] = lp2hp(A, B, C, D, W0)
Thng thpsang thng
di
( )
( )
02
0 0
s /BWs
s / 1
=
+
[numt, dent] = lp2bp(num,den,W0, Bw)[At, Bt, Ct, Dt] = lp2bp(A, B, C, D, W0,Bw)
Thng thp
sang chndi
( )
( )
2
00
0
s / 1
s BW s /
+
=
[numt, dent] = lp2bs(num,den,W0, Bw)
[At, Bt, Ct, Dt] = lp2bs(A, B, C, D, W0,Bw)
T bng trn ta thy rng cc php bin i tn s c th thc hin ivi hai dng m hnh h thng tuyn tnh: m hnh hm truyn t v m hnhkhng gian trng thi. M hnh hm truyn t c biu din bng hai vector(num, den) (hoc (numt, dent) sau khi bin i); cn m hnh khng gian trngthi biu din bng 4 ma trn (A, B, C, D) (hoc (At, Bt, Ct, Dt) sau khi bini).
-
8/2/2019 LT 102Trang
60/102
i vi cc b lc thng thp v thng cao, 0 chnh l tn s ct. i
vi cc b lc thng di v chn di, BW v 0 c xc nh nh sau:
2 1BW = (5.8)
0 1 2 = (5.9)
Trong 1 v 2 l cc tn s ct ca b lc.
Trong trng hp thng di v chn di, do s dng php bin i bchai nn bc ca b lc mi s gp i bc ca b lc c.V d 5.2: Thit k mt b lc thng di tng t thuc dng Chebychev
loi I c bc n = 10, gn sng di thng Rp = 3dB, gn sng di chn Rs = 20.
Cc tn s ct l 1 5
= v 2 = . Vp ng bin ca b lc.
Chng trnh>> [z, p, k] = cheb1ap(5,3) % B lc Chebychev loi I bc 5, Rs = 3dB>> [A, B, C, D] = zp2ss(z, p, k) % Chuyn sang dng khng gian trng
thi>> u1 = 0.1*2*pi; u2 = 0.5*2*pi; % Cc tn s ct on v (rad/s)
>> Bw = u2 - u1;>> Wo = sqrt(u1*u2);>> [At, Bt, Ct, Dt] = lp2bp(A, B, C, D, Wo, Bw);>> [b, a] = ss2tf(At, Bt, Ct, Dt); % Chuyn sang dng hm truyn t>>w = linspace (0.01, 1, 500)*2*pi; % To vector tn s>> h = freqs (b, a, w); % Tnh p ng tn s.>> semilogy(w/2/pi, abs(h)), grid % Vp ng bin >>xlabel(Frequency(Hz));
Hnh 215.2.1.3. Ri rc ho b lcBc cui cng trong khu thit k b lc IIR l chuyn b lc t min
tng t sang min s. C hai lng php thc hin vic ny: Phng phpbt bin xung (impinvar) v Phng php bin i song tuyn tnh (bilinear).
Bng 14: Cc hm thc hin ri rc ho b lc tng tBin i tng t - s Hm thc hin bin iBt bin xung [numd, dend] = impinvar (num, den, fs)
[numd, dend] = impinvar (num, den, fs, tol)Bin i song tuyn tnh [zd, pd, kd] = bilinear (a, p, k, fs, Fp)
[numd, dend] = bilinear (num, den, fs, Fp)[Ad, Bd, Cd, Dd] = bilinear (At, Bt, Ct, Dt, fs, Fp)
a. Phng php bt bin xung: xy dng mt b lc s m p ng xungca n l cc mu ri rc ca p ng xung ca b lc tng t ban u. TrongMATLAB, phng php ny c thc hin bi hm impinvar. Hm ny chchp nhn m hnh hm truyn t ca b lc.
t kt qu tt nht, b lc tng t phi khng c thnh phn tn sno ln hn tn s ly mu, v cc thnh phn tn s ny s chng ln vo dithng thp trong qu trnh ly mu (tiu chun Nyquist). Phng php bt binxung c th c tc dng i vi mt s b lc thng thp v thng di nhngkhng thch hp i vi cc b lc thng cao v chn di.
-
8/2/2019 LT 102Trang
61/102
b. Phng php bin i song tuyn tnhPhp bin i song tuyn tnh l mt nh x t min lin tc (min s)
sang min s (min z). Php bin i ny bin hm truyn Laplace H(s) trongmin s thnh hm truyn t H(z) trong min z theo quy tc sau:
( ) ( ) z 1s k
z 1
H z H s =
+
= (5.10)
Php bin i song tuyn tnh bin trc o j trong mt phng s thnh
vng trn n v trong mt phng z. Mt im trn trc o c tung s trthnh im trn vng trn n v c:
12tank
=
(5.11)
Php bin i song tuyn tnh c thc hin bng hm bilinear. Gi trmc nh ca h s k l (2*Fs) (Fs: tn s ly mu). Nu cung cp thm thngs Fp( gi l tn s phi hp) th:
( )p
p s
2 fk
tan f / f
=
(5.12)
Nu c s hin din ca thng s Fp, php bin i song tuyn tnh s
bin i tn s p2 f = thnh cng tn s trong min z, nhng c chunho theo tn s ly mu Fs:
p
s
2 f
f
= (5.13)
Hm bilinear c th thc hin php bin i tuyn tnh trn ba dng mhnh h thng tuyn tnh: m hnh li - cc zero, m hnh hm truyn tv m hnh khng gian trng thi
Trong v d trn c th ri rc ho b lc to c bng cch dng hmbilinear vi tn s ly mu 2Hz
>> [Ad, Bd, Cd, Dd] = bilinear (At, Bt, Ct, Dt, 2, 0.1);
>>[bz, az] = ss2tf (Ad, Bd, Cd, Dd); % chuyn v m hnh hmtruyn t
V d 5.3: Hiu chnh li v d trn ng thi p dng php bin i songtuyn tnh thit k b lc s Chebychev loi I, bc 10, di thng 0.1 0.5Hz,tn s ly mu 2Hz.
Chng trnh>> [z, p, k] = cheb1ap(5,3); % B lc Chebychev loi I bc 5, Rs = 3>> [A, B, C, D] = zp2ss(z, p, k); % Chuyn sang dng khng gian trng thi>> fs = 2; % Tn s ly mu (Hz)>> u1 = 2*fs*tan(0.1*(2*pi/fs)/2); % Tn s ct thp (rad/s)>> u2 = 2*fs*tan(0.5*(2*pi/fs)/2); % Tn s ct cao (rad/s)
>> Bw = u2 - u1; % Bng thng>> Wo = sqrt(u1*u2); % Tn s trung tm>> [At, Bt, Ct, Dt] = lp2bp(A, B, C, D, Wo, Bw);>> [Ad, Bd, Cd, Dd] = bilinear(At, Bt, Ct, Dt, 2,0.1);>> [bz, az] = ss2tf (Ad, Bd, Cd, Dd); % Chuyn v m hnh hm truyn t.>> [h, f] = freqz (bz, az, 256, 2); % Tnh p ng tn s>> semilogy (f, abs(h)), grid % Vp ng bin >> xlabel(Frequency(Hz));>> title (Dap ung bien do);
-
8/2/2019 LT 102Trang
62/102
Kt qu
Hnh 225.2.1.4. Cc hm thit k b lc IIR hon chnh thun tin cho ngi s dng khi thc hin qu trnh thit k cc b
lc IIR cin, MATLAB cng cung cp cc hm thit k hon chnh cc b
lc IIR thay v phi thc hin tng bc quy trnh thit k nhphn trn. Cchm ny tch hp cc quy trnh cp trn y li, trong bc th baca qu trnh, tc l bc ri rc ha cc b lc tng t, cc hm ny u sdng phng php bin i song tuyn tnh.
a. B lc Butterworth: dng hm 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 gm hai phn t xc nh cc tn s ct (vi ccb lc thng thp, thng cao, Wn tr thnh v hng). Wn c chunho theo tn s ly mu.
form l mt chui xc nh dng b lc: low (b lc thngthp), high (thng cao), stop (chn di). Nu Wn c hai phn t vkhng c thng s form, hm s to ra b lc thng di. to cc b lc tng t, ta thm vo chui s vo danh sch ccthng s.MATLAB cng cung cp hm buttordc lng bc lc ti thiu
tha mn cc yu cu thit k>> [N, Wn] = buttord (Wp, Ws, Rp, Rs)
-
8/2/2019 LT 102Trang
63/102
Cc thng s nhp ca n bao gm cc tn s ngng ca di thng vdi chn Wp v Ws, cc gi tr mong mun ca gn sng di thng ti a vsuy hao ti thiu ca di chn (Rp, Rs). Hm tr v bc ti thiu ca b lccng vi vector Wn cung cp cho hm butter.
b. B lc Chebychev loi I: dng hm cheby1>> [b, a] = cheby1 (n, Rp, Wn, form)>> [z, p, k] = cheby2 (n, Rp,Wn, form)>> [A, B, C, D] = cheby1 (n, Rp, Wn, form)Cc thng s nhp tng t hm butter, thm vo thng s gn sng
di thng Rp (tnh bng dB). c lng bc ca b lc, dng hmcheb1ord.
c. B lc Chebychev loi II: dng hm cheby2:>> [b, a] = cheby2 (n,Rs, Wn, form)>> [z, p, k] = cheby2 (n, Rs, Wn, form)>> [A, B, C, D] = cheby2 (n, Rs, Wn, form)Trong Rs l gn sng di chn (tnh bng dB). Hm cheb2ord cho
php c lng bc ca b lc.
d. B lc elliptic: dng hm ellip:>> [b, a] = ellip (n, Rp, Wn, form)>> [z, p, k] = ellip (n,Rp, Wn, form)>> [A, B, C, D] = ellip (n, Rp, Rs, Wn, form)Hm ellipord cho php c lng bc ca b lc.e. B lc Bessel: dng hm besself( ch thit k b lc tng t)>> [b, a] = besslf (n, Wn, form)>> [z, p, k] = besself (n, Wn, form)>> [A, B, C, D] = besself (n, Wn, form)Khng c hm c lng bc ca b lc.V d 5.4: Thit k mt b lc thng di c bng thng t 1000Hz
2000Hz, di chn bt u cch cc tn s trn 500Hz, gn sng di thng ti al 1 dB, suy hao di chn ti thiu l 60dB. Tn s ly mu l 10kHz. S dngb lc Butterworth.
Chng trnh>> [n, Wn] = bttord ([1000 2000]/5000,[500 2500]/5000, 1, 60);
% c lng bc ca b lc v cc tn s ctn =
12Wn =
0.1951 0.4080>> [b, a] = butter (n, Wn); % Thit k b lc.
5.2.2. Thit k trc tip cc b lc IIR trong min sy l phng php thit k trc tip trong min ri rc da vo mt png tn s mong mun m khng da vo cc b lc analog. Phng php thitk ny khng b b buc trong cc dng cu hnh thng thp, thng cao, thngdi hay chn di m ta c th thit k mt b lc s vi p ng tn s bt k,c th l gm nhiu di tn s.
Phng php ny c thc hin vi hm yulewalk. Gii thut m hmny s dng l: tm bin i ngc FFT ca ph cng sut l tng mong munv gii h phng trnh Yule Walker s dng cc mu d liu ca hm t
-
8/2/2019 LT 102Trang
64/102
tng quan tm c. B lc IIR c thit k theo phng php ny l b lcIIR quy vi phng php bnh phng cc tiu.
C php>> [b, a] = yulewalk(n, f, m)Trong : n: l bc ca b lc
F: l vector tn sM l vector p ng bin tng ng vi F
Phng php ny khng quan tm n p ng pha. (b, a) l cc vectorh s ca b lc c thit k.
V d: Dng hm yulewalk thit k mt b lc c hai bng, vp ngtn s thc t v p ng tn s mong mun.
>> m = [0 0 1 1 0 0 1 1 0 0];>> f = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1];>> [b, a] = yulewalk (10, f, m);>> [h, w] = freqz (b, a, 128)>> plot (f, m, w/pi, abs(h)); grid
5.2.3. Thit k b lc Butterworth tng qut
Hm maxflat cho php ta thit k cc b lc Butterwith tng qut, tc lb lc Butterworth vi s cc v s zero khc nhau. iu ny c li trong mts trng hp khi m vic tnh ton cc cc phc tp hn so vi cc zero. Cphp hm maxflat tng t nh hm butter, nhng khc ch ta c th cungcp hai thng s bc ca b lc, mt cho a thc t s v mt cho a thc mus.
B lc ny c c im l c phng ti a, c ngha n c ti uha sao cho vi mi gi tr ca bc ca cc a thc t s th o hm ca png tn s ti tn s = u bng 0
>> [b, a] = maxflat (nb, na, wn)
5.3. THIT K B LC FIRCc b lc FIR l cc b lc c p ng xung hu hn v l b lc ton
zero. So vi b lc IIR, cc b lc FIR c nhng u im ni bt sau: Pha tuyn tnh Lun lun n nh Phng php thit k ni chung l tuyn tnh C th thc hin mt cch hiu qu bng phn cng p ng qu ch tn ti trong thi gian hu hn
Tuy nhin, nhc im ln nht ca b lc FIR so vi b lc IIR l bcca b lc FIR phi ln hn nhiu so vi b lc IIR vi cng mt ch tiu cht
lng. do tr ca b lc FIR cng cao hn.
Bng 15: Cc phng php thit kb lc FIR c sdng trong MATLABPhng php thit
kM t Cc hm thit k
Phng php ca s S dng cc ca s gii hnp ng xung, tc bin i FFTngc ca p ng tn s l tng
fr1, fir2kaiserord
Nhiu di tn v cc Gn sng cn bng hoc cc tiu frls, firpm
-
8/2/2019 LT 102Trang
65/102
di chuyn tip ha bnh phng sai scc bngcon ca p ng tn s
firpmord
Gii hn bnhphng cc tiu
Ti thiu ha sai s bnh phngtch ly trn ton di tn s v gitr ti a cho php
fircls, fircls1
p ng ty nh Thit k b lc ty theo p ngtn s, k c cc b lc phc v blc c pha phi tuyn. cfirpm
Raised Cosine p ng ca b lc thng thp vicng chuyn tip c dng sine
firrcos
5.3.1. Cc b lc c pha tuyn tnhHu ht cc b lc FIR c thit k trong MATLAB u c pha tuyn
tnh, tr cc b lc thit k bng hm cfirpm. Dc vo tnh cht i xng cacc h s ca b lc FIR (cn gi l cc tab), ngi ta nh ngha bn loi blc FIR c pha tuyn tnh nh sau:
Bng 16: Phn loi cc b lc FIR c pha tuyn tnhLoi blc
Bcblc
Tnh i xng ca cc h sb lc
p ng tns ti f = 0
p ng tns ti f = 1
Loi I Chn Chn Khng rngbuc
Khng rngbuc
Loi II L b(k) = b(n + 2 k), k = 1, 2,, n +1
Khng rngbuc
H(1) = 0
Loi III Chn L: H(0) = 0 H(1) = 0LoiIV
L B(k) = - b(n + 2 k), k = 1,2, , n+1
H(0) = 0 Khng rngbuc
tr nhm v tr pha ca b lc FIR c pha tuyn tnh bng nhau vbng mt hng s trn ton b bng tn ca b lc. Nu bc ca b lc l n th tr nhm s bng n/2, tc l tn hiu sau khi lc s b tri n/2 bc so vitn hiu vo. c im ny gip bo ton dng sng tn hiu trong di thng,ngha l tn hiu khng b mo pha.
Trong trng hp mc nh, cc hm fi