Tải bản đầy đủ (.pdf) (139 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (788.3 KB, 139 trang )

Xử lý tín hiệu nâng cao
-Advanced signal processingChương 1
Tổng quan về công cụ MATLAB


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


Nội dung
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


Giới thiệu Matlab
Matlab là viết tắt từ ‘MATrix LABoratory’
Matlab được phát triển bởi MathWorks
Là một ngôn ngữ lập trình thông dịch
Hỗ trợ lập trình hướng đối tượng


Ứng dụng rộng rãi
Có khả năng liên kết với nhiều ngôn ngữ lập
trình khác


Lịch sử phát triển
Cuối thập niên 1970, Matlab được Cleve Moler phát minh tại
Đại học New Mexico. Matlab nguyên sơ được viết bởi ngôn
ngữ Fortran
đến 1980 Matlab vẫn chỉ là một bộ phận được dùng nội bộ của Đại học
Stanford.

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, xây dựng thêm các thư
viện phục vụ cho thiết kế hệ thống điều khiển, hệ thống hộp
công cụ (tool box), mô phỏng... MATLAB trở thành mô hình
ngôn ngữ lập trình trên cơ sở ma trận (matrix-based
programming language).


Lịch sử phát triển
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.
Năm 1990 Simulink 1.0 được phát hành gói chung với
MATLAB.


Lịch sử phát triển

Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa
màu và các ma trận truy tìm. Năm này cũng cho phát hành
phiên bản MATLAB Student Edition (MATLAB ấn bản cho
học sinh).
Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời
công ty này có trang web là www.mathworks.com
Năm 1995 MATLAB cho Linux ra đời. Trình dịch MATLAB
có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn
ngữ C cũng được phát hành trong dịp này.


Lịch sử phát triển
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
Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc
MATLAB, thêm LAPACK và FFTW (Fastest Fourier Transform
in the West - "biến đổi Fourier nhanh nhất của phương Tây").
Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính
toán, sử dụng phương pháp dịch JIT (Just in Time) và tái hỗ
trợ MAC.
Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn
và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có
môi trường phân tích số liệu tương tác.


Lịch sử phát triển
12/2008, MATLAB 7.7 được phát hành với SP3 cải
thiện Simulink cùng với hơn 75 sản phẩm khác.
Năm 2009 cho ra đời 2 MATLAB 7.8 (R2009a) và
MATLAB 7.9 (R2009b).

Năm 2010 cho ra đời 2 MATLAB 7.10 (R2010a) và
MATLAB 7.11 (R2010b).
Năm 2012 cho ra đời 2 MATLAB 7.12 (R2012a) và
MATLAB 7.13 (R2012b)


Hệ thống Matlab
Gồm có 5 phần chính:
Ngôn ngữ Matlab
Môi trường làm việc Matlab
Xử lý đồ hoạ
Thư viện toán học Matlab
Giao diện chương trình ứng dụng Matlab API (Application
Program Interface)


Hệ thống Matlab
Ngôn ngữ Matlab:
là một ngôn ngữ ma trận/mảng cấp cao với các câu lệnh,
hàm, cấu trúc dữ liệu, vào/ra, các tính năng lập trình hướng
đối tượng.
Cho phép lập trình các ứng dụng từ nhỏ đến các ứng dụng
lớn và phức tạp.

Môi trường làm việc Matlab:
các phương tiện cho việc quản lý các biến trong không
gian làm việc Workspace cũng như xuất/nhập dữ liệu.
các công cụ phát triển, quản lý, gỡ rối và định hình M-file,
ứng dụng của Matlab.



Hệ thống Matlab
Xử lý đồ hoạ:
là hệ thống đồ hoạ của Matlab.
Bao gồm các lệnh cao cấp cho trực quan hoá dữ liệu hai chiều và ba
chiều, xử lý ảnh, ảnh động,...
Cung cấp các lệnh cấp thấp cho phép tuỳ biến giao diện đồ hoạ cũng
như xây dựng một giao diện đồ hoạ hoàn chỉnh cho các ứng dụng
Matlab .

Thư viện toán học Matlab:
là tập hợp khổng lồ các thuật toán tính toán từ các hàm cơ bản như
cộng, sin, cos, số học phức,... tới các hàm phức tạp hơn như nghịch
đảo ma trận, tìm trị riêng của ma trận, phép biến đổi Fourier nhanh.

Giao diện chương trình ứng dụng Matlab API (Application
Program Interface)
là một thư viện cho phép viết các chương trình C và Fortran tương
thích với Matlab.


Hệ thống Matlab
Simulink
một chương trình đi kèm với Matlab
là một hệ thống tương tác với việc mô phỏng các hệ thống
động học phi tuyến.
Là một chương trình đồ hoạ sử dụng chuột để thao tác cho
phép mô hình hoá một hệ thống bằng cách vẽ một sơ đồ
khối trên màn hình.
Có thể làm việc với các hệ thống tuyến tính, phi tuyến, hệ

thống liên tục theo thời gian, hệ gián đoạn theo thời gian,
hệ đa biến,...


Màn hình chính


Tổng quan về lập trình trong Matlab
Lập trình hướng thủ tục
Cú pháp, từ khóa
Sử dụng các thư viện Toolbox
Lập trình trong Matlab
Sử dụng hàng lệnh
Lập trình m-file
Thiết kế chương trình có GUI


Lập trình trong Matlab
Để tạo một tập tin .m
Vào File chọn New → M-File hoặc
nhấn vào biểu tượng
nằm trên thanh MATLAB
Toolbar.

Viết chú thích: đặt dấu phần trăm (%) ở đầu dòng.
Ctrl+R: biến các hàngđược chọn trở thành chú thích
Ctrl+T: loại bỏ ký hiệu chú thích trước các hàngchú thích.

Để thực thi một tập tin .m
nhấn vào biểu tượng

nằm trên thanh Editor
Toolbar
hoặc sử dụng phím tắt F5


Phép toán, biến, vector, ma trận


Biến
Không cần khai báo kiểu, số chiều, độ dài biến.
một biến (variable) được khai báo và khởi tạo thông
qua câu lệnh gán.
Mỗi khi một 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ó.

Nếu đó là biến cũ, nó sẽ thay đổi nội dung mới nếu
thực hiện phép gán.


Biến


Cách đặt tên biến
Tên biến bao gồm các ký tự chữ, số và ký hiệu
gạch dưới (_)
Tên biến tối đa là 63 ký tự
Tên biến bắt đầu bằng chữ cái
Matlab luôn phân biệt chữ in và chữ thường
khi đặt tên biến hoặc tên chương trình.



Cách đặt tên biến
Ví dụ các tên biến hợp lệ:
arg1, no_name, vars, Vars

Khi tên biến được đặt không hợp lệ, Matlab sẽ
xuất hiện thông báo


Các biến đặc biệt
Các biến đặc biệt
ans
pi
eps
inf
NaN hoặc nan
i và j
realmin
realmax

Giá trị
biến mặc định trả về kết quả
số pi
Số nhỏ nhất lớn hơn 0
Để chỉ số vô cùng
Để chỉ số ko xác định như kết quả của 0/0
Số phức, i=j=sqrt(-1)
Số dấu chấm động nhỏ nhất
(2.2251e-308)
Số dấu chấm động lớn nhất

(1.7977e+308)


Chú ý
Trong ngôn ngữ lập trình Matlab, mỗi biến khi khởi tạo sẽ
được xem như một mảng.
Nếu biến có giá trị đơn thì mảng có kích thước 1x1.
Nếu biến là ma trận hoặc vector thì kích thước của mảng chính là kích
thước của ma trận hoặc vector đó.

Để lấy kích thước của một biến, ta sử dụng hàm size().
Matlab xem chuỗi k. tự như mảng một chiều chứa các ký tự.
>> msg='Xin chao cac ban';
>> size(msg)
ans =
1
16
>>


Véc tơ và ma trận
Các bài toán trong Matlab được quy về tính toán và xử lý trên
ma trận
Ví dụ, tạo một ma trận trong Matlab:
>> M=[3 4 5 ; 2 1 4]
M =
3

4


5

2

1

4

Các phần tử trong một cột cách nhau bởi dấu cách (space) hoặc dấu
phẩy
Các hàng được cách nhau bằng dấu “;”
Chỉ số các phần tử bắt đầu từ 1


Các toán tử
Toán tử
Phép cộng
Phép trừ
Phép nhân
Phép chia
Phép lũy thừa
Chuyển vị ma trận
Các toán tử quan hệ
Các toán tử logic

Ký hiệu
+
*
/ (chia phải) hoặc \ (chia trái)
^

'
>, <, >=, <=, ==, ~=
& (and), | (or) và ~(not)


×