You are on page 1of 76

B GIO DC V O TO

I HC CNG NGH TP.HCM

THC HNH X L TN
HIU S

Bin son:
ThS. Phm Hng Kim Khnh

www.hutech.edu.vn

THC HNH X L TN HIU S


n bn 2014

MC LC

MC LC

MC LC ................................................................................................................... 1
HNG DN .............................................................................................................. 3

BI 1: PHN MM MATLAB .......................................................................................... 5


1.1 KHI NG MATLAB .............................................................................................. 5
1.2 CC VN C BN .............................................................................................. 8
1.2.1 Cc php ton v ton t ................................................................................. 8
1.2.2 Khai bo bin ................................................................................................. 9
1.2.3 Cc lnh thng dng ...................................................................................... 9
1.3 LP TRNH TRONG MATLAB ................................................................................... 10
1.3.1 Cc pht biu iu kin if, else, elseif .............................................................. 10
1.3.2 Switch ......................................................................................................... 10
1.3.3 While ........................................................................................................... 10
1.3.4 For .............................................................................................................. 11
1.3.5 Break: ......................................................................................................... 11
1.4 MA TRN ............................................................................................................ 11
1.4.1 Cc thao tc trn ma trn .............................................................................. 11
1.4.2 Vector .......................................................................................................... 15
1.4.3 a thc ........................................................................................................ 15
1.5 HO ............................................................................................................. 16
1.5.1 Cc lnh v .................................................................................................. 16
1.5.2 To hnh v .................................................................................................. 16
1.5.3 Kiu ng v .............................................................................................. 16
1.5.4 V vi hai trc y ............................................................................................ 17
1.5.5 V ng cong 3-D........................................................................................ 18
1.5.6 V nhiu trc to ...................................................................................... 18
1.5.7 t cc thng s cho trc ............................................................................... 19
1.5.8 ho c bit ............................................................................................. 23
1.5.9 ho 3D .................................................................................................... 25
1.5.10 Thc hnh v th ..................................................................................... 26
1.6 CC FILE V HM ................................................................................................ 28
1.6.1 Script file (file kch bn) ................................................................................. 28
1.6.2 File hm ....................................................................................................... 28
1.6.3 Cc hm ton hc c bn ............................................................................... 29
1.6.4 Cc php ton trn hm ton hc .................................................................... 30

TRANG 2 > THC HNH X L TN HIU S


1.6.5 Thc hnh trn script v function .....................................................................31
BI 2: TN HIU RI RC THEO THI GIAN ............................................................. 38
2.1 CC TN HIU S CP ...........................................................................................38
2.2 CC PHP TON ...................................................................................................39
2.3 KIM TRA TNH CHT TUYN TNH V BT BIN .......................................................39
2.4 H LTI .................................................................................................................41
BI 3: BIN I Z .................................................................................................... 44
3.1 CC IM CC V IM KHNG .............................................................................44
3.2 PHN TCH DNG PHNG PHP THNG D ............................................................45
3.3 BIN I Z V Z NGC .......................................................................................46
BI 4: BIN I FOURIER RI RC .......................................................................... 49
4.1 TNH DTFT ...........................................................................................................49
4.2 FFT V CC TNH CHT .........................................................................................50
BI 5: B LC S FIR ............................................................................................... 53
5.1 CC LOI B LC .................................................................................................53
5.2 PHNG PHP CA S ..........................................................................................55
5.3 PHNG PHP LY MU TN S .............................................................................58
5.4 PHNG PHP LP ...............................................................................................60
BI 6: B LC S IIR ............................................................................................... 65
6.1 THIT K B LC TNG T ..................................................................................65
6.2 THIT K B LC S.............................................................................................69
TI LIU THAM KHO .................................................................................................73

HNG DN

II
I

HNG DN
M T MN HC
Thc hnh x l tn hiu s l mn hc h tr cho mn X l tn hiu s ca chuyn
ngnh K thut in t Truyn thng. Mn hc ny da trn MATLAB kim chng
cc l thuyt hc trong mn X l tn hiu s.

NI DUNG MN HC

Bi 1. Phn mm MATLAB: c bn v MATLAB, cch lp trnh cng nh cch x l


ma trn, v th trong MATLAB.

Bi 2: Tn hiu ri rc theo thi gian: cch biu din tn hiu v h thng ri rc theo
thi gian, cc tnh cht v p ng xung ca h LTI.

Bi 3: Bin i z v z ngc: chuyn tn hiu t min thi gian sang min z, cc tnh
cht ca bin i z v chuyn tn hiu hu t trn min z sang min thi gian.

Bi 4: Bin i Fourier ri rc: chuyn tn hiu ri rc trn min thi gian sang min
tn s, dng cc thut ton FFT xc nh bin i Fourier ri rc.

Bi 5: B lc s FIR: thit k b lc FIR theo yu cu cho trc.

Bi 6: B lc s IIR: thit k b lc IIR theo yu cu cho trc.

KIN THC TIN


Mn hc Thc hnh X l tn hiu s i hi sinh vin c nn tng v X l tn hiu
s.

YU CU MN HC
Ngi hc phi d hc y cc bui ln lp v lm bi tp y .

CCH TIP NHN NI DUNG MN HC

TRANG 4 > THC HNH X L TN HIU S


hc tt mn ny, ngi hc cn thc hnh theo hng dn, lm cc bi tp; c

trc bi mi v tm thm cc thng tin lin quan n bi hc.

PHNG PHP NH GI MN HC
Mn hc c nh gi gm:

im qu trnh: 30%. Hnh thc v ni dung do ging vin quyt nh, ph hp vi


quy ch o to v tnh hnh thc t ti ni t chc hc tp.

im thi: 70%. Hnh thc bi thi trn my tnh trong 60 pht.

BI 1: PHN MM MATLAB

BI 1: PHN MM MATLAB
Sau khi hc xong bi ny, ngi hc c th:

S dng phn mm MATLAB.

Thc hin to cc script file hay function v lu tr trn MATLAB.

Bit c cc cng c c bn trn MATLAB.

1.1 KHI NG MATLAB


MATLAB (Matrix laboratory) l phn mm dng gii cc bi ton k thut, c bit
l cc bi ton lin quan n ma trn. MATLAB cung cp cc toolboxes, tc cc hm m
rng mi trng MATLAB gii quyt cc vn c bit nh x l tn hiu s, h thng
iu khin, mng neuron, fuzzy logic, m phng v.v.
Ca s biu tng ca chng trnh MATLAB:

Hnh 1.1 - Ca s khi ng ca MATLAB

BI 1: PHN MM MATLAB

Ca s lm vic ca MATLAB:

Th mc
hin hnh

Workspace: cc

Danh sch cc file

bin trong b nh

hin c trong th
mc hin hnh

Ca s lnh

Nt Start: cha

Cc lnh

cc toolbox

thc hin

Hnh 1.2 Ca s lm vic ca MATLAB

Ca s lnh (Command window):

L ca s giao tip chnh ca MATLAB bi y l ni nhp gi tr cc bin, hin th gi


tr, tnh ton gi tr ca biu thc, thc thi cc hm c sn trong th vin hoc cc hm
do ngi dng lp trnh ra trong M-files. Cc lnh c nhp sau du nhc >> v thc
thi lnh bng phm Enter. m chng trnh son tho trong MATLAB, g lnh:
>>edit

Hnh 1.3 Ca s edit son script file hay function

BI 1: PHN MM MATLAB

Sau nhp vo on chng trnh sau:


% Chuong trinh trong M-file
x= 0:pi/6:2*pi;
y=sin(x);
plot(x,y);
Lu chng trnh vi tn file plot_sin.m bng cch nhn Ctrl+S hay nhn vo biu
tng Save

Gii thch on chng trnh trn: Dng 1 l dng ch thch, cc chui pha sau du
% s khng c dch. Dng 2 nh ngha vector x trong khong t 0 n 2 v mi gi
tr cch nhau mt khong /6. Dng 3 gn bin y = sin(x) v dng 4 v th trong
x l trc honh v y l trc tung.

Hnh 1.4 Lu file trong ca s Edit


Thc thi chng trnh trn trong Command window bng dng lnh sau:
>>plot_sin

Ca s Command History:

Cc dng nhp trong Command window (cc dng ny c th l dng nhp bin,
c th l dng lnh) c gi li trong ca s Command History v ca s ny cho php
ta s dng li nhng lnh bng cch nhp p chut ln cc lnh hay bin

Ca s Workspace:

BI 1: PHN MM MATLAB

L ca s th hin tn cc bin bn s dng cng vi kch thc vng nh (s bytes),


kiu d liu (lp), cc bin c gii phng sau mi ln tt chng trnh. Ca s
Workspace cho php thay i gi tr ca bin bng cch nhn phm chut phi ln cc
bin v chn Edit.

Nt Start:

Hnh 1.5 Nt Start

Ca s Edit:

L ca s dng son tho chng trnh ng dng, c khi ng bng lnh edit
trong Command Window. Chng trnh son tho trong ca s edit c 2 dng:
+ Dng Script file : tp hp cc cu lnh vit di dng lit k, khng c bin d liu
vo v bin ra.
+ Dng function: c bin d liu vo v bin ra.

1.2 CC VN C BN
1.2.1 Cc php ton v ton t

Cc php ton: + , - , * , / , \ (chia tri) , ^ (m) , (chuyn v hay s phc lin

hip).
Cc ton t quan h : < , <= , > , >= , == , ~=
Cc ton t logic : & , | (or) , ~ (not)
Cc hng:
pi

3.14159265

BI 1: PHN MM MATLAB

i, j

s o

eps

sai s 2-52

realmin

s thc nh nht 2-1022

realmax

s thc ln nht 21023

inf

v cng ln

NaN

Not a number

Ch :
+ Cc lnh kt thc bng du chm phy, MATLAB s khng th hin kt qu
trn mn hnh.
+ Cc ch thch c t pha sau du %.
+ Trong qu trnh nhp nu cc phn t trn mt hng di qu ta c th
xung dng bng ton t ba chm (. . .)

1.2.2 Khai bo bin

- Phn bit ch hoa v ch thng.


- Khng cn phi khai bo kiu bin.
- Tn bin phi bt u bng k t v khng c c khong trng.
- Khng t tn trng vi cc tn c bit ca MATLAB.
- khai bo bin ton cc (s dng c trong tt c chng trnh con), phi dng

thm t kho global pha trc.

1.2.3 Cc lnh thng dng


>>help tn_hm % tham kho help ca hm
>>lookfor chui %Tm kim chui
V d: >>lookfor filter % Tm cc hm c lin quan n mch lc
>>clc % Xo mn hnh
>>clear tn_bin % Xo bin
>>clear all %Xo tt c cc bin
>> clf %Xo figure
>>save % Lu cc bin hin c trong b nh
>>load % Ly ni dung cc bin lu
>>who % lit k cc bin trong b nh
>>whos % lit k chi tit cc bin trong b nh
>>which % Xc nh v tr ca hm hay file

10

BI 1: PHN MM MATLAB

V d: >>which plot %Xc nh v tr ca hm plot


>>what % Lit k cc file c trong mt th mc

1.3 LP TRNH TRONG MATLAB


1.3.1 Cc pht biu iu kin if, else, elseif
C php ca if:
if <biu thc iu kin>
<pht biu>
end
Nu <biu thc iu kin> cho kt qu ng th phn lnh trong thn ca if c
thc hin. Cc pht biu else v elseif cng tng t.

1.3.2 Switch
C php ca switch nh sau:
switch <biu thc>
case n1
<lnh 1>
case n2
<lnh 2>
. . . . . . . . . . . . . . .
case nn
<lnh n>
Otherwise
<lnh n+1>
end

1.3.3 While
Vng lp while dng khi khng bit trc s ln lp. C php ca n nh sau:
while <biu thc>
<pht biu>
end

BI 1: PHN MM MATLAB

11

1.3.4 For
Vng lp for dng khi bit trc s ln lp. C php nh sau:
for <ch s>=<gi tr u>:<mc tng>:<gi tr cui>

1.3.5 Break:
Pht biu break kt thc vng lp for hay while m khng quan tm n iu kin
kt thc vng lp tho mn hay cha.

