TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ – VIỄN THÔNG
---------------o0o---------------
BÁO CÁO
THỰC HÀNH – THÍ NGHIỆM
TIN HỌC ỨNG DỤNG TRONG ĐIỆN TỬ - VIỄN THÔNG
GIÁO VIÊN HƯỚNG DẪN
SINH VIÊN
LỚP
NHÓM
: Ths. VŨ ĐỨC HOÀN
:
: DTV54DH2
: N02-TH2
HẢI PHÒNG, THÁNG 05/ 2015
MỤC LỤC
Trang
CHƯƠNG I: GIỚI THIỆU CHUNG VỀ MATLAB
1.1 Tổng quan về MATLAP
1.1.1 Tổng quan về cấu trúc dữ liệu của MATLAP và các ứng dụng
CHƯƠNG II: CẤU TRÚC CÚ PHÁP, LẬP TRÌNH GUI, MATLAB SIMULINK
2.1 Cấu trúc cú pháp
2.2 lập trình GUI
2.3 MATLAP Simuink.................................................................................
CHƯƠNG III: NỘI DUNG VÀ KẾT QUẢ THỰC HÀNH TIN HỌC ỨNG DỤNG TRONG
1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng này không đòi hỏi
về kích thước). Chúng cho phép giải quyết các vấn đề liên quan
đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vectơ và có thể sử
dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh
gọi từ Matlab. Matlab được viết tắt từ chữ “MATrix LABoratory” tức là thư viện về ma trận,
từ đó phần mềm Matlab được viết nhằm
cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này
được phát triển bởi các công trình Linpack và Eispack. Ngày nay Matlab được phát triển bởi
Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận.
1.2.1 Dữ liệu
Dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng quát), và có các kiểu dữ liệu
được liệt kê sau đây:
•
•
•
•
•
•
•
Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiểu dữ liệu
này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn.
Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab.
Kiểu Sparse.
Kiểu uint8, uint8, uint16, uint64...
Kiểu char ví dụ “Hello”.
Kiểu cell.
Kiểu Structure.
biến. Một biến sẽ được tự động tạo ra trong quá trình gán dữ liệu cho biến đó. Mỗi giá trị khi
mới tạo ra thì được mặc định là số double, kiểu số 32 bit. Chúng ta có thể sử dụng lệnh single
để chuyển kiểu số từ double sang single, là kiểu số 16 bit.
>>a=single(a);
Lệnh single nên được sử dụng trong trường hợp cần xử lý những ma trận có kích thước lớn.
Tuy nhiên trong trường hợp chỉ có vài giá trị được sử dụng thì ta lên chuyển qua dạng double
để có được sự chính xác cao hơn. Sử dụng lệnh double để thực hiện phép biến đổi này.
>> a=double(a);
Lưu ý rằng một biến chưa được định nghĩa thì không được sử dụng để gán cho một biến khác
>>clear x;
>>f=x^2+4*sin(x);
Đoạn lệnh ở trên sẽ không cho ra kết quả đúng bởi vì giá trị của x chưa được khởi tạo. Biểu
thức trên có thể sửa lại bằng cách gán một giá trị bất kỳ cho biến x.
>>x=pi
>> f=x^2+4*sin(x);
Trong MATLAP, tên của một biến phải được bắt đầu bằng một ký tự chữ, có thể là chữ thường
hoặc chữ in hoa, và theo sau bởi các ký tự chữ, các ký tự số, hoặc dấu gạch chân. MATLAP
chỉ có thể phân biệt được các biến với nhau bởi 31 ký tự đầu tiên của tên biên.
2.2 LẬP TRÌNH GUI
Giao diện người sử dụng ( Graphical User Interface – GUI) là giao diện bằng hình ảnh của
chương trình. Một GUI tốt có thể làm chương trình trở lên dễ sử dụng bằng cách cung cấp
thông tin ban đầu cần thiết và với những công cụ điều khiển như: nút nhấn (pushbutton), hộp
liệt kê (listbox), thanh trượt (slider), trình đơn ( menu),...GUI nên được thiết kế một cách dễ
hiểu và thân thiện để người sử dụng có thể hiểu và dự đoán được kết quả của một tác động
2.2.1 Cách làm việc của một GUI
GUI bao gồm các nút nhấn, hộp liệt kê, thanh trượt, menu,..., chúng cung cấp cho người sử
và thể hiện ở hình 2.1
Hình 2.1
Công cụ
Tạo bởi hàm
Miêu tả
Các công cụ điều khiển
Pushbutton
Là một nút nhấn. Nó sẽ gọi hàm khi nhấn vào nó
Toggle button
Là nút nhấn co hai trạng thái là “on” và “off”.
Khi có tác động nó sẽ gọi hàm tương ứng và thay
đổi trạng thái từ “on” sang “off” hoặc ngược lại.
Radio button
Cũng là một nút nhấn có hai trạng thái được thể
hiện bởi 1 vòng tròn nhỏ, trạng thía “on” tương
ứng với trường hợp có dấu chấm giữa vong tròn
và ngược lại. Trong một nhóm Radio button ta
chỉ có thể chọn 1 thành phần. Khi có tác động
vào mỗi thành phần sẽ có 1 hàm được gọi.
Frame
Unicontrol
Text field
Menu và trục đồ thị
Được sử dụng để tạo ra 1 khung hình chữ nhật.
Frame còn được sử dụng để nhóm các công cụ
điều khiển lại với nhau.
Được sử dụng để tạo ra 1 nhãn bao gồm các ký
tự, nhưng ko có khả năng gọi hàm.
Menu items
Uicontrol
Context menus Nicontextmenu
Axes
Axes
Được sử dụng để tạo ra menu trong thanh công
cụ. Chương trình sẽ gọi hàm khi 1 menu đc chọn.
Được sử dụng để tạo ra menu xuất hiện khi rightclick vào 1 hình trong giao diện.
Được sử dụng để tạo ra 1 hệ trục đồ thị.Axes ko
có khả năng gọi hàm.
Bảng 2.1
3.1 Bài 1: “Nhập dòng lệnh trong Matlab”
1.1. Mục tiêu:
1.1: Thiết lập đường dẫn và không gian làm việc trên MATLAB
1.2: Cửa sổ lệnh và cách nhập dòng lệnh trên MATLAB
1.3: Lưu trữ và load dữ liệu
1.4: SỬ dụng công cụ trợ giúp trên MATLAB
1.5: Cú pháp và biến khi lập trình bằng MATLAB
1.2. Công tác chuẩn bị của sinh viên:
2.1: Tìm hiểu ý nghĩa các từ, cụm từ: path, load, save, command windows
2.2: Các phím tắt khi dùng máy tính và phím tắt chức năng trên phần mềm MATLAB
1.3. Trang thiết bị cần thiết:
3.1: Máy thính PC hoặc Laptop
3.2: Phần mềm MATLAb7.0 hoặc các phiên bản cao hơn đã được cài đặt vào MATLAB
3.3: BỘ công cụ soạn thảo Microsoft Office
1.4. Các nội dung, quy trình:
1.4.1: Tạo Folder với tên “MSVXx-TH.MATLAB”
1.4.2: Khởi động MATLAB
1.4.3: Từ phần mềm MATLAB chọn Set Path. Xuất hiện hộp thoại. Sau đó chọn Add foder. Chọn đường
dẫn đến thư mục vừa tạo.
1.4.4: Thiết lập chế độ hiển thị sao cho có thể quan sát được cửa ssoor Command Window một cách dễ
dàng. Từ cửa sổ Command Window, tiến hành thực hiện nhập các lệnh cơ bản theo bảng 1.1. Quan sát kết quả
trả về, ghi lại và giải thích chức năng và chức sử dụng của các lệnh đó:
ST
T
1
2
Các nhập lệnh trên cửa sổ Command Window
5
a=[-1.9,0.2,3.5,5.6,7.0,2.4+3.6i],round_a=round(a),floor_a=floor(a),ceil_a=(a),
fix_a=(a)
format long; B=sqrt(36)*log(2),format short;B=sqrt(36)*log(2)
6
7
B
=4.158883083359
672
B =4.1589
Array =1.0357
Array=sin(1)+sin(2)-sin(3)+sin(4)-sin(5)+sin(6)-...
sin(8)+sin(9)-sin(10)+sin(11)-sin(12)
1.4.5: Bấm tổ hợp phím tắt Ctrl+S. Hộp thoại Save As hỏi thiết lập lưu các giá trị vừa thực hiện dưới
dạnh file mở rộng .*mat. Lưu với tên TH-B01.mat
1.4.6:Trên cửa sổ Command Window, thực hiện gõ lần lượt 2 lệnh sau
>>clc
>>clear all
1.4.7: Gõ lệnh: >>load TH-B01.mat
1.4.8: Load các biến trong Workspace bằng lệnh >>who
1.4.9: Xem độ lớn các biến bằng lệnh >>whos
1.4.10:Liệt kê các hàn toán học có sẵn trong MATLAB bằng lệnh: >.help elfun
Danh sách tên các hàm toán học được hỗ trợ bởi MATLAB được liệt kê và giải thích một cách ngắn gọn.
-Câu lệnh: A=[21:2:49]
-Kết quả:
A=
21 23 25 27 29 31 33 35 37 39 41 43
45 47 49
2.4.2. Trừ đi 3 ở mỗi thành phần của vector A
-Câu lệnh: A-3
-Kết quả:
ans =
18
20 22 24 26 28 30 32 34 36 38 40 42 44
46
2.4.3. Cộng 11 vào các thành phần có vị trí lẻ của vector A
-Câu lệnh:
n=length(A)
A(1:2:n)=A(1:2:n)+11
-Kết quả:
A=
32 23 36 27 40 31 44 35 48 39 52 43 56 47 60
2.4.4. Tạo ra một vector với các thành phần với n=1,2,3…,100. Tìm tổng 50 thành phần đầu tiên của
vector này?
-Câu lệnh:
n=(1:100)
9
4
6
x(1:end)
sum(x)
x(1:end-1)
2 1
32
2 1
3
7
9
4
6
3
7
9
1.0000 - 3.0000i
2.0000 + 2.0000i
-x.'
ans =
1.0000 + 3.0000i
2.0000 - 2.0000i
-x*x'
ans =18
-x*x.
ans =-8.0000 - 2.0000i
2.4.7. Từ màn hình Command Window, hãy xóa tất cả các biến (sử dụng lệnh clear). Định nghĩa ma trận
A[1:4;5:8;1 1 1 1]
Câu lệnh
x=A(:.3)
Kết quả
x=
3
7
1
y=
1 1 1
B=
2
6
1
A=
7 7
D=
5 7
7 4
C=A([1,3],2)
A(2:3,1:3)=[0 0 0;0 0 0]
D=A([2,3,5],[1,3,4])
A(2:3,1:2)=[1 1;3 3]
D(2,:)=[]
Ý nghĩa
Lấy cột thứ 3 của A
Ma trận con gồm hàng thứ 3
cột từ 1 đến 4 của A
Ma trận con có hàng từ 1 đến
3 và cột 2 của A
1
Thêm các hàng [2 1 7 7] và [7
7 4 5] vào ma trận A
3
4
1
7
4
Thay giá trị hàng 1 cột 1 bằng
9+(hàng 2,cột 3) của ma trận
A
4
8
1
7
5
Thay hàng 2, 3 cột 1,2 của ma
trận A bằng ma trận
Bỏ hàng 2 của ma trận D
8
5
2.4.8. Xóa toàn bộ các biến bằng lệnh clear. Từ cửa sổ lejnh của MATLAB nhập các biến sau:
>>A=[1,5,6;3,0,8], B=[7,3,5;2,8,1], C=10, D=2
- E=A-B
-6
2
1
8
-
Cộng M và N:
-
J=B/D
-
3
M+N
J = 3.5000 1.5000
2.5000
1.0000 4.0000 0.5000
- tìm tổng tất cả các giá trị của ma trận A:
sum(A)
2.4.9. Từ Command Window nhập lệnh clear sau đó nhập lệnh clc. Định nghĩa ma trận T=[3 3;1 8;-4 3];
A=[diag(-1:2:3)T;-4 4 1 2 1]. Thực hiện phép biến đổi sau đây với ma trận A.
Trích ra một vecto bao gồm thành phần thứ 2 và 4 của hang thứ 3
Tìm giá trị nhỏ nhất của cột thứ 3
Tìm giá trị lớn nhất của hàng thứ 2
-A(1,:)=[ 2
7
-sum(A')= 25 15
9
7] là ma trận con bao gồm hàng 1 của A.
16 là tổng các cột của ma trận A’.
-A(:,[1 4])= trích ra cột 1 và 4 của ma trận A.
-mean(A)= [4.3333 3.0000 5.3333 6.0000] giá trị trung bình các cột của A.
-A([2 3],[3 1])= trích từ ma trận A hàng 2, hàng 3 và cột 3, cột 1.
- mean(A')=[ 6.2500 3.7500 4.0000] giá trị trung bình các cột của A’.
- reshape(A,2,6)= chuyển ma trận A thành ma trận có kích thước 2x6.
- sum(A,2)= là tồng các hàng của ma trận A.
- A(:)=
2
3
8
7
1
1
9
5
2
1
5
6 15
8
1
2
5 16
9 16
18
13
56
Bài 3: “ĐỒ THỊ 2D VÀ 3D TRONG MATLAP”
3.1 Mục tiêu
3.1.1: Thể hiện các kết quả tính toán, hoặc số liệu vào dưới dạng đồ thị hoặc các biểu đồ.
3.1.2: Các loại đồ thị 2D, 3D cấu trúc hàm và các đặc tính và các tham số hiệu chỉnh đồ
thị.
3.1.3: Tối ưu cách thể hiện đồ thị, biểu đồ thành hình ảnh, hình động,
film.
Nhận xét:
•
•
lệnh title: tiêu đề của đồ thị
lệnh xlabel, ylabel: nhãn cho các trục
3.4.2: Hãy mở một trình soạn thảo text hoặc Word để soạn thảo các code lệnh sau:
>>
3.4.3:
- Vẽ đường thẳng bằng nét gạch ngắn màu đỏ nối các điểm sau sát lại với nhau: (2,6),
(2.5,18),(5,17.5),(4.2,12.5),(2,12)
-Vẽ đồ thị của hàm sin(x)+x-xcos(x) trong hai cửa sổ riêng biệt với hai khoảng 0