Matlab Ứng Dụng Trên Dsp
-
Upload
pham-thanh-trung -
Category
Documents
-
view
159 -
download
0
Transcript of Matlab Ứng Dụng Trên Dsp
MATLAB ỨNG DỤNG TRÊN DSP
1.1 Giới thiệu chung về phần mềm Matlab
MATLAB là ngôn ngữ lập trình bậc cao, chuyên dùng cho các bài toán kỹ
thuật. Nó tập hợp tất cả các phép tính, từ các phép tính toán số học đơn giản đến
các phép tính toán cao cấp, các tiện ích đồ họa và các cơ sở lập trình. Chương trình
MATLAB rất dễ viết và đơn giản, nhưng cho phép giải quyết các bài toán thực tế
phức tạp. Ứng dụng tiêu biểu nhất của MATLAB là:
Tính tóan.
Phát triển thuật tóan.
Thu thập dữ liệu.
Mô hình hóa và mô phỏng, tạo các mẫu theo thiết kế.
Phân tích, khảo sát và thể hiện dữ liệu.
Biểu diễn các biểu đồ mang tính khoa học và tính kĩ thuật.
Phát triển các ứng dụng, bao gồm việc phát triển với các giao diện với người sử
dụng.
MATLAB là tên viết tắt từ “MATrix LABoratory”. Như tên của phần mềm cho
thấy, phần cốt lõi của phần mềm là dữ liệu được lưu dưới dạng array (ma trận) và các
phép tính toán ma trận, giúp việc tính toán trong MATLAB nhanh và thuận tiện hơn so
1
với lập trình trong C hay FORTRAN. Đặc biệt, khả năng tính toán của MATLAB có thể
dễ dàng được mở rộng thông qua các bộ toolbox. Toolbox là tập hợp các hàm MATLAB
(M-file) giúp giải quyết một bài toán cụ thể. Các hàm này mở rộng môi trường
MATLAB để giải quyết nhiều vần đề đặc biệt chuyên sâu. Phạm vi làm việc của
Toolboxes bao gồm xử lý tín hiệu, các hệ thống điều khiển, mạng nơron, Fuzzy logic,
sóng con (wavelets), mô hình hóa, mô phỏng và nhiều lĩnh vực khác.
MATLAB có hai phiên bản: Phiên bản “Professional Version” giành cho các
chuyên gia, các nhà nghiên cứu và cho công nghiệp; còn phiên bản “Student Version”
giành cho học sinh, sinh viên. Vì thế, MATLAB được cập nhật hàng năm và được rất
nhiều người sử dụng; từ học sinh trung học, sinh viên các trường đại học đến các kỹ sư,
các nhà công nghệ và các nhà khoa học, trong các viện nghiên cứu hay trong các xí
nghiệp công nghiệp.
Trong các trường phổ thông và đại học, MATLAB là công cụ đào tạo chuẩn mực
cho các giáo trình cơ sở và nâng cao về toán, kỹ thuật và khoa học. Trong công nghiệp,
MATLAB là công cụ được lựa chọn cho việc nghiên cứu sản xuất công nghệ cao, để
phân tích và phát triển sản xuất.
Sau khi cài đặt, sẽ hiện ra logo như trên hình sau:
Hình1.1
Mỗi khi làm việc với MATLAB, chỉ cần "kích" chuột vào logo này là cửa sổ lệnh
(MATLAB Command Window) sẽ hiện ra.
1.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng
2
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.
Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép tính số
học.
1.2.2 Ứng dụng
Matlab tạo điều kiện thuận lợi cho:
Các khoá học về toán học.
Các kỹ sư, các nhà nghiên cứu khoa học.
Dùng Matlab để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất.
1.2.3 Toolbox
3
Toolbox là một công cụ quan trọng trong Matlab, công cụ này được Matlab cung
cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các mô hình.
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của.
Mạng nơron.
Logic mờ.
Simulink.
1.3 Hệ thống Matlab
Hệ thống MATLAB gồm 5 phần chính:
Môi trường phát triển (Development Environment): đó là tập hợp các công cụ và
tiện ích giúp bạn sử dụng các hàm và các files MATLAB. Phần lớn trong chúng là
các giao diện đồ họa, như là màn hình nền (desktop), cửa sổ lệnh, lịch sử của
lệnh, trình soạn thảo và gỡ rối, trình duyệt, giúp cho bạn xem hình, không gian
làm việc, các files và các đường tìm kiếm.
Thư viện các hàm toán học (MATLAB Mathematical Function Library): tập hợp
các hàm tóan học bao gồm từ các hàm cơ bản như sin, cosin, các phép tính đại số
phức đến các hàm phức tạp như tìm ma trận đảo, tìm ma trận riêng, hàm Bessel và
biến đổi Fourier nhanh….
Ngôn ngữ MATLAB (MATLAB Language – scritp): Là ngôn ngữ ma trận/mảng
bậc cao với các dòng lệnh điều khiển, các hàm số, các cấu trúc dữ liệu, quan hệ
vào/ra và lập trình hướng đối tượng. Vì vậy nó vừa tạo ra các chương trình nhỏ
một cách nhanh chóng lại vừa tạo ra các chương trình lớn giải quyết các bài toán
thực tế phức tạp.
4
Đồ họa (Graphics): là một tập hợp các công cụ để biểu diễn ma trận và vector
bằng đồ họa. Bên cạnh các công cụ ở mức thấp để thể hiện dữ liệu dạng 2 chiều và
3 chiều, xử lí hình ảnh tĩnh, ảnh động còn có các công cụ ở mức cao dùng để tạo ra
các biểu diễn đồ họa theo ý đồ của người sử dụng cũng như tạo ra các giao diện đồ
họa người sử dụng.
Giao diện lập trình ứng dụng MATLAB (API: Application Program Interface):
là một thư viện cho phép người sử dụng gọi các hàm viết trên ngôn ngữ C và
Fortran. Chúng bao gồm cả các công cụ cho phép gọi các hàm từ MATLAB dưới
dạng liên kết động và để đọc và ghi các tệp .MAT
MATLAB cung cấp một lượng vô cùng lớn các tài liệu, cả dưới dạng n lẫn dưới
dạng trực tuyến, giúp bạn học hỏi và sử dung tất cả các tính năng của nó một cách dễ
dàng.
1.4 Làm quen với Matlab
Trước tiên để khởi động Matlab bạn kích click vào biểu tượng file Matlab.exe, trên
màn hình xuất hiện cửa sổ sau. (Xem hình vẽ 1.1) Cửa sổ đó chứa các thanh công cụ
(Giao diện người và máy) cần thiết cho việc quản lý các files, các biến, cửa sổ lệnh, có
thể coi desktop là các panel gồm các ô, vùng, quản lý và tác dụng của từng cửa sổ nhỏ
được quản lý bởi desktop.
5
Hình 1.2: Cửa sổ làm việc của matlab
Các cửa sổ làm việc của Matlab
Cửa sổ lệnh - Command Window
Là cửa sổ giao tiếp chính của Matlab bởi đây là nơi nhập giá trị các biến, hiển thị
giá trị, tính toán giá trị của biểu thức, thực thi các hàm có sẵn trong thư viện (dạng lệnh),
hoặc các hàm (dạng function) do người dùng lập trình ra trong M-file. Các lệnh được
nhập sau dấu nhắc “>>”, và nếu có sai sót trong quá trình gõ (nhập) lệnh thì hãy nhấn
phím Enter cho đến khi nhận được dấu nhắc “>>”. Thực thi lệnh bằng nhấn phím Enter.
6
Cửa sổ các lệnh đã dùng - Command History
Các dòng mà bạn nhập vào trong cửa sổ Command Window (các dòng này có thể là
dòng nhập biến, hoặc có thể là dòng lệnh thực hiện hàm nào đó) được giữ lại trong cửa sổ
Command History, và cửa sổ này cho phép ta sử dụng lại những lệnh đó bằng cách click
chuột lên các lệnh đó hoặc các biến, nếu như bạn muốn sử dụng lại biến đó.
Hình 1.3 Cửa sổ Command History
Cửa sổ làm việc - Workspace
Thể hiện danh mục tất cả các biến bao gồm: tên biến, giá trị hiện thời của biến, kiểu
biến đang tồn tại ở phiên bản làm việc hiện tại.
Hình 1.4 Cửa sổ Workspace
7
Ngoài ra nó cho phép thay đổi giá trị, cũng như kích thước của biến bằng cách click
chuột lên các biến. Hoặc click vào nút bên trái ngay cạnh nút save. Ví dụ khi chọn biến
(giả sử là biến b) rồi click (hoặc click chuột vào nút cạnh nút save) ta được cửa sổ sau gọi
là Variable Editor.
Hình 1.5 Cửa sổ Variable Editor
Tiêu đề là tên biến b, định dạng dữ liệu ở ô có tên là: Numeric format, mặc định là
dạng short, kích thước size là 1 by 3 (tức là một hàng và 3 cột) ta có thể thay đổi kích
thước này bằng cách thay đổi giá trị có trong ô kích thước size. Dùng cửa sổ này để lưu
các biến ở dưới là dữ liệu của biến b, ta có thể thay đổi chúng bằng cách thay đổi giá trị
trong các ô đó. Tất cả các biến đều được lưu trong Workspace trong đó thể hiện cả kích
thước (Size), số Bytes và kiểu dữ liệu (class) (8 bytes cho mỗi phần tử dữ liệu kiểu
double cụ thể là 24 bytes dành cho b và 8 bytes dành cho a).
Cửa sổ thư mục hiện thời – Current Directory
Thể hiện danh sách các tệp dạng đuôi .m đang tồn tại trong thư mục hiện thời. Để
thay đổi thư mục hiện thời trên cửa sổ nhỏ nằm ngay bên trên cửa sổ lệnh.
Cửa sổ M-file
8
Là một cửa sổ dùng để soạn thảo chương trình ứng dụng, để thực thi chương trình
viết trong M-file bằng cách gõ tên của file chứa chương trình đó trong cửa sổ Command
window. Khi một chương trình viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theo
người lập trình mà chương trình có thể viết dưới dạng sau:
• Dạng Script file: Tức là chương trình gồm tập hợp các câu lệnh viết dưới dạng liệt
kê, không có biến dữ liệu vào và biến lấy giá trị ra.
• Dạng hàm function: có biến dữ liệu vào và biến ra.
Ngoài ra còn một loạt các cửa sổ khác sẽ được kích hoạt và hiển thị khi gọi một
lệnh hoặc chọn một mục trong phần Menu của MATLAB. Để biết thêm về các cửa sổ có
thể tham khảo thêm trong phần trợ giúp Help của MATLAB bằng cách nhấn phím F1.
Để soạn thảo một kịch bản hoặc một hàm, thực hiện chọn menu File New M-
Flie hoặc nhấp chuột vào biểu tượng New M-File trên thanh công cụ (Toolbar). Trên
màn hình sẽ hiển thị lên cửa sổ soạn thảo (Editor) có đầy đủ các chức năng soạn thảo
giống như bất cứ môi trường soạn thảo của ngôn ngữ lập trình nào khác.
Để xem trợ giúp về một lệnh hay một hàm có sẵn nào đó của MATLAB, gõ lệnh
help kèm theo tên của lệnh hoặc hàm từ cửa sổ lệnh của MATLAB.
1.5 Một số loại mảng trong MATLAB
- Vô hướng: là những biến số biểu thị các số đơn lẻ. Số phức cũng là một vô hướng mặc
dù nó có hai thành phần là phần thực và phần ảo.
- Mảng: là những biến số biểu thị nhiều số. Mỗi số được gọi là một phần tử của mảng.
- Mảng cột và hàng: là các số được sắp xếp thành cột (còn gọi là véctơ cột) hoặc thành
hàng (còn gọi là véctơ hàng).
- Mảng hai chiều: là một bảng số hai chiều, còn gọi là ma trận.
- Chỉ số hoăc địa chỉ của mảng: là chỉ số vị trí của một phần tử ở trong mảng.
9
2.1 Các lệnh điều khiển cơ bản
• Lệnh clear: Xóa tất cả các biến trong bộ nhớ Matlab
Ví dụ: clear name: xóa các biến hay hàm được chỉ ra trong name.
clear functions: xóa tất cả các hàm trong bộ nhớ.
clear variables: xóa tất cả các biến ra khỏi bộ nhớ.
clear mex: xóa tất cả các tập tin .mex ra khỏi bộ nhớ.
clear: xóa tất cả các biến chung.
• Lệnh clc: Xóa cửa sổ lệnh (command window)
• Lệnh pause: Chờ sự đáp ứng từ phía người dùng
• Lệnh =: Lệnh gán
• Lệnh %: Câu lệnh sau dấu này được xem là dòng chú thích
• Lệnh input: Lấy vào một giá trị.
Ví dụ: x = input(‘Nhap gia tri cho x:’);
• Lệnh help: Yêu cầu sự giúp đỡ từ Matlab để xem thông tin giúp đỡ về một hàm nào đó.
•Lệnh helpwin Mở một cửa sổ hướng dẫn mới.
• Lệnh save: Lưu biến vào bộ nhớ
Ví dụ: save test A B C (lưu các biến A, B, C vào file test)
• Lệnh load: Nạp biến từ file hay bộ nhớ, tải dữ liệu từ file .mat vào không gian làm việc hiện tại.
Ví dụ:
load: nạp file matlap.mat
load filename: nạp file filename.mat
load filename.extension: nạp file filename.extension
• Lệnh break: Thoát đột ngột khỏi vòng lặp WHILE hay FOR.
• Lệnh continue: Bỏ qua các lệnh hiện tại, tiếp tục thực hiện vòng lặp ở lần lặp tiếp
theo.
• Lệnh return: Lệnh quay về
• Lệnh clf: Xóa hình hiện tại
• Lệnh plot(signal): Vẽ dạng sóng tín hiệu signal
10
• Lệnh stairs(signal): Vẽ tín hiệu signal theo dạng cầu thang.
• Lệnh stem(signal): Vẽ chuỗi dữ liệu rời rạc
• Lệnh bar(signal): Vẽ dữ liệu theo dạng cột
• Lệnh exit Thoát khỏi MATLAB
• Lệnh format Định dạng dữ liệu hiển thị.
Ví dụ:
Cú pháp Giải thích Ví dụ
Format short Hiển thị 4 con số sau dấu chấm
3.1416
Format long Hiển thị 14 con số sau dấu chấm
3.14159265358979
Format rat Hiển thị dạng phân số của phần nguyên nhỏ nhất
355/133
Format + Hiển thị số dương hay âm
+
Hình 2.1
•Lệnh lookfor Tìm kiếm các hàm MATLAB nhờ từ khoá cho trước.
•Lệnh path Liệt kê các đường dẫn mà MATLAB có thể thấy được.
•Lệnh pwd Xác định thư mục hiện hành của MATLAB.
•Lệnh quit Thoát khỏi MATLAB.
•Lệnh rmpath Xoá một đường dẫn khỏi danh sách các đường dẫn của MATLAB.
•Lệnh save Lưu các biến dữ liệu vào file .mat.
•Lệnh who Liệt kê danh sách các biến có trong workspace.
•Lệnh whos Liệt kê các biến có trong workspace: gồm tên, kích thước và lớp của biến.
•Lệnh addpath Thêm đường dẫn vào danh sách các đường dẫn của MATLAB.
Ví dụ: Giả sử chúng ta giải nén các
file vào thư mục có đường dẫn như sau
/users/rich/m_map thì phải đánh lệnh sau để đặt đường
dẫn đến M_Map:
>> path(path,’ /users/rich/m_map’);
11
hoặc
>> addpath /users/rich/m_map
• Lệnh rẽ nhánh If: cú pháp như sau
IF expression
statements
ELSEIF expression
statements
ELSE
statements
END
• Lệnh rẽ nhánh Switch:
SWITCH switch_expr
CASE case_expr,
statement,..., statement
CASE {case_expr1, case_expr2, case_expr3,...}
statement,..., statement
...
OTHERWISE,
statement,..., statement
END
• Lệnh lặp For:
FOR variable = expr, statement,..., statement END
• Lệnh While:
WHILE expression
statements
END
2.2 Các phép tính với ma trận
• Nhập 1 ma trận vào Matlab:
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
12
5 10 11 8
9 6 7 12
4 15 14 1
• Phép chuyển vị: A’
>> A'
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
• Truy xuất 1 phần tử trong ma trận: A(x,y)
Trong đó: A tên ma trận
x: Tọa độ hàng tính từ 1.
y: Tọa độ cột tính từ 1.
>> AA =
16 3 2 135 10 11 89 6 7 124 15 14 1
>> A(4,3)ans =
14>> A(4,3) = 16A =
16 3 2 135 10 11 89 6 7 124 15 16 1
• Toán tử colon (:)
A(i:j,k): Lấy các phần tử từ i đến j trên hàng k của ma trận A.
A(i,j:k): Lấy các phần tử từ j đến k trên hàng i của ma trận A.
>> A
A =
13
16 3 2 13
5 10 11 8
9 6 7 12
4 15 16 1
>> A(3,2:4)
ans =
6 7 12
>> A(1:2,3)
ans =
2
11
• Cộng trừ 2 ma trận: A(n.m) ± B(n.m) = C(n.m)
• Nhân 2 ma trận: A(n.m) * B(m.k) = C(n.k)
• Nhân mảng: C = A.* B (C(i,j) = A(i,j) * B(i,j))
• Chia trái mảng: C = A.\ B (C(i,j) = B(i,j) / A(i,j))
• Chia phải mảng: C = A./ B (C(i,j) = A(i,j) / B(i,j))
• Chia trái ma trận: C = A \ B = inv(A) * B (pt: AX = B)
• Chia phải ma trận: C = A / B = B * inv(A) (pt: XA = B)
• Lũy thừa ma trận: A ^ P
• Biểu diễn tín hiệu trên miền thời gian
n= [1:3] % Miền thời gian 1, 2, 3
x=[1 2 3] % Tín hiệu rời rạc
stem(n,x) % Biểu diễn tín hiệu x trên miền thời gian n
2.3 Các hàm thường dùng
• Hàm sum: Tính tổng các phần tử trên từng cột của ma trận mxn thành ma trận 1xn
>> sum(A)
ans =
34 34 34 34
• Hàm det: tính định thức ma trận
>> det(A)
ans =
14
0
• Hàm rank: tính hạng của ma trận
>> rank(A)
ans =
3
• Hàm inv: tính ma trận nghịch đảo
>> inv(A)
ans =
1.0e+015 *
0.2796 0.8388 -0.8388 -0.2796
-0.8388 -2.5164 2.5164 0.8388
0.8388 2.5164 -2.5164 -0.8388
-0.2796 -0.8388 0.8388 0.2796
•Hàm round Làm tròn về số nguyên gần nhất.
Ví dụ:
x = -1.9000 -0.2000 3.4000 5.6000 7.0000
y = round(x)
y= -2 0 3 6
•Hàm ceil Làm tròn lên.
•Hàm double Chuyển sang kiểu số chiều dài 32 bit.
•Hàm floor Làm tròn xuống.
•Hàm single Chuyển sang kiểu số chiều dài 16 bit.
•Hàm det Định thức của ma trận.
• Tạo 1 ma trận vào Matlab: sử dụng các hàm có sẵn
Zeros(n,m): ma trận (n.m) các phần tử bằng 0
Eye(n) : ma trận đơn vị (n.n)
Ones(n,m) : ma trận (n.m) các phần tử bằng 1
Rand(n,m) : ma trận (n.m) các phần tử từ 0 đến 1
Diag(V,k) : nếu V là một vectơ thì sẽ tại ma trận đường chéo
•Hàm zeros Ma trận toàn zero.
Ví dụ:
15
>> a = zeros(2,2)
a =
0 0
0 0
•Hàm eye Ma trận đơn vị.
Ví dụ:
y = eye(3)
y =
1 0 0
0 1 0
0 0 1
•Hàm ones Ma trận toàn 1.
Ví dụ:
>> a = ones(3,2)
a =
1 1
1 1
1 1
•Hàm rand Ma trận ngẫu nhiên với các thành phần phân bố đều trên (0,1).
Ví dụ:
y = rand(3)
y =
0.9340 0.0920 0.7012
0.8462 0.6539 0.7622
16
0.5269 0.4160 0.7622
>> y = rand(2,3)
y =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
•Hàm randn Ma trận ngẫu nhiên với các thành phần phân bố chuẩn.
•Hàm diag Tạo ma trận đường chéo.
Ví dụ:
x = 2 1 9 5 4
v = diag(x,0)
v =
2 0 0 0 0
0 1 0 0 0
0 0 9 0 0
0 0 0 5 0
0 0 0 0 4
•Hàm length Chiều dài của vector.
•Hàm linspace Chia một đoạn thành các khoảng chia tuyến tính.
Ví dụ:
y = linspace(1, 10, 7)
y = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000
•Hàm logspace Chia một đoạn thành các khoảng chia logarithm.
Ví dụ:
>> logspace(0,3,4)
17
ans =
1 10 100 1000
•Hàm max Hàm giá trị lớn nhất.
Ví dụ:
x = 3 5 2 1 4
m= max(x)
m = 5
•Hàm min Hàm giá trị nhỏ nhất.
•Hàm norm Chiều dài Euclide của vector.
•Hàm rank Hạng của ma trận.
•Hàm size Kích thước của ma trận.
•Hàm trace Tổng các thành phần trên đường chéo của ma trận (vết của ma trận).
•Hàm triu Trích ra ma trận tam giác trên.
Ví dụ:
a =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
I = triu(a)
I =
1 5 9 13
0 6 10 14
0 0 11 15
0 0 0 1
•Hàm tril Trích ra ma trận tam giác dưới.
18
2.4 Các lệnh vẽ đồ thị 2D
• Lệnh figure Tạo một figure mới để vẽ đồ thị .
Ví dụ:
>> figure
Hình 2.12 Empty figure
• Lệnh bar Vẽ biểu đồ cột
Ví dụ:
>> x=[1 3 6];
>> y=[5 12; 8 10 ; 12 5];
>> bar(x,y)
Hình 2.2
19
• Lệnh barh Vẽ biểu đồ cột nằm ngang
Ví dụ: như trên thay lệnh >>bar(x,y)
bằng lệnh >>barh(x,y)
0 2 4 6 8 10 12
1
3
6
Hình 2.4
• Lệnh errorbar Vẽ đồ thị lỗi
• Lệnh fill Tô màu một đa giác 2D
Ví dụ:
>> fill([0 1 0.5], [0 0 1], 'r')
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Hình 2.5
20
• Lệnh hist Vẽ biểu đồ histogram
• Lệnh pie Vẽ biểu đồ phần trăm
Ví dụ :
>> x=[150 300 220 90];
>> pie(x)
20%
39%
29%
12%
Hình 2.6
• Lệnh polar Vẽ đồ thị trên hệ toạ độ cực
Ví dụ:
>> polar(0:0.01:2*pi,cos((0:0.01:2*pi)*2))
21
0.2
0.4
0.6
0.8
1
30
210
60
240
90
270
120
300
150
330
180 0
Hình 2.7
• Lệnh plot Vẽ đồ thị trên hệ trục tuyến tính dưới dạng đường liên tục.
Ví dụ: Hình 2.8
>> n = 0:40;
>> f = 0.1;
>> A=1.5;
>> arg = 2*pi*f*n - phase;
>> X = A*cos(arg);
>> clf;
>> plot(n,X);
>> axis([0 40 -2 2])
>> grid
>> title('Day tin hieu sin')
>> xlabel('Chi so thoi gian n')
22
>> ylabel('Bien do')
>> axis
0 5 10 15 20 25 30 35 40-2
-1.5
-1
-0.5
0
0.5
1
1.5
2Day tin hieu sin
Chi so thoi gian n
Bie
n do
Hình 2.8
• Lệnh stem Vẽ đồ thị xung.
Vídụ: Hình 2.9
>> f = 0.1;
>> A=1.5;
>> arg = 2*pi*f*n – phase;
>> X = A*cos(arg);
>> clf;
>> plot(n,X);
>> axis([0 40 -2 2])
>> title(‘Day tin hieu sin’)
23
>> xlabel(‘Chi so thoi gian n’)
>> ylabel(‘Bien do’)
>> axis
0 5 10 15 20 25 30 35 40-2
-1.5
-1
-0.5
0
0.5
1
1.5
2Day tin hieu sin
Chi so thoi gian n
Bie
n do
Hình 2.9
• Lệnh loglog Vẽ đồ thị trên hệ trục logarithm (tương tự như hàm plot nhưng hai trục tạo độ X và Y đều chia theo thang logarithm (cơ số 10))
• Lệnh semilogx Vẽ đồ thị trên hệ trục có trục hoành chia theo thang logarithm.
• Lệnh semilogy Vẽ đồ thị trên hệ trục có trục tung chia theo thang logarithm.
• Lệnh stairs(signal): Vẽ tín hiệu signal theo dạng cầu thang.
Ví dụ: Hình 2.10
>> f = 0.1;
>> A=1.5;
>> arg = 2*pi*f*n - phase;
24
>> X = A*cos(arg);
>> clf;
>> stairs(n,X)
>> axis([0 40 -2 2])
>> grid
>> title('Day tin hieu sin')
>> xlabel('Chi so thoi gian n')
>> ylabel('Bien do')
>> axis
0 5 10 15 20 25 30 35 40-2
-1.5
-1
-0.5
0
0.5
1
1.5
2Day tin hieu sin
Chi so thoi gian n
Bie
n do
Hình 2.10
2.5 Các lệnh phục vụ cho đồ thị 2D
• Lệnh box off/on Xóa/hiển thị đường viền khung của đồ thị.
• Lệnh clf Xoá cửa sổ hình hiện tại.
• Lệnh close Đóng một hay nhiều figure đang mở.
• Lệnh axis Điều chỉnh các giới hạn của các trục toạ độ.
Ví dụ>> axis([0,4,-2,2])
25
Hình 2.12
• Lệnh gtext Thêm dòng ký tự tại điểm xác định bởi con trỏ chuột.
• Lệnh text Thêm dòng ký tự tại một điểm xác định trên đồ thị.
• Lệnh hold on Cho phép vẽ đồ thị khác lên cùng hệ trục toạ độ hiện hành.
Để vẽ chồng đồ thị (thay vì thay thế) lên một đồ thị có sẵn trong figure ta dùng lệnh hold on. Để bỏ chế độ vẽ chồng, ta dùng tiếp lệnh hold off.
Ví dụ:
>>z=cos(x);
>>hold on
>>plot(x,z)
Hình 2.13 Dùng lệnh hold để vẽ chồng đồ thị
26
• Lệnh hold off Xoá các đồ thị cũ trước khi vẽ đồ thị mới.
• Lệnh legend Hiển thị các chú thích trên đồ thị.
• Lệnh legend off Xoá các chú thích trên đồ thị.
• Lệnh subplot Chia figure thành nhiều phần, mỗi phần vẽ một đồ thị.
Ví dụ:
>> f=50;
>> T=1/f;
>> t=0:T/100:2*T;
>> v=220*sin(2*pi*f*t)
>> i=55*sin(2*pi*f*t-90*pi/180)
>> subplot(2,1,1)
>> plot(t,v)
>> subplot(2,1,2)
>> plot(t,i)
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04-400
-200
0
200
400
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04-100
-50
0
50
100
Hình 2.14
27
Tiêu đề của đồ thị, đường kẻ và nhãn cho các trục được xác định bởi các lệnh sau:
• Lệnh title Hiển thị tiêu đề của đồ thị
• Lệnh xlabel Hiển thị tên của trục X
• Lệnh ylabel Hiển thị tên của trục Y
Ví dụ: hình 2.15
>> title(‘Function y = sin(5*x)’);
>> xlabel(‘x-axis’);
>> ylabel(‘y-axis’);
>> grid % loại bỏ các đường kẻ bằng lệnh grid off
Hình 2.15
• Lệnh grid on/off Hiển thị hoặc không hiển thị lưới ô vuông.
28