You are on page 1of 14

N i dung

T ng quan v MATLAB T o ngu n tn hi u i u ch tng t i u ch s

Communications Systems Simulation using MATLAB

Course: Communications Systems

12/2007

Gi i thi u v MATLAB

M t s h tnh ton khc

Ton h c

Khoa h c - K thu t Matlab O-Matrix Maple Mathematica MuPAD MathCad

Matrix laboratory H th ng tnh ton khoa h c k thu t Ngn ng l p trnh c p cao Th vi n hm phong ph M ph ng, v th , bi u Phn tch d li u Pht tri n ph n m m k thu t Phin b n m i nh t: Matlab 2007.
3

Maple

Mathematica

Ci t Matlab trn MS Windows

Toolbox trong Matlab


Toolbox l cc th vi n hm s n c h tr cho cc lnh v c tnh ton c th . Cc toolbox thng d ng

Yu c u

CD ph n m m Matlab 6.0 tr ln. License C u hnh my tng i m nh, t i thi u:

Windows 2000 Pentium III , 256 MB RAM CD-ROM HDD cn tr ng 1 GB

Cc b c

Ch y file setup.exe t CD ph n m m v theo h ng d n ti p theo c a chng trnh ci t.


7

Matlab Fuzzy Logic Image Processing Neural Network Signal Processing Simulink Symbolic Math
8

Kh i ng/Thot chng trnh Matlab

Giao di n Matlab

Kh i ng

Nh p p tri chu t vo bi u t ng Matlab trn Desktop. Start \ Programs \ Matlab

Thot

File \ Exit Crtl + Q >> quit

Th c thi l nh
9 10

>> 2 + 3

Enter

Cc phm i u khi n
Ch c nng
thi hnh l nh Xo dng l nh hi n hnh g i cc l nh tr c

Bi u th c (expression) trong Matlab expression)

Phm

Enter

M t bi u th c trong Matlab ch a cc:

Esc

Bi n (variable) Con s (number) Php ton (operator) Hm (function)

backspace, delete

di chuy n qua l i cc k t xo k t tr c, sau v u, cu i dng l nh


11

home, end

12

Bi n (variable) variable)
Tn bi n: B t u b ng 1 ch ci, ti p theo l ch ci, ch s ho c d u g ch d i _. Cc ch ci phn bi t ch hoa, ch th ng. V d : H p l : x, a_b1, v1 Khng h p l : _a, 1x, abc* Bi n c bi t ans: lu gi tr php ton v a tnh. L nh who v whos: cho bi t thng tin v cc bi n ang hi n h u.
13 14

Bi n (variable) variable)

Khng c n khai bo ki u, s chi u, di bi n. M i khi m t ci tn m i xu t hi n v i php gn, Matlab t o bi n v c p pht b nh cho n. V d : sosv = 110 t o m t bi n tn sosv lu gi tr 110. N u l bi n c, n s thay i n i dung m i n u th c hi n php gn. V d : X=3 X=4

Cc php ton (operators) operators)


y=3 5 -1 6 0.6667 1.5000 8
15

u tin php ton


u tin 1 2 3 4 5 Php ton (,) ^ a *,/,\ +,tri qua ph i tri qua ph i
Nh m th : >> -2^3 + 4 * (5 7) \ 6 * 8
16

Php ton

x=2

Tnh u tin trong ra ngoi tri qua ph i

C ng

x+y

Tr

xy

Nhn

x*y

Chia

x/y

Chia ng c

x\y

Lu th a

x^y

Ki u s trong Matlab
H ng s (constant) trong Matlab constant)
pi i, j eps realmin realmax Inf NaN
17

3.14159265 S 2^( 1022) (2 eps)*2^1023 Infinity - V c c (10/0) Not A Number - V nh (0/0)


18

o (i^2 = -1 )

Ki u s chnh l double D u . phn cch ph n th p phn K t i v j dng ch s o K t e dng nhn lu th a c a 10. V d :

