1 / 42

Bài giảng môn học Xử Lý Tín Hiệu Số

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ú ý: 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

Download Presentation

Bài giảng môn học Xử Lý Tín Hiệu Số

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BàigiảngmônhọcXửLýTínHiệuSố Giảngviên: LãThếVinh Email: vinhlt@soict.hut.edu.vn Chú ý:bàigiảngcósửdụngcáchọcliệuđượccungcấpbởiGiáosư Tae-Song Kim, TrườngĐạihọc Kyung Hee, HànQuốc.

  2. MATLAB • Giớithiệu • Bắtđầuvới MATLAB • Biến • Véc-tơvà ma trận • Cáctoántửcơbản • File mã MATLAB • Chươngtrình con • Lệnhlậptrìnhcơbản • Đồthịvàbiểuđồ

  3. Giớithiệu MATLAB • MATLAB: MATrixLABoratory • PháttriểnbởiCleve Molertừ 1970 • Đượcsửdụngnhiềutrongtínhtoán: • Lýthuyết ma trận • Đạisốtuyếntính • Cácphươngphápsố • Cáctínhnăngnổibậtkhác: • Môphỏng • Giảitoán symbolic

  4. Giớithiệu MATLAB • Ưuđiểmcủa MATLAB (so vớicácngônngữkhác): • Dễlậptrình • Khảnăngtạocácđồthị, biểuđồdễdàng • Giaodiệnthânthiện • Trongmônhọcnày MATLAB đượcdùngđể: • Làmcácthínghiệmđơngiản: tạo, xửlývàhiểnthịcáctínhiệu • Phântíchphổtínhiệu • Thựchiệncácbộlọctínhiệu

  5. Bắtđầuvới MATLAB • Càiđặt MATLAB

  6. Bắtđầuvới MATLAB • Chạy MATLAB

  7. Biếntrong MATLAB • MATLAB làngônngữlậptrìnhcókiểubiếnđộng • Biếnđượckhaibáovàkhởitạomàkhôngcầnchỉđịnhkiểu • Vídụ: x = 1.0; y = [1 2;3 4];

  8. Biếntrong MATLAB • Phépgán: x = y, MATLAB tựkhaibáox vàgáncho x kiểutươngứng • Tênbiến: • Khôngcódấucách • Chứacácchữcái, sốvàdấugạchchân, khôngbắtđầubằngsố • Tênbiếnphânbiệtchữhoavàchữthường: xkhácX • Độdàitốiđacủatênbiếnlà 19

  9. Biếntrong MATLAB • Tênbiếnhợplệ: • voltage • valueOfR1 • Ron_and_Mauro • _Alan2007_ • Tênbiếnkhônghợplệ: • 123 • value of R1 • 3v • X#*()$#$!!!

  10. Cáclệnhcơbảncủa MATLAB • Panel trái: Thưmục / Khônggianbiến • A) Thưmụchiệntại MATLAB đanglàmviệc • B) Biếnvàgiátrịcủabiếnđãđượctạora • Panel phải: Cửasổlệnh • Nhậplệnhcho MATLAB • Lệnhkhôngcódấu ; sẽ in kếtquảthựcthiracửasổlệnh • Lệnhcódấu ; sẽkhông in kếtquảthựcthi

  11. Cáclệnhcơbảncủa MATLAB • Cáchnhậplệnh: • Mộtlệnhmộtdòngkếtthúcbằng ENTER • Nhiềulệnhmộtdòng: • Dùng ; đểtáchlệnh • Dùng , đểtáchlệnh (in kếtquảthựcthi) • Nhậptênbiến + ENTER = xemgiátrịbiến • Nhậpmộtgiátrị + ENTER , MATLAB tạorabiếnans (answer) vớigiátrịđãnhập

  12. Cáclệnhcơbảncủa MATLAB

  13. Cáclệnhcơbảncủa MATLAB • who: Hiệncácbiếnđãđượctạora • clear: • all: Xóahếtcácbiến • x: Xóabiếnx • clc: Xóacửasổlệnh • Biếnvẫntồntại

  14. Cáclệnhcơbảncủa MATLAB

  15. Cáclệnhcơbảncủa MATLAB • Giátrịtrong MATLAB cóthểlàphức • X=1+2i • Y=1+2j

  16. Cáclệnhcơbảncủa MATLAB • Cửasốlịchsử: Cáclệnhđãdùnggầnđây • Nháyđúpđểchạylạilệnh • Nhấnphìmlên, xuống, trái, phảichophépduyệtlạicáclệnhđãdùng

  17. Véc-tơvà Ma trận • MATLAB xemcácbiếnlàcác ma trận 2 chiều (trừkhicóchỉđịnhrõràng) • Mảngvà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

  18. Véc-tơvà Ma trận • Khaibáové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ãncác ma trận

  19. Véc-tơvà Ma trận • Truynhậpphầntử • C/Java: • int x = a[0]; • MATLAB: • x = a(1); • LƯU Ý!: • Ngoặctròn • Chỉsốbắtđầutừ1

  20. 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];

  21. Véc-tơvà Ma trận • Truynhậpphầntử • C/Java: • int x = a[2][3]; • MATLAB: • x = a(3,4); • Khôngphântáchbởingoặc • , phântáchcácchiềucủa ma trận • Chỉsốtừ 1 • Chỉsốđầulàhàng, chỉsốsaulàcột

  22. Véc-tơvà Ma trận • Truynhậpnhiềuphầntử • Giảsửcó ma trậna • Làmthếnàotruynhậphàngđầutiên? • C/Java: • inti;for(i = 0; i < 4; i++) y[i] = x[0][i]; • MATLAB • y=x(1,:); • Khônglặp, dấu : đạidiệnchotấtcảcáccột

  23. Véc-tơvà Ma trận • Truynhậpnhiềuphầntử • Giảsửcó ma trận x (9x9), muốntruynhậpvàophầntử 1, 3, 5, 7 hàngsố 1 • y = x(1,[1, 3, 5, 7]); • y = x(1,[true false true false true false true false false]);

  24. Véc-tơvà Ma trận • Cácvídụkhác: • s = a(2,3); • s = a(1:3,3:4); • s = a(:, 1:3); • s = a(2:4,:); • Dòngmột:…..? • Dònghai:….? • Dòngba:….? • Dòngbốn:….?

  25. Véc-tơvà Ma trận • Sao chép ma trận • J = a(:,:); • J = a;

  26. Véc-tơvà Ma trận

  27. Véc-tơvà Ma trận • Tạocácvéc-tơ, ma trậnvớicácgiátrịtăng/giảmđều • R = 0 : 0.1 : 1.0; • R = [0 0.1 0.2 0.3 … 1.0]; • Tổngquát: • x = Bắtđầu : Bước : Kếtthúc • Chú ý dấu : • Bướcmặcđịnhlà 1 (nếuthiếu)

  28. Véc-tơvà Ma trận • Vídụ: • j = 0 : 2 : 10; • e = 3 : 3 : 30; • r = 1 : 10; • m = 2.0 : -0.2 : 0.4;

  29. Véc-tơvà Ma trận • Các ma trậncơbảncủa MATLAB • eye(n): Ma trậnđơnvịnxn • ones(n, m): Ma trậngồmtoàn 1 kíchthướcnxm • zeros(n, m): Ma trậnkhôngnxm • Nếukhôngcó m (m=n mặcđịnh)

  30. Cáctoántửcơbản

  31. Cáctoántửcơbản • Cácphép *, /, \, và ^, cóthểthựchiệntrêntừngphầntử • Thêm . vàotrướctoántử • Vídụ: A .* B • Nhântừngcặpphầntửcủa A và B • Vídụ: [ 1 2; 3 4] .* [1 2; 3 4] = ?

  32. Cáctoántửcơbản • len = length(V); • Giátrịlớnhơntrongcácchiềucủa V, nếu V làmảngmộtchiều, lenlàsốphầntử • [rows cols] = size(M); • Sốdòngvàsốcộtcủa M • sum(V): Cộngcácgiátrịcủa V theocột • sum(M, 1)= sum(M) • sum(M, 2): Cộngcácgiátrịcủa M theohàng • prod(M): tươngtựnhư sum nhưngtínhtích • sum, prod củamộtvéc-tơtínhtổng/tíchcủacácphầntử

  33. File mã MATLAB • Cácchươngtrìnhphứctạpchứanhiềulệnhkhôngthểsoạnthảotrựctiếptrongcửasổlệnh • Mộttậplệnhphứctạpthườngđượcghivào file mã .m của MATLAB (text file) • Cóthể debug (break) khidùng file .m • MATLAB chỉchạy file .m nếunónằmtrongthưmụchiệntạihoặctrongđườngdẫnthưmụcđãđượckhaibáo • Khaibáocácđườngdẫnthưmục

  34. File mã MATLAB

  35. Chươngtrình con • Mỗichươngtrình con đượcđặttrongmột file mãriêng, vớitên file vàtênchươngtrình con giốngnhau function[ra] = <Tênchươngtrình con>(vào) End • Khicómộtlờigọichươngtrình con, MATLAB sẽtìm file tươngứngtrongthưmụclàmviệchoặctrongcácthưmụcđãđượckhaibáo

  36. Chươngtrình con • Biếntrongchươngtrình con làcụcbộ • Thamsốđượcdùngđểtruyềndữliệuvàochươngtrình con • Biến global cũngcóthểđượcdùng: • global x – quyđịnh x làbiếntoàncụcđượctruyxuất ở khắpnơi. • Vídụ: ? • Dấu % đểchúthích

  37. Cáclệnhlậptrìnhcơbản If <điềukiện> elseif <điềukiện> else End for i=1:100 end for i=[1,2,3,4] End while continue==true break; conttinue; end

  38. Đồthịvàbiểuđồ • figure – tạoramộtcửasổ • subplot(m,n,k) chia cửasổvẽthànhlướimxnchọn ô k đểvẽ (trái-> phải, trên -> dưới) • hold on: vẽchồng • hold off: xóatrướckhivẽ • plot(x,y) vẽhàm y theobiến x

  39. Đồthịvàbiểuđồ • Vídụ: vẽhàm y=x^2 trongkhoảng -100 đến 100. • x=[-100:0.1:100]; • y=x.^2; • plot(x,y); • Vẽcácđồthịtrêncác ô khácnhau • plot(x1,y1,x2,y2,x3,y3,…); • Matlabtựthêmmàuchocácđồthị

  40. Đồthịvàbiểuđồ • title(‘…’)Thêmtiêuđề • xlabel(‘…’), ylabel(‘…’)têncáctrục • xlim([min, max]) • ylim([min, max]) • plot(x, y, ‘line_style’); • line_style=‘redo-’, ‘bluex’, ‘green*’…

  41. Đồthịvàbiểuđồ

  42. Vídụ: • Vẽmộtchukỳhàm sin tầnsố 50Hz • Vẽ10 chukỳhàm sin tầnsố 100Hz • Cộnghaihàmvàvẽhàmtổng • Tạosóng sin vàghivào file wave • Đọc file wave vàhiểnthịsóngâm • Nhậnxétgìvềtầnsốtínhiệuvàtầnsốlấymẫ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');

More Related