![]() ![]() |
MATLAB/Simulink實用教程/programming, simulation and application in electronic information discipline/編程、仿真及電子信息學科應用 ![]()
本書深入淺出介紹MATLAB語言的基礎知識以及MATLAB在電子信息處理、控制系統(tǒng)和通信系統(tǒng)中的應用。共分為11章, 內容包括: MATLAB語言概述、矩陣及其運算、程序設計、數(shù)值計算、符號計算、繪圖及圖像處理基礎、Simulink仿真 、MATLAB在電子信息處理中應用、MATLAB在控制系統(tǒng)中應用 、MATLAB在通信系統(tǒng)中應用和MATLAB實驗。
本教材嚴格參照教育部頒布的《普通高等學校本科專業(yè)目錄(2012年)》、教育部高等學校電子電氣基礎課程教學指導分委員會頒布的《電子電氣基礎課程教學基本要求》編寫;并以當今流行的MATLABR2016a和Simulink8.7為平臺,在作者十余年從事MATLAB課程教學、課程改革、畢業(yè)設計指導和利用MATLAB進行科學研究的經驗的基礎上編著而成。本書具有以下特色:
(1)內容編排科學合理以先基礎后應用、先理論后實踐、循序漸進的原則進行編排,便于讀者學習和掌握MATLAB編程方法。
(2)內容豐富,例題新穎本書結合編者多年的MATLAB教學和使用經驗,詳細介紹MATLAB的基本內容,列舉豐富的例題和應用實例,便于讀者更好理解和掌握MATLAB各種函數(shù)和命令。
(3)理論與應用有機結合本書前7章介紹MATLAB基礎內容,每章最后一節(jié)都給出應用實例,第8到第10章詳細介紹MATLAB在電子信息處理、控制系統(tǒng)和通信系統(tǒng)中應用,從而引導讀者更好地用MATLAB解決專業(yè)領域的實際應用問題。
(4)理論教學與上機實驗相配套為了便于教師教學,本書提供配套的電子教案,所有例題和應用實例的源代碼以及所有圖片;為了便于讀者上機做實驗,本書提供MATLAB基本內容的十個實驗內容。
(5)提供配套教學課件可到清華大學出版社網站本書頁面下載。
(6)提供配套例題源代碼、全書圖片、教學大綱、授課計劃等教學資料。
前言
MATLAB由MathWorks公司開發(fā),目前已經發(fā)展成為國際上最流行、應用最廣的科學計算軟件之一。MATLAB軟件具有強大的矩陣計算、數(shù)值計算、符號計算、數(shù)據(jù)可視化和系統(tǒng)仿真分析等功能,廣泛應用于科學計算、信號處理與通信、圖像處理、信號檢測、控制設計、仿真分析、金融建模設計與分析等領域,也成為線性代數(shù)、高等數(shù)學、概率論與數(shù)理統(tǒng)計、數(shù)字信號處理、信號與系統(tǒng)、數(shù)字圖像處理、自動控制原理、時間序列分析和動態(tài)系統(tǒng)仿真等課程的基本教學工具。近些年來,MATLAB成為國內外眾多高校本科生和研究生的課程,成為學生必須掌握的基本編程語言之一,也成為教師、科研人員和工程師們進行教學、科學研究和生產實踐的一個基本工具。
本書是以當今流行的MATLABR2016a和Simulink8.7為平臺編寫的,是作者十余年在高校從事MATLAB課程教學、課程改革、畢業(yè)設計指導和利用MATLAB進行科學研究的基礎上編著而成,具有以下特點:
。1)內容編排合理科學。先基礎后應用,先理論后實驗,由淺入深、循序漸進地進行編排,便于讀者學習和掌握MATLAB。
(2)內容豐富,例題新穎。本書結合編者多年的MATLAB教學和使用經驗,詳細介紹最新的MATLAB版本基本內容,列舉豐富的例題和應用實例,便于讀者更好掌握MATLAB的各種函數(shù)和命令。
(3)理論與應用有機結合。本書前7章介紹MATLAB基礎內容,每章最后一節(jié)都給出應用實例,第8章到第10章詳細介紹MATLAB在電子信息處理、控制系統(tǒng)和通信系統(tǒng)中的應用,從而引導讀者更好地用MATLAB解決專業(yè)領域的實際應用問題。
。4)理論教學與上機實驗相配套。為了便于教師教學,本書提供配套的電子教案,以及所有例題和應用實例的源代碼和所有圖片;為了便于讀者上機做實驗,本書提供了MATLAB基本內容的10個實驗內容。
本書內容分三部分:MATLAB/Simulink基礎篇、MATLAB/Simulink應用篇和MATLAB/Simulink實驗篇。MATLAB/Simulink基礎篇包括:第1章MATLAB語言概述,主要介紹MATLAB語言的發(fā)展、特點、環(huán)境、幫助系統(tǒng)、數(shù)據(jù)類型和運算符;第2章MATLAB矩陣及其運算,主要介紹矩陣的創(chuàng)建、修改和基本運算、矩陣分析、字符串、多維數(shù)組、結構數(shù)組和元胞數(shù)組;第3章MATLAB程序結構和M文件,主要介紹MATLAB程序結構、M腳本文件、M函數(shù)文件和程序調試;第4章MATLAB數(shù)值計算,主要介紹多項式運算、數(shù)據(jù)插值、數(shù)據(jù)擬合、數(shù)據(jù)統(tǒng)計和數(shù)值計算;第5章MATLAB符號計算,主要介紹符號定義、符號運算、符號極限、符號微分和積分;第6章MATLAB數(shù)據(jù)可視化,主要介紹MATLAB二維曲線繪制、二維特殊圖形繪制、三維曲線和曲面繪制;第7章Simulink仿真基礎,主要包括Simulink簡介、常用模塊、模塊編輯和Simulink仿真。MATLAB/Simulink應用篇主要包括:第8章MATLAB在電子信息處理中的應用,主要介紹在信號與系統(tǒng)、數(shù)字信號處理和數(shù)字圖像處理中的應用;第9章MATLAB在控制系統(tǒng)中的應用,主要介紹控制系統(tǒng)的模型、時序分析、頻域分析、根軌跡分析和狀態(tài)空間分析、極點配置和觀測器設置,以及最優(yōu)控制系統(tǒng)設計;第10章MATLAB在通信系統(tǒng)中的應用,主要介紹通信工具箱函數(shù)、信息的度量與編碼、差錯控制編/譯碼、模擬調制與解調、數(shù)字調制與解調和通信系統(tǒng)的性能仿真。MATLAB/Simulink實驗篇介紹10個基本的MATLAB實驗內容。
本書適合作為高等院校理工科專業(yè),尤其是電子信息工程、電子科學技術、自動化、電氣工程和通信工程等專業(yè)的教學用書,也可以作為研究生、科研與工程技術人員的參考用書。電子信息工程和電子科學技術專業(yè)的學生可以選擇本書的第1~8章和第11章內容學習;自動化和電氣工程專業(yè)的學生可以選擇本書的第1~7章,第9章和第11章內容學習;通信工程專業(yè)的學生可以選擇第1~7章、第10章和第11章內容學習。建議授課學時為40或48個學時。對于短課時(如32學時)低年級課程,可以講授第1~7章基礎內容以及第11章實驗部分,應用部分可以留給學生自學。
本書第1~4章,第6章和第11章由徐國保編寫,第7章和第9章由趙黎明編寫,第5章和第10章由吳凡編寫,第8章由郭磊編寫。為了確保本書的質量,應用部分由教學經驗豐富的相關專業(yè)任課教師編寫。本書的編寫思路與內容選擇由編者集體討論確定,全書由徐國保負責統(tǒng)稿和定稿。在本書的編寫過程中,參考和引用了相關教材和資料,在此一并向教材和資料的作者表示誠摯的謝意。
為了便于學生學習,全書附有習題的參考答案和所有例題的源代碼。為了方便教師教學,本書配有教學課件和所有圖片素材,歡迎選用本書作為教材的老師索取,索取郵箱:xuguobao@126.com。
由于編者的水平有限,書中難免存在不妥之處,歡迎使用本書的教師、學生和科技人員批評指正,以便再版時改進和提高。
編者2017年7月
第一部分MATLAB/Simulink基礎篇
第1章MATLAB語言概述
1.1MATLAB語言的發(fā)展
1.2MATLAB語言的特點
1.3MATLAB語言的環(huán)境
1.3.1MATLAB語言的安裝
1.3.2MATLAB語言的界面簡介
1.4MATLAB幫助系統(tǒng)
1.4.1help查詢幫助函數(shù)
1.4.2lookfor查詢幫助函數(shù)
1.4.3聯(lián)機幫助系統(tǒng)
1.5MATLAB數(shù)據(jù)類型
1.5.1常量和變量
1.5.2整數(shù)和浮點數(shù)
1.5.3復數(shù)
1.6MATLAB運算符
1.6.1算術運算符
1.6.2關系運算符
1.6.3邏輯運算符
1.6.4優(yōu)先級
1.7應用實例
1.7.1計算一般數(shù)學公式
1.7.2繪制整流波形圖
習題1
第2章MATLAB矩陣及其運算
2.1矩陣的創(chuàng)建
2.1.1直接輸入矩陣
2.1.2冒號生成矩陣
2.1.3利用函數(shù)生成矩陣
2.1.4利用文本文件生成矩陣
2.1.5利用M文件生成矩陣
2.1.6特殊矩陣的生成
2.2矩陣的修改
2.2.1矩陣部分替換
2.2.2矩陣部分刪除
2.2.3矩陣部分擴展
2.2.4矩陣結構變換
2.3矩陣的基本運算
2.3.1矩陣的加減運算
2.3.2矩陣的乘法運算
2.3.3矩陣的除法運算
2.3.4矩陣的乘方運算
2.3.5矩陣的點運算
2.4矩陣的分析
2.4.1方矩陣的行列式
2.4.2矩陣的秩和跡
2.4.3矩陣的逆和偽逆
2.4.4矩陣的特征值和特征向量
2.4.5矩陣的分解
2.4.6矩陣的信息獲取函數(shù)
2.5字符串
2.5.1字符串的創(chuàng)建
2.5.2字符串的操作
2.5.3字符串轉換
2.6多維數(shù)組
2.6.1多維數(shù)組的創(chuàng)建
2.6.2多維數(shù)組的操作
2.7結構數(shù)組和元胞數(shù)組
2.7.1結構數(shù)組
2.7.2元胞數(shù)組
2.8矩陣及其運算應用實例
2.8.1矩陣在圖像處理中的應用
2.8.2線性方程組的求解
2.8.3多維數(shù)組在彩色圖像中的應用
習題2
第3章MATLAB程序結構和M文件
3.1程序結構
3.1.1順序結構
3.1.2選擇結構
3.1.3循環(huán)結構
3.1.4程序控制命令
3.2M文件
3.2.1M文件的分類和特點
3.2.2M文件的創(chuàng)建和打開
3.3M函數(shù)文件
3.3.1M函數(shù)文件的格式
3.3.2M函數(shù)文件的調用
3.3.3主函數(shù)和子函數(shù)
3.3.4函數(shù)的參數(shù)
3.3.5函數(shù)的變量
3.4程序調試
3.4.1命令窗口調試
3.4.2MATLAB菜單調試
3.4.3MATLAB調試函數(shù)
3.5應用實例
習題3
第4章MATLAB數(shù)值計算
4.1多項式
4.1.1多項式的創(chuàng)建
4.1.2多項式的值和根
4.1.3多項式的四則運算
4.1.4多項式的微積分運算
4.1.5多項式的部分分式展開
4.2數(shù)據(jù)插值
4.2.1一維插值
4.2.2二維插值
4.2.3多維插值
4.3數(shù)據(jù)擬合
4.4數(shù)據(jù)統(tǒng)計
4.4.1矩陣元素的最大值和最小值
4.4.2矩陣元素的平均值和中值
4.4.3矩陣元素的排序
4.4.4矩陣元素求和和求積
4.4.5矩陣元素的累加和與累乘積
4.4.6標準方差和相關系數(shù)
4.5數(shù)值計算
4.5.1函數(shù)極值
4.5.2函數(shù)零點
4.5.3數(shù)值差分
4.5.4數(shù)值積分
4.5.5常微分方程求解
4.6應用實例
習題4
第5章MATLAB符號運算
5.1MATLAB符號運算的特點
5.2MATLAB符號對象的創(chuàng)建和使用
5.3符號多項式函數(shù)運算
5.3.1多項式函數(shù)的符號表達形式及相互轉換
5.3.2符號多項式的向量表示形式及其計算
5.3.3反函數(shù)和復合函數(shù)求解
5.4符號微積分運算
5.4.1函數(shù)的極限和級數(shù)運算
5.4.2符號微分運算
5.4.3符號積分運算
5.5符號方程求解
5.5.1符號代數(shù)方程求解
5.5.2符號常微分方程求解
5.5.3一維偏微分方程求解
5.6應用實例
習題5
第6章MATLAB數(shù)據(jù)可視化
6.1概述
6.2二維曲線的繪制
6.2.1繪圖基本函數(shù)
6.2.2線性圖格式設置
6.2.3圖形修飾
6.2.4圖形保持
6.2.5多個圖形繪制
6.3二維特殊圖形的繪制
6.3.1柱狀圖
6.3.2餅形圖
6.3.3直方圖
6.3.4離散數(shù)據(jù)圖
6.3.5向量圖
6.3.6極坐標圖
6.3.7對數(shù)坐標圖
6.3.8雙縱坐標繪圖
6.3.9函數(shù)繪圖
6.4三維曲線和曲面的繪制
6.4.1繪制三維曲線圖
6.4.2繪制三維曲面圖
6.4.3特殊的三維圖形
6.4.4繪制動畫圖形
6.5MATLAB圖形窗口
6.6應用實例
習題6
第7章Simulink仿真基礎
7.1Simulink概述
7.1.1Simulink的基本概念
7.1.2Simulink模塊的組成
7.1.3Simulink中的數(shù)據(jù)類型
7.2Simulink的使用
7.2.1Simulink的啟動和退出
7.2.2在Simulink的窗口創(chuàng)建一個新模型
7.2.3Simulink模塊的操作
7.2.4Simulink的建模和仿真
7.3Simulink的模塊庫及模塊
7.3.1CommonlyUsedBlocks子模塊庫
7.3.2Continuous子模塊庫
7.3.3Dashboard子模塊庫
7.3.4Discontinuous子模塊庫
7.3.5Discrete子模塊庫
7.3.6LogicandBitOperations子模塊庫
7.3.7LookupTables子模塊庫
7.3.8MathOperations子模塊庫
7.3.9ModelVerification子模塊庫
7.3.10ModelWideUtilities子模塊庫
7.3.11Ports&Subsystems子模塊庫
7.3.12SignalsAttributes子模塊庫
7.3.13SignalsRouting子模塊庫
7.3.14Sinks子模塊庫
7.3.15Sources子模塊庫
7.3.16UserdefinedFunctions子模塊庫
7.4Simulink模塊操作及建模
7.4.1Simulink模型
7.4.2Simulink模塊的基本操作
7.4.3系統(tǒng)模型注釋與信號標簽設置
7.4.4Simulink建模
7.5Simulink模塊及仿真參數(shù)設置
7.5.1模塊參數(shù)設置
7.5.2Simulink仿真參數(shù)設置
7.6過零檢測和代數(shù)環(huán)
7.6.1過零檢測
7.6.2代數(shù)環(huán)
7.7應用實例
習題7
第二部分MATLAB/Simulink應用篇
第8章MATLAB在電子信息處理中的應用
8.1MATLAB在信號與系統(tǒng)中的應用
8.1.1信號及表示
8.1.2信號的基本運算
8.1.3信號的能量和功率
8.1.4線性時不變系統(tǒng)的創(chuàng)建
8.1.5線性時不變系統(tǒng)的時域分析
8.1.6線性時不變系統(tǒng)的頻域分析
8.2MATLAB在數(shù)字信號處理中的應用
8.2.1傅里葉變換
8.2.2IIR數(shù)字濾波器的設計
8.2.3FIR數(shù)字濾波器的設計
8.3MATLAB在數(shù)字圖像處理中的應用
8.3.1數(shù)字圖像的讀取、顯示和存儲
8.3.2數(shù)字圖像的類型及轉換
8.3.3圖像的基本運算
8.3.4圖像增強
8.3.5圖像濾波
8.3.6圖像邊緣檢測
8.3.7圖像壓縮
第9章MATLAB在控制系統(tǒng)中的應用
9.1控制系統(tǒng)的模型描述
9.1.1控制系統(tǒng)的模型與表達式
9.1.2控制系統(tǒng)模型間的關系
9.2控制系統(tǒng)的時域分析與MATLAB實現(xiàn)
9.2.1線性系統(tǒng)的穩(wěn)定性分析
9.2.2控制系統(tǒng)的動態(tài)響應
9.2.3控制系統(tǒng)的時域響應指標
9.3控制系統(tǒng)的頻域分析與MATLAB實現(xiàn)
9.3.1控制系統(tǒng)的頻域分析
9.3.2控制系統(tǒng)的頻域分析性能指標
9.4控制系統(tǒng)的根軌跡分析
9.4.1控制系統(tǒng)的根軌跡分析
9.4.2根軌跡設計工具
9.5控制系統(tǒng)的狀態(tài)空間分析
9.5.1狀態(tài)空間的線性變換
9.5.2狀態(tài)空間的能控性和能觀性
9.5.3狀態(tài)空間的狀態(tài)反饋與極點配置
9.6控制系統(tǒng)綜合實例與應用設計
9.6.1控制系統(tǒng)綜合實例
9.6.2簡單運動系統(tǒng)的建模及仿真
9.6.3“彈簧質量阻尼”系統(tǒng)的建模及仿真
9.6.4單容過程系統(tǒng)的建模及仿真
第10章MATLAB在通信系統(tǒng)中的應用
10.1MATLAB通信工具箱的組成
10.2信息量度與信源編碼
10.2.1信息的量度計算
10.2.2模擬信號量化和數(shù)字化
10.2.3信源編碼
10.3差錯控制和信道編碼
10.3.1線性分組碼編解碼
10.3.2交織編碼
10.3.3擾碼與解擾
10.4模擬調制與解調
10.4.1幅度調制與解調
10.4.2角度調制與解調
10.5數(shù)字調制與解調
10.5.1數(shù)字調制
10.5.2數(shù)字解調
10.6數(shù)字通信系統(tǒng)性能仿真
10.6.1數(shù)字信號的比特能量與AWGN信道
10.6.2數(shù)字通信系統(tǒng)的誤碼率仿真
第三部分MATLAB/Simulink實驗篇
第11章MATLAB實驗
實驗一MATLAB運算基礎
實驗二向量和矩陣的運算
實驗三字符串及矩陣分析
實驗四M腳本文件和函數(shù)文件
實驗五程序結構設計
實驗六多項式運算及多項式插值和擬合
實驗七數(shù)據(jù)統(tǒng)計和數(shù)值計算
實驗八符號計算
實驗九MATLAB繪圖
實驗十Simulink仿真
附錄習題答案
參考文獻
第3章MATLAB程序結構和M文件
本章要點:
程序結構;
M文件;
M函數(shù)文件;
程序調用。
MATLABR2016a和其他高級編程語言(如C語言和FORTRAN語言)一樣,要實現(xiàn)復雜的功能需要編寫程序文件和調用各種函數(shù)。
3.1程序結構
MATLAB語言有三種常用的程序控制結構:順序結構、選擇結構和循環(huán)結構。MATLAB語言里的任何復雜程序都可以由這三種基本結構組成。
3.1.1順序結構
順序結構是MATLAB語言程序的最基本的結構,是指按照程序中的語句排列順序依次執(zhí)行,每行語句是從左往右執(zhí)行,不同行語句是從上往下執(zhí)行。一般數(shù)據(jù)的輸入和輸出、數(shù)據(jù)的計算和處理程序都是順序結構。順序結構的基本流程如圖31所示,程序先執(zhí)行語句A,然后執(zhí)行語句B,最后執(zhí)行語句C。
圖31順序結構流程圖
1.數(shù)據(jù)的輸入
MATLAB語言要從鍵盤輸入數(shù)據(jù),可以使用input函數(shù),該函數(shù)的調用格式有如下兩種。
1)x=input('提示信息')
其中,提示信息表示字符串,用于提示用戶輸入什么樣的數(shù)據(jù),等待用戶從鍵盤輸入數(shù)據(jù),賦值給變量x。
例如,從鍵盤中輸入變量x,可以用下面的命令實現(xiàn):
>>x=input('輸入變量x:')
輸入變量x:3
x=
3
執(zhí)行該語句時,命令行窗口顯示提示信息“輸入變量x:”,然后等待用戶從鍵盤輸入x的值。
2)str=input('提示信息','s')
其中,該格式用于用戶輸入一個字符串,賦值給字符變量str。
例如,用戶想從鍵盤輸入自己的名字,賦值給字符變量str,可以采用下面命令:
>>str=input('what''syourname?','s')
what'syourname?XuGuobao
str=
XuGuobao
執(zhí)行該語句時,命令行窗口顯示提示信息“what'syourname?”,然后等待用戶從鍵盤輸入字符變量str的值。
2.數(shù)據(jù)的輸出
MATLAB語言可以在命令窗口顯示輸出信息,可以用函數(shù)disp實現(xiàn),該函數(shù)的調用格式如下:
disp('輸出信息')
其中,輸出信息可以是字符串,也可以是矩陣信息。例如:
>>disp('What''syourname?')
disp('MynameisXuGuobao')
What'syourname?
MynameisXuGuobao
>>A=[12;34];
>>disp(A)
12
34
需要注意,用disp函數(shù)顯示矩陣信息將不顯示矩陣的變量名,輸出格式更緊湊,沒有空行。
【例31】從鍵盤輸入a、b和c的值,求解一元二次方程ax2+bx+c=0的根。
程序代碼如下:
a=input('a=');
b=input('b=');
c=input('c=');%從鍵盤輸入a、b和c的值
delt=b*b-4*a*c;
x1=(-b+sqrt(delt))/(2*a);
x2=(-b-sqrt(delt))/(2*a);
disp(['x1=',num2str(x1)]);%顯示x1和x2的值
disp(['x2=',num2str(x2)]);
程序運行結果是:
>>exam_3_1
a=1
b=-5
c=6
x1=3
x2=2
再一次運行程序后的結果是:
>>exam_3_1
a=1
b=2
c=3
x1=-1+1.4142i
x2=-1-1.4142i
由上面程序結果可知,MATLAB語言的數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出命令都是按照順序結構執(zhí)行的。
3.1.2選擇結構
MATLAB語言的選擇結構是根據(jù)選定的條件成立或者不成立,分別執(zhí)行不同的語句。選擇結構有下面三種常用語句:if語句、switch語句和try語句。
……
你還可能感興趣
我要評論
|