Epsilon = 2^(-52) 2^(-

-2.3456 1 + 2i 3j b ng 1 j 1.5e2 b ng 1.5*102 t c l b ng 150

D ng hi n th s
2600/9

Khng hi n th k t qu tnh ton

>>format ki u

Hi n th

short (m c nh) 4 ch s th p phn 288.8889

long

bank

15 ch s th p 2.8888888888 phn 88889e+002 2 ch s th p phn 288.89 2600/9

rat

a/b (phn s )

>>a = pi ? >>format rat; a ?

N u khng mu n th y k t qu c a cc php tnh trung gian, ta t d u ch m ph y sau bi u th c >> x=-13; y = 5*x, z = x^2+y y= -65 z= 104 >>

19

20

Xo bi n
Matlab cung c p r t phong ph v a d ng cc hm ton h c, t s c p n cao c p. C 2 lo i hm trong Matlab

Hm (function) function)

Xo bi n x l xo vng nh c p pht cho bi n x. Xo m t bi n x:

clear x

Xo m t lc nhi u bi n:

clear a b c

Xo h t t t c cc bi n hi n h u:

clear
21

Built-in fuction: hm s n c. V d : sin(), sqrt(), exp(), M-file function: hm vi t trong cc t p tin .m c a Matlab. V d : am(), fsk(), Chng ta khng th th y source code c a cc hm built-in. Ng c l i, ta c th xem v ch nh s a source code c a cc hm lu trong cc file .m.
22

M t s v d v bi u th c trong Matlab

Xem tr gip (Help)


M c ch Cch lm

rho = (1+sqrt(5))/2

rho =

1.6180

a = abs(3+4i)

a=

huge = exp(log(realmax))

huge =
23

1.7977e+308

Xem cch s d ng m t >>help converse hm c tn l converse Tm hm tnh ton trong Help \ Functions m t lnh v c no Categorical List ho c dng ch c nng Search Tm tn hm Help \ Functions Alphabetical List ho c tm trong Index Tm hi u v m t v n Ch ng h n Help \ g Mathematics
24

M t vi hm built-in c b n
log log10 round floor Hm lm trn n s nguyn g n nh t Hm logarit c s 10 Hm logarit neper

Vectors
Vector hng

abs

Tr tuy t i

sqrt

Cn b c 2

sign

Hm d u

conj Lm trn n s nguyn g n nh t nh hn hay b ng s c n lm trn B i ph n th p phn c a s c n lm trn Lm trn n s nguyn g n nh t l n hn hay b ng s c n lm trn Ph n d sau php chia

Lin h p c a 1 s ph c

imag

Ph n o c a 1 s ph c

real fix ceil

Ph n th c c a 1 s ph c

angle

Gc pha c a 1 s ph c

cos

Hm cosine

sin

Hm sine

>> v4 = 3*v v4 = 3.0000 9.0000 6.7082 >> v5 = 2*v -3*v3 v5 = -7.0000 -6.0000 -10.5279 >> v + v2 ??? Error using ==> + Matrix dimensions must agree.

tan rem

Hm tangent

exp

Hm ex

>> v = [ 1 3, sqrt(5)] v= 1.0000 3.0000 2.2361 >> length(v) ans = 3 >> v2 = [3+ 4 5] v2 = 75 >> v3 = [3 +4 5] v3 = 345 >> v + v3 ans = 4.0000 7.0000 7.2361
25

26

Vectors

Vectors
M t cch khc t o vector hng l dng d u :
>> 1:4 ans = 1234 >> 3:7 ans = 34567 >> 1:-1 ans = [] >> 0.32:0.1:0.6 ans = 0.3200 0.4200 0.5200 >> -1.4:-0.3:-2 ans = -1.4000 -1.7000 -2.0000
27 28

>> w = [1 2 3], z = [8 9] >>cd = [2*z,-w] w= 123 z= 89 cd = 16 18 -1 -2 -3 >> w(2) = -2, w(3) w= 1 -2 3 ans = 3

Vectors

Chuy n v

Vector c t
>> c3 = 2*c - 3*c2 c3 = -7.0000 -6.0000 -10.5279
>> w, w', c, c' w= 1 -2 3 ans = 1 -2 3 c= 1.0000 3.0000 2.2361 ans = 1.0000 3.0000 2.2361 >> t = w + 2*c' t= 3.0000 4.0000 7.4721
29

>> c = [ 1; 3; sqrt(5)] c= 1.0000 3.0000 2.2361 >> c2 = [3 4 5] c2 = 3 4 5

