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