matlab Ứng dụng trên dsp

34
MATLAB ỨNG DỤNG TRÊN DSP 1.1 Giới thiệu chung về phần mềm Matlab MATLAB 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 đơ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. 1

Upload: pham-thanh-trung

Post on 28-Dec-2015

159 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Matlab Ứng Dụng Trên Dsp

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

Page 3: Matlab Ứng Dụng Trên Dsp

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

Page 4: Matlab Ứng Dụng Trên Dsp

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

Page 5: Matlab Ứng Dụng Trên Dsp

Đồ 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

Page 6: Matlab Ứng Dụng Trên Dsp

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

Page 7: Matlab Ứng Dụng Trên Dsp

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

Page 8: Matlab Ứng Dụng Trên Dsp

 

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

Page 9: Matlab Ứng Dụng Trên Dsp

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

Page 10: Matlab Ứng Dụng Trên Dsp

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

Page 11: Matlab Ứng Dụng Trên Dsp

• 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

Page 12: Matlab Ứng Dụng Trên Dsp

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

Page 13: Matlab Ứng Dụng Trên Dsp

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

Page 14: Matlab Ứng Dụng Trên Dsp

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

Page 15: Matlab Ứng Dụng Trên Dsp

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

Page 16: Matlab Ứng Dụng Trên Dsp

>> 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

Page 17: Matlab Ứng Dụng Trên Dsp

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

Page 18: Matlab Ứng Dụng Trên Dsp

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

Page 19: Matlab Ứng Dụng Trên Dsp

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

Page 20: Matlab Ứng Dụng Trên Dsp

• 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

Page 21: Matlab Ứng Dụng Trên Dsp

• 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

Page 22: Matlab Ứng Dụng Trên Dsp

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

Page 23: Matlab Ứng Dụng Trên Dsp

>> 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

Page 24: Matlab Ứng Dụng Trên Dsp

>> 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

Page 25: Matlab Ứng Dụng Trên Dsp

>> 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

Page 26: Matlab Ứng Dụng Trên Dsp

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

Page 27: Matlab Ứng Dụng Trên Dsp

• 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

Page 28: Matlab Ứng Dụng Trên Dsp

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