Cùng tìm hiểu bắt đầu với MATLAB; biến; véc-tơ và ma trận; các toán tử cơ bản; File mã MATLAB; chương trình con; lệnh lập trình cơ bản;... được trình bày cụ thể trong Bài giảng Xử lý tín hiệu số: Chương 4 do Lã Thế Vinh biên soạn.
Bài giảng mơn học Xử Lý Tín Hiệu Số Giảng viên: Lã Thế Vinh Email: vinhlt@soict.hut.edu.vn Chú ý: giảng có sử dụng học liệu cung cấp 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ơ ma trận Các toán tử File mã MATLAB Chương trình Lệnh lập trình Đồ thị biểu đồ Giới thiệu MATLAB • MATLAB: MATrix LABoratory • Phát triển Cleve Moler từ 1970 • Được sử dụng nhiều 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 bật khác: – Mơ – Giải tốn symbolic Giới thiệu MATLAB • Ưu điểm MATLAB (so với ngôn ngữ khác): – Dễ lập trình – Khả tạo đồ thị, biểu đồ dễ dàng – Giao diện thân thiện • Trong môn học MATLAB dùng để: – Làm thí nghiệm đơn giản: tạo, xử lý hiển thị tín hiệu – Phân tích phổ tín hiệu – Thực 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 MATLAB • MATLAB ngơn ngữ lập trình có kiểu biến động • Biến khai báo khởi tạo mà không cần định kiểu • Ví dụ: x = 1.0; y = [1 2;3 4]; Biến MATLAB • Phép gán: x = y, MATLAB tự khai báo x gán cho x kiểu tương ứng • Tên biến: – Khơng có dấu cách – Chứa chữ cái, số dấu gạch chân, không bắt đầu số – Tên biến phân biệt chữ hoa chữ thường: x khác X – Độ dài tối đa tên biến 19 Biến 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 MATLAB • Panel trái: Thư mục / Không gian biến – A) Thư mục MATLAB làm việc – B) Biến giá trị biến tạo • Panel phải: Cửa sổ lệnh – Nhập lệnh cho MATLAB – Lệnh khơng có dấu ; in kết thực thi cửa sổ lệnh – Lệnh có dấu ; không in kết thực thi Véc-tơ Ma trận • Ví dụ: –j –e –r –m = = = = : : : 2.0 : 10; : 30; 10; : -0.2 : 0.4; Véc-tơ Ma trận • Các ma trận MATLAB – eye(n): Ma trận đơn vị nxn – ones(n, m): Ma trận gồm tồn kích thước nxm – zeros(n, m): Ma trận không nxm – Nếu khơng có m (m=n mặc định) Các tốn tử Các tốn tử • Các phép *, /, \, ^, thực phần tử – Thêm vào trước tốn tử • Ví dụ: A * B – Nhân cặp phần tử A B • Ví dụ: [ 2; 4] * [1 2; 4] = ? Các tốn tử • len = length(V); – Giá trị lớn chiều V, V mảng chiều, len số phần tử • [rows cols] = size(M); – Số dòng số cột M • • • • • sum(V): Cộng giá trị V theo cột sum(M, 1) = sum(M) sum(M, 2): Cộng giá trị M theo hàng prod(M): tương tự sum tính tích sum, prod véc-tơ tính tổng/tích phần tử File mã MATLAB • Các chương trình phức tạp chứa nhiều lệnh soạn thảo trực tiếp cửa sổ lệnh • Một tập lệnh phức tạp thường ghi vào file mã m MATLAB (text file) • Có thể debug (break) dùng file m • MATLAB chạy file m nằm thư mục đường dẫn thư mục khai báo • Khai báo đường dẫn thư mục File mã MATLAB Chương trình • Mỗi chương trình đặt file mã riêng, với tên file tên chương trình giống function [ra] = (vào) End • Khi có lời gọi chương trình con, MATLAB tìm file tương ứng thư mục làm việc thư mục khai báo Chương trình • Biến chương trình cục • Tham số dùng để truyền liệu vào chương trình • Biến global dùng: – global x – quy định x biến toàn cục truy xuất khắp nơi – Ví dụ: ? • Dấu % để thích Các lệnh lập trình If elseif else End for i=1:100 end for i=[1,2,3,4] End while continue==true break; conttinue; end Đồ thị biểu đồ • figure – tạo cửa sổ • subplot(m,n,k) chia cửa sổ vẽ thành lưới mxn chọn ô k để vẽ (trái -> phải, -> dưới) • hold on: vẽ chồng • hold off: xóa trước vẽ • plot(x,y) vẽ hàm y theo biến x Đồ thị biểu đồ • Ví dụ: vẽ hàm y=x^2 khoảng -100 đến 100 – x=[-100:0.1:100]; – y=x.^2; – plot(x,y); • Vẽ đồ thị khác • plot(x1,y1,x2,y2,x3,y3,…); • Matlab tự thêm màu cho đồ thị Đồ thị biểu đồ • title(‘…’) Thêm tiêu đề • xlabel(‘…’), ylabel(‘…’) tên trục • xlim([min, max]) • ylim([min, max]) • plot(x, y, ‘line_style’); • line_style=‘redo-’, ‘bluex’, ‘green*’… Đồ thị biểu đồ Ví dụ: • • • • • • Vẽ chu kỳ hàm sin tần số 50Hz Vẽ 10 chu kỳ hàm sin tần số 100Hz Cộng hai hàm vẽ hàm tổng Tạo sóng sin ghi vào file wave Đọc file wave hiển thị sóng âm Nhận xét tần số tín hiệu tần số lấy mẫu? wavwrite(x1,1/Ts,'c:\temp\100.wav'); wavwrite(x2,1/Ts,'c:\temp\50.wav'); wavwrite(x3,1/Ts,'c:\temp\mixed.wav'); ... • Trong môn học MATLAB dùng để: – Làm thí nghiệm đơn giản: tạo, xử lý hiển thị tín hiệu – Phân tích phổ tín hiệu – Thực lọc tín hiệu Bắt đầu với MATLAB • Cài đặt MATLAB Bắt đầu với MATLAB • Chạy... C / Java: int a [4] = {1, 2, 3, 4} ; – MATLAB: • a = [1 4] – Véc-tơ hàng • a = [1 4] ’ – Véc-tơ cột • a = [1;2;3 ;4] – Véc-tơ cột • MATLAB tự động co giãn ma trận Véc-tơ Ma trận • Truy nhập phần tử... số Véc-tơ 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 4; 8; 10 11 12; 13 14 15 16]; • #2: a = [1 4; 8;