Giới thiệ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
Đồ thị và biểu đồ
42 trang |
Chia sẻ: Mr Hưng | Lượt xem: 1067 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Xử lý tín hiệu số - Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài giảng môn họcXử Lý Tín Hiệu SốGiảng viên: Lã Thế VinhEmail: vinhlt@soict.hut.edu.vnChú ý: 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.MATLABGiới thiệuBắt đầu với MATLABBiếnVéc-tơ và ma trậnCác toán tử cơ bảnFile mã MATLABChương trình conLệnh lập trình cơ bảnĐồ thị và biểu đồGiới thiệu MATLABMATLAB: MATrix LABoratoryPhát triển bởi Cleve Moler từ 1970Được sử dụng nhiều trong tính toán:Lý thuyết ma trậnĐại số tuyến tínhCác phương pháp sốCác tính năng nổi bật khác:Mô phỏngGiải toán symbolicGiới thiệu MATLABƯu điểm của MATLAB (so với các ngôn ngữ khác):Dễ lập trìnhKhả năng tạo các đồ thị, biểu đồ dễ dàngGiao diện thân thiệnTrong 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ệuPhân tích phổ tín hiệuThực hiện các bộ lọc tín hiệuBắt đầu với MATLABCài đặt MATLABBắt đầu với MATLABChạy MATLABBiến trong MATLABMATLAB là ngôn ngữ lập trình có kiểu biến độngBiến được khai báo và khởi tạo mà không cần chỉ định kiểuVí dụ: x = 1.0; y = [1 2;3 4];Biến trong MATLABPhép gán: x = y, MATLAB tự khai báo x và gán cho x kiểu tương ứngTê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à 19Biến trong MATLABTên biến hợp lệ:voltagevalueOfR1Ron_and_Mauro_Alan2007_Tên biến không hợp lệ:123value of R13vX#*()$#$!!!Các lệnh cơ bản của MATLABPanel trái: Thư mục / Không gian biếnA) Thư mục hiện tại MATLAB đang làm việcB) Biến và giá trị của biến đã được tạo raPanel phải: Cửa sổ lệnhNhập lệnh cho MATLABLệnh không có dấu ; sẽ in kết quả thực thi ra cửa sổ lệnhLệnh có dấu ; sẽ không in kết quả thực thiCác lệnh cơ bản của MATLABCách nhập lệnh:Một lệnh một dòng kết thúc bằng ENTERNhiề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ếnNhập một giá trị + ENTER , MATLAB tạo ra biến ans (answer) với giá trị đã nhậpCác lệnh cơ bản của MATLABCác lệnh cơ bản của MATLABwho: Hiện các biến đã được tạo raclear: all: Xóa hết các biếnx: Xóa biến xclc: Xóa cửa sổ lệnhBiến vẫn tồn tạiCác lệnh cơ bản của MATLABCác lệnh cơ bản của MATLABGiá trị trong MATLAB có thể là phứcX=1+2iY=1+2jCác lệnh cơ bản của MATLABCửa số lịch sử: Các lệnh đã dùng gần đâyNháy đúp để chạy lại lệnhNhấn phìm lên, xuống, trái, phải cho phép duyệt lại các lệnh đã dùngVéc-tơ và Ma trậnMATLAB 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 NGiá trị vô hướng: ma trận 1 x 1Véc-tơ và Ma trậnKhai báo véc-tơ, ma trậnC / Java: int a[4] = {1, 2, 3, 4};MATLAB: a = [1 2 3 4] – Véc-tơ hànga = [1 2 3 4]’ – Véc-tơ cộta = [1;2;3;4] – Véc-tơ cộtMATLAB tự động co giãn các ma trậnVéc-tơ và Ma trậnTruy nhập phần tửC/Java: int x = a[0];MATLAB:x = a(1);LƯU Ý!:Ngoặc trònChỉ số bắt đầu từ 1Véc-tơ và Ma trậnTạo ma trậnC/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ậnTruy 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ậnChỉ số từ 1Chỉ số đầu là hàng, chỉ số sau là cộtVéc-tơ và Ma trậnTruy nhập nhiều phần tửGiả sử có ma trận aLàm thế nào truy nhập hàng đầu tiên?C/Java:int i;for(i = 0; i (vào)EndKhi có một lời gọi chương trình con, MATLAB sẽ tìm file tương ứng trong thư mục làm việc hoặc trong các thư mục đã được khai báoChương trình conBiến trong chương trình con là cục bộTham số được dùng để truyền dữ liệu vào chương trình conBiến global cũng có thể được dùng:global x – quy định x là biến toàn cục được truy xuất ở khắp nơi.Ví dụ: ?Dấu % để chú thíchCác lệnh lập trình cơ bảnIf elseif elseEndfor i=1:100endfor i=[1,2,3,4]Endwhile continue==true break; conttinue;endĐồ thị và biểu đồfigure – tạo ra một 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, trên -> dưới)hold on: vẽ chồnghold off: xóa trước khi vẽplot(x,y) vẽ hàm y theo biến xĐồ thị và biểu đồVí dụ: vẽ hàm y=x^2 trong khoảng -100 đến 100.x=[-100:0.1:100];y=x.^2;plot(x,y);Vẽ các đồ thị trên các ô khác nhauplot(x1,y1,x2,y2,x3,y3,);Matlab tự thêm màu cho các đồ thịĐồ thị và biểu đồtitle(‘’) Thêm tiêu đềxlabel(‘’), ylabel(‘’) tên các trụcxlim([min, max])ylim([min, max])plot(x, y, ‘line_style’);line_style=‘redo-’, ‘bluex’, ‘green*’Đồ thị và biểu đồVí dụ:Vẽ một chu kỳ hàm sin tần số 50HzVẽ 10 chu kỳ hàm sin tần số 100HzCộng hai hàm và vẽ hàm tổngTạo sóng sin và ghi vào file waveĐọc file wave và hiển thị sóng âmNhận xét gì về tần số tín hiệu và 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');
Các file đính kèm theo tài liệu này:
- xlths_04_6213.pptx