數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真本科畢業(yè)設(shè)計(jì)
《數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真本科畢業(yè)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真本科畢業(yè)設(shè)計(jì)(68頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、湖南工程學(xué)院畢業(yè)設(shè)計(jì)(論文) 畢 業(yè) 設(shè) 計(jì) 題 目: 數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真 畢業(yè)設(shè)計(jì)(論文)任務(wù)書 題目: 數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真 姓名 系 計(jì)算科學(xué)與技術(shù) 專業(yè) 通信工程 班級(jí) 040
2、2 學(xué)號(hào) 200403040204 指導(dǎo)老師 職稱 講師 教研室主任 一、 基本任務(wù)及要求: 實(shí)際的通信系統(tǒng)是一個(gè)功能結(jié)構(gòu)相當(dāng)復(fù)雜的系統(tǒng),對(duì)通信系統(tǒng)作出的任何改變都可能影響到整個(gè)系統(tǒng)的性能和工作效率。因此,在構(gòu)建一個(gè)新的通信系統(tǒng)或改進(jìn)原有通信系統(tǒng)前,必須要對(duì)通信系統(tǒng)進(jìn)行建模和仿真,從仿真結(jié)果衡量設(shè)計(jì)方案的可行性,選擇最合理和高效的系統(tǒng)配置與參數(shù)設(shè)置,在應(yīng)用到實(shí)際系統(tǒng)中??梢?,通信系統(tǒng)仿真在整個(gè)通信系統(tǒng)的構(gòu)建中處于先導(dǎo)、驗(yàn)證、重要的地位。通信系統(tǒng)仿真在一般分為3個(gè)步驟,即仿真建模、仿真
3、實(shí)驗(yàn)、仿真分析。 基本任務(wù): 1.熟悉并掌握數(shù)字通信系統(tǒng)結(jié)構(gòu); 2.搭建起數(shù)字通信的基帶、頻帶傳輸系統(tǒng),采用合適的信源編碼、信道編碼和數(shù)字調(diào)制技術(shù),實(shí)現(xiàn)有效、正確的信息傳輸; 3
4、. 仿真分析,學(xué)會(huì)觀察仿真結(jié)果,并以此來調(diào)整系統(tǒng)參數(shù)或改變2中的所使用的各種通信技術(shù)。 基本要求:掌握數(shù)字通信系統(tǒng)結(jié)構(gòu)及常用技術(shù);熟悉仿真語言。 二、 進(jìn)度安排及完成時(shí)間: 第1周: 老師講解課題,明確課題任務(wù)與要求,學(xué)習(xí)資料收集檢索方法并搜索收集所需中文資料。 第2周: 閱讀資料、書籍,學(xué)習(xí)所需知識(shí),撰寫文獻(xiàn)綜述。 第3~5周
5、:畢業(yè)實(shí)習(xí)。 第6周: 完成畢業(yè)實(shí)習(xí)報(bào)告撰寫;建立畢業(yè)設(shè)計(jì)實(shí)驗(yàn)環(huán)境;初步擬訂設(shè)計(jì)方案;準(zhǔn)備開題報(bào)告。 第7周: 撰寫開題報(bào)告。 第8~13周:具體設(shè)計(jì)、調(diào)試、修改、實(shí)現(xiàn)。 第14~15周:撰寫畢業(yè)論文(說明書),完成畢業(yè)答辯資格審查。 第16周: 畢業(yè)答辯準(zhǔn)備、畢業(yè)答辯。 61 目 錄 摘要 1 Abstract 2 前 言 3 第一章 MATLAB與通信仿真 4 1.1 MATLAB簡(jiǎn)介 4 1.2 通信仿真 6 1.2.1 通信仿真的概念 6 1.2.2 通信仿真的基本步驟 7 1.2.3 通信系統(tǒng)仿真的重要作用 10 1.3 通信系統(tǒng)仿真問
6、題的提出、研究?jī)r(jià)值及研究現(xiàn)狀 10 1.3.1 通信系統(tǒng)仿真問題的提出 10 1.3.2 通信系統(tǒng)仿真問題的研究?jī)r(jià)值 10 1.3.3 通信系統(tǒng)仿真問題的研究現(xiàn)狀 11 1.4 本論文的主要研究?jī)?nèi)容 11 第二章 simulink入門 13 2.1 simulink簡(jiǎn)介 13 2.2 simulink的工作環(huán)境 14 2.2.1 simulink的模型庫 14 2.2.2 設(shè)計(jì)仿真模型 15 2.2.3 運(yùn)行仿真 16 2.2.4 建立子系統(tǒng) 16 2.2.5 封裝子系統(tǒng) 18 2.3 S函數(shù)及其簡(jiǎn)介 18 2.3.1 S函數(shù)工作原理 19 2.3.2 S函數(shù)基
7、本概念 20 第三章 通信系統(tǒng)信道和噪聲研究及其仿真 22 3.1 通信系統(tǒng)信道模型及其分類 22 3.1.1 恒參信道 22 3.1.2 隨參信道 23 3.2 通信系統(tǒng)中噪聲概述及高斯白噪聲 24 3.2.1 噪聲概述 24 3.2.2 高斯白噪聲 24 3.3 仿真系統(tǒng)設(shè)計(jì)――BFSK在三種傳輸信道中的傳輸性能分析 24 第四章 模擬信號(hào)的數(shù)字傳輸研究及其仿真 29 4.1 模擬信號(hào)的數(shù)字傳輸模型及抽樣定理 29 4.1.1 模擬信號(hào)的數(shù)字傳輸模型 29 4.1.2 抽樣定理 29 4.2 模擬信號(hào)的量化 30 4.2.1 均勻量化 30 4.2.2 非
8、均勻量化 30 4.3 脈沖編碼調(diào)制及差分脈沖編碼調(diào)制原理 31 4.3.1 脈沖編碼調(diào)制(PCM)原理 31 4.3.2 差分脈沖編碼調(diào)制(DPCM)原理 32 4.4 仿真系統(tǒng)設(shè)計(jì) 32 4.4.1 A律十三折與u律十五折量化誤差分析 32 第五章 通信系統(tǒng)信道編碼研究及其仿真 35 5.1 信道編碼概念 35 5.2 信道編碼分類 35 5.2.1 分組編碼 35 5.2.2 循環(huán)冗余碼 36 5.2.3 卷積編碼 36 5.3 仿真系統(tǒng)設(shè)計(jì) 37 5.3.1 RS編碼糾錯(cuò)性能分析 37 5.3.2 CRC-16編碼檢錯(cuò)性能分析 38 第六章 通信系統(tǒng)信號(hào)
9、調(diào)制研究及其仿真 41 6.1 信號(hào)調(diào)制的概念 41 6.2 信號(hào)調(diào)制 41 6.2.1 脈沖振幅調(diào)制(PAM) 41 6.2.2 正交振幅調(diào)制(QAM) 42 6.2.3 數(shù)字頻率調(diào)制 42 6.2.4 數(shù)字相位調(diào)制 43 6.3 仿真系統(tǒng)設(shè)計(jì) 44 6.3.1 PAM和QAM抗噪聲性能分析 44 6.3.2 QPSK在IS-95前向信道中的應(yīng)用 46 6.3.3 DQPSK在USDC中的應(yīng)用 47 6.3.4 OQPSK在IS-95反向信道中的應(yīng)用 49 6.3.5 GMSK在GSM中的應(yīng)用 50 小 結(jié) 53 參 考 文 獻(xiàn) 54 致 謝 55 附錄A
10、 56 數(shù)字通信系統(tǒng)的MATLAB設(shè)計(jì)與仿真 摘 要:現(xiàn)代社會(huì)發(fā)展要求通信功能越來越強(qiáng),性能越來越高,構(gòu)成越來越復(fù)雜;另一方面,要求通信系統(tǒng)技術(shù)研究和產(chǎn)品開發(fā)縮短周期,降低成本,提高水平。這樣尖銳對(duì)立的兩方面的要求,只有通過使用強(qiáng)大的計(jì)算機(jī)輔助分析設(shè)計(jì)技術(shù)和工具才能實(shí)現(xiàn)?,F(xiàn)代計(jì)算機(jī)科學(xué)技術(shù)快速發(fā)展,已經(jīng)研發(fā)出新一代的可視化仿真軟件。這些功能強(qiáng)大的仿真軟件,使得通信系統(tǒng)仿真的設(shè)計(jì)和分析過程變得相對(duì)直觀和便捷,由此也使得通信系統(tǒng)仿真技術(shù)得到了更快的發(fā)展。 本文首先介紹了通信系統(tǒng)仿真的基本內(nèi)容,包括通信系統(tǒng)仿真的一般步驟MATLAB中的一種可視化仿真工具Simulink以及S-函數(shù)的相關(guān)
11、概念。 從理論上對(duì)通信系統(tǒng)進(jìn)行深入細(xì)致的研究是非常必要的。本文對(duì)通信系統(tǒng)中的一些重要環(huán)節(jié),包括信道、噪聲、模擬信號(hào)的數(shù)字化傳輸、信道編碼以及信號(hào)調(diào)制的原理、方法和過程進(jìn)行了詳細(xì)的闡述。 理論知識(shí)是用來指導(dǎo)具體實(shí)踐的。本文在深刻理解通信系統(tǒng)理論的基礎(chǔ)上利用MATLAB強(qiáng)大的仿真功能,設(shè)計(jì)了許多具體的通信系統(tǒng)仿真模型。在仿真模型設(shè)計(jì)過程中,本文對(duì)模型設(shè)計(jì)的目的、具體的結(jié)構(gòu)組成、仿真流程以及仿真結(jié)果都給出了具體詳實(shí)的分析和說明。 最后,本文對(duì)所做的研究工作進(jìn)行了總結(jié),并且提出了今后的工作和研究方向。 關(guān)鍵詞:MATLAB;數(shù)字通信;系統(tǒng)設(shè)計(jì)。
12、 Digital Communication System Design and Simulation MATLAB Abstract: The development of modern society requires communications system has more powerful function, higher performance and complicated structure. On the other hand,the research of technology and development of product shoul
13、d truncate cycle, cut costs and increase production levels. We can resolve the conflict by using the computer aided design technology and tools. The rapid development of computer science causes the successful research and development of new generation visual simulation software. The simulation softw
14、are is powerful which makes the process of design and analysis of communications system simulation more intuitional and convenient. Today, the communications system simulation is rapid developing. The paper firstly introduces the basic content of communications system simulation, which include
15、common steps of simulation, visual simulation tool called Simulink and the concept of S-function. It is necessary to research the theory of communications system intensively. The paper expands some important links of the communications system which include channel, noise, digital transmission o
16、f analog signal, channel encode and signal modulation. Theory aims to guide practice. On the base of deep comprehension of communications system theory, the paper designs many concrete simulation models In the process of models design, the paper analyses the intention, configuration, simulation
17、 links and simulation results. In the end, the paper summarizes main content of the research and some following study and research objects are suggested. Key Words: MATLAB, Digital Communication, System Design 前 言 在過去的幾十年里,通信和信號(hào)處理系統(tǒng)的復(fù)雜程度顯著地提高了。與此同時(shí)出現(xiàn)了一系列新的技術(shù),如:用于數(shù)字信號(hào)處理的價(jià)格不高但速度很快的硬件、
18、光纖光學(xué)器件、集成光學(xué)設(shè)備和單片微波集成電路,這些對(duì)通信系統(tǒng)的實(shí)現(xiàn)均有重要影響。通信系統(tǒng)復(fù)雜度的提高使得用來分析和設(shè)計(jì)系統(tǒng)的時(shí)間和精力也相應(yīng)提高了,然而在商用產(chǎn)品中引入新技術(shù)要求設(shè)計(jì)能做到短時(shí)、高效、省力,而這些要求只有通過使用強(qiáng)大的計(jì)算機(jī)輔助分析和設(shè)計(jì)工具才能實(shí)現(xiàn)。所以,通信系統(tǒng)仿真在通信系統(tǒng)工程設(shè)計(jì)中起著舉足輕重的作用。 雖然軟件實(shí)驗(yàn)不像硬件實(shí)驗(yàn)?zāi)菢幼屓烁械健罢鎸?shí)”,但對(duì)于許多通信問題的研究來說的確非常有效。與硬件實(shí)驗(yàn)相比,軟件實(shí)驗(yàn)具有如下一些優(yōu)點(diǎn): (1) 軟件實(shí)驗(yàn)具有廣泛的適應(yīng)性和極好的靈活性。在硬件實(shí)驗(yàn)中改變系統(tǒng)參數(shù)也許意味著要重做硬件,而在軟件實(shí)驗(yàn)中則是改一、兩個(gè)數(shù)據(jù),甚至只是
19、在屏幕上按幾下鼠標(biāo)。 (2) 軟件實(shí)驗(yàn)更有助于我們較為全面地研究通信系統(tǒng)。有許多問題,通過硬件實(shí)驗(yàn)來研究可能非常困難,但在軟件實(shí)驗(yàn)中卻易于解決。 (3)硬件實(shí)驗(yàn)的精確度取決于元器件及工藝水平,軟件實(shí)驗(yàn)的精度取決于CPU的運(yùn)算速度或者說是程序的運(yùn)算量。 (4) 軟件實(shí)驗(yàn)建設(shè)開發(fā)周期短,成本低。 而且近年來,隨著計(jì)算機(jī)硬件性能的不斷提升和計(jì)算機(jī)軟件技術(shù)的飛速發(fā)展,利用計(jì)算機(jī)進(jìn)行實(shí)驗(yàn)系統(tǒng)仿真成為一種國(guó)際潮流。國(guó)內(nèi)也逐步開始了這一方面的工作,并正取得積極的成果。 第一章 MATLAB與通信仿真 1.1 MATLAB簡(jiǎn)介 Matlab軟
20、件系列產(chǎn)品是一套高效強(qiáng)大的工程技術(shù)數(shù)值運(yùn)算和系統(tǒng)仿真軟件,廣泛應(yīng)用于當(dāng)今的航空航天、汽車制造、半導(dǎo)體創(chuàng)造、電子通信、醫(yī)學(xué)研究、財(cái)經(jīng)研究和高等教育答領(lǐng)域,被譽(yù)為“巨人肩膀上的工具”,研發(fā)人員借助Matlab軟件能迅速測(cè)試設(shè)計(jì)構(gòu)想,綜合評(píng)測(cè)系統(tǒng)性能,快速設(shè)計(jì)出更好的方案來確保更高技術(shù)的要求。同時(shí),Matlab也是國(guó)家教委重點(diǎn)提倡的一種計(jì)算工具。綜合起來,Matlab有以下幾個(gè)特點(diǎn): (1)友好的工作平臺(tái)和編程環(huán)境 Matlab由一系列工具組成。這些工具方便用戶使用Matlab的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括Matlab桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和
21、用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著Matlab的商業(yè)化以及軟件本身的不斷升級(jí),Matlab的用戶界面也越來越精致,更加接近Windows的標(biāo)準(zhǔn)界面,人機(jī)交互性更強(qiáng),操作更簡(jiǎn)單。而且新版本的Matlab提供了完整的聯(lián)機(jī)查詢、幫助系統(tǒng),極大的方便了用戶的使用。簡(jiǎn)單的編程環(huán)境提供了比較完備的調(diào)試系統(tǒng),程序不必經(jīng)過編譯就可以直接運(yùn)行,而且能夠及時(shí)地報(bào)告出現(xiàn)的錯(cuò)誤及進(jìn)行出錯(cuò)原因分析。 (2)簡(jiǎn)單易用的程序語言 Matlab一個(gè)高級(jí)的距陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個(gè)較大的復(fù)雜的應(yīng)用
22、程序(M文件)后再一起運(yùn)行。新版本的MATLAB語言是基于最為流行的C++語言基礎(chǔ)上的,因此語法特征與C++語言極為相似,而且更加簡(jiǎn)單,更加符合科技人員對(duì)數(shù)學(xué)表達(dá)式的書寫格式。使之更利于非計(jì)算機(jī)專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強(qiáng),這也是Matlab能夠深入到科學(xué)研究及工程計(jì)算各個(gè)領(lǐng)域的重要原因。 (3)強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力 Matlab是一個(gè)包含大量計(jì)算算法的集合。其擁有600多個(gè)工程中要用到的數(shù)學(xué)運(yùn)算函數(shù),可以方便的實(shí)現(xiàn)用戶所需的各種計(jì)算功能。函數(shù)中所使用的算法都是科研和工程計(jì)算中的最新研究成果,而前經(jīng)過了各種優(yōu)化和容錯(cuò)處理。在通常情況下,可以用它來代替底層
23、編程語言,如C和C++ 。在計(jì)算要求相同的情況下,使用Matlab的編程工作量會(huì)大大減少。MATLAB的這些函數(shù)集合包括從最簡(jiǎn)單最基本的函數(shù)到諸如距陣,特征向量、快速傅立葉變換的復(fù)雜函數(shù)。函數(shù)所能解決的問題其大致包括矩陣運(yùn)算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號(hào)運(yùn)算、傅立葉變換和數(shù)據(jù)的統(tǒng)計(jì)分析、工程中的優(yōu)化問題、稀疏矩陣運(yùn)算、復(fù)數(shù)的各種運(yùn)算、三角函數(shù)和其他初等數(shù)學(xué)運(yùn)算、多維數(shù)組操作以及建模動(dòng)態(tài)仿真等。 (4)出色的圖形處理功能 Matlab自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和距陣用圖形表現(xiàn)出來,并且可以對(duì)圖形進(jìn)行標(biāo)注和打印。高層次的作圖包括二維和三維的可視化
24、、圖象處理、動(dòng)畫和表達(dá)式作圖??捎糜诳茖W(xué)計(jì)算和工程繪圖。新版本的Matlab對(duì)整個(gè)圖形處理功能作了很大的改進(jìn)和完善,使他不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對(duì)于一些其他軟件所沒有的功能(例如圖形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),Matlab同樣表現(xiàn)了出色的處理能力。同時(shí)對(duì)一些特殊的可視化要求,例如圖形對(duì)話等,Matlab也有相應(yīng)的功能函數(shù),保證了用戶不同層次的要求。另外新版本的Matlab還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對(duì)這方面有特殊要求的用戶也可以得到滿足。 (5)應(yīng)用廣泛的模塊集合工具箱 Matl
25、ab對(duì)許多專門的領(lǐng)域都開發(fā)了功能強(qiáng)大的模塊集和工具箱。一般來說,他們都是由特定領(lǐng)域的專家開發(fā)的,用戶可以直接使用工具箱學(xué)習(xí)、應(yīng)用和評(píng)估不同的方法而不需要自己編寫代碼。目前,Matlab已經(jīng)把工具箱延伸到了科學(xué)研究和工程應(yīng)用的諸多領(lǐng)域,諸如數(shù)據(jù)采集、數(shù)據(jù)庫接口、概率統(tǒng)計(jì)、樣條擬合、優(yōu)化算法、偏微分方程求解、神經(jīng)網(wǎng)絡(luò)、小波分析、信號(hào)處理、圖像處理、系統(tǒng)辨識(shí)、控制系統(tǒng)設(shè)計(jì)、LMI控制、魯棒控制、模型預(yù)測(cè)、模糊邏輯、金融分析、地圖工具、非線性控制設(shè)計(jì)、實(shí)時(shí)快速原型及半物理仿真、嵌入式系統(tǒng)開發(fā)、定點(diǎn)仿真、DSP與通訊、電力系統(tǒng)仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。 (6)實(shí)用的
26、程序接口和發(fā)布平臺(tái) 新版本的Matlab可以利用Matlab編譯器和C/C++數(shù)學(xué)庫和圖形庫,將自己的Matlab程序自動(dòng)轉(zhuǎn)換為獨(dú)立于Matlab運(yùn)行的C和C++代碼。允許用戶編寫可以和Matlab進(jìn)行交互的C或C++語言程序。另外,Matlab網(wǎng)頁服務(wù)程序還容許在Web應(yīng)用中使用自己的Matlab數(shù)學(xué)和圖形程序。Matlab的一個(gè)重要特色就是他有一套程序擴(kuò)展系統(tǒng)和一組稱之為工具箱的特殊應(yīng)用子程序。工具箱是Matlab函數(shù)的子程序庫,每一個(gè)工具箱都是為某一類學(xué)科專業(yè)和應(yīng)用而定制的,主要包括信號(hào)處理、控制系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、模糊邏輯、小波分析和系統(tǒng)仿真等方面的應(yīng)用。 (7)應(yīng)用軟件開發(fā)(包括用戶
27、界面) 在開發(fā)環(huán)境中,使用戶更方便地控制多個(gè)文件和圖形窗口;在編程方面支持了函數(shù)嵌套,有條件中斷等;在圖形化方面,有了更強(qiáng)大的圖形標(biāo)注和處理功能,包括對(duì)性對(duì)起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5。 1.2 通信仿真 仿真是衡量系統(tǒng)性能的工具,它通過仿真模型的仿真結(jié)果來推斷原系統(tǒng)的性能,從而為新系統(tǒng)的建立或原系統(tǒng)的改造提供可靠的參考。通過仿真,可以降低新系統(tǒng)失敗的可能性,消除系統(tǒng)中潛在的瓶頸,防止對(duì)系統(tǒng)中某些功能部件造成過量的負(fù)載,優(yōu)化系統(tǒng)的整體性能,因此,仿真是科學(xué)研究和工程建設(shè)中不可缺少的方法。 實(shí)際的通信系統(tǒng)是一個(gè)功能結(jié)構(gòu)相當(dāng)復(fù)雜的系統(tǒng),對(duì)這個(gè)系統(tǒng)做出的任何改
28、變(如改變某個(gè)參數(shù)的設(shè)置、改變系統(tǒng)的結(jié)構(gòu)等)都可能影響到整個(gè)系統(tǒng)的性能和穩(wěn)定。因此,在對(duì)原有的通信系統(tǒng)做出改進(jìn)或建立一個(gè)新系統(tǒng)之前,通常需要對(duì)這個(gè)系統(tǒng)進(jìn)行建模和仿真,通仿真結(jié)果衡量方案的可行性,從中選擇最合理的系統(tǒng)配置和參數(shù)設(shè)置,然后再應(yīng)用于實(shí)際系統(tǒng)中。這個(gè)過程就是通信仿真。 1.2.1 通信仿真的概念 通信仿真是衡量通信系統(tǒng)性能的工具。通信仿真可以分成離散事件仿真和連續(xù)仿真。在離散事件仿真中,仿真系統(tǒng)只對(duì)離散事件做出響應(yīng),而在連續(xù)仿真中,仿真系統(tǒng)對(duì)輸入信號(hào)產(chǎn)生連續(xù)的輸出信號(hào)。離散事件仿真是對(duì)實(shí)際通信系統(tǒng)的一種簡(jiǎn)化,它的仿真建模比較簡(jiǎn)單,整個(gè)仿真過程需要花費(fèi)的時(shí)間也比連續(xù)仿真少。雖然
29、離散事件仿真舍棄了一些仿真細(xì)節(jié),在有些場(chǎng)合顯得不夠具體,但仍然是通信仿真的主要形式。 與一般的仿真過程類似,在對(duì)通信系統(tǒng)實(shí)施仿真之前,首先需要研究通信系統(tǒng)的特性,通過歸納和抽象建立通信系統(tǒng)的仿真模型。圖1—1所示是關(guān)于通信系統(tǒng)仿真流程的一個(gè)示意圖。從圖中可以看到,通信系統(tǒng)仿真是一個(gè)循環(huán)往復(fù)的過程,它從當(dāng)前系統(tǒng)出發(fā),通過分祈建立起一個(gè)能夠在一定程度上描述原通信系統(tǒng)的仿真模型,然后通過仿真實(shí)驗(yàn)得到相關(guān)的數(shù)據(jù)。通過對(duì)仿真數(shù)據(jù)的分析可以得到相應(yīng)的結(jié)論,然后把這個(gè)結(jié)論應(yīng)用到對(duì)當(dāng)前通信系統(tǒng)的改造中。如果改造后通信系統(tǒng)的性能并不像仿真結(jié)果那樣令人滿意,還需要重新實(shí)施通信系統(tǒng)仿真,這時(shí)候改造后的通信系統(tǒng)就成
30、了當(dāng)前系統(tǒng),并且開始新一輪的通信系統(tǒng)仿真過程。 當(dāng)前系統(tǒng) 仿真建模 仿真實(shí)驗(yàn) 仿真分析 結(jié)論分析 改造后的系統(tǒng) 實(shí)際系統(tǒng) 仿真系統(tǒng) 圖1.1通信系統(tǒng)仿真流程圖 1.2.2 通信仿真的基本步驟 通信仿真系統(tǒng)一般分為3個(gè)步驟,即:仿真建模、仿真實(shí)驗(yàn)和仿真分析。應(yīng)該注意的是,通信仿真是一個(gè)螺旋式發(fā)展的過程,因此這3個(gè)步驟可能需要循環(huán)執(zhí)行多次之后才能夠獲得令人滿意的仿真結(jié)果。 1、仿真建模 仿真建模是根據(jù)實(shí)際通信系統(tǒng)建立仿真模型的過程,它是整個(gè)通信仿真過程中的—個(gè)關(guān)鍵步驟,因?yàn)榉抡婺P偷暮脡闹苯佑绊懻叻抡娴慕Y(jié)果以及仿真結(jié)果的真實(shí)
31、性和可靠性。 仿真模型是對(duì)實(shí)際文件系統(tǒng)的一種模擬和抽象,但又不是完全的復(fù)制。簡(jiǎn)單的仿真模型容易被理解和操作,但是由于它忽略了很多關(guān)于實(shí)際系統(tǒng)的細(xì)節(jié),因而在一定程度上影響了仿真的可靠性。如果仿真模型比較復(fù)雜,雖然它是對(duì)實(shí)際系統(tǒng)的—種忠實(shí)反映,但是其中包含了過多的相互作用因素,這些因素不僅需要消耗過多的仿真時(shí)間,而且使仿真結(jié)果的分析過程變的相當(dāng)復(fù)雜。因此,仿真模型的建立需要綜合考慮其可行性和簡(jiǎn)單性。在仿真建模過程中,我們可以先建立一個(gè)相對(duì)簡(jiǎn)單的仿真模型,然后再根據(jù)仿真結(jié)果和仿真過程的需要逐步增加仿真模型的復(fù)雜度。 仿真模型一般是一個(gè)數(shù)學(xué)模型。數(shù)學(xué)模型有多種分類方式,包括確定性模型和隨機(jī)
32、模型,靜態(tài)模型和動(dòng)態(tài)模型。確定性模型的輸入變量和輸出變量都有固定數(shù)值,而在隨機(jī)模型中,至少有—個(gè)輸入變量是隨機(jī)的。靜態(tài)模型個(gè)需要考慮時(shí)間變化因素,動(dòng)態(tài)模型的輸入輸出變量則需要考慮時(shí)間變化因素。一般情況下通信仿真模型是一個(gè)隨機(jī)動(dòng)態(tài)系統(tǒng)。 在仿真建模過程中,首先需要分析實(shí)際系統(tǒng)存在的問題或設(shè)立系統(tǒng)改造的目標(biāo),并且把這些問題和目標(biāo)轉(zhuǎn)化成數(shù)學(xué)變量和公式。例如,我們可以設(shè)定改造后系統(tǒng)或新系統(tǒng)在達(dá)到系統(tǒng)最大容量時(shí)的誤碼率,或者是通信系統(tǒng)的最大呼損率,等等。 有了這些具體的仿真目標(biāo)之后,下一步是獲取實(shí)際通信系統(tǒng)的各種運(yùn)行參數(shù),如通信系統(tǒng)占用的帶寬及其頻率分布,系統(tǒng)對(duì)于特定的輸入信號(hào)產(chǎn)生的輸出等。同時(shí),對(duì)
33、于通信系統(tǒng)中的各個(gè)隨機(jī)變量,可以采集這些變量的數(shù)據(jù),然后通過數(shù)學(xué)工具來確定隨機(jī)變量的分布特性。 有了上面的準(zhǔn)備工作,下一步就可以通過仿真軟件來建造仿真模型了。最簡(jiǎn)單的工具是采用c語言等編程工具直接編寫仿真程序,這種方法的優(yōu)點(diǎn)是效率高,缺點(diǎn)則是不夠靈活,沒有一個(gè)易于實(shí)現(xiàn)的人機(jī)交互界面,不便于對(duì)仿真結(jié)果進(jìn)行分析。除此之外,還可以采用專門的仿真軟件建造仿真模型,比較常用的仿真軟件包括Matlab、0PNET、NS2等,這些軟件具有各自不同的特點(diǎn),適用于不同層次的通信仿真。例如,物理層仿真通常采用Matlab,而網(wǎng)絡(luò)層仿真則適用采用0PNET。 在完成仿真模型的軟件實(shí)現(xiàn)之后,還需要對(duì)這個(gè)仿真模型的
34、有效性進(jìn)行初步的驗(yàn)證。一種簡(jiǎn)便的驗(yàn)證方法是采用特定的已知輸入信號(hào),這個(gè)輸入信號(hào)分別通過仿真模型和實(shí)際系統(tǒng),產(chǎn)生兩種輸出信號(hào)。如果仿真模型的輸出信號(hào)與實(shí)際系統(tǒng)的輸出信號(hào)比較吻合,說明這個(gè)仿真模型與原系統(tǒng)具有較好的相似性。當(dāng)這兩種輸出信號(hào)差別很大時(shí),最好先檢查一下仿真模型的內(nèi)部連接和設(shè)置,找出造成這種差異的原因。 仿真建模的最后一步是做好仿真模型的文檔工作,這是最容易被大家忽略的。很多情況下,我們?cè)谕瓿上到y(tǒng)的設(shè)計(jì)之后就迫不及待地運(yùn)行仿真程序,待發(fā)現(xiàn)仿真結(jié)果與預(yù)期目標(biāo)相差甚遠(yuǎn)時(shí)才回過頭來焦頭爛額地檢查仿真模型的內(nèi)部結(jié)構(gòu)。這時(shí)候,往往原先的很多參數(shù)設(shè)置和條件假設(shè)都變得不可理解,這非常不利于修改多數(shù)和
35、結(jié)構(gòu),不利于找錯(cuò)和排錯(cuò)。 2、仿真實(shí)驗(yàn) 仿真實(shí)驗(yàn)是一個(gè)或一系列針對(duì)仿真模型的測(cè)試。在仿真實(shí)驗(yàn)過程中,通常需要多次改變仿真模型輸入信號(hào)的數(shù)值,以觀察和分析仿真模型對(duì)這些輸入信號(hào)的反應(yīng),以及仿真系統(tǒng)在這個(gè)過程中表現(xiàn)出來的性能。需要強(qiáng)調(diào)的一點(diǎn)是,仿真過程中使用的輸入數(shù)據(jù)必須具有一定的代表性,即能夠從各個(gè)角度顯著地改變仿真輸出信號(hào)的數(shù)值。 實(shí)施仿真之前需要確定的另外一個(gè)因素是性能尺度。性能尺度指的是能夠衡量仿真過程中系統(tǒng)性能的輸出信號(hào)的數(shù)值(或根據(jù)輸出信號(hào)計(jì)算得到的數(shù)值),因此,在實(shí)施仿真之前,首先需要確定仿真過程中應(yīng)該收集哪些仿真數(shù)據(jù),這些數(shù)據(jù)以什么樣的格式存在,以及收集多少數(shù)據(jù)。
36、 在明確了仿真系統(tǒng)對(duì)輸入信號(hào)和輸出信號(hào)的要求之后,最好把這些設(shè)置整理成一份簡(jiǎn)單的文檔。編寫文檔是一個(gè)好習(xí)慣,它能夠幫助我們回億起仿真設(shè)計(jì)過程的一些細(xì)節(jié)。當(dāng)然,文檔的編寫不一定要求很規(guī)范,并且文檔大小應(yīng)該視仿真設(shè)計(jì)的規(guī)模而定。 最后,還應(yīng)該明確各個(gè)輸入信號(hào)的初始設(shè)置以及仿真系統(tǒng)內(nèi)部各個(gè)狀態(tài)的初姑值。仿真的運(yùn)行實(shí)際上是計(jì)算機(jī)的計(jì)算過程,這個(gè)過程一般不需要人工干預(yù),花費(fèi)的時(shí)間由仿真的復(fù)雜度確定。如果需要比較仿真系統(tǒng)在不同參數(shù)設(shè)置下的性能,應(yīng)該使仿真系統(tǒng)在取不同參數(shù)值時(shí)具有相同的輸入信號(hào)(或相同的隨機(jī)輸入信號(hào)),這樣才能夠保證分析和比較的客觀性和可靠性。 對(duì)于需要較長(zhǎng)時(shí)間的仿真,應(yīng)該
37、盡可能地使用批處理方式,使得仿真過程在完成—種參數(shù)配置的仿真之后能夠自動(dòng)啟動(dòng)針對(duì)下—個(gè)參數(shù)配置下—個(gè)仿真。這種方式減少了仿真過程中的人工下頸,提高了系統(tǒng)利用率利仿真效率。 3、仿真分析 仿真分析是—個(gè)通信仿真流程中的最后—個(gè)步驟。在仿真分析過程個(gè),用戶已經(jīng)從仿真過程中獲得了足夠多的關(guān)于系統(tǒng)件能的信息,這是這些信息只是一些原始數(shù)據(jù),一般還需要經(jīng)過數(shù)值分析和處理才能夠獲得衡量系統(tǒng)性能的尺度,從而獲得對(duì)仿真系統(tǒng)件能的一個(gè)總體評(píng)價(jià)。常用的系統(tǒng)性能尺度包括平均值、方差、標(biāo)準(zhǔn)差、最大值和最小值等,它們從不同的角度描繪了仿真系統(tǒng)的性能。 如果仿真過程需要一定的時(shí)間才能夠達(dá)到平衡狀態(tài),在
38、對(duì)輸出數(shù)據(jù)進(jìn)行分析和處理時(shí)一般要忽略最初的若干個(gè)數(shù)據(jù),而只考慮平衡之后的輸出。對(duì)于仿真尺度不隨時(shí)間變化的平衡系統(tǒng)(Stationary System),還可能涉及到對(duì)輸出變量穩(wěn)定狀態(tài)的求解。 另外一個(gè)需要注意的地方是,即使仿真過程中收集的數(shù)據(jù)正確無誤,由此得到的仿真結(jié)果并不一定就是難確的。造成這種結(jié)果的原因可能是輸入信號(hào)恰好與仿真系統(tǒng)的內(nèi)部特性相吻合,或者輸入的隨機(jī)信號(hào)不具有足夠的代表性。 圖表是最簡(jiǎn)潔的說明工具,它具有很強(qiáng)的直觀性,便于分析和比較,因此仿真結(jié)果一般繪制成圖表形式。我們使用的仿真工具—股都具有很強(qiáng)的繪圖功能,能夠便捷的繪制各種類型的圖表。 以上就是通信仿真的一個(gè)循
39、環(huán)。應(yīng)該強(qiáng)調(diào)的是,仿真分析并不—定意味著通信仿真過程的完全結(jié)束。如果仿真分析得到的結(jié)果達(dá)不到預(yù)期的目標(biāo),用戶還需要重新修改通信仿真模型,這時(shí)候仿真分析就成為了另外一個(gè)循環(huán)的開始。 1.2.3 通信系統(tǒng)仿真的重要作用 在過去的幾十年里,通信和信號(hào)處理系統(tǒng)的復(fù)雜程度顯著地提高了。與此同時(shí)出現(xiàn)了一系列新的技術(shù),如用于數(shù)字信號(hào)處理的價(jià)格不高但速度很快的硬件、光纖光學(xué)器件、集成光學(xué)設(shè)備和單片微波集成電路,這些對(duì)通信系統(tǒng)的實(shí)現(xiàn)均有重要影響。通信系統(tǒng)復(fù)雜度的提高使得用來分析和設(shè)計(jì)系統(tǒng)的時(shí)間和精力也相應(yīng)提高了,然而在商用產(chǎn)品中引入新技術(shù)要求設(shè)計(jì)能做到短時(shí)、高效、省力,而這些要求只有通過使用強(qiáng)大的計(jì)算機(jī)輔助
40、分析和設(shè)計(jì)工具才能實(shí)現(xiàn)。所以,通信系統(tǒng)仿真在通信系統(tǒng)工程設(shè)計(jì)中起著舉足輕重的作用。 1.3 通信系統(tǒng)仿真問題的提出、研究?jī)r(jià)值及研究現(xiàn)狀 1.3.1 通信系統(tǒng)仿真問題的提出 通信系統(tǒng)的性能可以用基于公式的計(jì)算方法、波形級(jí)仿真或通過硬件樣機(jī)研究和測(cè)量來估計(jì)得到。以簡(jiǎn)化模型為基礎(chǔ)的公式法只能應(yīng)用于一些理想化和過于簡(jiǎn)單的例子,要想估計(jì)出復(fù)雜通信系統(tǒng)的性能是非常困難的。基于測(cè)量的性能估計(jì)方法通常代價(jià)很高,并且很不靈活。用基于仿真的方法來估計(jì)性能時(shí),系統(tǒng)可以用任何所期待的細(xì)節(jié)(主觀的,當(dāng)然有一定局限)來模擬。 與公式法或測(cè)量法相比較,仿真的方法能更好的利用設(shè)計(jì)空間,很容易將數(shù)字和經(jīng)驗(yàn)?zāi)P徒Y(jié)合起來,
41、并結(jié)合設(shè)備和真實(shí)信號(hào)的特點(diǎn)進(jìn)行分析和設(shè)計(jì)。 1.3.2 通信系統(tǒng)仿真問題的研究?jī)r(jià)值 通信系統(tǒng)仿真實(shí)質(zhì)上就是把硬件實(shí)驗(yàn)搬進(jìn)了計(jì)算機(jī),可以把它看成是一種軟件實(shí)驗(yàn)。在硬件實(shí)驗(yàn)系統(tǒng)中,用各種電子元器件制作出通信系統(tǒng)中的理論模型所規(guī)定的各個(gè)模塊,再把它們通過導(dǎo)線或電纜等接在一起,然后再用示波器、頻譜議、誤碼儀等通信儀表做各種測(cè)量,最后分析測(cè)量結(jié)果。在軟件實(shí)驗(yàn)中我們也是這樣做,只不過所有通信模塊及通信儀表的功能都是用程序來實(shí)現(xiàn)的,通信系統(tǒng)的全過程在計(jì)算機(jī)中仿真運(yùn)行。 雖然軟件實(shí)驗(yàn)不像硬件實(shí)驗(yàn)?zāi)菢幼屓烁械健罢鎸?shí)”,但對(duì)于許多通信問題的研究來說的確非常有效。與硬件實(shí)驗(yàn)相比,軟件實(shí)驗(yàn)具有如下一些優(yōu)點(diǎn):
42、(1) 軟件實(shí)驗(yàn)具有廣泛的適應(yīng)性和極好的靈活性。在硬件實(shí)驗(yàn)中改變系統(tǒng)參數(shù)也許意味著要重做硬件,而在軟件實(shí)驗(yàn)中則是改一、兩個(gè)數(shù)據(jù),甚至只是在屏幕上按幾下鼠標(biāo)。 (2) 軟件實(shí)驗(yàn)更有助于我們較為全面地研究通信系統(tǒng)。有許多問題,通過硬件實(shí)驗(yàn)來研究可能非常困難,但在軟件實(shí)驗(yàn)中卻易于解決。 (3)硬件實(shí)驗(yàn)的精確度取決于元器件及工藝水平,軟件實(shí)驗(yàn)的精度取決于CPU的運(yùn)算速度或者說是程序的運(yùn)算量。 (4) 軟件實(shí)驗(yàn)建設(shè)開發(fā)周期短,成本低。 1.3.3 通信系統(tǒng)仿真問題的研究現(xiàn)狀 計(jì)算機(jī)輔助分析和設(shè)計(jì)技術(shù)發(fā)展十分迅速,出現(xiàn)了大量實(shí)用仿真軟件與工具,并應(yīng)用于通信系統(tǒng)建模,分析和設(shè)計(jì),使得通信系統(tǒng)仿真發(fā)
43、展很快。計(jì)算機(jī)輔助技術(shù)基本上有兩大類,一是基于公式的方法,用計(jì)算機(jī)計(jì)算復(fù)雜的公式:二是用計(jì)算機(jī)仿真系統(tǒng)的信號(hào)波形,即波形級(jí)仿真。 通信系統(tǒng)仿真應(yīng)用到了通信系統(tǒng)工程設(shè)計(jì)的各個(gè)階段,無論是從早期的概念設(shè)計(jì),還是實(shí)現(xiàn)、測(cè)試、使用等各個(gè)階段。在概念定義階段,通信系統(tǒng)仿真獲得頂層指標(biāo);在接下來的設(shè)計(jì)和研發(fā)中,通信系統(tǒng)仿真確定硬件研發(fā)的指標(biāo),檢驗(yàn)已完成子系統(tǒng)對(duì)整個(gè)系統(tǒng)性能的影響;在運(yùn)行階段,通信系統(tǒng)仿真可以用來確定解決問題的方法;通信系統(tǒng)仿真還可以預(yù)測(cè)系統(tǒng)的使用壽命。 現(xiàn)代計(jì)算機(jī)軟硬件技術(shù)的快速發(fā)展,新一代的可視化的仿真軟件的使用使得通信系統(tǒng)仿真的設(shè)計(jì)和分析過程變得相對(duì)直觀和便捷,推動(dòng)了通信系統(tǒng)仿真的
44、快速發(fā)展。 1.4 本論文的主要研究?jī)?nèi)容 現(xiàn)代社會(huì)發(fā)展要求通信系統(tǒng)功能越來越強(qiáng),性能越來越高,構(gòu)成越來越復(fù)雜;另一方面,要求通信系統(tǒng)技術(shù)研究和產(chǎn)品開發(fā)縮短周期,降低成本,提高水平。這樣尖銳對(duì)立的兩個(gè)方面的要求,只有通過使用強(qiáng)大的計(jì)算機(jī)輔助分析設(shè)計(jì)技術(shù)和工具才能實(shí)現(xiàn)。通信系統(tǒng)仿真貫穿通信系統(tǒng)工程設(shè)計(jì)的全過程,對(duì)通信系統(tǒng)的發(fā)展起著舉足輕重的作用。 本論文針對(duì)通信系統(tǒng)仿真的研究主要做了以下的工作: (1) 介紹了通信系統(tǒng)仿真的相關(guān)內(nèi)容,包括通信系統(tǒng)仿真的一般步驟、Matlab中的一種可視化仿真工具Simulink以及S-函數(shù)的相關(guān)概念。 (2) 對(duì)通信系統(tǒng)中的主要環(huán)節(jié),包括通信系統(tǒng)信道、噪
45、聲、模擬信號(hào)的數(shù)字傳輸系統(tǒng)、信道編碼以及信號(hào)調(diào)制的原理、方法和過程進(jìn)行了詳細(xì)的闡述。 (3) 在理解通信系統(tǒng)理論的基礎(chǔ)上,利用Matlab強(qiáng)大的仿真功能,設(shè)計(jì)了具體的通信系統(tǒng)模型。在模型的設(shè)計(jì)過程,對(duì)模型設(shè)計(jì)的目的、具體的結(jié)構(gòu)組成、仿真流程以及仿真結(jié)果都給出了具體詳實(shí)的說明和分析。 第二章 simulink入門 simulink是Matlab中的一種可視化仿真工具,廣泛應(yīng)用于線性系統(tǒng)、數(shù)字控制、非線性系統(tǒng)以及數(shù)字信號(hào)處理的建模和仿真中。simulink采用模塊化方式,每個(gè)模塊都有自己的輸入/輸出端口,實(shí)現(xiàn)一
46、定的功能。在simulink中,仿真模型表現(xiàn)為若干個(gè)仿真模塊的集合以及這些模塊之間的連接關(guān)系,這就使得仿真的設(shè)計(jì)和分析過程變得相對(duì)直觀和便捷,同時(shí)有利于仿真模型的擴(kuò)充。 2.1 simulink簡(jiǎn)介 動(dòng)態(tài)系統(tǒng)是輸出信號(hào)隨時(shí)間變化的系統(tǒng)。要描述這種系統(tǒng)的特性,傳統(tǒng)的建模方法是先對(duì)系統(tǒng)的輸入信號(hào)和輸出信號(hào)進(jìn)行分析,得到它們的系統(tǒng)方程,然后編寫程序進(jìn)行仿真。這種仿真方法有兩個(gè)缺點(diǎn):首先是不夠直觀,缺乏足夠的人機(jī)交互。由于所有的輸入信號(hào)和輸出信號(hào)都被抽象成數(shù)值之間的關(guān)系,仿真表現(xiàn)為一種計(jì)算過程,因此難以對(duì)仿真的過程進(jìn)行控制,也難以對(duì)仿真的輸出數(shù)據(jù)進(jìn)行直觀的描述和分析。另外,這種方法缺乏系統(tǒng)性,尤其
47、是在對(duì)復(fù)雜系統(tǒng)的處理過程中,難以采用模塊化方法,從而降低了仿真程序的可讀性和可擴(kuò)展性。 simulink是Matlab提供的用于對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的工具包。simulink提供了專門用于顯示輸出信號(hào)的模塊,可以在仿真過程中隨時(shí)觀察仿真結(jié)果。同時(shí),通過simulink的存儲(chǔ)模塊,仿真數(shù)據(jù)可以方便地以各種形式保存到工作區(qū)或文件中,供用戶在仿真結(jié)束之后對(duì)數(shù)據(jù)進(jìn)行分析和處理。另外,simulink把具有特定功能的代碼組織成模塊的方式,并且這些模塊可以組織成具有等級(jí)結(jié)構(gòu)的子系統(tǒng),因此具有內(nèi)在的模塊化設(shè)計(jì)要求?;谏鲜鰞?yōu)點(diǎn),simulink稱為一種通用的仿真建模工具,廣泛應(yīng)用于通信仿真、數(shù)字
48、信號(hào)處理、模糊邏輯、神經(jīng)網(wǎng)絡(luò)、機(jī)械控制和虛擬現(xiàn)實(shí)等領(lǐng)域。 根據(jù)輸出信號(hào)與輸入信號(hào)的關(guān)系,simulink提供3種類型的模塊:連續(xù)模塊、離散模塊和混合模塊。連續(xù)模塊是指輸出信號(hào)隨著輸入信號(hào)發(fā)生連續(xù)變化的模塊,離散模塊則是輸出信號(hào)以固定間隔變化的模塊。對(duì)于連續(xù)模塊,simulink采用積分方式計(jì)算輸出信號(hào)的數(shù)值,因此,連續(xù)模塊主要涉及導(dǎo)數(shù)的計(jì)算及其積分。離散模塊的輸出信號(hào)在下一個(gè)抽樣時(shí)刻到來之前保持恒定,這時(shí)simulink只需以一定的間隔計(jì)算輸出信號(hào)的數(shù)值?;旌夏K是根據(jù)輸入信號(hào)的類型來確定輸出信號(hào)類型的,它既能夠產(chǎn)生連續(xù)輸出信號(hào),也能夠產(chǎn)生離散輸出信號(hào)。 2.2 simulink的工作環(huán)境
49、 當(dāng)采用simulink進(jìn)行建模和仿真時(shí),一般是從simulink模型庫中提供的模塊出發(fā),通過組合各種模塊來完成模塊的設(shè)計(jì)。simulink模型庫提供了一種模塊的集成環(huán)境,通過它可以快速地開發(fā)各種仿真模型。 2.2.1 simulink的模型庫 在matlab的工作區(qū)中輸入“simulink”或是單擊matlab工具欄上的,就進(jìn)入如2-1圖所示的模型庫界面 圖2.1 simulink 模型庫 simulink模型庫中的仿真模塊組織成—個(gè)三級(jí)樹型結(jié)構(gòu),例如,圖2—1所示:Smulink于模型庫包含了Continuous、Discontinuities、Discrete等下一級(jí)的模型
50、庫,其中Continuous模型庫中包含了若干個(gè)模塊,這些模塊可以直接加入到自己的仿真模型中。 2.2.2 設(shè)計(jì)仿真模型 在matlab或simulink窗口的工具欄中依次選擇“file”︱“new”︱“model”,自動(dòng)生成一個(gè)空白的仿真模型模型窗口,如圖2-2所示 圖2.2 空白仿真模型 在設(shè)計(jì)仿真模型的過程中,如果在simulink模型庫中包含了仿真模型所需的模塊,則在simulink模型庫中選中這個(gè)模塊,單擊鼠標(biāo)右鍵,從浮動(dòng)菜單中選擇“Add to untitled”(或直接把模塊拖到仿真模型中),這時(shí)候就把這個(gè)選中的模塊加入到仿真模型中了。 simulin
51、k模型庫窗口提供了模塊查找功能。在simulink模型庫窗口的工具欄上單擊按鈕,彈出如圖2—3所示的模塊查找對(duì)話框。輸入所需查找的模塊名稱的關(guān)鍵字,單擊“find Next”按鈕,則simulink自動(dòng)搜索整個(gè)模型庫。 圖2.3 simulink搜索模型 simulink模型庫中的模塊一般具有各種參數(shù)設(shè)置。在仿真模型窗口中雙擊模塊,彈出該模塊的參數(shù)設(shè)置對(duì)話框,這時(shí)候可以修改模塊中各個(gè)參數(shù)的數(shù)值。通常情況下,仿真模塊的設(shè)計(jì)過程就是對(duì)simulink模型庫中各個(gè)模塊的一種組合。如果simulink模型庫中沒有所需的模塊,這時(shí)候可以通過s—函數(shù)構(gòu)造自己的模塊,并且把這個(gè)模塊與其他si
52、mulink模塊合起來,實(shí)現(xiàn)相應(yīng)的仿真功能。關(guān)于S—函數(shù)的內(nèi)容,將在后面進(jìn)行詳細(xì)論述。 2.2.3 運(yùn)行仿真 仿真模型有兩種運(yùn)行方式:菜單方式和命令行方式。在simulink中打開仿真模型,然后在菜單欄中依次選擇“simulation”“start”,或者在工具欄上單擊缺鈕,則仿真模型將以菜單方式運(yùn)行。菜單方式的優(yōu)點(diǎn)在于它的交互性,通過在仿真模型中設(shè)置示波器模塊(Scope)或顯示模塊(Display)可以在仿真過程中觀察輸出信號(hào)的數(shù)值。同時(shí),有些仿真模塊還允許用戶在不中斷仿真進(jìn)程的條件下隨時(shí)更改模塊的參數(shù)設(shè)置。 命令行方式一般用于執(zhí)行批處理方式的仿真,它是通過MATLAB命令“sim”
53、啟動(dòng)仿真進(jìn)程,例如,在matlab工作區(qū)中輸入“sim (‘rayleighfading’)”命令后,simulink開始運(yùn)行仿真模型rayleighfading。如果需要多次運(yùn)行仿真程序,可以把這些命令編寫成—個(gè)M文件,然后在matlab工作區(qū)中執(zhí)行這個(gè)M文件就可以了。用命令行方式啟動(dòng)仿真模型后,simulink并不自動(dòng)打開相應(yīng)的模型,因此不能直接觀察仿真的進(jìn)程,但是仍然可以通過各種顯示不模塊觀察輸出信號(hào)。 matlab把工作區(qū)和simulink集成在一起,因此仿真模型的兩種運(yùn)行方式可以交互使用。一般情況下,仿真結(jié)果保存到上作區(qū)中,用戶可以在仿真結(jié)束之后對(duì)仿真結(jié)果進(jìn)行分析和加工,并且根據(jù)仿
54、真數(shù)據(jù)繪制各種圖表。 2.2.4 建立子系統(tǒng) 在Simulink中,若干個(gè)仿真模塊可以組合起來構(gòu)成—個(gè)子系統(tǒng)(subsystem),以減少每個(gè)仿真模型窗口中顯示的仿真模塊的數(shù)日。采用子系統(tǒng)的另外一個(gè)好處是可以把復(fù)雜的仿真模型按照功能關(guān)系組織成等級(jí)結(jié)構(gòu),使得每個(gè)子系統(tǒng)都是—個(gè)相對(duì)獨(dú)立的功能實(shí)體,這些子系統(tǒng)組合起來構(gòu)成一個(gè)功能更強(qiáng)的子系統(tǒng)。 Simulink子系統(tǒng)可以按照自頂向下的方式進(jìn)行構(gòu)造。首先,在仿真模型中添加一個(gè)子系統(tǒng)模塊(subsystem),設(shè)置這個(gè)子系統(tǒng)模塊的名稱,然后雙擊該模塊,待打開該模塊之后就可以對(duì)子系統(tǒng)的功能進(jìn)行設(shè)計(jì)了。子系統(tǒng)的輸入、輸出分別由Simul
55、ink模型庫中的輸入端口模塊(in)和輸出端口模塊(out)構(gòu)造,在設(shè)計(jì)子系統(tǒng)的過程中可以根據(jù)需要添加若干個(gè)這樣的輸入輸出模塊。 另外—個(gè)構(gòu)造子系統(tǒng)的方法是自底向上,即先在同—個(gè)窗門中添加各個(gè)Simulink模塊,當(dāng)模塊的數(shù)目增加到一定的限度時(shí),可以選中其中若干個(gè)模塊(按住shift鍵后單擊各個(gè)需要組合的模塊),然后單擊鼠標(biāo)右鍵,在彈出的菜單中選擇Create Subsystem,這時(shí)候就創(chuàng)建了一個(gè)子系統(tǒng),并且Simulink自動(dòng)為這個(gè)于系統(tǒng)設(shè)置了輸入端口和輸出端口。在Simulink中,子系統(tǒng)和輸入、輸出端口的名稱都可以由用戶自行設(shè)置。 子系統(tǒng)的命名方式類似于系統(tǒng)目錄的命
56、名,每個(gè)子系統(tǒng)的名稱是它所在上一級(jí)系統(tǒng)名稱與子系統(tǒng)名稱的組合,中間以反斜杠(“/”)分隔。例如,“preject5_1/source”,表示preject5_1模型中名為source的子系統(tǒng)。 用戶可以設(shè)置子系統(tǒng)在雙擊之后的打開萬式。選擇菜單欄上的“file”︱“Preferences…”命令打開如圖2—4所示的對(duì)話柜,在左邊的列表框中選擇“Simulink”,這時(shí)候可以在右邊面板的“window reuse”下拉列表中選擇所需的方式。 圖2.4 matlab的preferences對(duì)話框 如果把“window reuse”設(shè)置為“none”,雙擊子系統(tǒng)時(shí),simulink在新窗口
57、中打開子系統(tǒng),原窗口保持不變:如果“window reuse”設(shè)置為“reuse”,simulink在當(dāng)前窗口中打開子系統(tǒng):如果“window reuse”設(shè)置為“replace”,simulink在新窗口中打開子系統(tǒng),同時(shí)原窗口消失:如果“window reuse”設(shè)置為“mixed”,simulink在新窗口中打開子系統(tǒng),同時(shí)保持原窗口不變,這種方式與none的差別在于,當(dāng)在于系統(tǒng)中選擇菜單欄上的“VIew”︱“go to parent”命令返回上一級(jí)系統(tǒng)時(shí),none方式中這個(gè)子系統(tǒng)窗口不會(huì)消失,而mixer方式的子系統(tǒng)窗口被自動(dòng)隱藏。 2.2.5 封裝子系統(tǒng) simulink模塊庫中
58、的每一個(gè)模塊部有它獨(dú)特的圖標(biāo)和參數(shù)設(shè)置對(duì)話框。對(duì)于用戶自己創(chuàng)建的子系統(tǒng),也可以通過simulink來設(shè)置該模塊的圖標(biāo)和參數(shù)。選中某個(gè)子系統(tǒng),單擊右鍵后從彈出式菜單中選擇“Mask subsynem”,這時(shí)候就創(chuàng)建了一個(gè)封裝子系統(tǒng)(Masked subsynem)。需要注意的是,對(duì)于一個(gè)已經(jīng)被封裝的子系統(tǒng),它的Mask subsynem命令無效。 子系統(tǒng)轉(zhuǎn)化成封裝子系統(tǒng)之后,simulink彈出一個(gè)封裝編輯器對(duì)話框,這時(shí)候可以設(shè)置封裝子系統(tǒng)的圖標(biāo)和模塊參數(shù)。封裝編輯器共有4個(gè)屬性頁,分別用與設(shè)置模塊的圖標(biāo)、參數(shù)、初始化代碼以及文檔信息。在Icon屬性頁中,讀者可以設(shè)置模塊的外觀屬性,并且可以
59、在Drawing commands編輯框中輸入代碼,以繪制模塊的圖標(biāo)。我們可以通過MATLAB命令行“disp(‘source’)”在模塊中顯示一行文字“Source”。 通過Parameters屬性頁我們可以設(shè)置封裝子系統(tǒng)的白定義參數(shù),這些參數(shù)將出現(xiàn)在封裝子系統(tǒng)的參數(shù)設(shè)置對(duì)話框中。對(duì)于每一個(gè)自定義參數(shù),它有一個(gè)用于在參數(shù)設(shè)置對(duì)話框中顯示的名稱(prompt)和—個(gè)變量名稱。每個(gè)自定義參數(shù)可以通過編輯框(edit)、復(fù)選框(checkbox)或者是下拉列表(Popup)設(shè)置參數(shù)值。如果選擇了Evaluate復(fù)選框,則該參數(shù)的輸入將自動(dòng)轉(zhuǎn)化成數(shù)值傳遞給相應(yīng)的變量;否則,simulink
60、自動(dòng)把字符串傳遞給這個(gè)變量。如果選擇了tunable復(fù)選框,則該參數(shù)的數(shù)值可以在仿真過程中動(dòng)態(tài)改變。例如,對(duì)于名為samples Per symbl的白定義參數(shù),它的內(nèi)部變量名為samples Per symbl,用戶可以通過下拉列表“popup”來選擇該參數(shù)的數(shù)值2、3或4,同時(shí)simulink傳遞給變量samples Per symbl—個(gè)數(shù)值,并且該參數(shù)可以在仿真過程中動(dòng)態(tài)改變。 2.3 S函數(shù)及其簡(jiǎn)介 S-函數(shù)是系統(tǒng)函數(shù)(System-functions)的簡(jiǎn)稱。在很多情況下,Simulink 模型庫(Simulink Library)中的模塊不能完全滿足用戶的要求,這時(shí)候需要由用
61、戶自己來編寫相應(yīng)的代碼。M文件雖然能夠用來編寫 MATLAB 函數(shù)代碼,但是它不具備與 Simulink 的接口,因此難以與Simulink其他模塊一起使用。S-函數(shù)則提供了函數(shù)代碼與 Simulink之間的接口,使得用戶編寫的代碼既能夠像 Simulink 模型庫中的模塊那樣具有統(tǒng)一的仿真接口,同時(shí)能夠?qū)崱8鞣N靈活的控制和計(jì)算功能。從這個(gè)意義上說,S-函數(shù)是對(duì) Simulink模塊庫功能的擴(kuò)展。S-函數(shù)的代碼既可以用 MATLAB 語言編寫,也可以用其他通用的編程語言(如 C、C++、Ada 或 Fortran等)編寫,后者具有更強(qiáng)的控制能力,它們被編譯成 MEX(MATLAB EXecut
62、able)文件,并且在仿真過程中動(dòng)態(tài)裝載。 通過 S-函數(shù)可以方便地編寫仿真代碼以創(chuàng)建自己的 Simulink模塊,因此,S-函數(shù)是對(duì)Simulink模塊庫功能的擴(kuò)展。根據(jù)S-函數(shù)代碼使用的編程語言,S-函數(shù)可以分成 M 文件 S-函數(shù)(即用MATLAB語言編寫的 S-函數(shù))、C語言 S-函數(shù)、C++語言S-函數(shù)、Ada語言S-函數(shù)以及Fortran語言S-函數(shù)等。通過 S-函數(shù)創(chuàng)建的模塊具有與 Simulink模型庫中的模塊相同的特征,它可以與 Simulink求解器進(jìn)行交互,支持連續(xù)狀態(tài)和離散狀態(tài)模型。 2.3.1 S函數(shù)工作原理 每個(gè)Simulink模塊都可以表示成輸入信號(hào) x、
63、輸入信號(hào)y以及內(nèi)部狀態(tài)u之間的關(guān)系,如圖 3-1 所示。 內(nèi)部狀態(tài)u 輸出y 輸入x 圖2.5 simulink模塊基本模型 在某個(gè)時(shí)刻t,Simulink 模塊的內(nèi)部狀態(tài)u由兩部分組成:連續(xù)狀態(tài)和離散狀態(tài),且u=+,此時(shí)輸出信號(hào), 連續(xù)狀態(tài)的導(dǎo)數(shù),離散狀態(tài)。Simulink根據(jù)連續(xù)狀態(tài)導(dǎo)數(shù)方程進(jìn)行積分運(yùn)算,得到各個(gè)連續(xù)狀態(tài)的數(shù)值,同時(shí)通過離散狀態(tài)方程計(jì)算離散狀態(tài)的當(dāng)前值。這樣,Simulink就可以得到各個(gè)時(shí)刻的狀態(tài)及其輸出信號(hào),實(shí)現(xiàn)對(duì)仿真結(jié)果的求解。 在仿真過程中,每個(gè) Simulink模塊的執(zhí)行過程可以分成 3 個(gè)階段:初始化階段、仿真循環(huán)階段和仿真結(jié)束階段。在
64、初始化階段,Simulink把各個(gè)模塊調(diào)入內(nèi)存,檢查模塊的數(shù)據(jù)類型和長(zhǎng)度,設(shè)置仿真時(shí)間間隔,制訂仿真模塊的執(zhí)行順序,以及內(nèi)存分配。在仿真循環(huán)階段,Simulink按照初始化階段制定的順序依次執(zhí)行各個(gè)模塊,計(jì)算當(dāng)前時(shí)刻的離散狀態(tài)和輸出信號(hào),以小步長(zhǎng)積分的方式計(jì)算各個(gè)連續(xù)狀態(tài)的數(shù)值以及由此產(chǎn)生的輸出。這個(gè)過程一直持續(xù)到仿真過程結(jié)束,然后Simulink進(jìn)入仿真結(jié)束階段,清理各種已經(jīng)分配的資源,同時(shí)保存仿真過程中產(chǎn)生的數(shù)據(jù)。 初始化 計(jì)算下一個(gè)抽樣時(shí)間 更新離散狀態(tài) 計(jì)算過零點(diǎn) 計(jì)算連續(xù)狀態(tài)導(dǎo)數(shù) 計(jì)算連續(xù)狀態(tài)導(dǎo)數(shù) 計(jì)算輸出信號(hào) 循 環(huán) 仿 真 仿真結(jié)束
65、 圖2.6 simulink模塊仿真流程 對(duì)應(yīng)于仿真流程中的每一個(gè)步驟,Simulink中的S-函數(shù)調(diào)用預(yù)先設(shè)定的函數(shù)來實(shí)現(xiàn)相應(yīng)的功能。例如,我們可以編寫一個(gè)mdlInitializeSizes函數(shù)實(shí)現(xiàn)S-函數(shù)的初始化操作,通過mdlDerivatives和mdlUpdate函數(shù)在每一個(gè)抽樣時(shí)刻分別計(jì)算連續(xù)狀態(tài)變量的導(dǎo)數(shù)和更新離散狀態(tài)的數(shù)值,在mdlOutputs函數(shù)中計(jì)算S-函數(shù)的輸出信號(hào)等。需要指出的是,這些函數(shù)的名稱都可以由用戶自己設(shè)定。用戶需要在S-函數(shù)的主體部分對(duì)這些函數(shù)進(jìn)行注冊(cè),Simulink通過回調(diào)函數(shù)(Ca
66、llback Function)的方式在不同事件發(fā)生的時(shí)候調(diào)用相應(yīng)的函數(shù)。 2.3.2 S函數(shù)基本概念 在編寫S-函數(shù)的時(shí)候經(jīng)常涉及到的概念有3個(gè):直接反饋(Direct feedthrough)、可變長(zhǎng)度輸入(Dynamically sized inputs)以及抽樣時(shí)刻和偏移(Setting sample times and offsets),它們是編寫S-函數(shù)的基礎(chǔ)。 1. 直接反饋 簡(jiǎn)單說來,直接反饋(Direct feedthrough)指的是輸入信號(hào)是否直接影響著輸出信號(hào)和仿真的抽樣時(shí)間。在計(jì)算S-函數(shù)輸出信號(hào)的過程中,如果輸出信號(hào)(包括仿真過程中繪制的圖形)是輸入信號(hào)的函數(shù),那么這個(gè)S-函數(shù)存在直接反饋。同樣地,如果在可變步長(zhǎng)的仿真過程中,S-函數(shù)的輸入信號(hào)影響著對(duì)下一個(gè)仿真時(shí)刻的計(jì)算,這個(gè)S-函數(shù)也存在直接反饋。 Simulink根據(jù)模塊中的S-函數(shù)是否存在直接反饋來確定仿真模型中各個(gè)模塊的執(zhí)行順序。如果S-函數(shù)不存在直接反饋,在計(jì)算該模塊的輸出信號(hào)時(shí)這個(gè)模塊就可以不等待前一個(gè)模塊的輸出信號(hào),因而有可能先于前面的模塊執(zhí)行。在編寫S-函數(shù)的過程中,首要的是確
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。