授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30 DSP課程之 Matlab 簡介 授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
大綱 什麼是 Matlab ? Matlab 常見符號 基本矩陣表示法 矩陣的基本運算 程式流程控制 M檔案與M函數 常用指令
什麼是 Matlab? MATrix LABoratory History Property: 為一高品質之數值計算及圖形顯示軟體 1978, 新墨西哥大學 Pf. Cleve Moler 原創, using Fortran Stanford的 Jack Little 將 Matlab以C語言改寫 於1984年首次由 MathWorks 推出商用版 目前最新版本為R2014a版 Property: 為一高品質之數值計算及圖形顯示軟體 以矩陣運算為主 Toolbox: Signal processing, Wavelet, etc. Simulink 直譯器(Interpreter)
Matlab 基本設計 直接在command window 下一行行執行的Script M-file 可存取的M file 所需的變數直接從workspace 中去獲得並建立 不需輸入輸出引述的呼叫 無法保留 可存取的M file 開啟方法 File -> New -> M-file New M-file 以Editor/Debugger 撰寫程式
基本矩陣表示法 Matlab的變數不需宣告即可直接使用 Matlab中,英文字母的大小寫是有分別的 用中括號 [ ] 表示矩陣開始與結束 用逗號(,)或空白鍵區別矩陣中的元素 用分號(;)或是換行鍵(Enter)來區別每列的結束 向量表示法 x=起始值:增加值:結束值 (若無指定增加值,則預設增加值為1) 取出矩陣中的單一元素:x(n,m)
矩陣的基本運算 (1/2) 矩陣的合併與分割: 矩陣的Hermitian (共軛轉置): 矩陣的加減 (必須有相同維度) a = [c; d]; c = [c d]; a = a(1:3, 4:5);格式為a(row,col) 矩陣的Hermitian (共軛轉置): a = a’ 矩陣的加減 (必須有相同維度) c = a + b; d = a - b;
矩陣的基本運算 (2/2) 矩陣的乘除及次方 c = a * b; d = a / b; ( a * b-1 ) e = a \ b; ( a-1 * b ) f = a ^ 3; 陣列的乘除及次方 c = a .* b; d = a ./ b; e = a .\ b; f = a .^ 3; 宜注意,陣列的運算是“對應位置”的元素做運算,與矩陣運算差異甚大,請小心分辨使用時機。
多項式的表示法與運算
Simulink
程式流程控制
M檔案與M函數 M檔案(類似批次檔) M函數(可有輸入、輸出參數) 輔助符號及函數 必需在檔案開頭宣告函數名稱、輸入參數及輸出參數[output1,output2….]=function(input1,input2….) 輔助符號及函數 % 註解符號 pause 暫停程式
Matlab 常見符號 常見符號 i、j 表示虛數 分號( ; ) 表示敘述的結束,但不會顯示執行結果 NaN 沒有意義的數 Inf 無限大的數 eps Matlab浮點數的精確度 pi 圓周率 分號( ; ) 表示敘述的結束,但不會顯示執行結果
常用輔助指令 常用輔助指令 常用技巧 help 查看副函式用法 (已知名稱,但不知用法) lookfor 查詢相關副函式 (不一定知道function名稱) who , 察看變數 Whos 顯示變數名稱及其大小格式 what 察看現在目錄,顯示檔案*.m或*.mat load, save 資料存取 (.mat檔) clc 清除螢幕 clear 清除所有變數 echo 執行時顯示指令 常用技巧 Ctrl + C 可中斷程式執行
常用運算指令 inv() 計算反矩陣 det() 計算行列式值 real(), imag() 取實部, 虛部 abs(), angle() 取絕對值, 角度 conj() 取共軛 eig() 計算特徵值及特徵向量 zeros() 產生全為0的矩陣 ones() 產生全為1的矩陣 min(), max() 取最小值、最大值 sum(), mean() 求合、平均值 sin(), cos(), tan(), … log(), exp(), sqrt() 各種數學函數
常用繪圖指令 subplot(n,m,k) 切割成n x m個子圖,並將繪於第k個子圖 plot() 描繪標準線性坐標圖 title() 設定標題文字 xlabel() ylabel() 設定x、y軸文字 figure() 開新圖 stem() 描繪離散針狀圖 hist() 描繪統計圖 image(), imshow() 顯示影像 sound(x, fs) 撥放聲音(每秒fs個sample播放x)
參考資料 “Matlab之使用與應用”,林傳生,儒林圖書 “MATLAB程式設計與應用”,張智星,清蔚科技
程式作業繳交 ftp://140.115.155.210 User / Password 一般生: co6021 在職生: coa002