1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Xử lý tín hiệu nâng cao - Chương 1: Tổng quan về công cụ MATLAB

47 177 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 2,16 MB

Nội dung

Chương 1 trình bày những nội dung chính sau: Giới thiệu matlab, tổng quan về lập trình matlab, cách sử dụng biến trong matlab, các lệnh và các hàm cơ bản, cách thao tác với ma trận, vẽ đồ thị trong matlab, làm việc với hàm và m-file, lập trình GUI.

Trang 1

CHƯƠNG I

Xử lý tín hiệu nâng cao

Tổng quan về công cụ

MATLAB

Trang 2

Tài liệu tham khảo

1 Xử lý tín hiệu nâng cao - Nguyễn Quốc Trung

2 Digital signal processing using MATLAB -

Viney K.Ingle & John G.Proakis

3 Digital Signal and Image Processing Using

MATLAB - Gerard Blanchet & Maurice Charbit

4 Digital image processing using MATLAB -

Gonzalez Woods & Eddins

5 Xử lý số tín hiệu - Hồ Văn Sung

Trang 4

Giới thiệu Matlab

 Matlab được phát triển bởi MathWorks

Trang 5

Lịch sử phát triển

 Cuối thập niên 1970 MATLAB, nguyên sơ được

viết bởi ngôn ngữ Fortran

 Năm 1983, Jack Little, một người đã học ở MIT và

Stanford, đã viết lại MATLAB bằng ngôn ngữ C

 Năm 1984: Phiên bản đầu tiên MATLAB 1.0 viết

bằng C cho MS-DOS PC

 Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.

 Năm 1987, MATLAB 3 phát hành.

Trang 6

Lịch sử phát triển

 Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D

 Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ

liệu, bộ sửa lỗi và bộ tạo dựng GUI

Trang 7

Màn hình chính

Trang 8

Tổng quan về lập trình trong Matlab

Trang 9

Sử dụng biến trong Matlab

 Không cần khai báo kiểu, số chiều, độ dài biến.

 Mỗi khi một cái tên mới xuất hiện với phép gán,

