Giáo trình thí nghim CAD
% ket thuc script file
Sau khi lưu file này, t ca s lnh ca Matlab, sinh viên hãy nhp:
>>help bai21
Để thi hành script file va son, hãy nhp:
>>bai21
d Son tho script file có tên bai22.m để lp biu đồ tng s sinh viên
Đin T - Tin hc tt nghip ti khoa Công ngh Thông tin, Đại hc Cn
thơ t năm 1996 đến 2001 vi d liu như sau:
Năm K sư Đin t K sư Tin hc
1996 38 48
1997 33 54
1998 36 120
1999 31 92
2000 60 110
2001 70 131
Ni dung ca script file như sau:
%
% Lap bieu do tong so sinh vien Dien tu – Tin hoc tot nghiep ti
% Khoa Cong nghe Thong tin, Dai hoc Can tho, tu 1996-2001
%
svdt=[38 33 36 31 60 70]; % sinh vien Dien tu
svth=[48 54 120 92 110 131]; %sinh vien Tin hoc
nam=1996:2001;
subplot(211), bar(nam,svdt);
title('Sinh vien Dien tu tot nghiep tu 1996-2001');
subplot(212), bar(nam,svth);
title('Sinh vien Tin hoc tot nghiep tu 1996-2001');
Colormap(cool);
%
Thi hành file này t ca s lnh. Sinh viên có th dùng lnh help bar để
biết các thông s ca hàm này và hiu chnh (tùy thích) mt s chc
năng hin th ca hàm bar trong file bai22.m.
e Sinh viên hãy to mt script file có tên bai23.m để v các đồ th trên
hình 2.1.
III.2 S dng các hàm xây dng sn
Matlab h tr mt thư vin hàm rt phong phú, xây dng trên các gii
thut nhanh và có độ chính xác cao. Ngoài các hàm cơ bn ca Matlab,
tp hp các hàm dùng để gii quyết mt ng dng chuyên bit nào đó gi
©
TcAD - 2003 15
Giáo trình thí nghim CAD
là Toolbox, ví d: X lý s tín hiu (Digital Signal Processing), Điu
khin t động (Control), Mng Nơron nhân to (Neural networks), …
Sinh viên xem li giáo trình để biết thêm v các hàm. Ngoài ra, có th
dùng lnh help để biết chc năng ca toolbox và hàm cũng như cách
thc s dng chúng.
help <ten toolbox> % chuc nang toolbox
>>help control % liet ke ham cua control toolbox
help <ten ham> % chuc nang ham
>>help plot % chuc nang ham plot
Ta có th tìm kiếm các hàm liên quan bng cách cung cp cho hàm
lookfor ca Matlab mt t khóa:
lookfor <tu khoa tim kiem>
>>lookfor filter % tìm các hàm liên quan đến mch lc
(Hình 2.1 – dùng cho câu III.1.3)
c Hàm [Y I]=max(X) cho biết phn t ln nht ca vectơ (mãng) X vi ch
s tương tng I.
>>help max
>> x=[1 5 9 7 6 4];
>> [y,i]=max(x)
y =
9
i =
3
Nghĩa là phn t th i=3 ca vectơ x có giá tr ln nht, y=9.
©
TcAD - 2003 16
Giáo trình thí nghim CAD
d Hàm Y=exp(X), tính eX, kết qu tr v cho Y.
>>help exp
>>x=0:0.05:1;
>>y=exp(x);
>>stem(x,y) % giong ham plot nhung ve cho tin hieu roi rac
e Gi s ta mun điu chế biên độ sóng mang được truyn hai băng cnh
(Double sideband transmission carrier Amplitude Modulation) vi:
- Tín hiu điu chế X=0.2*sin(2*pi*t) vi t:0:0.01:10
- Tn s sóng mang fc=620KHz
Sinh viên hãy tìm hàm thích hp và v tín hiu thu được sau khi điu
chế, có dng như hình 2.2:
012345678910
-0.4
-0.2
0
0.2
0.4
Hình 2.2 – Tín hiu thu được sau khi điu chế biên độ
III.3 Xây dng hàm
Vic xây dng hàm cũng được thc hin tương t như script file. Tuy
nhiên, đối vi hàm ta cn quan tâm đến các tham s truyn cho hàm và
các kết qu tr v sau khi thc hin. Có 3 đim cn lưu ý:
- Tên hàm phi được đặt trùng vi tên file lưu tr.
- Phi có t khóa function dòng đầu tiên.
- Trong mt hàm có th xây dng nhiu hàm con (điu này không có
trong script file). Kết thúc hàm con phi có t khóa end (điu này
không cn trong hàm ‘cha’).
Qui cách xây dng hàm được mô t như sau:
function [out1,out2,…]=tenham(in1,in2,…)
% ---------------------------------------------------------------------------------------
% Phn này s hin th khi người s dng dùng lnh help tenham
% ----------------------------------------------------------------------------------------
[global <tênbiến1, tênbiến2, …>] %khai báo biến toàn cc (nếu có)
<Các câu lnh thc hin hàm>
out1=kết qu1 %kết qu tr v ca hàm
out2=kết qu2
©
TcAD - 2003 17
Giáo trình thí nghim CAD
% Các hàm con (nếu có)
[ function [subout1,subout2,…]=tenhamcon(subin1,subin2,…)
<Các câu lnh ca hàm con>
end ] %t khóa end khong can doi voi Matlab Version 6.x
c Xây dng hàm gptb2 để gii phương trình bc hai ax2+bx+c=0. Ni
dung hàm 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 nghiem thuc hoac phuc
% a,b,c la 3 he so cua phuong trinh
%
% Vi du: [x1,x2]=gptb2(1,-3,2)
%
% Copyright 2003 Nguyen Chi Ngon TcAD - CIT - Cantho University
% Email: ncngon@cit.ctu.edu.vn
if nargin<3
error('Vui long nhap du 3 he so cua phuong trinh')
elseif a==0
x1=-c/b;
x2=[];
else
D = b^ 2 - 4*a*c;
x1 = (-b+sqrt(D))/(2*a);
x2 = (-b-sqrt(D))/(2*a);
end
Sau khi lưu file này vi tên gptb2.m, sinh viên th kim chng kết qu:
>>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)
9 Cho biết ý nghĩa ca t khóa nargin?
9 Sinh viên hãy viết li hàm này để kết qu ch tr v nghim s thc.
d Xây dng hàm vdcongdb(a,m,method) để v mt s đường cong đặc
bit trong h ta độ cc, vi a là bán kính và m là s đưng cong v trên
cùng trc ta độ. Trường hp này hàm không tr v giá tr nên ta không
cn biến ngõ ra.
Tu theo giá tr ca tham s ‘method’ mà ta v đồ th tương ng:
©
TcAD - 2003 18
Giáo trình thí nghim CAD
Nếu method = ’Becnulli’: V đường Lemniscat Becnulli: θ= 2cos2ar
Nếu method = ’Astroit’: V đường Astroit: 4
3sin
1
θ
= ar
Nếu method = ‘Xoanoc’: V đường xon c: 1cosr +θ
=
Ni dung hàm 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
% Vi du: vdcongdb(0.5, 4, 'Becnulli')
%
% Copyright 2003 Nguyen Chi Ngon, TcAD - CIT - CTU
% Email: ncngon@cit.ctu.edu.vn
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
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'', ''Aristod'' 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);
©
TcAD - 2003 19