Bài giảng mơn học
Xử Lý Tín Hiệu Số
Giảng viên: Lã Thế Vinh
Email:
Chú ý: bài giảng có sử dụng các học liệu được cung cấp bởi Giáo sư Tae-Song Kim,
Trường Đại học Kyung Hee, Hàn Quốc.
MATLAB
•
•
•
•
•
•
•
•
•
Giới thiệu
Bắt đầu với MATLAB
Biến
Véc-tơ và ma trận
Các tốn tử cơ bản
File mã MATLAB
Chương trình con
Lệnh lập trình cơ bản
Đồ thị và biểu đồ
Giới thiệu MATLAB
• MATLAB: MATrix LABoratory
• Phát triển bởi Cleve Moler từ 1970
• Được sử dụng nhiều trong tính tốn:
– Lý thuyết ma trận
– Đại số tuyến tính
– Các phương pháp số
• Các tính năng nổi bật khác:
– Mơ phỏng
– Giải toán symbolic
Giới thiệu MATLAB
• Ưu điểm của MATLAB (so với các ngơn ngữ khác):
– Dễ lập trình
– Khả năng tạo các đồ thị, biểu đồ dễ dàng
– Giao diện thân thiện
• Trong môn học này MATLAB được dùng để:
– Làm các thí nghiệm đơn giản: tạo, xử lý và hiển thị các tín
hiệu
– Phân tích phổ tín hiệu
– Thực hiện các bộ lọc tín hiệu
Bắt đầu với MATLAB
• Cài đặt MATLAB
Bắt đầu với MATLAB
• Chạy MATLAB
Biến trong MATLAB
• MATLAB là ngơn ngữ lập trình có kiểu biến
động
• Biến được khai báo và khởi tạo mà khơng cần
chỉ định kiểu
• Ví dụ: x = 1.0; y = [1 2;3 4];
Biến trong MATLAB
• Phép gán: x = y, MATLAB tự khai báo x và gán
cho x kiểu tương ứng
• Tên biến:
– Khơng có dấu cách
– Chứa các chữ cái, số và dấu gạch chân, không bắt
đầu bằng số
– Tên biến phân biệt chữ hoa và chữ thường: x khác
X
– Độ dài tối đa của tên biến là 19
Biến trong MATLAB
• Tên biến hợp lệ:
–
–
–
–
voltage
valueOfR1
Ron_and_Mauro
_Alan2007_
• Tên biến khơng hợp lệ:
–
–
–
–
123
value of R1
3v
X#*()$#$!!!
Các lệnh cơ bản của MATLAB
• Panel trái: Thư mục / Không gian biến
– A) Thư mục hiện tại MATLAB đang làm việc
– B) Biến và giá trị của biến đã được tạo ra
• Panel phải: Cửa sổ lệnh
– Nhập lệnh cho MATLAB
– Lệnh khơng có dấu ; sẽ in kết quả thực thi ra cửa sổ lệnh
– Lệnh có dấu ; sẽ không in kết quả thực thi
Các lệnh cơ bản của MATLAB
• Cách nhập lệnh:
– Một lệnh một dòng kết thúc bằng ENTER
– Nhiều lệnh một dịng:
• Dùng ; để tách lệnh
• Dùng , để tách lệnh (in kết quả thực thi)
• Nhập tên biến + ENTER = xem giá trị biến
• Nhập một giá trị + ENTER , MATLAB tạo ra biến ans
(answer) với giá trị đã nhập
Các lệnh cơ bản của MATLAB
Các lệnh cơ bản của MATLAB
• who: Hiện các biến đã được tạo ra
• clear:
– all: Xóa hết các biến
– x: Xóa biến x
• clc: Xóa cửa sổ lệnh
– Biến vẫn tồn tại
Các lệnh cơ bản của MATLAB
Các lệnh cơ bản của MATLAB
• Giá trị trong MATLAB có thể là phức
– X=1+2i
– Y=1+2j
Các lệnh cơ bản của MATLAB
• Cửa số lịch sử: Các lệnh đã dùng gần đây
• Nháy đúp để chạy lại lệnh
• Nhấn phìm lên, xuống,
trái, phải
cho phép
duyệt lại các lệnh
đã dùng
Véc-tơ và Ma trận
• MATLAB xem các biến là các ma trận 2 chiều
(trừ khi có chỉ định rõ ràng)
– Mảng và véc-tơ: ma trận N x 1 hoặc 1 x N
– Giá trị vô hướng: ma trận 1 x 1
Véc-tơ và Ma trận
• Khai báo véc-tơ, ma trận
– C / Java: int a[4] = {1, 2, 3, 4};
– MATLAB:
• a = [1 2 3 4] – Véc-tơ hàng
• a = [1 2 3 4]’ – Véc-tơ cột
• a = [1;2;3;4] – Véc-tơ cột
• MATLAB tự động co giãn các ma trận
Véc-tơ và Ma trận
• Truy nhập phần tử
– C/Java:
• int x = a[0];
– MATLAB:
• x = a(1);
• LƯU Ý!:
– Ngoặc tròn
– Chỉ số bắt đầu từ 1
Véc-tơ và Ma trận
• Tạo ma trận
– C/Java: int a[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8}, {9, 10, 11, 12},
{13, 14, 15, 16}};
– MATLAB:
• #1: a = [1 2 3 4; 5 6 7 8; 9 10 11 12;
13 14 15 16];
• #2: a = [1 2 3 4;
5 6 7 8;
9 10 11 12;
13 14 15 16];
Véc-tơ và Ma trận
• Truy nhập phần tử
– C/Java:
• int x = a[2][3];
– MATLAB:
• x = a(3,4);
–
–
–
–
Khơng phân tách bởi ngoặc
, phân tách các chiều của ma trận
Chỉ số từ 1
Chỉ số đầu là hàng, chỉ số sau là cột
Véc-tơ và Ma trận
• Truy nhập nhiều phần tử
• Giả sử có ma trận a
– Làm thế nào truy nhập hàng đầu tiên?
– C/Java:
• int i;
for(i = 0; i < 4; i++)
y[i] = x[0][i];
– MATLAB
• y=x(1,:);
• Khơng lặp, dấu : đại diện cho tất cả các cột
Véc-tơ và Ma trận
• Truy nhập nhiều phần tử
• Giả sử có ma trận x (9x9), muốn truy nhập vào
phần tử 1, 3, 5, 7 hàng số 1
– y = x(1,[1, 3, 5, 7]);
– y = x(1,[true false true false true false true false false]);
Véc-tơ và Ma trận
• Các ví dụ khác:
–
–
–
–
•
•
•
•
s
s
s
s
=
=
=
=
a(2,3);
a(1:3,3:4);
a(:, 1:3);
a(2:4,:);
Dịng một:…..?
Dịng hai:….?
Dòng ba:….?
Dòng bốn:….?
Véc-tơ và Ma trận
• Sao chép ma trận
– J = a(:,:);
– J = a;