>> T = 5*w'-2*c T= 3.0000 -16.0000 10.5279 >> x = [1+3i, 2-2i] ans = 1.0000 + 3.0000i 2.0000 - 2.0000i >> x' ans = 1.0000 - 3.0000i 2.0000 + 2.0000i >> x.' ans = 1.0000 + 3.0000i 2.0000 - 2.0000i

30

V th (Plotting)

V th (Plotting)

V hm s y=sin3x trong o n 0x1 L y m u hm ny b ng 1 s i m l n v k t h p cc i m (x,y) l i b ng cc ng th ng >> N = 10; h = 1/N; x = 0:h:1; Ho c >> x = linspace (0,1,11); >> y = sin(3*pi*x); >> plot(x,y)
31

y = sin 3x v i 0 x 1 s d ng b c h = 0:1

32

V th (Plotting)
>> plot(x,y,r-',x,cos(3*pi*x),b--') >> legend('Sin curve','Cos curve') >> title('Multi-plot ') >> xlabel('x axis'), ylabel('y axis') >> grid
T o l i

Nhi u th cng lc (Multi-plot)

>> N = 100; h = 1/N; x = 0:h:1; >> y = sin(3*pi*x); plot(x,y)

>> plot(x,y,'w-'), hold on >> plot(x,y,'gx'), hold off


33 34

Subplot

Tch v h ng (Scalar product)


>> u = [ 10, -11, 12], v = [20; -21; -22] >> prod = u*v % row times column vector ans= 167 >> w = [2, 1, 3] w= 213 >> u*w ??? Error using ==> * Inner matrix dimensions must agree. >> u*w' % u & w are row vectors ans = 45

C a s chia lm mxn c a s nh hn

>> subplot(221), plot(x,y) >> xlabel('x'),ylabel('sin 3 pi x') >> subplot(222), plot(x,cos(3*pi*x)) >> xlabel('x'),ylabel('cos 3 pi x') >> subplot(223), plot(x,sin(6*pi*x)) >> xlabel('x'),ylabel('sin 6 pi x') >> subplot(224), plot(x,cos(6*pi*x)) >> xlabel('x'),ylabel('cos 6 pi x')

35

36

Dot product
M t ma tr n m x n l m t m ng s ch nh t c m hng v n c t.
>> A = [5 7 9 1 -3 -7] A= 579 1 -3 -7 >> B = [-1 2 5; 9 0 5] B= -1 2 5 905 >> C = [0, 1; 3, -2; 4, 2] C= 01 3 -2 42
38

Matrix

u v v l 2 vector cng ki u (hng ho c c t) u . v = [u1v1; u2v2; ; unvn] >> u.*w ans = 20 -11 36 >> u.*v' ans = 200 231 -264 V d : N u ta c n v hm y=x.sinx, ph i dng dot product
37

Ghp (concatenation) hai ma tr n


Thm dng

Kch th c c a ma tr n

123 456

Thm c t

E = [A; C] 10 12 D = [A B] 11 13 D = horzcat(A, B) E = vertcat(A,C) 123 456 789 1 2 3 10 12 C 978 789 4 5 6 11 13 978 897 897
39

