E
E
E
E
MATLAB/SIMULINK
通信系統建模與仿真實例分析
邵玉斌 編著
提交清華大學出版社書稿
二零零七年十二月一日
E
E
E
E
E
E
E
E
E
E
E
E
內容簡介
本書系統地介紹了通信建模仿真方法和模型驗證技術,並結合作者近年在教學科研中所
設計的大量基礎的和較深入的建模仿真實例,詳細討論了 Matlab/Simulink 作為仿真實現平
台在電子與通信工程中應用的基本方法、技巧和難點。本書重點討論了建模仿真原理和相關
的數值計算方法、模擬通信系統、模數轉換、調製與編碼、信道模擬、載波與符號同步、信道
均衡、跳頻系統和直接擴頻系統、通信模型正確性評估、仿真數據驗證和數據處理技術等內
容,並在仿真實例中展示了科學研究論文和報告所必須的數據處理和表現技巧。
本書提供了約 150 個建模仿真實例,80 多道思考題,以及全部實例代碼和一個電子教案。
這些實例根據基本數學原理,結合 Simulink 的 S 函數編程,也使用了通信工具箱、信號處理
工具箱和相關模型庫的模塊和函數,以便於讀者追源求本,深入理解建模和仿真的實質。
本書可作為高等院校通信工程、電子信息類專業的本科生和研究生系統仿真課程的教材
或進行相關課題研究的參考書,也可作為相關專業課程設計和畢業設計等綜合性實踐教學的
指導材料,還可供通信工程專業技術人員、教師等作為解決通信系統設計、評估和建模仿真領
域實際問題的參考資料。
E
E
E
E
E
E
E
E
E
E
E
E
前言
Matlab 語言由於其語法的簡潔性、代碼接近於自然數學描述方式以及具有豐富的專業
函數庫等諸多優點吸引了眾多的科學研究工作者,越來越成為科學研究、數值計算、建模
仿真以及學術交流的事實標準。Simulink 作為 Matlab 語言上的一個可視化建模仿真平台,
起源於對自動控制系統的仿真需求,它採用方框圖建模的形式,更加貼近於工程習慣。目
前,Matlab/Simulink 的應用已經遠遠超越了數值計算和控制系統仿真等傳統領域,在幾乎所
有理工學科中形成了為數眾多的專業工具庫和函數庫,日益成為科學研究和工程設計中日常
的計算和仿真試驗工具。
隨著 Matlab/Simulink 通信、信號處理專業函數庫和專業工具箱的成熟,他們日益為廣
大通信技術領域的專家學者和工程師所熟悉,在通信理論研究、算法設計、系統設計、建模仿
真和性能分析驗證等方面的應用也更加廣泛。Simulink 可視化仿真工具能夠以很直觀的方框
圖方式形象地對通信系統進行建模,並以「實時」和動畫的方式來將模型仿真結果(如波形、
頻譜、數據曲線等)顯示出來,更便於對通信系統的物理概念和運行過程的直觀理解,所以近
年來在通信工程專業中得到了廣大師生的重視和廣泛應用,在理論教學、課程實踐環節以及
理論和技術前沿的研究中發揮了重要作用。
本 書 以 通 信 原 理 為 主 線,從 系 統 建 模 原 理 和 仿 真 的 數 值 計 算 方 法 入 手,詳 細 介 紹
了 Matlab/Simulink 在通信系統建模和仿真中的應用原理、內容方法和特點,並結合作
者在科研和教學中的應用研究,列舉了大量的仿真實例。通過這些實例,以期達到兩個目的:
其一是通過系統建模過程對 Matlab/Simulink 基本建模仿真方法的實質性理解,以掌握通信
系統仿真的思維方法;其二是通過仿真過程和仿真結果分析對基本通信系統原理的理解,並逐
漸培養系統建模和設計的自主能力和創造力。
本書的特點是:
(1)本書重點討論通信工程相關專業的系統仿真原理和應用,以通信系統構成為主線介
紹系統仿真方法,以微分方程的數值求解和概率論為數學基礎,注重介紹通信仿真技術中基礎
性的,本質性的內容,並強調仿真的數學原理和方法,而不作為一本 Matlab 語言或仿真編程
的介紹手冊。
理論的學習必須要有實踐的支持,理論的檢驗和驗證也必須通過實踐。數理基礎在通信
工程專業中的地位應當得到重視。系統仿真技術是專業理論和系統實驗相結合的有效途徑
之一,學習通信系統仿真不是學習某個系統仿真軟件的功能,而是在紮實的數理基礎和通
信理論基礎上以系統仿真軟件作為工具平台的實踐活動。基於這種認識,本書沒有系統介
紹 Matlab/Simulink 軟件的使用方法和編程函數,而是把 Matlab/Simulink 視為一種方便的
E
E
E
E
E
E
E
E
仿真軟件工具在通信系統建模和仿真中加以應用。因此,掌握本書所介紹的系統仿真思想方
法也就意味著可以使用任何計算機語言來進行通信系統的建模仿真實踐。
(2)本書詳細講述了 Matlab/Simulink 的建模仿真原理,把 S 函數作為掌握 Simulink 仿
真的根本,並將 Simulink 可視化建模和 Matlab 語言編程統一起來。並通過眾多的實例,加強
了對仿真手段、思想方法以及系統原理等抽像內容的理解和應用。讀者可以運行這些實例,或
改變實例中系統模塊的參數來進行實驗,甚至可以在這些實例的基礎上構建更加複雜的系統
模型。
(3)本書在內容編排上注意由淺入深,逐本求源,由普遍方法論到實際建模實驗,由通
信單元模塊的建模到綜合系統仿真,循序漸進,便於閱讀和學習。本書對通信系統建模的數
學原理的講述比較詳細,重視數理基礎在通信工程中的應用,注重原理的論述,授人以漁;
以 Matlab/Simulink 作為實驗平台。特別注重講解通信系統建模和仿真理論中根本性的和基
礎性的內容。
(4)鑒於通信系統仿真涉及的內容廣泛,對數學基礎要求和的通信基本理論的理解要求
較高,又特別強調矩陣數值計算方法的編程實現能力,因此在每章之末總結了主要內容並對相
關的參考資料進行了綜述,以供讀者進一步深入學習相關內容時參考。
本書共分八章。
第一章概述了通信系統仿真的原理和方法。對仿真建模的意義、模型的類型以及仿真的
數學方法進行了論述。
第二章是本書的基礎,主要介紹了 Matlab/Simulink 編程和建模仿真的原理,並通過大
量的實例演示了應用 Matlab/Simulink 建模仿真的方法、關鍵問題和處理技巧。希望通過這
些實例和實驗實作來使讀者對 Matlab/Simulink 的建模和仿真有一個實質性的理解。
第三章以通信系統的基本構造為主線,對通信系統基本模塊的原理和建模方法進行了討
論,並介紹了 Matlab/Simulink 通信工具箱和信號處理工具箱中的常用模塊及其原理和使用
方法。以這些基本模塊為元素,給出了通信系統中從信源、調製、信道到接收解調、同步等基
本單元的仿真實例。
第四章簡要闡述了通信系統整體構架和層次化建模的思想要點,比較了模擬通信系統和
數字通信系統的仿真框架和兩者的異同點,並討論了描述通信系統質量和性能的主要指標。
第五章對模擬通信系統的建模和仿真問題進行了詳細的討論,包括對調幅廣播波形和頻
譜、傳輸、接收機自動增益控制原理和性能、檢波和解調、單邊帶通信機、調頻立體聲系統以
及彩色電視信號和系統的仿真實例。對模擬通信系統運行原理的理解能力可以視為無線電和
電子工程師最基本的專業素質來衡量。
第六章討論了模擬信號數字化問題的原理和仿真實例,內容包括採樣定理的原理性仿
真、A/D 轉換、非均勻量化的原理和性能仿真、PCM 編解碼過程、自適應 PCM 以及增量調
製的原理仿真和性能結果等等。
第七章以數字通信系統的關鍵技術和一些較深入的問題為研究對象,討論了以誤碼率為
性能指標的蒙特卡羅仿真建模方法,基帶數據傳輸的碼型設計與仿真,基帶帶限傳輸系統、眼
圖以及信道均衡問題,數字調製的波形和頻譜仿真問題等等。以仿真實例介紹了擴頻抗干擾
系統的原理和性能分析,包括直接序列擴頻系統和跳頻系統的仿真實例。
E
E
E
E
E
E
E
E
第八章討論了通信系統模型評估和仿真結果的正確性驗證等問題。較詳細地介紹了蒙特
卡羅仿真方法的實現要點,隨機數的產生,各種隨機分佈以及他們之間的關係,並討論了以數
理統計方法為主的模型和仿真數據評估方法,插值和擬合等實驗數據處理方法等。對蒙特卡
羅仿真方法的試驗精度等方面進行了性能分析。
全書所有實例的模型文件和程序代碼在 Matlab(R13)版本下調試通過。另外,還提供了
一個電子教案。讀者需要具有微積分、概率與統計、信號與系統、數字信號處理和通信原理的
背景知識。
本書計劃學時為 40 學時,課堂上重點是講述通信系統仿真的概念、方法和實例應用,而
在教學實踐環節中可以通過本書的眾多實例以及各章的思考題來加深對仿真方法的掌握。建
議讀者在理解仿真原理的基礎上,對本書列舉的實例給出自己的仿真模型和設計參數,然後與
本書的模型和程序結果進行對比,這樣比單純運行、研究實例模型將更能夠激發讀者的創造
力,也更具趣味性和挑戰性。本書給出的思考題一般是對實例問題的深化或拓展以及對正文
的補充。許多思考題在仿真條件、系統建模上給讀者預留了很大的創造空間,解答可以靈活多
樣。
感謝澳大利亞新南威爾士大學電子與電氣工程學院的 Jinhong Yuan 教授,在我做訪問學
者期間,他提供了良好的學術研究環境。在與他以及他的同事們的學術交流中得到了許多啟
迪,促成了本書的完成。
本書在成書過程中得到了許多專家、教授的關心和幫助,特別是在與徐明遠教授、姚紹文
教授、龍華教授、劉增力副教授等前輩和專家的交流中深受教益。在本書的寫作和相關課程教
學和輔導工作中得到了宋耀蓮、楊秋萍、朵琳老師的幫助和支持。龍洋、吳熹等研究生也幫助
完成了本書部分章節的校閱工作。清華大學出版社的魏江江編輯對本書的策劃、編輯和校對
付出了辛苦的勞動,在此對他們表示衷心地感謝。
最後要感謝我的家人,沒有他們的關心和支持,本書是不能完成的。
本書可作為高等院校通信工程、電子信息類專業的本科生和研究生系統仿真課程的教材
或進行相關課題研究的參考書,也可作為相關專業課程設計和畢業設計等綜合性實踐教學的
指導材料。
現代通信系統仿真技術不僅僅是對通信理論的驗證手段,也日益成為通信新理論研究、新
協議、新算法開發和系統總體設計的重要實驗研究途徑,因此,本書所介紹的系統仿真思想方
法對於從事通信系統設計的專業技術人員也很具有參考價值。
限於筆者水平,本書定有不妥甚至錯誤之處,懇請讀者予以批評指正。作者的聯繫電子郵
件地址是:shaoyubin999@sina.com。
邵玉斌
二零零七年十二月
E
E
E
E
E
E
E
E
E
E
目 錄
前言
第 1 章 通信系統仿真的原理和方法論
1
2
3
8
2
1
1.1 通信系統仿真的現實意義 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.2 計算機仿真的過程· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.2.1 系統仿真的數學基礎 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.2.2 計算機仿真的一般過程 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.3 通信系統模型的分類 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.3.1 按照系統層次分類· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1.3.2 按照信號類型分類· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
9
1.3.3 按照系統特徵分類· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
1.4 通信系統仿真的方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
1.4.1 基於動態系統模型的狀態方程求解方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
1.4.2 基於概率模型的蒙特卡羅方法· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 14
1.4.3 混合方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17
1.5 通信系統仿真的優點和局限性· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 20
1.6 系統建模仿真方法與仿真工具· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 21
1.6.1 系統建模仿真方法與仿真工具的關係 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 21
1.6.2 仿真環境的構成和要求 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 23
1.6.3 常用仿真工具的選擇 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 24
1.7 小結與文獻綜述· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 25
1.8 思考題· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 26
8
第 2 章 Matlab/Simulink 系統建模和仿真基礎
27
2.1 Matlab 編程仿真的方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
2.1.1 概述 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
2.1.2 靜態系統的 Matlab 編程仿真· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28
2.1.3 連續動態系統的 Matlab 編程仿真 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31
2.1.4 離散動態系統的 Matlab 編程仿真 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 48
2.1.5 基於數據流和基於時間流的仿真方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 51
Simulink 仿真基礎 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52
2.2.1 系統模型的方程和圖形化描述· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52
2.2
i
E
E
E
E
E
E
2.5
2.6
2.3
2.2.2 Simulink 仿真平台 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 62
2.2.3 構建一個簡單的 Simulink 仿真系統 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 71
2.2.4 Simulink 子系統構建、封裝和自定義模塊庫· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 77
Simulink 的工作原理 —S 函數· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80
2.3.1 S 函數的工作原理· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 80
2.3.2 用 Matlab 語言編寫 S 函數 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 82
2.4 用 S 函數編寫 Simulink 基本模塊 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 94
2.4.1 信源模塊 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 94
2.4.2 信宿和信號顯示模塊 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 95
2.4.3 信號傳輸模塊 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 99
Simulink 仿真的數據結構和編程調用方法 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 108
2.5.1 Simulink 中數據流的向量和矩陣形式· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 108
2.5.2 Simulink 中數據結構的轉換 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 109
2.5.3 Simulink 與 Matlab 的交互 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 121
2.5.4 編程調用仿真模型· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 124
Simulink 在電子與通信系統仿真中的幾個關鍵問題 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 126
2.6.1 系統仿真速率的設計和選擇 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 126
2.6.2 並/串轉換和混合速率系統仿真· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 128
2.6.3 不同層次的仿真模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 130
2.6.4 用 Simulink 求解方程· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 134
2.6.5 同一數學模型的多種計算機仿真實現方法· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 137
2.7 聲卡在 Simulink 仿真模型中的應用 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 137
2.7.1 Matlab 與聲卡的接口函數 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 138
2.7.2 Simulink 與聲卡的接口模塊 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 139
2.7.3 在 Simulink 中組建虛擬儀器 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 142
2.8 小結與文獻綜述· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 145
2.9 思考題· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 146
第 3 章 基本通信模塊的建模與分析
149
3.1 濾波器模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 149
3.1.1 濾波器的類型、參數指標與設計 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 149
3.1.2 濾波器的實現 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 159
3.2 信源模型 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 162
3.2.1 確定信源 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 162
3.2.2 偽隨機碼源 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 163
3.2.3 統計信源 — 噪聲源 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 164
3.3 信號參數的測量和分析 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165
3.3.1 信號的能量和功率· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165
3.3.2 信號直流份量和交流份量 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 165
3.3.3 離散時間信號的統計參數 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 166
3.3.4 信號的頻域參數 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 169
ii
E
E
E
E