Matlab tạo biến và tự động cấp phát bộ nhớ cho nó.

 Ví dụ: sosv = 110 tạo một biến tên sosv (là một ma

Trang 10

Cách đặt tên biến

 Tên biến phải là một từ, không chưa dấu

cách, tên biến tối đa là 63 ký tự

 Tên biến phân biệt chữ hoa và chữ

thường

 Tên biến bắt đầu bằng chữ cái

 Ký tự dấu chấm “.” không được sử dụng

để trong đặt tên biến

Trang 11

Các biến đặc biệt

Các biến đặc biệt Giá trị

ans biến mặc định trả về kết quả

pi số pi eps Số nhỏ nhất lớn hơn 0

inf Để chỉ số vô cùng

NaN hoặc nan Để chỉ số ko xác định như kết quả của 0/0

i và j Số phức, i=j=sqrt(-1)

realmin Số dấu chấm động nhỏ nhất (2.2251e-308)

realmax Số dấu chấm động lớn nhất (1.7977e+308)

Trang 13

Một số lệnh thông dụng

clc: Xóa màn hình cửa sổ lệnh

who: xem tên biến trong không gian làm việc của Matlab

>> who Your variables are:

A M N

whos: xem chi tiết hơn về các biến

>> whos Name Size Bytes Class

A 1x10 80 double array

M 6x3 144 double array

N 3x3 72 double array Grand total is 37 elements using 296 bytes

clear: Xóa các biến trong bộ nhớ của Matlab

help: yêu cầu sự giúp đỡ

Trang 15

Các hàm toán học thông dụng

sin(x), cos(x), tan(x) Các hàm l Các hàm l ượ ượ ng giác ng giác

asin(x), acos(x), atan(x) Các hàm l Các hàm l ượ ượ ng giác ng ng giác ng ượ ượ c c

log(x), log10(x), log2() Logarit c  s  e, 10, 2 Logarit c  s  e, 10, 2 ơ ố ơ ố

abs(x) Hàm l y tr  tuy t đ i Hàm l y tr  tuy t đ i ấ ấ ị ị ệ ố ệ ố

Round(x), floor(x), fix(x), 

Trang 17

Thực hành

1.3 Xác định công dụng của hàm solve, thực

hiện một ví dụ với hàm này

1.4 Tạo một số ngẫu nhiên

Trang 18

Các toán tử và các hàm thao tác với ma trận

randn(N): Tạo ma trận ngẫu nhiên có kích thước N, các

phần tử tuân theo phân bố chuẩn

magic(N): Tạo ma trận magic (tổng giá trị trong 1 hàng

bằng tổng giá trị trong 1 cột bằng tổng giá trị đường chéo)

có kích thước N

eye(N): Tạo ma trận đơn vị

Trang 19

Chia: X=A/B (A=X*B) hoặc X=A\B (B=A*X)

Lũy thừa: X=A^2 (X=A*A)

Xóa cột: A(:,3)=[] để xóa cột 3 trong ma trận A

Xóa hàng: A(3,:)=[] để xóa hàng 3 trong ma trận A

 Các hàm thông dụng với ma trận

Tính kích thước: d=size(A)

Tính định thức: d=det(A)

Tính ma trận nghịch đảo: X=inv(A)

Trang 20

Thực hành

1.6 Tạo một vector:

 Có 10 phần tử có giá trị nguyên được lấy ngẫu nhiên trong khoảng [0, 100]

 Có 10 phần tử có giá trị nguyên được lấy ngẫu nhiên trong khoảng [-20 ,10]

1.7 Cho x = [3 1 5 7 9 2 6], dự đoán kết quả các dòng lệnh sau và thử

Trang 23

Các lệnh khác với đồ thị

grid on/off: thêm/bỏ đường lưới vào đồ

thị

box on/off: thêm/bỏ hộp chứa đồ thị

axis on/off: thêm/bỏ trục tọa độ

xlabel('Trục x'): thêm nhãn cho trục x

ylabel('Truc y'): thêm nhãn cho trục y

title('Do thi ham sin'): thêm tiêu đề ở

đỉnh cho đồ thị

Trang 24

Đồ thị trong không gian 3D

dụng lệnh plot3, khuôn dạng lệnh plot3 như sau:

plot3(x,y,z) trong đó x,y,z là các vector hoặc ma trận

>> t=linspace(0,6*pi,100);

>> plot3(sin(t),cos(t),t)

Trang 25

Đồ thị trong không gian 3D

 Đối với đồ thị bề mặt và lưới, Matlab định

nghĩa bề mặt lưới bằng các điểm theo

hướng trục z ở trên đường kẻ ô hình

vuông trên mặt phẳng x-y

 Trong Matlab có hàm meshgrid, với cú

pháp [X,Y]=meshgrid(x,y) tạo ra một ma trận X và Y, trong đó ma trân X mà các hàng nó là bản sao của vector x, và ma trận Y có các cột là bản sao của vector y

Trang 26

Đồ thị trong không gian 3D (tiếp)

Trang 27

Đồ thị trong không gian 3D (tiếp)

nhật trong mặt phẳng x-y Z là một hàm số theo x,y cuối cùng, sử dụng hàm mesh(x,y,z) để vẽ đồ thị.

Trang 29

Viết chương trình trong Matlab

 Ví dụ trong bài toán vẽ độ thị trên, ta tạo

một file dothi3D.m với nội dung:

function dothi3D [X,Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R)./R;

mesh(X,Y,Z)

 Khi đó, để thực hiện nhóm câu lệnh trong

file trên, tại dấu nhắc của cửa sổ lệnh, chỉ việc gõ dothi3D

Trang 30

Thực hành

1.13 : Nhập vào 3 số, kiểm tra xem 3 số đó có

phải cạnh của một tam giác hay không

1.14 : Nhập 3 số a,b,c từ bàn phím, giải

phương trình, sau đó giải phương trình

ax 2 +bx+c=0

1.15 : Nhập vào 1 số từ bàn phím, kiểm tra

xem số đó có phải số nguyên tố hay không

Trang 31

Viết hàm trong matlab

Trang 32

Viết hàm trong matlab (tiếp)

 Lưu ý khi viết hàm trong Matlab:

 Tên hàm và tên file phải là một, ví dụ hàm

example phải được lưu trong file example.m

 Một file m có thể chứa nhiều hàm, tên file sẽ

được đặt theo hàm đầu tiên

 Các dòng chú thích đầu tiên trong hàm sẽ xuất

hiện khi gõ lệnh help

 Lệnh return giúp ta kết thúc một hàm mà không

cần phải thi hành hết các câu lệnh.

Trang 33

Viết hàm trong matlab (tiếp)

function [output_list] = function_name(input_list)

//body Return

Trang 34

Thực hành

IF ELSE IF …

Một học viên được kiểm tra 3 môn học Mỗi bài kiểm tra tối đa là

100 điểm Xếp loại học viên dựa vào điểm trung bình 3 môn.

Hãy viết một hàm, thực hiện

Trang 35

Thực hành

Hãy nhập vào 2 số bất kỳ, sau đó hỏi người sử dụng muốn

thực hiện tính toán gì với 2 số này (+ , - , * , / , %) Sau

đó thực hiện tính toán và hiển thị kết quả ra màn hình

Tìm giai thừa của một số.

Yêu cầu người sử dụng nhập vào các số tự nhiên, quá

trình nhập kết thúc khi người dùng gõ số 0 Thực hiện tính toán để in ra màn hình tổng tất cả các số đã nhập.

Trang 36

 Được sử dụng để cung cấp cho người

dùng một môi trường làm việc đơn giản

và thân thiện

Trang 37

Matlab GUI

Trang 38

Matlab GUI

Trang 39

Matlab GUI

 Các thuộc tính

Trang 40

Hàm Callback

 Mọi điều khiển trong Matlab đều có hàm

Callback,

 Hàm Callback của mỗi điều khiển được gọi

phụ thuộc vào từng điều khiển khác nhau.

 Trong hàm Callback có 2 thuộc tính quan

trọng

hObject : handle của điều khiển của control

handles : là một cấu trúc chứa tất cả các điều khiển và

dữ liệu người dùng Dùng cái này để truy suất các điều khiển khác

Trang 41

Đọc & thiết lập giá trị

Trang 42

Edit text & Static text

Trang 43

Điều khiển Toggle

Trang 44

List box & Axes

Trang 46

Run & Debug

 Bấm nút Play trên thanh công cụ hoặc F5

trong cửa sổ lập trình để chạy chương trình

 Trong trường hợp muốn debug chương trình

Trang 47

Thực hành

 Viết một chương trình thực hiện công

việc giống công cụ calculator của

Windows

Ngày đăng: 30/01/2020, 07:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w