>> size(A) ans = 2 3 >> [r c] = size(A') r= 3 c= 2


40

Ma tr n c bi t
FOR k = mang
doan_lenh

Vng l p FOR
for k = [1 2; 3 4] sum(k) end 4 6

END m i b c, k l y gi tr l t ng c t c a mang

>> P = ones(2,3) P= 1 1 1 1 1 1 >> Z = zeros(2,3) Z= 0 0 0 0 0 0 I = eye(3) I= 1 0 0 0 1 0 0 0 1


41

42

Vng l p FOR l ng nhau


H= 0.5000 0.3333 0.3333 0.2500 0.2500 0.2000

Break
break dng thot ngang vng l p hi n t i V d : cho n l n hn 2, o n l nh sau ki m tra n c ph i l s nguyn t for k = 2 : n-1 nif mod(n,k)==0
disp(n khong nguyen to) break

for i = 1:3 for j = 1:2 H(i,j) = 1/(i+j); end end

end
43

end

44

Cu l nh IF ELSE Cu l nh IF

V d : C php t ng if delta<0 qut: disp(Pt vo nghiem) IF bieu_thuc_logic elseif delta == 0


disp(Pt co nghiem kep) -b/2/a

Doan_lenh

ELSEIF bt_logic
else
disp(Pt co 2 nghiem pbiet) (-b-sqrt(delta))/2/a (-b+sqrt(delta))/2/a

Doan_lenh

Cu l nh IF nh gi tr bieu_thuc_logic v th c thi Doan_lenh n u bieu_thuc_logic l true. true. Cc t kho ELSEIF v ELSE l tu ch n. ng v i m t IF l m t END k t thc Doan_lenh cu i cng.

ELSE

Doan_lenh end
45

END

46

Cu l nh IF l ng nhau

File .m

IF bt1

IF bt2

V d : a = input(a =) disp(b n v a nh p 1 s ) if a > 0

disp(dng) if mod(a,2) ~= 0

END

disp(l )

END

else

disp(ch n)

end

else
47

disp(khng dng)

end

File .m trong Matlab l m t file vn b n ghi cc dng l nh Matlab. C th so n th o cc file.m b ng MATLAB Editor ho c b t k trnh so n th o vn b n no. Lu file c ui l .m G tn file th c thi n i dung cc dng l nh trong file. C 2 lo i file.m: Scripts, Scripts, ch th c thi cc dng l nh, khng c tham s truy n vo hay tr v m t gi tr no c . Functions, Functions, c th nh n tham s truy n vo v tr v gi tr xu t.
48

N i dung
Trong MATLAB s d ng cch bi u di n d i d ng vector ho c ma tr n bi u di n tn hi u >>A=randsrc(2,10,[0,1]) A= 1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 0 1 >>A=randint(2,10,[0,1]) A= 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 >>A=randint(1,10,2) %ho c randint(1,10) A= 1 0 0 0 1 1 1 1 0 0
49 50

T o ngu n tn hi u s

T ng quan v MATLAB T o ngu n tn hi u i u ch tng t i u ch s

T o ngu n tn hi u s

T o ngu n tn hi u s
n=30000; %So bit phat nbit=10; %So bit quan sat fb=1000; %Toc do bit fs=50*fb; %Tan so lay mau x=randint(1,n,2); len=fs/fb*nbit; %Tong so mau trong 10 chu ki bit pattern=[ ]; %Khoi tao vector tin hieu for k=1:nbit %Xet tung chu ki bit if x(k)==0 sig=zeros(1,fs/fb); %Tao 50 mau gia tri 0 else sig=ones(1,fs/fb); %Tao 50 mau gia tri 1 end pattern=[pattern sig]; end time=0:(1/fs):(len-1)/fs; %Vector thoi gian plot(time,pattern); title('Random signals'); xlabel('Time in sec');ylabel('Voltage level'); axis([0 len/fs -0.5 1.5]);
51 52

V d : M t ngu n tn hi u pht ra 30.000 bit n c c ng u nhin, t c fb=1000bps, t n s l y m u fs=50*fb v tn hi u ta ph i t o ra nhi u m u tn hi u trong 1 chu k bit. Quan st trong nbit=10 bit u tin 1s c fb bit, 1s c fs samples 1 bit c fs/fb samples nbit c (fs/fb)*nbit samples

T o ngu n tn hi u s
Bi u di n dng cc vector hay ma tr n M i ph n t c a vector l gi tr c a tn hi u t i cc th i i m l y m u xc nh b i vector th i gian t T n s l y m u l fscc ph n t c a vector th i gian cch u nhau 1 kho ng 1/fs Vd: Bi u di n tn hi u x=sin(20t) trong kho ng [0, 0.1s] v i t n s fs=8kHz Trong 1s c 8000 samplesv i 0.1s ta c 0.1*8000=800 m u t=0:1/fs:0.1
53 54

T o ngu n tn hi u tng t

K t qu ch y chng trnh:

n=30000; %So bit phat nbit=10; %So bit quan sat fb=1000; %Toc do lay mau fs=50*fb; %Tan so lay mau x=randint(1,n,2); len=fs/fb*nbit; pattern=[ ]; for k=1:nbit if x(k)==0 sig=zeros(1,fs/fb); else sig=ones(1,fs/fb); end pattern=[pattern sig]; end time=0:(1/fs):(len-1)/fs; plot(time,pattern); title('Random signals'); xlabel('Time in sec');ylabel('Voltage level'); axis([0 len/fs -0.5 1.5]);

You might also like