1.4 MA TRN
1.4.1 Cc thao tc trn ma trn
1.4.1.1 Nhp ma trn
Ma trn l mt mng c m hng v n ct. Trng hp ma trn ch c mt phn t
(ma trn 1x1) ta c mt s. Ma trn ch c mt ct hay mt hng c gi l mt vector.
Ta c th nhp ma trn vo MATLAB bng nhiu cch:
Nhp mt danh sch cc phn t t bn phm.
Np ma trn t file.
To ma trn nh cc hm c sn trong MATLAB.
To ma trn nh hm t to.
Khi nhp ma trn t bn phm ta phi tun theo cc quy nh sau:
Ngn cch cc phn t ca ma trn bng du , hay khong trng.
Dng du ; kt thc mt hng.
Bao cc phn t ca ma trn bng cp du ngoc vung [ ].

1.4.1.2 Ch s
Phn t hng i ct j ca ma trn c k hiu l A(i,j). Tuy nhin, ta cng c th tham
chiu ti phn t ca mng nh mt ch s, v d A(k). Trong trng hp ny, ma trn
c xem l mt ct di to t cc ct ca ma trn ban u.
Nh vy vit A(8) c ngha l tham chiu phn t A(4, 2) (nu ma trn c 4 hng).
Lu rng cc ch s ca ma trn thng bt u t 1.

1.4.1.3 Ton t :

12

BI 1: PHN MM MATLAB

Ton t : l mt ton t quan trng ca MATLAB. N xut hin nhiu dng khc
nhau. Biu thc 1:10 l mt vector hng cha 10 s nguyn t 1 n 10.
>>1:10
>>100:7:50 %to dy s t 100 n 51, cch u nhau 7
>>0: pi/4: pi %to mt dy s t 0 n , cch u nhau /4
Cc biu thc ch s c th tham chiu ti mt phn ca ma trn. A(1:k,j) xc nh k
phn t u tin ca ct j. Ngoi ra ton t : tham chiu ti tt c cc phn t ca mt
hng hay mt ct.
>>A(:,3)
>>A(3, :)
>>B = A(:, [1 3 2 4]) %to ma trn B t ma trn A bng cch i
th t cc ct t [1 2 3 4] thnh [1 3 2 4]

1.4.1.4 To ma trn bng hm c sn


MATLAB cung cp mt s hm to cc ma trn c bn:
- zeros to ra ma trn m cc phn t u l 0.
>>z = zeros(2, 4)
- ones to ra ma trn m cc phn t u l 1.
>>x = ones(2, 3)
>>y = 5*ones(2, 2)
- rand to ra ma trn m cc phn t ngu nhin phn b u.
>>d = rand(4, 4)
- randn to ra ma trn m cc phn t ngu nhin phn b chun.
>>e = randn(3, 3)
- magic(n) to ra ma trn cp n gm cc s nguyn t 1 n n2 vi tng cc hng
bng tng cc ct v bng tng cc ng cho (n 3).
- pascal(n) to ra tam gic Pascal.
>>pascal(4)
- eye(n) to ma trn n v
>>eye(3)
- eye(m,n) to ma trn n v m rng

BI 1: PHN MM MATLAB

13

>>eye(3,4)

1.4.1.5 Ni ma trn
Ta c th ni cc ma trn c sn thnh mt ma trn mi. V d:
>>a = ones(3, 3);
>>b = 5*ones(3, 3);
>>c = [a+2; b]

1.4.1.6 Xo hng v ct
Ta c th xo hng v ct t ma trn bng dng du [].
>>b(:, 2) = [] ; %xo ct th 2
>>b(1:2:5) = []; % xo cc phn t bt u t 1 n 5 v cch 2
(1,3,5) ri sp xp li ma trn.

1.4.1.7 Cc lnh x l ma trn


