MATLAB具有編程簡單、數(shù)據(jù)可視化功能強(qiáng)、可操作性強(qiáng)等特點(diǎn),已經(jīng)成為國際公認(rèn)的最優(yōu)秀的科技應(yīng)用軟件之一。它是集成了數(shù)值計(jì)算、符號(hào)運(yùn)算和圖形處理等多種功能于一體的科學(xué)計(jì)算軟件包,包含許多工具箱,可以進(jìn)行科學(xué)計(jì)算、動(dòng)態(tài)仿真、圖形處理、信號(hào)處理、系統(tǒng)控制、數(shù)據(jù)統(tǒng)計(jì)等。目前,MATLAB 已得到了廣泛的應(yīng)用,許多本科生和研究生經(jīng)常要用MATLAB進(jìn)行數(shù)值計(jì)算和圖形處理,并且借助它來學(xué)習(xí)基礎(chǔ)課程、專業(yè)基礎(chǔ)課程和專業(yè)課程。本書講述了如何應(yīng)用MATLAB語言進(jìn)行編程仿真,并針對(duì)光學(xué)類專業(yè)的本科生,重點(diǎn)介紹MATLAB在“光學(xué)原理”“信息光學(xué)”和“光電圖像處理”等課程中的具體應(yīng)用。
本書圍繞上述課程,結(jié)合典型例題及豐富的圖形實(shí)例講解,使原本枯燥、抽象的內(nèi)容變得直觀形象,幫助學(xué)生更好地理解課程內(nèi)容,以及如何使用MATLAB編程。本書的主要特點(diǎn)可以概括為以下幾點(diǎn):
1. 由淺入深,結(jié)構(gòu)層次清楚
全書內(nèi)容由淺入深,在介紹MATLAB基本知識(shí)的基礎(chǔ)上,緊扣專業(yè)基礎(chǔ)課程及專業(yè)課程,提供了MATLAB在相應(yīng)領(lǐng)域的應(yīng)用方法。目的是讓讀者在學(xué)會(huì)使用MATLAB進(jìn)行性能分析驗(yàn)證和建模仿真的同時(shí),加強(qiáng)對(duì)專業(yè)知識(shí)的理解和掌握,從而有助于后續(xù)課程的學(xué)習(xí)。
2. 緊扣專業(yè),仿真實(shí)例豐富,針對(duì)性強(qiáng)
本書對(duì)復(fù)雜的理論及算法只做簡單介紹,重點(diǎn)放在MATLAB的實(shí)現(xiàn)(應(yīng)用)上。根據(jù)專業(yè)基礎(chǔ)課程和專業(yè)課程的要求,精選了具有代表性的實(shí)例,使讀者在實(shí)例中加深對(duì)專業(yè)知識(shí)的理解,并學(xué)會(huì)如何使用相應(yīng)的MATLAB函數(shù)。建議讀者在使用本書時(shí)最好結(jié)合相應(yīng)的教材做參考。
3. 語言精練,內(nèi)容易于理解
本書避免了復(fù)雜的數(shù)學(xué)公式推導(dǎo),對(duì)知識(shí)進(jìn)行提煉,語言簡潔,通俗易懂。書中提供的程序代碼中,對(duì)關(guān)鍵處進(jìn)行了注釋,易于讀者理解和掌握MATLAB的編程方法和思路。
本書可作為高等院校光學(xué)、光學(xué)工程、光電信息科學(xué)與工程、電子科學(xué)技術(shù)等相關(guān)專業(yè)本科生和研究生學(xué)習(xí)專業(yè)知識(shí)的輔助教材、參考書以及仿真實(shí)驗(yàn)指導(dǎo)書,也可供相應(yīng)專業(yè)的教師和科技工作者參考。對(duì)參加相關(guān)課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)的讀者來說,書中所給實(shí)例有一定的參考價(jià)值。
本書由胡章芳、羅元、席兵、毛雪峰共同編寫完成。本書再版編寫過程中,肖航、蹇芳、呂潤哲、楊勇、斯星童、曾念文等做了部分的資料查閱、插圖制作、文字校對(duì)和編排工作,對(duì)他們的辛勤付出表示感謝!
書中所有程序源代碼可在北京航空航天大學(xué)出版社官網(wǎng)(http://www.buaapress.com.cn)的“下載中心”下載。同時(shí),北京航空航天大學(xué)出版社聯(lián)合MATLAB 中文論壇為本書設(shè)立了在線交流版塊,網(wǎng)址:http://www.ilovematlab.cn/forum-246-1.html(讀者也可以在該版塊下載程序源代碼)。我們希望借助這個(gè)版塊實(shí)現(xiàn)與廣大讀者面對(duì)面的交流,解決大家在閱讀本書過程中遇到的問題,分享彼此的學(xué)習(xí)經(jīng)驗(yàn),共同進(jìn)步。由于作者水平有限,書中存在的錯(cuò)誤和疏漏之處,懇請(qǐng)廣大讀者和同行批評(píng)指正。本書勘誤網(wǎng)址:http://www.ilovematlab.cn/thread-432219-1-1.html。
編 者
2020年5月
第一部分 語言篇
第1章 MATLAB語言概述 2
1.1 MATLAB簡介 2
1.1.1 MATLAB的發(fā)展歷程 2
1.1.2 MATLAB的主要特點(diǎn) 2
1.2 MATLAB的系統(tǒng)組成 3
1.3 MATLAB R2020a的安裝、啟動(dòng)和退出 4
1.3.1 MATLAB R2020a的安裝 4
1.3.2 MATLAB R2020a的啟動(dòng)和退出 9
1.4 MATLAB R2020a的工作環(huán)境 9
1.4.1 菜單欄和工具欄 9
1.4.2 命令行窗口 10
1.4.3 工作區(qū) 11
1.5 MATLAB R2020a幫助系統(tǒng) 12
1.5.1 幫助窗口 12
1.5.2 幫助命令 12
1.5.3 演示系統(tǒng)(Demos) 13
1.5.4 幫助系統(tǒng)導(dǎo)航瀏覽器 13
1.5.5 遠(yuǎn)程幫助系統(tǒng) 14
1.6 MATLAB的基本操作命令 14
1.6.1 通用命令和編輯鍵 14
1.6.2 文件管理 16
1.7 MATLAB使用初步 16
習(xí) 題 16
第2章 MATLAB的基本語法 17
2.1 數(shù)據(jù)類型 17
2.1.1 數(shù)值類型 17
2.1.2 字符串 17
2.1.3 邏輯類型 19
2.1.4 元胞數(shù)組 20
2.1.5 構(gòu)架數(shù)組 21
2.1.6 函數(shù)句柄(function) 21
2.2 變 量 22
2.2.1 變量命名的規(guī)則 22
2.2.2 變量的賦值 22
2.2.3 MATLAB變量的顯示 23
2.2.4 MATLAB變量的存取 24
2.3 數(shù)組及向量運(yùn)算 24
2.3.1 數(shù)組和向量的創(chuàng)建 24
2.3.2 數(shù)組的尋址 26
2.3.3 數(shù)組的運(yùn)算 27
2.3.4 向量運(yùn)算 29
2.4 矩陣及其運(yùn)算 30
2.4.1 矩陣的創(chuàng)建 30
2.4.2 矩陣的運(yùn)算 31
2.4.3 矩陣的常用函數(shù)運(yùn)算 33
2.5 多項(xiàng)式及其運(yùn)算 33
2.5.1 多項(xiàng)式的構(gòu)造 34
2.5.2 多項(xiàng)式的運(yùn)算 34
2.5.3 多項(xiàng)式擬合 36
2.6 符號(hào)運(yùn)算 37
2.6.1 基本符號(hào)對(duì)象 37
2.6.2 符號(hào)表達(dá)式 38
2.6.3 符號(hào)表達(dá)式的運(yùn)算 38
2.6.4 常用的符號(hào)運(yùn)算 38
2.7 MATLAB繪圖 40
2.7.1 MATLAB繪圖的基本步驟 40
2.7.2 二維繪圖 40
2.7.3 圖形修飾 43
2.7.4 三維繪圖 45
2.7.5 特殊圖形 47
2.7.6 四維圖形 49
2.8 MATLAB程序設(shè)計(jì) 50
2.8.1 M 文件編輯器 51
2.8.2 命令文件 52
2.8.3 函數(shù)文件 53
2.8.4 M 文件的規(guī)則 53
2.8.5 全局變量與局部變量 53
2.8.6 程序流控制 54
2.8.7 程序設(shè)計(jì)舉例 57
2.8.8 程序設(shè)計(jì)的基本原則 59
2.8.9 高效編程的一般思路 59
習(xí) 題 60
參考文獻(xiàn) 62
第二部分 應(yīng)用篇
第3章 MATLAB在光學(xué)原理中的應(yīng)用舉例 64
3.1 平面電磁波在不同媒介分界面上的入射、反射和折射 64
3.1.1 電矢量平行入射面的反射系數(shù)和振幅透射系數(shù) 64
3.1.2 電矢量垂直入射面 65
3.1.3 菲涅耳公式 65
3.2 光的干涉 67
3.2.1 波的疊加原理 67
3.2.2 光波的干涉 70
3.2.3 楊氏干涉實(shí)驗(yàn) 70
3.2.4 牛頓環(huán) 73
3.2.5 邁克爾遜干涉儀 74
3.3 光的衍射 78
3.3.1 光的衍射現(xiàn)象 78
3.3.2 矩形孔和圓孔衍射 81
3.3.3 光柵衍射 82
3.4 光的偏振 83
3.4.1 光波的偏振態(tài) 83
3.4.2 光波的偏振態(tài)仿真 84
3.5 平行光束通過透鏡聚焦 86
3.5.1 平凸透鏡光線追跡 86
3.5.2 平行光通過透鏡的仿真 87
參考文獻(xiàn) 89
第4章 MATLAB在信息光學(xué)中的應(yīng)用舉例 90
4.1 信息光學(xué)函數(shù) 90
4.1.1 矩形函數(shù) 90
4.1.2 階躍函數(shù) 92
4.1.3 符號(hào)函數(shù) 93
4.1.4 sinc函數(shù) 93
4.1.5 高斯函數(shù) 94
4.2 傅里葉變換 96
4.3 卷積定理 98
4.4 傅里葉透鏡的仿真 100
4.5 計(jì)算全息 102
4.5.1 全息透鏡 102
4.5.2 二元傅里葉變換全息圖 104
參考文獻(xiàn) 106
第5章 MATLAB在光電圖像處理中的應(yīng)用 107
5.1 圖像及數(shù)字圖像簡介 107
5.1.1 索引圖像 107
5.1.2 RGB圖像 108
5.1.3 二值圖像 108
5.1.4 灰度圖像 108
5.2 數(shù)字圖像的讀取、顯示及輸出 109
5.2.1 圖像的讀取 109
5.2.2 圖像的顯示 109
5.2.3 圖像的輸出 111
5.2.4 添加顏色條 111
5.3 圖像類型的轉(zhuǎn)化 112
5.3.1 dither函數(shù) 112
5.3.2 gray2ind函數(shù) 113
5.3.3 im2bw函數(shù) 114
5.3.4 rgb2gray函數(shù) 115
5.3.5 rgb2ind函數(shù) 115
5.4 圖像的代數(shù)操作 116
5.4.1 圖像的相加 116
5.4.2 圖像的相減 118
5.4.3 圖像的相乘 120
5.4.4 圖像的相除 120
5.5 圖像的對(duì)比度增強(qiáng) 122
5.5.1 線性變換 122
5.5.2 非線性變換 122
5.6 圖像的銳化 123
5.6.1 邊界提取和銳化 123
5.6.2 銳化濾波器 124
5.7 圖像的邊緣檢測 126
5.7.1 邊緣檢測算子 126
5.7.2 邊緣檢測的MATLAB實(shí)現(xiàn) 127
5.8 基于灰度的圖像分割 130
5.9 圖像的膨脹與腐蝕 133
5.9.1 膨脹和腐蝕 133
5.9.2 結(jié)構(gòu)元素 133
5.9.3 膨脹的MATLAB實(shí)現(xiàn) 134
5.9.4 腐蝕的MATLAB實(shí)現(xiàn) 135
5.10 圖形的檢測 135
5.10.1 圓的檢測 135
5.10.2 多邊形的檢測 137
5.11 圖像與視頻的相互轉(zhuǎn)換 138
5.11.1 視頻轉(zhuǎn)換成圖像 138
5.11.2 圖像轉(zhuǎn)換成視頻 139
參考文獻(xiàn) 140
第三部分 實(shí)例篇
第6章 課程設(shè)計(jì)綜合實(shí)例 142
6.1 基于MATLAB的汽車牌照識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 142
6.1.1 設(shè)計(jì)目的 142
6.1.2 設(shè)計(jì)任務(wù)及具體要求 142
6.1.3 基本原理概述 142
6.1.4 設(shè)計(jì)方案及驗(yàn)證 143
參考文獻(xiàn) 151
6.2 基于MATLAB的空間濾波仿真實(shí)現(xiàn) 151
6.2.1 設(shè)計(jì)目的 151
6.2.2 設(shè)計(jì)任務(wù)及要求 151
6.2.3 設(shè)計(jì)原理概述 152
6.2.4 空間濾波的仿真設(shè)計(jì)實(shí)現(xiàn) 152
參考文獻(xiàn) 157
6.3 基于MATLAB的高斯光束及傳輸特性分析 157
6.3.1 設(shè)計(jì)目的 157
6.3.2 設(shè)計(jì)任務(wù)及要求 158
6.3.3 設(shè)計(jì)原理概述 158
6.3.4 MATLAB仿真實(shí)現(xiàn) 158
參考文獻(xiàn) 163
6.4 基于MATLAB的光纖定向耦合器的耦合特性分析 164
6.4.1 設(shè)計(jì)目的 164
6.4.2 設(shè)計(jì)任務(wù)及要求 164
6.4.3 設(shè)計(jì)原理概述 164
6.4.4 設(shè)計(jì)實(shí)現(xiàn) 166
參考文獻(xiàn) 172
6.5 基于MATLAB的光學(xué)圖像加密/解密技術(shù)的研究 172
6.5.1 設(shè)計(jì)目的 172
6.5.2 設(shè)計(jì)任務(wù)及要求 172
6.5.3 設(shè)計(jì)原理概述 172
6.5.4 設(shè)計(jì)實(shí)現(xiàn) 174
參考文獻(xiàn) 181
6.6 基于MATLAB的相關(guān)識(shí)別 181
6.6.1 設(shè)計(jì)目的 181
6.6.2 設(shè)計(jì)任務(wù)及要求 181
6.6.3 設(shè)計(jì)原理概述 181
6.6.4 圖像相關(guān)識(shí)別MATLAB的仿真實(shí)現(xiàn) 183
參考文獻(xiàn) 186
6.7 MATLAB在激光光斑測量中的應(yīng)用 186
6.7.1 設(shè)計(jì)目的 186
6.7.2 設(shè)計(jì)任務(wù)及要求 186
6.7.3 設(shè)計(jì)原理概述 186
6.7.4 設(shè)計(jì)實(shí)現(xiàn) 188
參考文獻(xiàn) 190
6.8 基于MATLAB的激光束合成 190
6.8.1 設(shè)計(jì)目的 190
6.8.2 設(shè)計(jì)任務(wù)及要求 191
6.8.3 設(shè)計(jì)原理概述 191
6.8.4 設(shè)計(jì)實(shí)現(xiàn) 191
參考文獻(xiàn) 196
6.9 MATLAB在透鏡像差計(jì)算中的應(yīng)用 197
6.9.1 設(shè)計(jì)目的 197
6.9.2 設(shè)計(jì)任務(wù)及要求 197
6.9.3 設(shè)計(jì)原理概述 197
6.9.4 設(shè)計(jì)實(shí)現(xiàn) 200
參考文獻(xiàn) 203
6.10 基于MATLAB的人臉識(shí)別 203
6.10.1 設(shè)計(jì)目的 203
6.10.2 設(shè)計(jì)任務(wù)及具體要求 203
6.10.3 基本原理概述 203
6.10.4 設(shè)計(jì)方案及驗(yàn)證 204
6.10.5 結(jié) 論 210
參考文獻(xiàn) 210
6.11 基于MATLAB的機(jī)讀卡評(píng)分系統(tǒng) 211
6.11.1 設(shè)計(jì)目的 211
6.11.2 設(shè)計(jì)任務(wù)及具體要求 211
6.11.3 基本原理概述 211
6.11.4 設(shè)計(jì)實(shí)現(xiàn) 211
參考文獻(xiàn) 218