Cng : X = A + B
Tr : X = A - B
Nhn : X = A*B
X = A.*B nhn cc phn t tng ng vi nhau, yu cu 2 ma trn A v B phi c
cng kch thc.
Chia : X = A/B lc X = A * inv(B)
X = A\B lc X = inv(A) * B
X=A./B chia cc phn t tng ng vi nhau, 2 ma trn A v B c cng kch thc.
Lu tha : X = A^2
X = A.^2
Nghch o: X = inv(A)
nh thc: d = det(A)
to ma trn trong MATLAB ta ch cn lit cc phn t ca ma trn trong cp du
ngoc vung ([]). Cc phn t trn cng hng c phn bit bi du phy (,) hoc
khong trng (space). Cc hng ca ma trn, phn cch nhau bi du chm phy (;). V
d, nhp ma trn A c 4 hng, 4 ct nh sau:
>> A=[16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

14

BI 1: PHN MM MATLAB

>> size(A)
truy xut n tng phn t ca ma trn ta dng ch s phn t tng ng. V d,
phn t hng th 2, ct th 3 ca A l A(2,3).
>> A(2,3)
Bi 1.1. Cho ma trn A = [2 4 1; 6 7 2; 3 5 9], sinh vin dng cc lnh cn thit :
a. Ly dng u tin ca ma trn A.
b. To ma trn B bng 2 dng cui cng ca A.
c. Tnh tng cc phn t trn cc ct ca A. (gi : tnh tng cc phn t trn ct 1:
sum(A(:,1))).
d. Tnh tng cc phn t trn cc dng ca A.
Bi 1.2. Cho ma trn A = [2 7 9 7; 3 1 5 6; 8 1 2 5], sinh vin gii thch kt qu ca
cc lnh sau:
a. A'
b. A(:,[1 4])
c. A([2 3],[3 1])
d. reshape(A,2,6)
e. A(:)
f. [A;A(end,:)]
g. A(1:3,:)
h. [A ; A(1:2,:)]
i. sum(A)
j. sum(A')
k. [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ]
Bi 1.3. Gii h phng trnh sau:
2x1 + 4x2 + 6x3 2x4 = 0
x1 + 2x2 + x3 + 2x4 = 1
2x2 + 4x3 + 2x4 = 2
3x1 - x2 + 10x4 = 10.
Gi : A.X = B X = inv(A).B

BI 1: PHN MM MATLAB

15

Bi 1.4. Chng t rng (A+B)C=AC+BC, vi:

1.4.2 Vector
Vector thc cht l ma trn c kch thc n x 1 hay 1 x n, nn ta c th to ra vector
nh cch to ra ma trn. Ngoi ra, c th dng mt s cch sau:
>>x=0:0.1:1
>>y=linspace(1, 10, 20) % vector 20 phan tu cach deu nhau tu 1
den 10
>>z=rand(10,1) ; to 10 s ngu nhin phn b u
Bi 1.5. Cho vector x = [3 1 5 7 9 2 6], gii thch kt qu ca cc lnh sau:

a. x(3)
b. x(1:7)
c. x(1:end)
d. x(1:end-1)
e. x(6:-2:1)
f. x([1 6 2 1 1])
g. sum(x)
Bi 1.6. To mt vector x c 100 phn t, sao cho: x(n) = (-1)n+1/(2n+1) vi n = 0
99.

1.4.3 a thc
Cc a thc trong MATLAB c m t bng cc vector hng vi cc phn t ca
vector chnh l cc h s ca a thc, xp theo th t s m gim dn. V d, a thc m
= s4-s3+4s2-5s-1 c biu din l:
>>m=[1 -1 4 -5 -1]
xc nh gi tr ca a thc, ta dng hm polyval. V d, xc nh gi tr ca a
thc ti im s=2:

16

BI 1: PHN MM MATLAB

>>polyval(m,2)
xc nh nghim ca a thc, ta dng hm roots. V d:
>>roots(m)
Bi 1.7. Cho phng trnh ax2+bx+c=0, gii phng trnh dng hm roots.
>>m=[a b c];
>>x=roots(m)
Thay i cc gi tr khc nhau ca a, b v c tng ng trong 2 cch gii trn.
Bi 1.8. Gii phng trnh x3- 2x2+4x+5=0. Kim chng kt qu thu c bng hm
polyval. Sinh vin c nhn xt g v kt qu kim chng.
Bi 1.9. Lp li bi 1.8 cho phng trnh x7-2=0.

1.5 HO
1.5.1 Cc lnh v
MATLAB cung cp mt lot hm v biu din cc vector cng nh gii thch v in
cc ng cong ny.
plot: ha 2-D vi s liu 2 trc v hng v tuyn tnh
plot3: ha 3-D vi s liu 2 trc v hng v tuyn tnh
loglog: ho vi cc trc x, y dng logarit
semilogx: ho vi trc x logarit v trc y tuyn tnh
semilogy: ho vi trc y logarit v trc x tuyn tnh

1.5.2 To hnh v
Hm plot c cc dng khc nhau ph thuc vo cc i s a vo. V d nu y l
mt vector th plot(y) to ra mt ng quan h gia cc gi tr ca y v ch s ca n.
Nu ta c 2 vector x v y th plot(x,y) to ra th quan h gia x v y.
>>t = [0:pi/100:2*pi];
>>y = sin(t);
>>plot(t,y); % V hnh sin t 0->2
>>grid on

1.5.3 Kiu ng v
Ta c th dng cc kiu ng v khc nhau khi v hnh.
>>t = [0:pi/100:2*pi];

BI 1: PHN MM MATLAB

17

>>y = sin(t);
>>plot(t,y,.) % v bng ng chm chm
xc nh mu v kch thc ng v, ta dng cc tham s sau:
LineWidth

: rng ng thng, tnh bng s im

MarkerEdgeColor

: mu ca cc cnh ca khi nh du

MarkerFaceColor

: mu ca khi nh du

MarkerSize

: kch thc ca khi nh du

Mu c xc nh bng cc tham s:
r: red

m magenta

b: blue

k: black

g: green

y: yellow

c: cyan

w: white

Cc dng ng thng xc nh bng:


- ng lin

-- ng t nt

: ng chm chm

-. ng chm gch

Cc dng im nh du xc nh bng:
+ du cng

. im

o vng trn

s hnh vung

d ht kim cng

x ch thp

* du sao

v tam gic hng xung

^ tam gic hng ln

< tam gic sang tri

> tam gic sang phi

h lc gic

p ng gic

>>x = -pi : pi/10 : pi;


>>y = tan(sin(x)) - sin(tan(x));
>>plot(x,y,rs,LineWidth,2,MarkerEdgeColor,k,...
MarkerFaceColor,g,MarkerSize,10)
v hai hm trn cng mt th, ta dng lnh:
>>hold on

1.5.4 V vi hai trc y


Hm plotyy cho php to mt th c hai trc y. Ta cng c th dng plotyy cho
gi tr trn hai trc y c kiu khc nhau nhm tin so snh.
>>t = 0:900;
>>A = 1000;

18

BI 1: PHN MM MATLAB

>>b = 0.005;
>>a = 0.005;
>>z2 = sin(b*t);
>>z1 = A*exp(-a*t);
>>[haxes, hline1, hline2] = plotyy(t,z1,t,z2,semilogy,plot);

1.5.5 V ng cong 3-D


Nu x, y, z l 3 vector c cng di th plot3 s v ng cong 3D.
>>t = 0:pi/50:10*pi;
>>plot3(sin(t),cos(t),t)
>>axis square;
>>grid on

1.5.6 V nhiu trc to


Dng hm subplot v nhiu trc to .
>>subplot(2,3,5) %2,3: xc nh c 2 hng, 3 ct
% 5: chn trc th 5 (m t tri sang phi, trn xung di)
>>x=linspace(0,2*pi);
>>y1=sin(x);
>>y2=cos(x)
>>y3=2*exp(-x).*sin(x);
>>x1=linspace(-2*pi,2*pi);
>>y4=sinc(x1);
>>subplot(221);
>>plot(x,y1);
>>title(Ham y = sinx);
>>subplot(222);
>>plot(x,y2);
>>title(Ham y = cosx);
>>subplot(223);
>>plot(x,y3);

BI 1: PHN MM MATLAB

19

>>title(Ham y = 2e^{-x}sinx);
>>subplot(224);
>>plot(x1,y4);
>>title(Ham

$${sin

\pi

\over

\pi

x}$$','interpreter','latex');

1.5.7 t cc thng s cho trc


Khi ta to mt hnh v, MATLAB t ng chn cc gii hn trn trc to v khong
cch nh du da trn d liu dng v. Tuy nhin ta c th m t li phm vi gi tr
trn trc v khong cch nh du theo ring. Ta c th dng cc hm sau:
axis t li cc gi tr trn trc to .
axes to mt trc to mi vi cc c tnh c m t.
get v set cho php xc nh v t cc thuc tnh ca trc to ang c.
gca tr v trc to c.

1.5.7.1 Gii hn ca trc v chia vch trn trc


MATLAB chn cc gii hn trn trc to v khong cch nh du da trn s liu
dng v. Dng lnh axis c th t li gii hn ny. C php ca lnh:
axis[xmin , xmax , ymin , ymax]
>>x = 0:0.025:pi/2;
>>plot(x,tan(x),ro)
>>axis([0 pi/2 0 5])
MATLAB chia vch trn trc da trn phm vi d liu v chia u. Ta c th m t
cch chia nh thng s xtick v ytick bng mt vector tng dn.
>>x = -pi:.1:pi;
>>y = sin(x);
>>plot(x,y)
>>set(gca,xtick,pi:pi/2:p);
>>set(gca,xticklabel,{pi,pi/2,0,pi/2,pi})

1.5.7.2 Ghi nhn ln cc trc to


MATLAB cung cp cc lnh ghi nhn ln ho gm:

20

BI 1: PHN MM MATLAB

title thm nhn vo ho.


xlabel thm nhn vo trc x.
ylabel thm nhn vo trc y.
zlabel thm nhn vo trc z.
legend thm ch gii vo th.
text hin th chui vn bn v tr nht nh.
gtext t vn bn ln ho nh chut.
>>x = -pi:.1:pi;
>>y = sin(x);
>>plot(x,y)
>>xlabel(t = 0 to 2\pi,Fontsize,16)
>>ylabel(sin(t),Fontsize,16)
>>title(\it{Gia tri cua sin tu zero n 2 pi},Fontsize,16)
Ta c th thm vn bn vo bt k ch no trn hnh v nh hm text.
>>text(3*pi/4,sin(3*pi/4),\leftarrowsin(t)=0.707,FontSize,1
2)
Ta c th s dng i tng vn bn ghi ch cc trc v tr bt k. MATLAB nh
v vn bn theo n v d liu trn trc. V d v hm y = Aet vi A = 0.25, t = 0
n 900 v = 0.005:
>>t = 0:900;
>>plot(t,0.25*exp(0.005*t))
thm ghi ch ti im t = 300, ta vit:
>>text(300,.25*exp(.005*300),...
\bullet\leftarrow\fontname{times}0.25{\ite}^(0.005{\itt}}
at,...
{\itt}=300,FontSize,14)
Tham s HorizontalAlignment v VerticalAlignment nh v vn bn so vi cc to
x, y, z cho.

BI 1: PHN MM MATLAB

thm cc k t c bit, ta dng format dng Tex:

21

22

BI 1: PHN MM MATLAB

\bf Bold font


\it Italic font
\sl Oblique font (rarely available)
\rm Normal font
\fontname{fontname}
\fontsize{fontsize}
\color(colorSpec)
Cc ch s trn v di thc hin bng ^ v _.
>>title('\ite^{i\omega_0\tau}

cos(\omega_0\tau)

sin(\omega_0\tau)')
Kt qu: 0 = cos(0 ) + (0 )
thm cc cng thc ton hc, ta dng dng LaTeX. Mt s v d:
>>text('units','inch', 'position',[.2 5], ...
'fontsize',14, 'interpreter', 'latex', 'string' ,...
['$$\hbox {magic(3) is } \left( {\matrix{ 8 & 1 & 6 \cr'...
'3 & 5 & 7 \cr 4 & 9 & 2 } } \right)$$']);
>>text('units','inch', 'position',[.2 4], ...
'fontsize',14, 'interpreter','latex', 'string',...
['$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \cr'...
'\sin(\phi) & \cos(\phi) \cr}} \right]'...
'\left[ \matrix{x \cr y} \right]$$']);
>>text('units','inch', 'position',[.2 3], ...
'fontsize',14, 'interpreter','latex', 'string',...
['$$L\{f(t)\} \equiv F(s) = \int_0^\infty\!\!{e^{-st}'...
'f(t)dt}$$']);
>>text('units','inch', 'position',[.2 2], ...
'fontsize',14, 'interpreter','latex', 'string',...
'$$e = \sum_{k=0}^\infty {1 \over {k!} } $$');
>>text('units','inch', 'position',[.2 1], ...

BI 1: PHN MM MATLAB

23

'fontsize',14, 'interpreter','latex', 'string',...


['$$m \ddot y = -m g + C_D \cdot {1 \over 2}'...
'\rho {\dot y}^2 \cdot A$$']);
>>text('units','inch', 'position',[.2 0], ...
'fontsize',14, 'interpreter','latex', 'string',...
'$$\int_{0}^{\infty}

x^2

e^{-x^2}

dx

\frac{\sqrt{\pi}}{4}$$');
Cc khai bo c th tham kho ti: http://www.latex-project.org/

1.5.8 ho c bit
1.5.8.1 Khi v vng
ho khi v vng biu din s liu l vector hay ma trn. MATLAB cung cp cc
hm ho khi v vng:
bar hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar.
barh hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar nm
ngang.
bar3 hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D.
bar3h hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D
nm ngang.
Mc nh, mi phn t ca ma trn c biu din bng mt bar.
>>y = [5 2 1
6 7 3
8 6 3
5 5 5
1 5 8];
>>bar(y)
Sau nhp lnh bar3(y) ta c th 3D.

1.5.8.2 Xp chng th
Ta c th xp chng s liu trn th thanh bng cch to ra mt trc khc trn
cng mt v tr v nh vy ta c mt trc y c lp vi b s liu khc.

24

BI 1: PHN MM MATLAB

>>TCE = [515 420 370 250 135 120 60 20];


>>nhdo = [29 23 27 25 20 23 23 27];
>>ngay = 0:5:35;
>>bar(ngay,nhdo)
>>xlabel(Ngay)
>>ylabel(Nhiet do (^{o}C))
xp chng mt s liu ln mt th thanh trn, c trc th 2 cng v tr nh
trc th nht ta vit :
>>h1 = gca;
v to trc th 2 v tr trc th nht trc nht v b s liu th 2
>>h2 = axes(Position,get(h1,Position));
>>plot(days,TCE,LineWidth,3)
trc th 2 khng gy tr ngi cho trc th nht ta vit :
>>set(h2,YAxisLocation,right,Color,none,XTickLabel,[])
>>set(h2,XLim,get(h1,XLim),Layer,top)
ghi ch ln th ta vit:
>>text(11,380,Mat do,Rotation,55,FontSize,16)
>>ylabel(TCE Mat do (PPM))
>>title(Xep chong do thi,FontSize,16)

1.5.8.3 ho vng
Hm area hin th ng cong to t mt vector hay t mt ct ca ma trn. N v
cc gi tr ca mt ct ca ma trn thnh mt ng cong ring v t y vng khng
gian gia cc ng cong v trc x.
>>Y = [5 1 2
8 3 7
9 6 8
5 5 5
4 2 3];
>>area(Y)

BI 1: PHN MM MATLAB

25

1.5.8.4 th pie
th pie hin th theo t l phn trm ca mt phn t ca mt vector hay mt ma
trn so vi tng cc phn t. pie v pie3 to ra th 2D v 3D.
>>X = [19.3 22.1 51.6;
34.2 70.3 82.4;
61.4 82.9 90.8;
50.5 54.9 59.1;
29.4 36.3 47.0];
>>x = sum(X);
>>explode = zeros(size(x));
>>[c,offset] = max(x);
>>explode(offset) = 1;
>>h = pie(x,explode);
>>h = pie3(x,explode);

1.5.9 ho 3D
1.5.9.1 Cc hm c bn
Hm mesh v surf to ra mt 3D t ma trn d liu. Gi ma trn d liu l z m mi
phn t ca n z(i,j) xc nh tung ca mt th mesh(z) to ra mt li c mu th
hin mt z cn surf(z) to ra mt mt c mu z.

1.5.9.2 th cc hm hai bin


Bc th nht th hin hm 2 bin z=f(x,y) l to ma trn x v y cha cc to
trong min xc nh ca hm. Hm meshgrid s bin i vng xc nh bi 2 vector x v
y thnh ma trn x v y. Sau ta dng ma trn ny nh gi hm.
>>[x,y] = meshgrid(-8:.5:8);
>>r = sqrt(x.^2 + y.^2);
Ma trn r cha khong cch t tm ca ma trn. Tip theo ta dng hm mesh v
hm.
>>z = sin(r)./r;
>>mesh(z)

26

BI 1: PHN MM MATLAB

1.5.10 Thc hnh v th


Bi 1.10. V th hm s y1=sinx.cos2x v hm s y2=sinx2 trong [0-2], trn
cng h trc ta , ta ln lt thc hin nh sau:
>>x=0:0.01:2*pi;
>>y1=sin(x).*cos(2*x); %nhan tuong ung tung phan tu
>>plot(x,y1)
>>grid on %hien thi luoi
Sau khi thu c th hm y1, v y2 trn cng th, ta thc hin:
>>hold on %giu hinh, mac nhien la hold off
>>y2=sin(x.^2); %luy thua tung phan tu
>>plot(x,y2,k) %duong ve co mau den
>>axis([0 4*pi 1.25 1.25]) %dinh lai toa do hien thi
Ta c th t nhn cho cc trc cng nh tiu cho th:
>>xlabel(Time)
>>ylabel(Amplitude)
>>title(y1=sinx.cos2x and y2=sin(x^2))
>>legend(sinx.cos2x,sinx^2)
Bi 1.11. Thc hin nh trn nhng dng cc hm semilogx, semilogy, loglog thay
th cho plot.
Bi 1.12. Thc hin nh trn cho hm s y =


2 +2

Bi 1.13. V hm s r = sin (5) trong to cc:


>>theta=0:0.05:2*pi;
>>r=sin(5*theta);
>>polar(theta,r)
Bi 1.14. V hm s r = 2sin() + 3cos()
Bi 1.15. V hm s 2x2 + y2 = 10 dng to cc.
Gi : x = rcos, y = rsin
Bi 1.16. Dng hm text xut cc cng thc sau ra trc to :

BI 1: PHN MM MATLAB

+
2 + 1

27

sin(( ))

()
=1

= [ 2
3
-

2
3

3
]
2

MATLAB cung cp nhiu hm v th 3D, chng hn: plot3 - dng v cc


ng trong khng gian 3 chiu; mesh v surf - dng v vt th 3D.

Bi 1.17. V th 3D bng hm plot3:


>>t=0:pi/50:10*pi;
>>x=sin(t);
>>y=cos(t);
>>z=t;
>>subplot(121), plot3(x,y,z)
>>grid on
>>subplot(122), plot3(x,y,t.^2)
>> grid on
Bi 1.18. V mt paraboloid z=x2+y2 trong khng gian 3 chiu:
>>close all
>>t=-5:0.1:5;
>> [x,y]=meshgrid(t); %dinh luoi ve
>>z=x.^2+y.^2;
>> subplot(2,2,1), mesh(z)
>> title('mesh(z)')
>> subplot(2,2,2), meshc(z)
>> title('meshc(z)')
>> subplot(2,2,3), meshz(z)
>> title('meshz(z)')
>> subplot(2,2,4), waterfall(z)

28

BI 1: PHN MM MATLAB

>> title('waterfall(z)')
Bi 1.19. Nhn xt v cc hm v trn.
Bi 1.20. V mt =

( 2 + 2 )
2( 2 + 2 )

dng hm surf v mesh.

1.6 CC FILE V HM
1.6.1 Script file (file kch bn)
Kch bn l Mfile n gin nht, khng c i s. N dng khi thi hnh mt lot lnh
MATLAB theo mt trnh t nht nh. Ta xt v d to ra cc s Fibonacci nh hn 1000.
f = [1 1];
i = 1;
while(f(i)+f(i+1))<1000
f(i + 2)= f(i) +f(i+1);
i = i + 1;
end
plot(f)
Ta lu on m lnh ny vo mt file tn l fibo.m. y chnh l mt script file.
thc hin cc m cha trong file fibo.m t ca s lnh ta nhp:
>>fibo
V nhn enter. Kt qu MATLAB s v ra th ca chui Fibonacci.

1.6.2 File hm
Hm l M-file c cha cc i s. Ta c mt v d v hm:
function y = tb(x)
%Tinh tri trung binh cua cac phan tu
[m,n] = size(x);
if m == 1
m = n;
end
y = sum(x)/m;
T v d trn ta thy mt hm M-file gm cc phn c bn sau :

BI 1: PHN MM MATLAB

29

Mt dng nh ngha hm: function y = tb(x) gm t kho function, i s tr


v y, tn hm tb v i s vo x.
Dng k tip l dng tr gip u tin. V y l dng vn bn nn n phi t
sau %. N xut hin khi ta nhp lnh help <tn hm>. Phn vn bn ny gip ngi
dng hiu tc dng ca hm.
Thn hm cha m MATLAB.
Cc li gii thch dng cho chng trnh r rng. N c t sau du %.
Cn ch l tn hm phi bt u bng k t v cng tn vi file cha hm. Tn
hm l tb th tn file cng l tb.m.
T ca s MATLAB ta g lnh:
>>z = 1:99;
>>tb(z)
Cc bin khai bo trong mt hm ca MATLAB l bin a phng. Cc hm khc
khng nhn thy v s dng c bin ny. Mun cc hm khc dng c bin no
ca hm ta cn khai bo n l global.
Nu hm c nhiu thng s ng vo v ng ra th khai bo nh sau:
function [y1,y2,y3] = tb(x1,x2,x3)
Lu rng trong mt file .m c th c nhiu hm nhng hm u tin phi c tn
trng vi tn file.

1.6.3 Cc hm ton hc c bn
exp(x) hm m c s e
sqrt(x) cn bc hai ca x
log(x) logarit c s e
log10(x) logarit c s 10
abs(x) module ca s phc x (gi tr tuyt i ca s thc)
angle(x) argument ca s phc a
conj(x) s phc lin hp ca x
imag(x) phn o ca x
real(x) phn thc ca x

30

BI 1: PHN MM MATLAB

sign(x) du ca x
cos(x) tnh cos
sin(x) tnh sin
tan(x) tnh tang
acos(x) tnh cos-1
asin(x) tnh sin-1
atan(x) tnh tang-1
cosh(x) tnh

+
2

coth(x) tnh cosh(x)/sinh(x)


sinh(x) tnh

tanh(x) tnh sinh(x)/cosh(x)


acosh(x) tnh cosh-1
acoth(x) tnh coth-1
asinh(x) tnh sinh-1
atanh(x) tnh tanh-1

1.6.4 Cc php ton trn hm ton hc


a. Biu din hm ton hc
MATLAB biu din cc hm ton hc bng cch dng cc biu thc t trong M-file.
V d kho st hm:

( ) =

2
1
+ 2
1
+1 +2

Ta to ra mt file, t tn l ab.m c ni dung:


function y = ab(x)
y = 2./(x + 1) + 1./(x.^2 + 2) 1 ;
Cch th hai biu din mt hm ton hc trn dng lnh l to ra mt i tng
inline t mt biu thc chui. V d ta c th nhp t dng lnh nh sau:
>>f = inline(2./(x + 1) + 1./(x.^2 + 2) 1);
Ta c th tnh tr ca hm ti x = 2 nh sau:
>>f(2)

BI 1: PHN MM MATLAB

31

b. V th ca hm
Hm fplot v th hm ton hc gia cc gi tr cho.
>>fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1])
c. Tm cc tiu ca hm
Cho mt hm ton hc mt bin, ta c th dng hm fminbnd ca MATLAB tm
cc tiu a phng ca hm trong khong cho.
>>f=inline(1./((x0.3).^2+0.01)+1./(x.^2+0.04)6);
>>x = fminbnd(f,0.3,1)
Hm fminsearch tng t hm fminbnd dng tm cc tiu a phng ca hm
nhiu bin.
Ta c hm three_var.m:
function b = three_var(v)
x = v(1);
y = v(2);
z = v(3);
b = x.^2 + 2.5*sin(y) z^2*x^2*y^2;
V by gi tm cc tiu i vi hm ny bt u t x = -0.6, y = -1.2; z = 0.135
>>v = [-0.6 -1.2 0.135];
>>a = fminsearch(three_var,v)
d. Tm im zero
Hm fzero dng tm im khng ca hm mt bin. V d tm gi tr khng ca
hm ln cn gi tr -0.2, ta vit:
>>f=inline(1./((x0.3).^2+0.01)+1./(x.^2+0.04)6);
>>a = fzero(f,-0.2)

1.6.5 Thc hnh trn script v function


1.6.5.1 Script
Tp hp cc dng lnh ca MATLAB c sp xp theo mt cu trc no v lu
thnh file c phn m rng *.m c gi l script file. Ta c th chy file ny t ca s
lnh ging ht nh cc lnh ca MATLAB. Cu trc ca mt script file nh sau:
% Phn vit sau du % y dng cho lnh help

32

BI 1: PHN MM MATLAB

% Thng thng phn ny m t chc nng, cch s dng,


% v d minh ha hay nhng lu c bit m tc gi mong mun
tr
% gip cho ngi s dng.
[global tnbin1, tnbin2, ] % Khai bo bin ton cc % (nu
c)
<cc cu lnh> % phn trnh by cu lnh
Khi ng MATLAB Editor:
>>edit
To mt script file c tn vd.m, vi ni dung nh sau:
% Doan script file nay hien thi loi chao trong 2s. Sau do hien
thi logo cua MATLAB roi thoat
close all
% ------- Tao mot cua so do hoa -----------------figure('Color',[0 0 0],...
'Name','Welcome to MATLAB Experiments',...
'NumberTitle','off',...
'MenuBar','none');
% ------- Hien thi loi chao ---------------------text( 'String','Welcome to MATLAB',...
'Color',[.25 .25 .25],...
'Position',[0.01 .501],...
'Fontsize',32,...
'FontAngle','italic');
text( 'String','Welcome to MATLAB',...
'Color','w',...
'Position',[0 .5],...
'Fontsize',32,...
'FontAngle','italic');
axis off;

BI 1: PHN MM MATLAB

33

pause(2); % dung trong 2 giay


% ---- Hien thi logo cua MATLAB --------------logo
clear all
close
% ket thuc script file
Sau khi lu file ny, t ca s lnh ca MATLAB, nhp:
>>help vd
thi hnh script file va son, nhp:
>>vd

1.6.5.2 S dng cc tool xy dng sn


MATLAB h tr mt th vin hm rt phong ph, xy dng trn cc gii thut nhanh
v c chnh xc cao. Ngoi cc hm c bn ca MATLAB, tp hp cc hm dng
gii quyt mt ng dng chuyn bit no gi l Toolbox, v d: X l s tn hiu
(Digital Signal Processing), iu khin t ng (Control), mng neural (Neural
networks),
help <ten toolbox> % chuc nang toolbox
>>help control % liet ke ham cua control toolbox
Ta c th tm kim cc hm lin quan bng cch cung cp cho hm lookfor ca
MATLAB mt t kha:
lookfor <tu khoa tim kiem>
>>lookfor filter % tm cc hm lin quan n mch lc

1.6.5.3 Xy dng hm
Xy dng hm cng c thc hin tng t nh script file. Tuy nhin, i vi hm
ta cn quan tm n cc tham s truyn cho hm v cc kt qu tr v sau khi thc
hin. C 3 im cn lu :
- Tn hm phi c t trng vi tn file lu tr.
- Phi c t kha function dng u tin.
- Trong mt hm c th xy dng nhiu hm con (iu ny khng c trong script file).
function [out1,out2,]=tenham(in1,in2,)

34

BI 1: PHN MM MATLAB

% --------------------------------------% Hin th khi ngi s dng dng lnh help tenham


% --------------------------------------[global <tnbin1, tnbin2, >] %khai bo bin ton cc (nu
c)
<Cc cu lnh thc hin hm>
out1=kt qu 1 %kt qu tr v ca hm
out2=kt qu 2

% Cc hm con (nu c)
function [subout1,subout2,]=tenhamcon(subin1,subin2,)
<Cc cu lnh ca hm con>
Bi 1.21. Xy dng hm gptb2 gii phng trnh bc hai ax2+bx+c=0. Ni dung
hm nh sau:
function [x1,x2]=gptb2(a,b,c)
% Giai phuong trinh bac hai ax^2+bx+c=0
% [x1,x2]=gptb2(a,b,c)
% Trong do: x1,x2 la nghiem
% a, b, c la 3 he so cua phuong trinh
if nargin<3
error('Error! Nhap 3 he so cua phuong trinh')
elseif a==0
x1=-c/b;
x2=[];
else
delta = b^2 - 4*a*c;
x1 = (-b+sqrt(delta))/(2*a);
x2 = (-b-sqrt(delta))/(2*a);
end
Lu tn file l gptb2.m v kim tra kt qu:

BI 1: PHN MM MATLAB

35

>>help gptb2
>>[x1,x2]=gptb2(1,6,-7)
>>[x1,x2]=gptb2(2,7,14)
>>[x1,x2]=gptb2(0,4,3)
>>[x1,x2]=gptb2(1,6)
Bi 1.22. Cho bit ngha ca t kha nargin?
Bi 1.23. Vit li hm ny kt qu ch tr v nghim s thc.
Bi 1.24. Xy dng hm vdcongdb(a,m,method) v mt s ng cong trong
h ta cc, vi a l bn knh v m l s ng cong v trn cng trc ta . Trng
hp ny hm khng tr v gi tr.
Tu theo gi tr ca tham s method m ta v th tng ng:
Nu method = Becnulli: V ng Becnulli: = |22 |
Nu method = Astroit: V ng Astroit: = |1

3
4

Nu method = Xoanoc: V ng xon c: r = cos +1


Ni dung hm nh sau:
function vdcongdb(a,m,method)
% Ve duong cong trong toa do cuc: vdcongdb(a,m,method)
% method = 'Becnulli' - Ve duong Lemniscat Becnulli:
% r=a*sqrt(abs(2*cos(2*theta)))
% 'Astroit' - Ve duong Astroit:
% r=a*sqrt(abs(1-sin(3*theta)/4))
% 'Xoanoc' - Ve duong xoan oc:
% r=a*cos(theta)+1
% Voi: a-ban kinh; m-so duong cong ve tren cung he truc
if nargin<3
error('Vui long nhap du 3 thong so cua ham')
else
theta=0:0.01:2*pi; method=upper(method);
switch method

36

BI 1: PHN MM MATLAB

case 'BECNULLI'
r=a*sqrt(abs(2*cos(2*theta)));
case 'ASTROIT'
r=a*sqrt(abs(1-sin(3*theta)/4));
case 'XOANOC'
r=a*cos(theta)+1;
otherwise
error('Chon: ''Becnuli'', ''Astroit'' hoac ''Xoanoc''')
end % end of switch
% ve do thi
close all; figure('Color','w');
for k=1:m
hold on
r1=r*k;
mau=[rand(1,1) rand(1,1) rand(1,1)];
h=polar(theta,r1);
set(h,'color',mau,'LineWidth',2);
axis equal;
end % end of for
hold off;
axis off
end % end of if
Kim tra li hot ng ca hm, v d:
>>help vdcongdb
>>vdcongdb(1,5,Becnulli)
>>vdcongdb(1,5, Astroit)
>>vdcongdb(1,5,Xoanoc)
>> vdcongdb(1,5,saikieu)
>> vdcongdb(5,becnulli)

BI 1: PHN MM MATLAB

37

Bi 1.25. Xy dng hm dudoan() d on kt qu sau mi ln tung mt xc


xc ng nht, 6 mt. Ni dung hm nh sau:
function dudoan()
% Du doan ket qua sau moi lan tung ngau nhien mot xuc xac 6 mat
% Chuong trinh lap lai cho den khi nguoi su dung khong doan tiep
%
tiep = 'y'; sai=0; dung=0;
disp('Chao mung ban den voi chuong trinh du doan xuc xac!')
while(lower(tiep)=='y')
doan=input('Moi ban du doan ket qua (1-6):');
kqua=tungxx;
if (doan ~= kqua)
disp('Xin loi, ban da doan sai!')
sai=sai+1;
else
disp('Xin chuc mung!')
dung=dung+1;
end
tiep=input('Ban muon choi tiep(''y''/''n''):');
end
disp(['Dung ' num2str(dung) ' trong tong so ' num2str(sai+dung)
' lan doan'])
% subfunction -------------function mat = tungxx()
mat=floor(6*rand(1,1))+1;
% end
Kt lun v s khc nhau gia script file v hm khng c tham s vo.
Bi 1.26. Vit chng trnh in tam gic Pascal n dng trong mn hnh ha vi n
c nhp t bn phm.

38

BI 2: TN HIU RI RC THEO THI GIAN

BI 2: TN HIU RI RC THEO
THI GIAN
Sau khi hc xong bi ny, ngi hc c th:

Bit c cc tn hiu s cp.

Thc hin cc php ton n gin.

Tnh nng lng ca tn hiu.

Xc nh cc tnh cht ca h ri rc.

2.1 CC TN HIU S CP
Hm xung n v:

( ) = {

1
0

=0
0

>>n = -10:10;
>>delta=[zeros(1,10) 1 zeros(1,10)];
>>stem(n,delta);
Bi 2.1. Vit chng trnh v v dng tn hiu hm bc n v u(n).
Hm bc n v:

( ) = {

1
0

0
<0

Bi 2.2. Vit chng trnh v v dng tn hiu hm m (1/2)nu(n), 3nu(n).


Hm m:

( ) = {

0
= ()
<0

Bi 2.3. Tnh nng lng tn hiu x(n) = (1/2)nu(n) trong khong (-10,10); (0,1000);
(0,1e6).

BI 2: TN HIU RI RC THEO THI GIAN

39

Bi 2.4. Tnh nng lng v cng sut tn hiu x(n) = (1 - 2n)u(n) trong khong (10,10); (0,1000); (0,1e6).
Nng lng ca tn hiu trong khong [-N,N]:

= | ()|2
=

Nng lng tn hiu:

= lim

Cng sut trung bnh ca tn hiu:

2 + 1

= lim

2.2 CC PHP TON


-

Dch: x(n) x(n k)


nh gng: x(n) x(-n)
Co trn min thi gian: x(n) x(n)
Cng: y(n) = x1(n) + x2(n)
Nhn: y(n) = x1(n)x2(n)
Co bin : y(n) = Ax(n)

Dch phi xung n v 5 mu:


>>delta=[zeros(1,15) 1 zeros(1,5)];
>>stem(n,delta);
Bi 2.5. Vit chng trnh v v dng tn hiu hm u(n 3), u(n + 2).
Bi 2.6. Vit chng trnh v v dng tn hiu hm x(n) = 2u(n 3) + (n 2) trong
khong (-10,10). T v cc tn hiu x(-n), 2x(n), x(2n).
Bi 2.7. Vit function thc hin cng v nhn 2 tn hiu. V d thc hin cho 2 tn
hiu x1(n) = {1,-1,2,3,-2} v x2(n) = {-2,-2,1,1,-4}.

2.3 KIM TRA TNH CHT TUYN TNH V


BT BIN
H thng H bt bin theo thi gian nu v ch nu:
y(n) = H[x(n)] y(n k) = H[x(n k)]

40

BI 2: TN HIU RI RC THEO THI GIAN

H thng l tuyn tnh nu v ch nu:


H[a1x1(n) + a2x2(n)] = a1H[x1(n)] + a2H[x2(n)]
Tnh giao hon:
x(n)

h1(n)

h2(n)

y(n)

x(n)

h2(n)

h1(n)

y(n)

Tnh kt hp:

x(n)

h1(n)

h2(n)

y(n)

x(n)

h1(n) * h2(n)

y(n)

Tnh phn phi:

h1(n)
y(n)

x(n)

x(n) h1(n) + h2(n) y(n)

h2(n)

Bi 2.8. Xt h thng y(n) = nx(n).


>>n = -10:10;
>>x = randn(size(n)); %Tn hiu x ngu nhin
>>y = n.*x; %y(n) = nx(n)
>>ynk = [0 0 0 0 y]; %Dch phi y(n) 4 mu -> y(n 4)
>>x1 = [0 0 0 0 x]; %Dch phi x(n) 4 mu
>>n1 = [n 11:14]; % B sung them gi tr cho n
>>yn = n1.*x1; % yn = H[x(n 4)]
>>subplot(211), stem(n1,ynk), title(y(n k));
>>subplot(212), stem(n1,yn), title(H[x(n k)]);
Kt lun v tnh cht bt bin theo thi gian ca y(n) = nx(n).
Bi 2.9. Xc nh tnh cht bt bin theo thi gian ca h thng c phng trnh y(n)
= x(-n) v y(n) = x(n)cos(0.5n).
Bi 2.10.

BI 2: TN HIU RI RC THEO THI GIAN

41

>>clear all
>>clf
>>n = -10:10;
>>x1 = randn(size(n)); %Tn hiu x1 ngu nhin
>>x2 = randn(size(n)); %Tn hiu x2 ngu nhin
>>a1 = 3; a2 = -2; %a1, a2 ty
>>y1 = n.*x1;
>>y2 = n.*x2;
>>y = n.*(a1*x1 + a2*x2);
>>subplot(211), stem(n,a1*y1+a2*y2);
>>title(a_1y_1(n)+a_2y_2(n));
>>subplot(212), stem(n,y);
>>title(H[a_1x_1(n)+a_2x_2(n)]);
Kt lun v tnh cht tuyn tnh ca y(n) = nx(n).
Bi 2.11. Xc nh tnh cht tuyn tnh ca h thng c phng trnh y(n) = x2(n) v
y(n) = x(n2)

2.4 H LTI
Phng trnh sai phn:

() = ( ) + ( )
=1

=0

Bi 2.12. Xt h thng c phng trnh sai phn: y(n) = 0.3x(n) + 0.2x(n 1)


0.3x(n 2) -0.9y(n 1) + 0.9y(n 2). Xc nh p ng xung n v ca h thng.
>>N = 40;
>>num = [0.3 0.2 -0.3];
>>den = [1 0.9 -0.9];
>>h = impz(num,den,N);% N: s lng mu tnh ton
>>stem(h);
Xc nh ng ra khi bit p ng xung v ng vo:
>>x = randn(1,10);

42

BI 2: TN HIU RI RC THEO THI GIAN

>>y = conv(x,h);
>>subplot(311),stem(x);
>>subplot(312),stem(h);
>>subplot(313),stem(y);
Bi 2.13. Kim tra tnh giao hon v kt hp:
>>h1 = [1 2 -2 -3]; H thng 1
>>h2 = [-2 0 3 1]; H thng 2
>>h = conv(h1,h2);
>>N = 30;
>>x = randn(1,N);
>>y11 = conv(x,h1);
>>y1 = conv(y11,h2);
>>y21 = conv(x,h2);
>>y2 = conv(y21,h1);
>>y = conv(x,h);
>>subplot(311),stem(y1);
>>title(y(n) = (x*h_1(n))*h_2(n));
>>subplot(312),stem(y2);
>>title(y(n) = (x*h_2(n))*h_1(n));
>>subplot(313),stem(y);
>>title(y(n) = x*(h_1(n)*h_2(n));
Bi 2.14. Kim tra tnh giao hon v kt hp ca hai h thng ghp lin tng sau:
H thng 1: y(n) = 2x(n) 0.5x(n 1) + 0.5x(n 3) + 0.1y(n 1)
H thng 2: y(n) = 0.3x(n) + 0.2x(n 2) - 0.1y(n 2)
Bi 2.15. Xc nh ng ra ca h thng sau:

BI 2: TN HIU RI RC THEO THI GIAN

43

Bi 2.16. Xc nh p ng xung tng ng ca h thng sau:


h2(n)
x(n)
h1(n)

h4(n)

y(n)

h3(n)
h1 = {1,0,-1,3}; h2 = {2,-2,1}; h3 = {3,4,-1,1}; h4 = {-3,5,6,-1,1}

Vit chng trnh xc nh ng ra ca h thng khi ng vo l x(n) = (-2)nu(n)


(tnh ton cho gi tr n t -20 n 20):
a. Dng theo s trn.
b. Dng p ng xung tng ng.

44

BI 3: BIN I Z

BI 3: BIN I Z
Sau khi hc xong bi ny, ngi hc c th:

Bit cch chuyn i tn hiu trn min thi gian ri rc sang min z.

Bit cc tnh cht ca bin i z.

Biu din hm h thng ca LTI c quan h vo ra l phng trnh sai phn h


s hng bng bin i z hu t.

3.1 CC IM CC V IM KHNG
Bin i z ca tn hiu ri rc x(n):

() = ()
=

X(z) l hm hu t:

()
=0
( ) =
=

()
=0

Gi s a0 0 v b0 0:

1 1

+ +
() 0 + 0
0
( ) =
=
() 0 + 1 1 + +
0
0
Do N(z) v D(z) l cc a thc theo z nn c th biu din nh sau:

() =

=1( )

=1( )

biu din trn th, im cc c nh du bng x v im khng c nh


du bng o.
Bi 3.1. Xc nh im cc v khng da vo hm zplane:
>>num = [1 2 3]; % T s
>>den = [2 4 7]; % Mu s
>>zplane(num,den);

BI 3: BIN I Z

45

Ta c th v cc im cc v im khng nu bit im cc v im khng bng


cch a thng s vo hm zplane dng vector ct:
>>zero = [-1 1+j*1];
>>pole = [j*2 -1+j];
>>zplane(zero,pole);
xc nh im cc v khng, ta dng hm tf2zp: [z,p,k] = tf2zp(num,den) trong
z, p l cc im cc v khng lu dng vector hng, k l h s khuch i:
>>num = [1 2 3]; % T s
>>den = [2 4 7]; % Mu s
>>[z,p,k] = tf2zp(num,den)
Nu cho im cc v im khng, ta c th xc nh li biu thc ca bin i z
bng hm zp2tf: [num,den] = zp2tf(z,p,k) (z, p dng vector ct)
>>zero = [-1 1+j*1];
>>pole = [j*2 -1+j];
>>k = 2;
>>[num,den] = zp2tf(zero,pole,k)
Bi 3.2. Xc nh v v im cc, im khng ca cc hm h thng sau:

( ) =

2 + 5 1 + 4 2 + 5 3 + 3 4
5 + 45 1 + 2 2 + 3 + 4

T xc nh cc min hi t c th c. So snh vi l thuyt.


Bi 3.3. Xc nh biu thc ca bin i z c cc im cc 0.5; 0.75; 1+j0.5; 1-j0.5
v cc im khng 0.3; 0.1; 2-j2; 2+j2 vi h s khuch i k = 0.7

3.2 PHN TCH DNG PHNG PHP THNG


D
Phn tch thnh cc tha s theo phng php thng d:

1 ()
1

=
+ +
1
() 1 1
1 1
Bi 3.4. Xc nh cc h s ca biu thc bin i z bng hm residuez:
>>num = [1 2 3]; % T s
>>den = [2 4 7]; % Mu s

46

BI 3: BIN I Z

>>[A,p,k] = residuez(num,den);
Ta cng c th dng hm residuez xc nh li t s v mu s:
>>[num,den] = residuez(A,p,k);
Ghi li cng thc bin i v so snh vi kt qu ban u.
Bi 3.5. Phn tch biu thc sau dng phng php thng d:

( ) =

1 4.2 1 + 0.8 2
1 2.5 1 + 3 2 3

() =

1 + 1
(1 + 2 1 )2 (1 1 )

Tnh ton li kt qu theo l thuyt.


Bi 3.6. Cho h thng c phng trnh vo / ra l phng trnh sai phn h s hng:
y(n) = x(n) 2x(n 2) + 0.81y(n 1). Xc nh H(z), t vit chng trnh:
a. Xc nh v v cc im cc, khng.
b. Phn tch dng phng php thng d.

3.3 BIN I Z V Z NGC


Xt h LTI biu din bng phng trnh sai phn h s hng:

() = ( ) + ( )
=1

=0

Hm h thng ca h LTI biu din bng phng trnh sai phn h s hng:

()
=0
( ) =
=

() 1 +
=1

Bin i z ngc:

()
1 ()
( ) =
= +
()
()
=0

(Nu bc ca t s nh hn bc ca mu s)

( )
=0

=0

tnh thnh phn cn li, ta phn tch thnh cc tha s theo phng php thng
d:

BI 3: BIN I Z

47

1 ()
1

=
+

+
() 1 1 1
1 1
Nu cc gi tr pj = = pm th chuyn cc s hng t Aj n Am thnh:

+1
+1
+
+

+
(1 1 )
1 1 (1 1 )2
p dng kt qu:

(), : || > ||
1
1

Bi 3.7. Dng hm ztrans bin i z dng cng thc:


>>syms n x
>>x = 2^n;
>>ztrans(x)
>>x = (-1/2)^n;
>>ztrans(x)
Bi 3.8. Xc nh bin i z ca cc hm sau:
a. x(n) = (-2)n-1u(n)
b. x(n) = n3nu(n)
c. x(n) = n24nu(n)
Bi 3.9. Bin i z ngc theo gi tr bng hm impz.
>>num = [1 1 2];
>>den = [1 -1 2];
>>L = 50; %S lng mu cn tnh
>>x = impz(num,den,L) % x l bin i z ngc
>>impz(num,den,L); % V trn th
Bi 3.10. Xc nh v v 100 mu u tin ca bin i z ngc ca hm:

0.9 + 0.7 1 + 0.1 2 3 + 0.5 4


( ) =
1 + 0.5 1 0.2 3 + 2 4 + 5
Bi 3.11. Thc hin li bi 3.10 vi kt qu dng cng thc.
xc nh bin i z ngc dng cng thc, ta dng hm residuez phn tch
thnh dng biu thc n gin v dng cc kt qu bin i ngc xc nh.
Bi 3.12. Ta cng c th xc nh bin i z ngc bng cch dng hm iztrans.

48

BI 3: BIN I Z

>>syms F z
>>F = 2*z^(-1)/(1-3*z^(-1));
>>iztrans(F)
Bi 3.13. Xc nh bin i z ngc ca cc hm sau:
() =

() =

1 + 2
2
1
(1 + 2 1 ) (1 + 2 1 )

2 1
(3 + 4 1 + 2 )(1 + 1 )

BI 4: BIN I FOURIER RI RC

49

BI 4: BIN I FOURIER RI
RC
Sau khi hc xong bi ny, ngi hc c th:

Chuyn tn hiu ri rc trn min thi gian sang min tn s bng cch dng bin
i Fourier ri rc.

Tnh ton bin i Fourier bng mt s thut ton.

4.1 TNH DTFT


Bin i Fourier ri rc (DTFT) m t nh sau:

( ) = () = | ( )| ()
=

Bi 4.1. Tnh v v DTFT c dng:

( ) =

1 + 2 2
1 + 0.5

>>w = linspace(-4*pi,4*pi,512); % To 512 gi tr t -4 n 4


>>num = [1 1 -2];
>>den = [1 0.5];
>>h = freqz(num,den,w);
>>subplot(211),plot(w/pi,abs(h));
>>xlabel(\omega/\pi);
>>ylabel(Bien do);
>>title(Pho bien do |X(e^{j\omega})|);
>>subplot(212),plot(w/pi,angle(h));
>>xlabel(\omega/\pi);
>>ylabel(Pha [rad]);

50

BI 4: BIN I FOURIER RI RC

>>title(Pho pha arg(X(e^{j\omega})));


kho st chui x(n) hu hn, ta cho thng s th 2 ca hm freqz l 1.
>>x = [1 2 3 4 5 6 7];
>>h = freqz(x,1,w);
Bi 4.2. Tnh v v DTFT trong khong [-,]:

0.8 + 3 0.2 2 + 0.1 3


=
1 + 0.1 0.4 2 + 0.7 3

Bi 4.3. Kho st DTFT ca x(n) = [1 -2 2 -3 3 4 0 -1] trong khong [-,]


Tnh cht dch thi gian:

( )

( )

Bi 4.4. Kho st tnh cht dch thi gian: Tnh v v DTFT trong khong [-,] ca
x(n - 3) vi x(n) cho nh bi 4.3.
Tnh cht dch tn s:

0 ()

( (0) )

Bi 4.5. Kho st tnh cht dch tn s: Tnh v v DTFT trong khong [-,] ca
x(n)e-j3n vi x(n) cho nh bi 4.3.
Tnh cht o thi gian:

()

( )

Bi 4.6. Kho st tnh cht o thi gian: Tnh v v DTFT trong khong [-,] ca
x(-n) vi x(n) cho nh bi 4.3. Dng hm fliplr chuyn x(n) thnh x(-n) v nhn
thm h s ej(L-1) khi bin i.
Bi 4.7. Thc hin li t 4.3 n 4.6 vi x(n) cho nh bi 4.2.

4.2 FFT V CC TNH CHT


Bi 4.8. Dng hm fft v ifft tnh DFT v IDFT ca x(n):
>>N = 32;
>>x = randn(1,N);
>>y = fft(x,N);
>>x1 = ifft(y,N);

BI 4: BIN I FOURIER RI RC

51

>>subplot(321),stem(abs(x));
>>title(x(n));xlabel(n);
>>subplot(323),stem(abs(y));
>>title([FFT(n, N )]);xlabel(k);ylabel(Bien do);
>>subplot(324),stem(angle(y));
>>title([FFT(n, N )]); xlabel(k);ylabel(Pha);
>>subplot(325),stem(abs(x1));
>>title([IFFT(FFT(n, N ))]);
>>xlabel(k);ylabel(Bien do);
>>subplot(326),stem(angle(x1));
>>title([IFFT(FFT(n, N ))]);
>>xlabel(k);ylabel(Pha);
Bi 4.9. Xc nh v v FFT 16 im ca x(n) cho ty .
Bi 4.10. To function cshift dch vng mt chui m gi tr:
function out = cshift(x,m)
m0 = m;
if abs(m0) > length(x)
m0 = rem(m0,length(x));
end
while (m0<0)
m0 = m0 + length(x);
end

out= [x(length(x)-m0+1:length(x)) x(1:length(x)-m0)];


Kho st tnh cht dch vng ca DFT-N im:
>>N = 20;
>>m = 3;
>>x = randn(1,N);
>>y = fft(x,N);
>>x1 = cshift(x,m); %C th thay bng hm circshift nh sau: x1
= circshift(x,m);

52

BI 4: BIN I FOURIER RI RC

>>y1 = fft(x1,N);
>>k = 0:N-1;
>>y2 = exp(-j*2*pi*k*m/N).*y;
>>subplot(221),stem(abs(y));title(y1);
>>subplot(222),stem(angle(y)); title(y1);
>>subplot(223),stem(abs(y2));title(y2);
>>subplot(224),stem(angle(y2)); title(y2);
Bi 4.11. Vit chng trnh kho st tnh cht dch vng trn min tn s.
Bi 4.12. Vit chng trnh kho st tnh cht chp vng. Dng hm cconv tnh
tch chp vng.
Bi 4.13. Vit chng trnh kho st tnh cht o trn min thi gian.

53

BI 5: B LC S FIR

BI 5: B LC S FIR
Sau khi hc xong bi ny, ngi hc c th:

Thit k mt b lc s FIR da theo cc thng s cho trc.

5.1 CC LOI B LC
iu kin i xng v phn i xng ca mch lc:
h(n) = h(M 1 n)
Da trn tnh cht i xng hay phn i xng ca chui p ng xung v chiu di N
ca chui p ng xung, ngi ta phn loi b lc FIR lm 4 loi sau:
B lc FIR loi 1: h(n) i xng, M l, = 0, = (M 1)/2
B lc FIR loi 2: h(n) i xng, M chn, = 0, = (M 1)/2
B lc FIR loi 3: h(n) phn i xng, M l, = /2, = (M 1)/2
B lc FIR loi 4: h(n) phn i xng, M chn, = /2, = (M 1)/2
p ng tn s ca FIR cho tng loi:
Loi 1:
1
2

H() = [=0 a()cosn] e

(M1)

(0) = (

1
2

vi {
1
1
() = 2 (
) 1
2

Loi 2:

(M1)

2
H() = [=1
b()cos (n )] ej

vi () = 2 ( ) 1

Loi 3:
1
2

(M1)
)
2

H() = [=1 c()sinn] ej( 2

vi () = 2 (

1
2

) 1

1
2

Loi 4:

(M1)
)
2

H() = [=1 d()sin (n )] ej( 2


2

vi () = 2 ( ) 1

54

BI 5: B LC S FIR

Bi 5.1. Xc nh p ng tn s ca b lc FIR loi 1 t chui p ng xung. To


function FIR_t1 nh sau:
function [a,w,L,Hr] = FIR_t1(h)
M = length(h);
L = (M-1)/2;
a = [h(L+1) 2*h(L:-1:1)];
n = [0:1:L];
w = linspace(0,2*pi,100);
Hr = cos(w*n)*a';
stem(Hr);
Lu file vi tn FIR_t1.m. Thc hin tnh ton vi p ng xung h1 = [1.5 -2.5 3 -2.5
1.5]:
>>h1 = [1.5 -2.5 3 -2.5 1.5];
>> [a,w,L,Hr]=FIR_t1(h1);
Bi 5.2. Xc nh p ng tn s cho b lc FIR loi 2: Vit function FIR_t2. Thc hin
tnh ton vi p ng xung h2 = [1.5 -2.5 3 3 -2.5 1.5].
Bi 5.3. Xc nh p ng tn s cho b lc FIR loi 3: Vit function FIR_t3. Thc hin
tnh ton vi p ng xung h3 = [1.5 -2.5 3 2.5 -1.5].
Bi 5.4. Xc nh p ng tn s cho b lc FIR loi 4: Vit function FIR_t4. Thc hin
tnh ton vi p ng xung h4 = [1.5 -2.5 3 -3 2.5 -1.5].
Bi 5.5. Cho p ng xung ca b lc FIR nh sau: h = [-1 2 1.3 -2.2 0.6 3 0.6 -2.2
1.3 2 -1]. p ng xung h(n) i xng vi M l nn y l b lc FIR loi 1.
a. Biu din p ng xung:
>>h = [-1 2 1.3 -2.2 0.6 3 0.6 -2.2 1.3 2 -1];
>>M = length(h);
>>n = 0:M-1;
>>subplot(221); stem(n,h);
>>title(Dap ung xung);xlabel(n);ylabel(h(n));

BI 5: B LC S FIR

55

b. Cc h s ca b lc:
>>[a,w,L,Hr] = FIR_t1(h);
>>subplot(222);stem(0:L,a);
>>title(Cac he so a(n));xlabel(n);ylabel(a(n));
c. p ng tn s:
>>w = linspace(0,2*pi,100)';
>>subplot(223);plot(w,Hr);
>>title(Dap ung tan so);xlabel(\omega);ylabel(H(\omega));
d. Phn b cc - khng:
>>subplot(224); zplane(h,1);
>>title(Bieu do cuc khong);xlabel(Thuc);ylabel(Ao);
Bi 5.6. Thc hin li bi 5.5 vi p ng xung h = [-1 2 1.3 -2.2 0.6 3 3 0.6 -2.2 1.3
2 -1].
Bi 5.7. Thc hin li bi 5.5 vi p ng xung h = [-1 2 1.3 -2.2 0.6 3 -0.6 2.2 -1.3 -2
1].
Bi 5.8. Thc hin li bi 5.5 vi p ng xung h = [-1 2 1.3 -2.2 0.6 3 -3 -0.6 2.2 -1.3
-2 1].

5.2 PHNG PHP CA S


Bi 5.9. To hm ideal_lp xc nh p ng xung ca b lc thng thp l tng theo
tn s ct c v chiu di chui p ng xung.
function hd = ideal_lp(wc,M)
alpha = (M-1)/2;
n = [0:1:(M-1)];
m = n - alpha + eps;
hd = sin(wc*m)./(pi*m);
Bi 5.10. To hm freqz_m tnh ton ln v pha ca p ng tn s, hm tr nhm.
function [db,mag,pha,grd,w] = freqz_m(b,a)

56

BI 5: B LC S FIR

% db = Do lon tuong doi theo dB tren doan tu 0 den pi


% mag = Do lon tuyet doi tren doan tu 0 den pi
% pha = Dap ung pha tren doan tu 0 den pi
% grd = Tre nhom tren doan tu 0 den pi
% w = Cac mau tan so doan tu 0 den pi
% b = Cac he so da thuc tu so cua H(z) (voi FIR: b=h)
% a = Cac he so da thuc mau so cua H(z)(voi FIR: a=[1])
[H,w] = freqz(b,a,1000,'whole');
H = (H(1:1:501))';
w = (w(1:1:501))';
mag = abs(H);
db = 20*log10((mag+eps)/max(mag));
pha = angle(H);
grd = grpdelay(b,a,w);
Bi 5.11. Thit k b lc thng thp theo phng php ca s Hamming vi cc tham
s nh sau:
p = 0.2; s = 0.3; Rp = 0.25 dB; As = 50 dB
Vic thit k b lc l qu trnh tm ra cc tham s, hay chui p ng xung ca b lc,
tho mn cc yu cu ch tiu k thut cho trc, c th l mt s hoc tt c cc tham s
tuyt i (absolute specification) sau:
Tn s ct di thng
Tn s ct di thng

p
s

B rng di qu
gn sng di thng
gn sng di chn

Cc tham s thng c cho di dng n v dB:


gn sng di thng theo dB:

R p = 20

1
1+

BI 5: B LC S FIR

57

suy gim di chn theo dB:

A = 20

1+

Cc hm ca s trong MATLAB: boxcar hay rectwin, bartlett, hanning, hamming,


blackman, Kaiser.
>>wp = 0.2*pi; ws =0.3*pi;
>>tr_width = ws - wp;
>>M = ceil(6.6*pi/tr_width) + 1;
>>n = [0:1:M-1];
>>wc = (ws+wp)/2;
>>hd = ideal_lp(wc,M);
>>w_ham = (hamming(M))';
>>h = hd.*w_ham;
>>[db,mag,pha,grd,w] = freqz_m(h,[1]);
>>delta_w = 2*pi/1000;
>>Rp = -(min(db(1:1:wp/delta_w+1)))
>>As = -round(max(db(ws/delta_w+1:1:501)))
a. p ng xung:
>>subplot(221); stem(n,hd);
>>axis([0,M-1,-0.1,0.3]);
>>title('Dap ung xung ly tuong');xlabel('n'); ylabel('h_d(n)');
b. Ca s Hamming:
>>subplot(222); stem(n,w_ham);
>>axis([0,M-1,0,1.1]);
>>title('Cua so Hamming');xlabel('n'); ylabel('w(n)');
c. p ng tn s:
>>subplot(223); stem(n,h);
>>axis([0,M-1,-0.1,0.3]);

58

BI 5: B LC S FIR

>>title('Dap ung tan so');xlabel('n'); ylabel('h(n)');


d. p ng tn s theo dB:
>>subplot(224); plot(w,db);
>>axis([0,1,-100,10]);
>>title('Dap ung tan so theo dB');xlabel('\omega'); ylabel('dB');
Bi 5.12. Thit k b lc thng di theo phng php ca s Blackman vi cc tham s
nh sau:
s1 = 0.2; p1 = 0.35; p2 = 0.65; s2 = 0.8; Rp = 1 dB; As = 60 dB
Qu trnh thc hin nh bi 5.11. V l thuyt, p ng xung l tng ca b lc thng
di l tng l hiu p ng xung ca hai b lc thng thp l tng. Dng hm idea_lp
nh bi 5.9 xc nh p ng xung ca b lc thng di l tng trong cc tn s ct
c th chn l trung bnh ca cc tn s ct di thng v di chn. Thng s rng di
chuyn tip tnh chiu di chui p ng xung c th chn l gi tr nh nht ca
rng hai di chuyn tip, t di chn ln di thng [s1,p1] v t di thng xung di chn
[p2,s2].

5.3 PHNG PHP LY MU TN S


Xt p ng xung h(n) ca h thng LTI c p ng tn s l:

H() = 1
=0 ()

Ta ch nh mt tp tn s nh sau:

= 0, 1, ,
k =

( + ), = 0, 1, ,
{

1
2

= 0

1
2

Khi :
2

H(k + ) = H(

(+)
( + )) = 1
=0 ()

Tp hp cc gi tr {H(k + )} gi l cc mu tn s ca H(). Trong trng hp = 0,


{H(k)} tng ng vi DFT M im ca h(n).

BI 5: B LC S FIR

59

Bi 5.13. Thit k b lc thng thp theo phng php ly mu tn s vi cc tham s


nh sau:
p = 0.2; s = 0.3; Rp = 0.25 dB; As = 50 dB
Chn p ng xung c chiu di 60 ng vi 60 mu tn s trong khong [0,2). Di
thng c rng l 0.2 tng ng vi 7 mu nhn gi tr 1. Gi s qu trnh ti u ho
ch ra nn chn di chuyn tip 2 mu nhn cc gi tr T1 = 0.5925 v T2 = 0.1099. Mu
cc tn s c cho nh sau:
H(k) = [1,1,1,1,1,1,1,T1,T2,0,0,,0,0,T2,T1,1,1,1,1,1,1]
(43 s 0)
>>M = 60; alpha = (M-1)/2; L = 0:M-1; wl = (2*pi/M)*L;
>>Hk

[ones(1,7),0.5925,0.1099,zeros(1,43),

0.1099,

ones(1,6)];
% Dap ung tan so mau ly tuong
>>Hdr = [1,1,0,0]; wdl = [0,0.2,0.3,1];
% Dap ung tan so ly tuong de bieu dien do thi
>>k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1;
>>angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)];
>>H = Hk.*exp(j*angH);
>>h = real(ifft(H,M));
>>[db,mag,pha,grd,w] = freqz_m(h,1);
>>[a,ww,L,Hr] = FIR_t2(h);
a. Chui mu tn s:
>>subplot(221); plot(wl(1:31)/pi,Hk(1:31),'o',wdl,Hdr);
>>axis([0,1,-0.1,1.1]);
>>title('Cac mau tan so: M=60, T2 = 0.5925, T1 = 0.1099');
>>xlabel(f[*\pi]'); ylabel('Hr(k)');
b. p ng xung ca b lc thc t:
>>subplot(222); stem(L,h);

0.5925,

60

BI 5: B LC S FIR

>>axis([-1,M,-0.1,0.3]);
>>title('Dap ung xung');
>>xlabel('n'); ylabel('h(n)');
c. Bin ca p ng tn s:
>>subplot(223); plot(ww/pi,Hr,wl(1:31)/pi,Hk(1:31),'o');
>>axis([0,1,-0.2,1.2]);
>>title('Bien do cua dap ung tan so');
>>xlabel('f[*\pi]'); ylabel('Hr(w)');
d. Bin ca p ng tn s theo dB:
>>subplot(224); plot(w/pi,db);
>>axis([0,1,-100,10]); grid
>>title('Bien do cua dap ung tan so ');
>>xlabel('f[*\pi]'); ylabel('dB');
Bi 5.14. Thit k b lc thng di theo phng php ly mu tn s vi cc tham s
nh sau:
s1 = 0.2; p1 = 0.35; p2 = 0.65; s2 = 0.8; Rp = 1 dB; As = 60 dB
Chn p ng xung c chiu di 40 ng vi 40 mu tn s trong khong [0,2). Di
thng c rng l 0.3 tng ng vi 7 mu nhn gi tr 1. Gi s qu trnh ti u ho
ch ra nn chn di chuyn tip 2 mu nhn cc gi tr T1 = 0. 109021 v T2 = 0.59417456.
Mu cc tn s c cho nh sau:
H(k) = [0,0,0,0,0,T1,T2,1,1,1,1,1,1,1,T2,T1,0,,0,T1,T2,1,1,1,1,1,1,1,T2,T1,0,0,0,0]
(9 s 0)
Qu trnh thc hin tng t bi 5.13.

5.4 PHNG PHP LP


p ng tn s ca 4 loi b lc FIR:
H() = P()Q()
Hm sai s gia b lc thc t v b lc l tng:

BI 5: B LC S FIR

() = ()[ () ()] = ()() [

61

()
()]
()

Ta nh ngha:
() = ()()
() =

()
()

Khi :
()[
() ()]
() =
Parks v McClellan a ra gii php s dng thut ton Remez tm ra p ng
xung ca b lc ti u, tc l gn ng theo ngha Chebyshev i vi mt b lc l tng,
cho gi tr M l chiu di ca chui p ng xung vi cc iu kin rng buc v gn
sng di thng v di chn nh sau:
1. Xc nh loi b lc, tnh gi tr R v xy dng cc hm W(), Q().
Loi b lc
FIR loi 1

R
1
2

P()

Q()
1

()
=0

FIR loi 2

1
2

()

cos(/2)

=0

FIR loi 3

1
1
2

sin

()
=0

FIR loi 4

1
2

()

sin(/2)

=0

(), ().
2. Xy dng bi ton gn ng bng cch xc nh cc hm
3. S dng thut ton trao i Remez tm ra hm ti u P().
Chn ly R+2 im ri rc, gi s l cc cc tr ca hm sai s.
Trn c s ti R+2 im ri rc ni trn, hm E() lun phin i du v c tr
tuyt i bng mt gi tr no , tnh ni suy li gi tr v hm P(), t tnh ra
hm sai s E(), tnh c cc tr thc ca hm sai s.

62

BI 5: B LC S FIR

Xem xt xem cc gi tr ri rc c chn ban u c thc s l cc im m hm


sai s E() t cc tr v c tr tuyt i bng nhau hay khng. Nu khng, tm cc im
ti E() t cc tr.
Trong cc im cc tr ca E() ly ra R+2 im v quay v lp li t bc 2.
Lp li cc bc 2, 3, v 4 cho n khi tp hp cc im ri rc hi t.
T tp cc im ri rc cui cng, tnh ra hm P(), t tnh ra cc h s ca
P().
4. Tnh cc gi tr ca chui p ng xung h(n).
Khi chn gi tr M cng chun th kt qu l thu c b lc c hm p ng tn s cng
gn vi yu cu bi ton. Nu nh vi gi tr M no m cha tho mn c yu cu th
phi tng gi tr M n khi no tho mn cc iu kin rng buc cho p v s (hay As v
Rp). Mt cng thc la chn ban u cho chiu di M ca p ng xung l:
0 =


201 2 13
=
14.6
2

Trong MATLAB, tm p ng xung ca b lc ti u vi gi tr M v hm p ng tn s


l tng cho trc c thc hin bi hm firpm.
Bi 5.15. To script file sau biu din b lc trn th:
wp = 0.2*pi; ws =0.3*pi; Rp = 0.25; As = 50;
delta_w = 2*pi/1000;
wsi = ws/delta_w+1;
delta1 = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta2 = (1+delta1)*(10^(-As/20));
deltaH = max(delta1,delta2);
deltaL = min(delta1,delta2);
weights = [delta2/delta1 1];
deltaf = (ws-wp)/(2*pi);
M = ceil((-20*log10(sqrt(delta1*delta2))-13)/(14.6*deltaf)+1)
f = [0 wp/pi ws/pi 1];
m = [1 1 0 0];

BI 5: B LC S FIR

h = firpm(M-1,f,m,weights);
[db,mag,pha,grd,w] = freqz_m(h,[1]);
Asd = -max(db(wsi:1:501))
while Asd<As
M = M+1
[h,ERR,RES] = firpm(M-1,f,m,weights);
[db,mag,pha,grd,w] = freqz_m(h,[1]);
Asd = -max(db(wsi:1:501))
end
n = [0:1:M-1];

subplot(221); stem(n,h);
axis([0,M-1,-0.1,0.3]);
title('Dap ung xung');
xlabel('n'); ylabel('h(n)');

subplot(222); plot(w/pi,db); grid;


axis([0,1,-80,10]);
title('Dap ung tan so theo dB');
xlabel('f[*\pi]'); ylabel('dB');

subplot(223); plot(w/pi,mag); grid;


axis([0,1,-0.2,1.2]);
title('Dap ung tan so');
xlabel('f[*\pi]'); ylabel('Hr(\omega)');

subplot(224); plot(RES.fgrid,RES.error); grid;


axis([0,1,-0.0150,0.0150]);

63

64

BI 5: B LC S FIR

title('Dap ung tan so cua loi');


xlabel('f[*\pi]'); ylabel('Er(\omega)');
Bi 5.16. Thc hin nh bi 5.15 cho b lc thng di theo phng php ly mu tn
s vi cc tham s nh sau:
s1 = 0.2; p1 = 0.35; p2 = 0.65; s2 = 0.8; Rp = 1 dB; As = 60 dB

BI 6: B LC S IIR

65

BI 6: B LC S IIR
Sau khi hc xong bi ny, ngi hc c th:

Thit k mt b lc IIR da theo cc thng s cho trc.

6.1 THIT K B LC TNG T


Cc yu cu thit k cho b lc tng t da trn iu kin gii hn cc ch tiu k
thut cho bnh phng bin ca hm p ng tn s. Hm truyn Ha(s) ca mt h
thng tuyn tnh bt bin tng t l bin i Laplace hm p ng xung h a(t) ca h
thng v Ha(s) chnh bng t s gia bin i Laplace ca tn hiu u ra vi bin i
Laplace ca tn hiu u vo. Hm p ng tn s Ha() ca mt h thng tuyn tnh
bt bin l hm th hin p ng ca h thng vi u vo l cc gi tr tn s khc
nhau. Do , hm p ng tn s l bin i Fourier hm p ng xung h a(t) ca h
thng v hm Ha() cng chnh l hm h thng Ha(s) nh gi trn trc o.
i vi cc h thng thc hin c v mt vt l, p ng xung bao gi cng l mt
hm thc. Do , hm truyn lun i xng qua trc thc. Mt khc, mt h thng tng
t l nhn qu v n nh nu v ch nu tt c cc im cc ca hm truyn t nm
na bn tri ca mt phng s hoc nm gc to . Khi ta xt n bnh phng bin
ca hm h truyn t, cc im cc ca hm s ny s phn b trn tt c cc gc
phn t ca mt phng S. Lc ny, vic xt p ng tn s ca h thng cng thun
tin v tt c cc im cc nm bn tri mt phng S ca hm |Ha(s)|2.
Yu cu v ch tiu k thut ca b lc thng thp tng t thng c cho di
dng nh sau:

1
| ()| 1, ||
1 + 2
1
0 | ()| 2 , ||

vi p v s ln lt l cc tn s ct di thng v tn s ct di chn, l tham s


gn sng v A l tham s suy gim. Quan h gia v A vi Rp v As hay p v s:
= 10

1
1010 1

=
1 + 2

66

BI 6: B LC S IIR

= 10

1
2

= 1020

2
1
1
=

=
1 +
1
1 + 2
1 +

1
= =
1 +

C 4 nh dng c bn thng c vn dng trong qu trnh thit k b lc tng t


l: b lc Butterworth, b lc Chebyshev-1, b lc Chebyshev-2 v b lc Elliptic. Cc
hm MATLAB c th s dng cho bi thc hnh ny l:
freqs: tr v p ng tn s ca mt h thng tng t khi bit hm truyn di
dng phn thc hu t.
impulse: tr v p ng xung ca mt h thng tng t khi bit hm truyn di
dng phn thc hu t
buttap, cheb1ap, cheb2ap, ellipap: tr v cc im khng, im cc, v li
trong thit k ca mt hm truyn b lc thng thp bc N, tn s ct c chun
ho bng 1 vi cc nh dng ln lt l Butterworth, Chebyshev-I, Chebyshev-II, v
Elliptic.
impinvar, bilinear: tr v cc h s ca a thc t s v a thc mu s hm truyn
t ca h thng s xut pht t h thng tng t qua cc phng php chuyn i bt
bin xung v song tuyn tnh.
butter, cheby1, cheby2, ellip: tr v cc h s ca a thc t s v a thc mu
s hm truyn ca b lc s da trn tham s u vo l cc tn s ct, phng php
chuyn i c s dng trong cc hm ny l phng php bin i song tuyn tnh.
Hm freqs ca MATLAB tr v p ng tn s ca mt h thng tng t khi bit
trc h s ca a thc t s v a thc mu s ca hm truyn t Ha(s). Trong nhiu
trng hp, thun tin ta cn tm thm cc thng s: hm ln ca p ng tn s,
hm pha ca p ng tn s, hm tr nhm, th hin ln theo thang decibels.
Bi 6.1. To hm tnh p ng tn s freqs_m nhm tnh cc thng s trn:
function [db,mag,pha,w] = freqs_m(b,a,wmax);
% db = Do lon tuong doi theo dB tren doan tu 0 den wmax
% mag = Do lon tuyet doi tren doan tu 0 den wmax
% pha = Dap ung pha tren doan tu 0 den wmax

BI 6: B LC S IIR

67

% w = Cac mau tan so tren doan tu 0 den wmax


% b = Cac he so da thuc tu so cua Ha(s)
% a = Cac he so da thuc mau so cua Ha(s)
% wmax = Tan so cuc dai theo don vi rad/sec tren doan
% tan so mong muon tim dap ung tan so
w = [0:1:500]*wmax/500;
H = freqs(b,a,w);
mag = abs(H);
db = 20*log10((mag+eps)/max(mag));
pha = angle(H);
Hm cheb1ap tr v danh sch cc im khng, im cc v li ca hm truyn
t cho thit k b lc dng Chebyshev I, tn s ct c chun ho.
p ng tn s ca b lc thng thp Chebyshev I bc N:
| ()| =

1 + 2 2 ( )

Trong l tham s gn sng di thng, c l tn s ct v TN(x) l a thc


Chebyshev bc N:
cos[ 1 ()]
1 1
() = {
1 ()]
|| > 1
cosh[
Gi tr thch hp ca N cho nh sau:
log( + 2 1)
=

log( + 2 1
Vi:
2 1

= 2
=

Bi 6.2. To hm u_chb1ap nhm tr v h s ca cc a thc t s v a thc


mu s ca hm truyn t cho thit k b lc dng Chebyshev I c tn s ct tu :
function [b,a] = u_chb1ap(N,Rp,Omegac)
% Bo loc thong thap dang Chebyshev-1
% tan so cat khong duoc chuan hoa

68

BI 6: B LC S IIR

% [b,a] = u_chb1ap(N,Rp,Omegac)
% b = cac he so da thuc tu so cua Ha(s)
% a = cac he so da thuc mau so cua Ha(s)
% N = Bac cua bo loc Chebyshev-I
% Rp = Do gon dai thong theo don vi dB; Rp > 0
% Omegac = tan so cat theo don vi radians/sec
[z,p,k] = cheb1ap(N,Rp);
a = real(poly(p));
aNn = a(N+1);
p = p*Omegac;
a = real(poly(p));
aNu = a(N+1);
k = k*aNu/aNn;
B = real(poly(z));
b0 = k;
b = k*B;
Hm s m t trn tr v hm truyn vi bc N cho trc. Bc ca b lc c th la
chn cho ph hp ti u vi cc ch tiu k thut yu cu u vo.
Bi 6.3. To hm afd_chb1 tr v thit k b lc thng thp tng t, nh dng
Chebyshev c bc ti u:
function [b,a] = afd_chb1(Wp,Ws,Rp,As)
% Analog Lowpass Filter Design: Chebyshev-1
% [b,a] = afd_chb1(Wp,Ws,Rp,As)
% b = cac he so da thuc tu so cua Ha(s)
% a = cac he so da thuc mau so cua Ha(s)
% Wp = tan so cat dai thong theo don vi rad/sec; Wp >0
% Ws = tan so cat dai chan theo don vi rad/sec; Ws>Wp >0
% Rp = Do gon dai thong theo don vi dB; (Rp > 0)
% As = Do suy giam dai chan theo don vi +dB; (Ap > 0)
if Wp <= 0

BI 6: B LC S IIR

69

error('Tan so cat dai thong phai lon hon 0')


end
if Ws <= Wp
error('Tan so cat dai thong phai lon hon tan so cat dai chan')
end
if (Rp <= 0) | (As<0)
error('Do gon dai thong va/hoac Do suy giam dai chan phai lon
hon 0')
end
ep = sqrt(10^(Rp/10)-1);
A = 10^(As/20);
OmegaC = Wp;
OmegaR = Ws/Wp;
g = sqrt(A*A-1)/ep;
N

ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-

1)));
fprintf('\n*** Bac cua bo loc Chebyshev-1 = %2.0f\n',N);
[b,a] = u_chb1ap(N,Rp,OmegaC);
Bi 6.4. Thit k b lc thng thp tng t, nh dng Chebyshev-I vi cc tham
s u vo nh sau:
p = 0.2; s = 0.3; Rp = 1 dB; As = 16 dB
Vit chng trnh tnh v biu din trn th:
a. ln ca p ng tn s
b. p ng pha ca b lc
c. ln tng i tnh theo dB ca p ng tn s
d. p ng xung ca b lc tng t

6.2 THIT K B LC S
Bin i song tuyn tnh l php nh x t mt phng s sang mt phng z nh ngha
nh sau:

70

BI 6: B LC S IIR

2 1 1
1 + 1

Vi b lc tng t cho trc c hm h thng Ha(s), b lc s c thit k nh sau:

2 1 1
)
1 + 1

() = (

Bi 6.5. Chuyn i b lc vi cc tham s cho bi 6.4 sang b lc s bng


phng php bin i song tuyn. Hm bilinear cho php thc hin vic chuyn i ny.
To script file bai605.m nh sau:
wp =0.2*pi; % digital Passband freq in Hz
ws =0.3*pi; % digital Stopband freq in Hz
Rp = 1; % Passband ripple in dB
As = 15; % Stopband attenuation in dB
T = 1; Fs =1/T; % Dat T=1
OmegaP = (2/T)*tan(wp/2);
OmegaS = (2/T)*tan(ws/2);
% Tinh toan bo loc tuong tu:
[cs, ds] = afd_chb1(OmegaP,OmegaS,Rp,As);
% Bien doi song tuyen tinh:
[b,a] = bilinear(cs,ds,Fs);
[db,mag,pha,grd,w] = freqz_m(b,a);
a. p ng tn s:
subplot(221); plot(w/pi,mag);
axis([0,1,0,1.2]); grid
title('Dap ung tan so');
xlabel('f[*\pi]'); ylabel('|H_r(\omega)|');
b. Hm ln tng i tnh theo dB:
subplot(222); plot(w/pi,db);
axis([0,1,-30,10]); grid
title('Dap ung tan so theo dB');
xlabel('f[*\pi]'); ylabel('dB');

BI 6: B LC S IIR

71

c. Hm p ng pha:
subplot(223); plot(w/pi,pha/pi);
axis([0,1,-1,1]); grid
title('Dap ung pha');
xlabel('f[*\pi]'); ylabel('Angle(H_r(\omega))');
d. Tr nhm theo tn s:
subplot(224); plot(w/pi,grd);
axis([0,1,0,15]); grid
title('Group Delay');
xlabel(' f[*\pi]'); ylabel('Samples');
G lnh:
>>bai605
ti ca s lnh kim tra kt qu.
Phng php bt bin xung thc hin ly mu b lc tng t to ra b lc s:
h(n) = ha(nT)
p ng tn s ca b lc s c quan h vi p ng tn s ca b lc tng t nh
sau:

( 2)
1
() =
[
]

Bi 6.6. Thc hin yu cu ca bi 6.5 theo phng php bt bin xung, dng hm
impinvar ca MATLAB. So snh kt qu thu c vi cu trn.
Bi 6.7. To hm zmapping thc hin vic chuyn i bng tn s, tr v hm
truyn ca b lc mi vi tham s u vo l hm truyn t ca b lc thng thp, hm
a thc th hin php i bin s c lp:
% function [bz,az] = zmapping(bZ,aZ,Nz,Dz)
bzord = (length(bZ)-1)*(length(Nz)-1);
azord = (length(aZ)-1)*(length(Dz)-1);
bz = zeros(1,bzord+1);
for k = 0:bzord
pln = [1];

72

BI 6: B LC S IIR

for l = 0:k-1
pln = conv(pln,Nz);
end
pld = [1];
for l = 0:bzord-k-1
pld = conv(pld,Dz);
end
bz = bz+bZ(k+1)*conv(pln,pld);
end
az = zeros(1,azord+1);
for k = 0:azord
pln = [1];
for l = 0:k-1
pln = conv(pln,Nz);
end
pld = [1];
for l = 0:azord-k-1
pld = conv(pld,Dz);
end
az = az+aZ(k+1)*conv(pln,pld);
end
az1 = az(1); az = az/az1; bz=bz/az1;
Bi 6.8. Vit chng trnh chuyn i t b lc thng thp theo thit k ca bi 6.5
sang b lc thng cao c tn s ct c=0.6. Tnh v biu din trn th:
a. ln ca p ng tn s
b. Hm p ng pha ca b lc
c. Hm ln tng i tnh theo dB ca p ng tn s
d. Tr nhm theo tn s.

TI LIU THAM KHO


1. Phm Hng Kim Khnh. X l tn hiu s. H Cng ngh TPHCM.
2. Sanjit K. Mitra. Digital Signal Processing Laboratory using MatLab.
3. inh c Anh V, V Tun Thanh, L Trng Nhn, Tn Tht i Hi. Gio trnh
Thc hnh X l tn hiu s. B mn K thut My tnh, H Bch Khoa TPHCM.
4. H Vn Sung. Thc hnh X l tn hiu s vi MatLab. NXB Khoa hc v K thut.

You might also like