matlab課程設(shè)計(含完整程序).doc_第1頁
matlab課程設(shè)計(含完整程序).doc_第2頁
matlab課程設(shè)計(含完整程序).doc_第3頁
matlab課程設(shè)計(含完整程序).doc_第4頁
matlab課程設(shè)計(含完整程序).doc_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

matlab 應(yīng)用實踐課程設(shè)計 課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書 學生姓名學生姓名: 王偉 _ 專業(yè)班級專業(yè)班級: 電子科學與技術(shù) 0703 班 指導教師指導教師: 鐘毅 _ 工作單位工作單位: 信息工程學院 題題 目目: 連續(xù)時間信號傅里葉級數(shù)分析及 matlab 實現(xiàn) 初始條件:初始條件: matlab 6.5 要求完成的主要任務(wù):要求完成的主要任務(wù): 深入研究連續(xù)時間信號傅里葉級數(shù)分析的理論知識,利用 matlab 強大的圖 形處理功能,符號運算功能以及數(shù)值計算功能,實現(xiàn)連續(xù)時間周期信號頻域分析 的仿真波形。 1.用 matlab 實現(xiàn)周期信號的傅里葉級數(shù)分解與綜合。 2.用 matlab 實現(xiàn)周期信號的單邊頻譜及雙邊頻譜。 3.用 matlab 實現(xiàn)典型周期信號的頻譜。 4.撰寫matlab 應(yīng)用實踐課程設(shè)計說明書。 時間安排:時間安排: 學習 matlab 語言的概況 第 1 天 學習 matlab 語言的基本知識 第 2、3 天 學習 matlab 語言的應(yīng)用環(huán)境,調(diào)試命令,繪圖能力 第 4、5 天 課程設(shè)計 第 6-9 天 答辯 第 10 天 指導教師簽名:指導教師簽名: 年年 月月 日日 系主任(或責任教師)簽名:系主任(或責任教師)簽名: 年年 月月 日日 matlab 應(yīng)用實踐課程設(shè)計 目 錄 摘要i abstractii 緒論1 1 matlab 內(nèi)容簡介.2 1.1 matlab 語言功能 2 1.2 matlab 語言特點 2 2 連續(xù)時間周期信號的傅里葉級數(shù)ctfs3 2.1 連續(xù)時間周期信號的分解 .3 2.1.1 三角形式的傅里葉級數(shù).3 2.1.2 指數(shù)形式的傅里葉級數(shù).4 2.2 連續(xù)時間周期信號的傅里葉綜合 .4 3 連續(xù)時間周期信號的頻譜分析6 4 周期信號的傅里葉級數(shù)分解與綜合的仿真波形8 4.1 實現(xiàn)流程 .8 4.2 matlab 算法提示 8 4.3 程序運行結(jié)果 .9 5 連續(xù)時間周期信號的頻譜分析的仿真波形.10 5.1 實現(xiàn)流程10 5.2 matlab 算法提示 11 5.3 程序運行結(jié)果及分析 .12 5.3.1 程序運行結(jié)果.12 5.3.2 脈沖寬度與頻譜的關(guān)系13 5.3.3 脈沖周期與頻譜的關(guān)系15 6 典型周期脈沖的頻譜18 6.1 周期方波脈沖頻譜的 matlab 實現(xiàn).18 6.2 周期三角波脈沖頻譜的 matlab 實現(xiàn)20 結(jié)束語23 致謝24 參考文獻25 附錄26 matlab 應(yīng)用實踐課程設(shè)計 i 摘要 matlab 目前已發(fā)展成為由 matlab 語言、matlab 工作環(huán)境、matlab 圖形 處理系統(tǒng)、matlab 數(shù)學函數(shù)庫和 matlab 應(yīng)用程序接口五大部分組成的集數(shù)值計算、 圖形處理、程序開發(fā)為一體的功能強大的系統(tǒng)。本次課程設(shè)計則在深入研究連續(xù)時間信 號傅里葉級數(shù)分析理論知識的基礎(chǔ)上,利用 matlab 強大的圖形處理功能、符號運算功 能以及數(shù)值計算功能,通過 matlab 編程進行圖形功能仿真,從而實現(xiàn)連續(xù)時間周期信 號頻域分析的仿真波形,包括以下內(nèi)容:用 matlab 實現(xiàn)周期信號的傅里葉級數(shù)分解與 綜合的波形;用 matlab 實現(xiàn)周期信號的單邊頻譜及雙邊頻譜的波形與分析;用 matlab 實現(xiàn)典型周期信號的頻譜的波形。 關(guān)鍵詞:matlab;圖形處理;傅里葉級數(shù);周期信號;頻譜 matlab 應(yīng)用實踐課程設(shè)計 ii abstract matlab now evolved into matlab language, matlab working environment, matlab graphics processing systems, matlab math library and the matlab application program interface has five major components of the set of numerical computation, graphics processing, program development as one powerful system. the curriculum design, in-depth study fourier series analysis of continuous-time signal on the basis of theoretical knowledge, using matlab a powerful graphics processing capabilities, symbolic computing and numerical computing capabilities, through the functional simulation matlab graphical programming in order to achieve continuous time periodic signal frequency domain analysis of the simulation waveforms, including the following: realization of periodic signals using matlab fourier series decomposition and integration of the waveform; periodic signals using matlab to achieve unilateral and bilateral spectrum waveform and spectrum analysis; using matlab to achieve a typical cycle of the signal wave spectrum. keywords: matlab; graphics processing; fourier series; periodic signal; spectrum matlab 應(yīng)用實踐課程設(shè)計 1 緒論 在科學技術(shù)飛速發(fā)展的今天,計算機正扮演著愈來愈重要的角色。在進行科學研究 與工程應(yīng)用的過程中,科技人員往往會遇到大量繁重的數(shù)學運算和數(shù)值分析,傳統(tǒng)的高 級語言basic、fortran 及c 語言等雖然能在一定程度上減輕計算量,但它們均要求應(yīng)用人 員具有較強的編程能力和對算法有深入的研究。另外,在運用這些高級語言進行計算結(jié) 果的可視化分析及圖形處理方面,對非計算機專業(yè)的普通用戶來說,仍存在著一定的難 度。matlab 正是在這一應(yīng)用要求背景下產(chǎn)生的數(shù)學類科技應(yīng)用軟件。它具有的頂尖的 數(shù)值計算功能、強大的圖形可視化功能及簡潔易學的“科學便捷式”工作環(huán)境和編程語 言,從根本上滿足了科技人員對工程數(shù)學計算的要求,并將科技人員從繁重的數(shù)學運算 中解放出來,因而越來越受到廣大科技工作者的普遍歡迎1。 matlab 是matrix 和laboratory 前三個字母的縮寫,意思是“矩陣實驗室”,是 mathworks 公司推出的數(shù)學類科技應(yīng)用軟件。其dos 版本(matlab 1.0)發(fā)行于1984 年,現(xiàn)已推出了windows 版本(matlab 5.3)。經(jīng)過十多年的不斷發(fā)展與完善, matlab 已發(fā)展成為由matlab 語言、matlab 工作環(huán)境、matlab 圖形處理系統(tǒng)、 matlab 數(shù)學函數(shù)庫和matlab 應(yīng)用程序接口五大部分組成的集數(shù)值計算、圖形處理、 程序開發(fā)為一體的功能強大的系統(tǒng)。matlab 由“主包”和三十多個擴展功能和應(yīng)用學 科性的工具箱(toolboxs)組成。 matlab 語言是以矩陣計算為基礎(chǔ)的程序設(shè)計語言,語法規(guī)則簡單易學,用戶不用 花太多時間即可掌握其編程技巧。其指令格式與教科書中的數(shù)學表達式非常相近,用 matlab 編寫程序尤如在便箋上列寫公式和求解,因而被稱為“便箋式”的編程語言。另 外,matlab 還具有功能豐富和完備的數(shù)學函數(shù)庫及工具箱,大量繁雜的數(shù)學運算和分 析可通過調(diào)用matlab 函數(shù)直接求解,大大提高了編程效率,其程序編譯和執(zhí)行速度遠 遠超過了傳統(tǒng)的c 和fortran 語言,因而用matlab 編寫程序,往往可以達到事半功倍 的效果。在圖形處理方面,matlab 可以給數(shù)據(jù)以二維、三維乃至四維的直觀表現(xiàn),并 在圖形色彩、視角、品性等方面具有較強的渲染和控制能力,使科技人員對大量原始數(shù) 據(jù)的分析變得輕松和得心應(yīng)手。 正是由于 matlab 在數(shù)值計算及符號計算等方面的強大功能,使matlab一路領(lǐng) 先,成為數(shù)學類科技應(yīng)用軟件中的佼佼者。目前,matlab 已成為國際上公認的最優(yōu)秀 的科技應(yīng)用軟件。matlab 的上述特點,使它深受工程技術(shù)人員及科技專家的歡迎,并 很快成為應(yīng)用學科計算機輔助分析、設(shè)計、仿真、教學等領(lǐng)域不可缺少的基礎(chǔ)軟件。 matlab 應(yīng)用實踐課程設(shè)計 2 1 matlab 內(nèi)容簡介 1.1 matlab 語言功能 matlab功能豐富,可擴展性強。matlab軟件包括基本部分和專業(yè)擴展兩大部分 的功能。基本部分包括:矩陣的運算和各種變換;代數(shù)和超越方程的求解;數(shù)據(jù)處理和 傅立葉變換;數(shù)值部分等等,可以充分滿足大學理工科本科的計算需要。擴展部分稱為 工具箱。它實際上是用matlab的基本語句辯稱的各種子程序集,用于解決某一方面的 專門問題,或?qū)崿F(xiàn)某一類的新算法。 matlab 具有以下基本功能: (1)數(shù)值計算功能; (2)符號計算功能; (3)圖形處理及可視化功能; (3)可視化建模及動態(tài)仿真功能。 1.2 matlab 語言特點 matlab 給用戶帶來的是最直觀、最簡潔的程序開發(fā)環(huán)境。它具有以下特點: (1)語言簡潔緊湊,使用方便靈活,庫函數(shù)極其豐富。matlab 程序書寫形式自 由,利用起豐富的庫函數(shù)避開繁雜的子程序編程任務(wù),壓縮了一切不必要的編程工作。 由于庫函數(shù)都由本領(lǐng)域的專家編寫,用戶不必擔心函數(shù)的可靠性。 (2)運算符豐富。由于matlab 是用c 語言編寫的,matlab 提供了和c語言幾 乎一樣多的運算符,靈活使用matlab 的運算符將使程序變得極為簡短。 (3)matlab 既具有結(jié)構(gòu)化的控制語句(如for 循環(huán),while 循環(huán),break 語句和if 語句),又有面向?qū)ο缶幊痰奶匦浴?(4)程序限制不嚴格,程序設(shè)計自由度大。例如,在matlab 里,用戶無需對矩 陣預定義就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各種型號的計算機和操作系統(tǒng) 上運行。 (6)matlab 的圖形功能強大。在fortran 和c 語言里,繪圖都很不容易,但 在matlab 里,數(shù)據(jù)的可視化非常簡單。matlab 還具有較強的編輯圖形界面的能力。 (7)功能強大的工具箱是matlab 的另一特色。matlab 包含兩個部分:核心部 分和各種可選的工具箱。核心部分中有數(shù)百個核心內(nèi)部函數(shù)。其工具箱又分為兩類:功 能性工具箱和學科性工具箱。功能性工具箱主要用來擴充其符號計算功能,圖示建模仿 真功能,文字處理功能以及與硬件實時交互功能,而學科性工具箱是專業(yè)性比較強的, 如control,toolbox,signl proceessing, toolbox,commumnication toolbox 等。 matlab 應(yīng)用實踐課程設(shè)計 3 2 連續(xù)時間周期信號的傅里葉級數(shù)ctfs 周期信號是定義在區(qū)間,按一定時間間隔(周期)不斷重復的信號。它可表-+,t 示為,式中為任意整數(shù),為周期,周期的倒數(shù)稱為該信號的頻率2。 f t =f t+mtmt 2.1 連續(xù)時間周期信號的分解 設(shè)有周期信號 ,它的周期為t ,角頻率,且滿足狄里赫里條件,則 f t 2 =2 f= t 該周期信號可以展開成傅里葉級數(shù),即可表示為一系列不同頻率的正弦或復指數(shù)信號之 和。傅里葉級數(shù)有三角形式和指數(shù)形式兩種2。 2.1.1 三角形式的傅里葉級數(shù) 三角形式的傅里葉級數(shù)為: 0 12 2 tcoscos 2 a fatat 12 sinsin 2btbt 0 11 cossin 2 nn nn a an tbn t 1,2,3,n 2 1 式中系數(shù)、稱為傅里葉系數(shù),可由下式求得。 n a n b 2 2 2 2 2 2 0 1 2 cos 2 sin t t t t t t n n af t dt t af tn t dt t bf tn t dt t 22 如果將式中同頻率的正弦和余弦分量合并,則三角形式的傅里葉級數(shù)可表示為:2 1 0 1 tcos 2 nn n a fan t 1,2,3,n 23 matlab 應(yīng)用實踐課程設(shè)計 4 上式中 00 22, 1,2, arctan nnn n n n aa aabn a b 24 00 cos,1,2, sin nnn nnn aa aan ba 由式可見;傅里葉系數(shù)和都是或的函數(shù),其中是或的偶22 n a n bnn n ann 函數(shù),即有;而是或的奇函數(shù),即有。 n a n a n bnn n b n b 由式可見,是或的偶函數(shù),即有;而是或的奇函24 n ann n a n a n nn 數(shù),即有。 n n 式表明,任何滿足狄里赫里條件的周期信號可分解為一系列不同頻率的余弦23 (或正弦)分量的疊加。其中第一項是常數(shù)項,它是周期信號中所包含的直流分量; 0 2a 第二項稱為基波或一次諧波,它的角頻率與原周期信號相同,是基波振 11 cosat 1 a 幅,是基波初相角;第三項稱為二次諧波,它的頻率是基波頻率的二 1 22 cos 2at 倍, 是二次諧波振幅,是其初相角;依此類推,還有三次、四次、 等諧波。一 2 a 2 般而言,稱為次諧波,是次諧波振幅,是其初相角。式cos nn an t n n an n 表明,周期信號可以分解為各次諧波分量的疊加。23 2.1.2 指數(shù)形式的傅里葉級數(shù) 指數(shù)形式的傅里葉級數(shù)表達式為: ,0, 1, 2, 3, jn t n n f tf en 25 即周期信號可分解為一系列不同頻率的虛指數(shù)信號之和,式中稱為傅里葉復系數(shù), n f 可由下式求得: 2 2 1 t t jn t n ff t edt t 26 matlab 應(yīng)用實踐課程設(shè)計 5 2.2 連續(xù)時間周期信號的傅里葉綜合 任何滿足狄里赫里條件的周期信號,可以表示成式或的和式形式,2 125 或式常稱為ctfs綜合公式。2 125 一般來說,傅里葉級數(shù)系數(shù)有無限個非零值,即任何具有有限個間斷點的周期信號 都一定有一個無限項非零系數(shù)的傅里葉級數(shù)表示。但對數(shù)值計算來說,這是無法實現(xiàn)的。 在實際的應(yīng)用中,但我們可以用有限項的傅里葉級數(shù)求和來逼近。即對有限項和 n jn t n nn f tf e 0 11 cossin 2 nn nn nn a an tbn t 27 當值取得較大時,上式就是原周期信號的一個很好的近似。式常稱作n f t27 的截斷傅里葉級數(shù)表示。 f t matlab的符號積分函數(shù)可以幫助我們求出連續(xù)時間周期信號的截斷傅里葉級 int 數(shù)及傅里葉表示。 求積指令的具體使用格式如下:int 給出符號表達式對指定變量的(不帶積分常數(shù)的)不定積分。intint,fff 給出符號表達式對指定變量的定積分。intint, , ,ffa bf matlab 應(yīng)用實踐課程設(shè)計 6 3 連續(xù)時間周期信號的頻譜分析 如前所述,周期信號可以分解成一系列正弦(余弦)信號或虛指數(shù)信號之和,即 n jn t n nn f tf e 0 11 cossin 2 nn nn nn a an tbn t 3 1 其中, 11 22 n j nnnn fa eajb 32 或 幅度和相位 22 11 | 22 arctan nnnn n n n faab b a 為了直觀地表示出信號所含各分量的振幅或,隨頻率的變化情況,通常以角 n a| n f 頻率為橫坐標,以各次諧波的振幅或虛指數(shù)函數(shù)的幅度為縱坐標,畫出如圖3.1和3.2 n a| n f 所示的各諧波的振幅或與角頻率的關(guān)系圖,稱為周期信號的幅度(振幅)頻譜, n a| n f 簡稱幅度譜。圖中每條豎線代表該頻率分量的幅度,稱為譜線。各譜線頂點連線的曲線 (如圖中原點所示)稱為頻譜包絡(luò)線,它反映了各諧波分量幅度隨頻率變化的情況。圖 3.1中幅度譜為單邊幅度譜(用繪制的頻譜)。圖3.2中幅度譜為雙邊幅度譜(用繪 n a| n f 制的頻譜)。 類似地,也可畫出各諧波初相角與角頻率的關(guān)系圖,如圖3.1和3.2中各諧波初相角 n 與角頻率的關(guān)系圖,稱為相位頻譜,簡稱相位譜。圖3.1中相位譜為單邊相位譜。圖3.2 n 中相位譜為雙邊相位譜。如果為實數(shù),那么可用的正負來表示為0或也可把幅度 n f n f n 譜和相位譜畫在一張圖上。 由圖可見,周期信號的譜線只出現(xiàn)在頻率為等原周期信號頻率的整數(shù)倍的0,2 ,. 離散頻率上,即周期信號的頻譜是離散譜。 matlab 應(yīng)用實踐課程設(shè)計 7 圖3.1 周期信號的幅度譜和相位譜(單邊) 圖3.2 周期信號的幅度譜和相位譜(雙邊) 由此可見周期信號頻譜具有三個特點: (1)離散性,即譜線是離散的; (2)諧波性,即譜線只出現(xiàn)在基波頻率的整數(shù)倍上; (3)收斂性,即諧波的幅度隨諧波次數(shù)的增高而減小3。 matlab的符號積分函數(shù)、一維數(shù)組的尋訪概念和可以幫助我們求出 int fliplr 連續(xù)時間周期信號的頻譜(傅里葉級數(shù)分析法)。 matlab 應(yīng)用實踐課程設(shè)計 8 4 周期信號的傅里葉級數(shù)分解與綜合的仿真波形 matlab強大的符號運算功能為進行周期信號的分析提供了強有力的工具。以周期 矩形脈沖信號為例,采用三角形式傅里葉級數(shù)分解與綜合形式,利用matlab來實現(xiàn)周 期信號的分解與綜合過程。 周期矩形脈沖信號如圖4.1所示。其幅度為1,脈沖寬度為1,周期。tao 5*ttao 用式求出傅里葉級數(shù)分解系數(shù),運用matlab的符號運算功能,用式實現(xiàn)信223 1 號的綜合,諧波的階數(shù)nf =6。 圖4.1 周期矩形脈沖信號 4.1 實現(xiàn)流程 利用matlab實現(xiàn)上述分析過程的流程如下: (1)編寫子函數(shù)x=time_fun_x(t),用符號表達式表示出周期信號在第一個周期內(nèi)的 符號表達式,并賦值給返回符號變量x。 (2)編寫子函數(shù) y=time_fun_e(t),求出該周期信號在繪圖區(qū)間內(nèi)的信號樣值,并賦 值給返回變量y。 (3)編寫求解信號傅里葉系數(shù)及繪制合成波形圖的通用函數(shù)ctfs1.m,該函數(shù)的流 程如下: 調(diào)用函數(shù)time_fun_x(t),獲取周期信號的符號表達式。 求出信號的傅里葉系數(shù)。 求出各次諧波。 繪制各次諧波疊加波形圖。 調(diào)用函數(shù)time_fun_e(t),繪制原信號波形圖。 4.2 matlab 算法提示 (1) 采用符號積分 4求 內(nèi)時間函數(shù)的三角級數(shù)展開系數(shù):,int0,t 0 a 0 a n aas ,即計算式。 n bbs22 (2) 用循環(huán)語句求出三角級數(shù)展開系數(shù),的數(shù)值:分別為,.for end n a n b_asym matlab 應(yīng)用實踐課程設(shè)計 9 。_bsym (3) 用語句輸出三角級數(shù)展開系數(shù),。 disp_asym_bsym (4) 用傅里葉三角級數(shù)展開式合成(綜合)連續(xù)時間信號。3 1 (5) 化簡表達式,據(jù)函數(shù)的奇偶性,可知,若為奇函數(shù),則。若為偶 f t n a0 f t 函數(shù),則,以此化簡三角級數(shù)展開式。0 n b 源程序見附錄中程序一。 4.3 程序運行結(jié)果 調(diào)用ctfs1.m函數(shù)文件,即可繪出周期矩形波信號各次諧波的合成波形。指令如下: 在matlab命令窗口鍵入ctfs1,并回車,即可繪出周期矩形波信號各次諧波的合成波 形,如圖4.2所示。 圖4.2 周期矩形脈沖信號的合成 由圖4.2可見,當它所包含的諧波分量越多時,合成波形愈接近于原來的矩形波脈沖 (圖中虛線)。由圖4.2還可以看到,合成波形所包含的諧波分量愈多時,除間斷點附近 外,它越接近于原矩形波脈沖。在間斷點附近,隨著所含諧波次數(shù)的增加,合成波形的 尖峰愈接近間斷點,但尖峰幅度并未明顯減少??梢宰C明,即使合成波形所含諧波次數(shù) 時,在間斷點處仍有約9%的偏差,這種現(xiàn)象稱為吉布斯(gibbs)現(xiàn)象。在傅里葉n 級數(shù)的項數(shù)取得很大時,間斷點處尖峰下的面積非常小以致趨近于零,因而在均方的意 義上合成波形同原波形的真值之間沒有區(qū)別4。 matlab 應(yīng)用實踐課程設(shè)計 10 5 連續(xù)時間周期信號的頻譜分析的仿真波形 由周期信號頻譜分析只要求出了周期信號傅里葉級數(shù)(或)及,我們就可根 n a n f n 據(jù)(或)及隨頻率的變化關(guān)系畫出信號的振幅和相位頻譜。以圖5.1 n a n f n n 2 t 所示的周期矩形脈沖信號為例,利用matlab繪制周期信號的頻譜圖,并對周期信號的 頻譜特性進行分析。 圖5.1 周期矩形脈沖信號 由于繪制頻譜的前提是必須先求出周期信號的傅里葉系數(shù),因此只需對求周期信號 傅里葉級數(shù)的函數(shù)ctfs1.m進行適當修改,即可編寫出繪制周期信號頻譜的通用函數(shù)。由 于周期信號的頻譜是離散的,故在繪制頻譜時,采用stem命令而不是plot命令3。 5.1 實現(xiàn)流程 采用三角形式傅里葉級數(shù)分解形式,用式求出傅里葉級數(shù)分解系數(shù)和,22 n a n b 再用式求出傅里葉復指數(shù)系數(shù),并畫出的振幅和相位頻譜。諧波的階數(shù)nf 可32 n f n f 任意指定為60。 利用matlab實現(xiàn)上述分析過程的流程如下: (1)編寫子函數(shù)y=time_fun_s(t),用符號表達式表示出周期信號在第一個周期內(nèi)的 符號表達式,并賦值給返回符號變量y。 (2)編寫子函數(shù)x=time_fun_e,求出該周期信號在繪圖區(qū)間內(nèi)的信號樣值,并賦值 給返回變量x。 (3)編寫求解信號傅里葉復指數(shù)系數(shù)及繪制頻譜圖的通用函數(shù),該函數(shù)的流程如 n f 下: 調(diào)用函數(shù)time_fun_s(t),獲取周期信號的符號表達式。 求出信號的三角級數(shù)形式的傅里葉級數(shù)展開系數(shù)和。 n a n b matlab 應(yīng)用實踐課程設(shè)計 11 求出信號的復指數(shù)形式的傅里葉級數(shù)展開系數(shù)。 n f 繪制的振幅頻譜圖和相位頻譜圖。 n f 調(diào)用函數(shù)time_fun_e,繪制信號波形圖。 5.2 matlab 算法提示 (1)采用符號積分求內(nèi)時間函數(shù)的三角級數(shù)展開系數(shù):,int0,t 0 a 0 a n aas 。即計算式。 n bbs22 (2)用循環(huán)語句求出三角級數(shù)展開系數(shù),的數(shù)值:并賦值給變量.for end n a n b ,如圖5.2所示。1sym k _1bsym k 圖5.2 三角級數(shù)展開系數(shù),頻譜(n=k+1:nf) n a n b (3)從三角級數(shù)展開系數(shù),得到復指數(shù)展開系數(shù)為了得到復指數(shù)展開系數(shù) n a n b n f 必須先求出三角形式的傅里葉級數(shù)展開系數(shù)和,如圖5.2所示,再據(jù)式求出 n f n a n b32 。但要注意、和的自變量取值情況,即: n f n a n b n f 從上式的自變量取值情況及圖5.2可見,三角級數(shù)展開系數(shù),的變量的取值范 n a n bn 圍為,而指數(shù)形式展開系數(shù)的變量的取值范圍為,為0,1,2,3,.,nn n fn0, 1, 2,.,nn matlab 應(yīng)用實踐課程設(shè)計 12 了從和得到,需要用到matlab的反折函數(shù)fliplr來實現(xiàn)頻譜的反折。 n a n b n f 雙邊、單邊(幅度,相位)頻譜分析源程序見附錄程序二。 5.3 程序運行結(jié)果及分析 5.3.1 程序運行結(jié)果 調(diào)用ctfs2.m函數(shù)文件,即可繪出周期矩形波信號的頻譜。指令如下:在matlab 命令窗口鍵入ctfs2,并回車,命令窗口將出現(xiàn):pleas input 所需展開的最高諧波次數(shù) nf=?,輸入nf=60 然后命令窗口將出現(xiàn):pleas input 信號的周期t=?,輸入周期t=5, 然后命令窗口又出現(xiàn):周期與脈沖寬度之比m=?,輸入m =5,即可繪出周期矩形波信號 的雙邊頻譜,如圖5.3所示。修改繪制周期矩形脈沖雙邊頻譜的函數(shù)文件ctfs2.m,將其 改為繪制周期矩形脈沖單邊頻譜的函數(shù)文件ctfs21.m,則可繪出單邊頻譜如圖5.4所示。 圖5.3 周期t=5,脈寬tao=1 的矩形脈沖及雙邊頻譜圖 matlab 應(yīng)用實踐課程設(shè)計 13 圖5.4 周期t=5,脈寬tao=1 的矩形脈沖及單邊頻譜圖 由圖5.3和5.4可見,周期矩形脈沖的頻譜具有一般周期信號頻譜的共同特點,即它們 的頻譜都是離散的。僅含有的各分量,其相鄰兩譜線的間隔是,同時單n 2t 邊譜僅為雙邊譜的一半波形。 5.3.2 脈沖寬度與頻譜的關(guān)系 重復調(diào)用周期矩形脈沖單邊頻譜的函數(shù)文件,當窗口出現(xiàn)輸入信號諧波次數(shù)nf,周 期t,周期與脈沖寬度之比m時,分別將信號設(shè)置為表5-1所示三種情況,則可繪出表5-1 所示各情況的信號波形及頻譜圖,如圖5.5所示。 表5-1 周期矩形脈沖脈寬取值參數(shù)表 周期t555 脈沖寬度tao 被展開函數(shù)的時間 區(qū)間的左端a=tao/2 0.6250.31250.15625 matlab 應(yīng)用實踐課程設(shè)計 14 a 周期t=5,脈沖寬度tao=t/4=1.25,a=tao/2=0.625 的矩形脈沖頻譜 b 周期t=5,脈沖寬度tao=t/8=0.625, a=tao/2=0.3125 的矩形脈沖頻譜 matlab 應(yīng)用實踐課程設(shè)計 15 c 周期t=5,脈沖寬度tao=t/16=0.3125, a=tao/2=0.15625 的矩形脈沖頻譜 圖5.5 脈沖寬度與頻譜的關(guān)系 由圖5.5可見,由于周期t相同,因而相鄰譜線的間隔相同;脈沖寬度tao愈窄,其頻 譜包絡(luò)線第一個零點的頻率愈高,即信號帶寬愈寬,頻帶內(nèi)所含的分量愈多??梢?,信 號的頻帶寬度與脈沖寬度tao成反比2。 5.3.3 脈沖周期與頻譜的關(guān)系 重復調(diào)用繪制周期矩形脈沖單邊頻譜的函數(shù)文件,當窗口出現(xiàn)輸入信號諧波次數(shù) nf,周期t,周期與脈沖寬度之比m 時,分別將信號設(shè)置為表5-2所示各種情況(即信號 時域?qū)挾缺3植蛔儯?,則可繪出表5-2所示各情況下的信號波形及頻譜圖如圖5.6所示。 表5-2 周期矩形脈沖周期取值參數(shù)表 脈沖寬度tao111 周期t 被展開函數(shù)的時間 區(qū)間的左端a=tao/2 0.50.50.5 matlab 應(yīng)用實踐課程設(shè)計 16 a 脈沖寬度tao=1,周期t=4*tao =4的矩形脈沖頻譜 b 脈沖寬度tao=1,周期t=8*tao =8 的矩形脈沖頻譜 matlab 應(yīng)用實踐課程設(shè)計 17 c 脈沖寬度tao=1,周期t=16*tao =16 的矩形脈沖頻譜 圖5.6 周期與頻譜的關(guān)系 由圖5.6可見,由于周期脈沖信號的時域?qū)挾炔蛔儯@時頻譜包絡(luò)線的零點所在位置 不變,而當周期增長時,相鄰譜線的間隔減少,頻譜變密。如果周期無限增長(這時就 成為非周期信號),那么,相鄰譜線的間隔將趨近于零,周期信號的離散頻譜就過渡到 非周期信號的連續(xù)頻譜。隨著周期的增長,各諧波分量的幅度也相應(yīng)減少。脈沖周期t 愈長,譜線間隔愈小,頻譜越稠密;反之,則越稀疏2。 matlab 應(yīng)用實踐課程設(shè)計 18 6 典型周期脈沖的頻譜 6.1 周期方波脈沖頻譜的 matlab 實現(xiàn) 周期方波脈沖信號如圖6.1所示,其幅度為1,脈沖寬度占空比:duty=1/2,周期 t=5。 圖6-1 周期方波脈沖 編寫ctfs3.m函數(shù)文件,源程序文件見附錄程序三。調(diào)用函數(shù)ctfs3.m,即可繪出方 波脈沖的雙邊頻譜如圖6.2所示,其中周期t和占空比duty可變,修改程序即可得到單邊頻 譜如圖6.3所示。 a 周期為t=5,占空比duty=50的方波脈沖雙邊頻譜 matlab 應(yīng)用實踐課程設(shè)計 19 b 周期為t=10,占空比duty=80的方波脈沖雙邊頻譜 圖6.2 方波脈沖雙邊幅度譜 a 周期為t=5,占空比duty=50的方波脈沖單邊頻譜 matlab 應(yīng)用實踐課程設(shè)計 20 b 周期為t=10,占空比duty=80的方波脈沖單邊頻譜 圖6.3 方波脈沖單邊幅度譜 由圖可以看出,周期方波信號頻譜與周期矩形脈沖信號具有相同的規(guī)律,由于方波 的周期與脈寬比,因此頻譜的第一個過零點內(nèi)只有兩根譜線。2 t 6.2 周期三角波脈沖頻譜的 matlab 實現(xiàn) 周期三角波脈沖如圖6.4所示,周期t=5,其幅度為1。 圖6.4 周期三角波脈沖 matlab 內(nèi)置有產(chǎn)生三角波的函數(shù)sawtooth(t),其調(diào)用格式為:x= sawtooth(t,width): 根據(jù)width值的不同產(chǎn)生不同形狀的三角波,參數(shù)width 是01 之間的標量,指定在一個周 期之間最大值的位置,width是該位置的橫坐標和周期的比值.因而,當width=0.5 時產(chǎn)生標準 的對稱三角波,當width時(可缺省)產(chǎn)生鋸齒波。 編寫ctfs4.m函數(shù)文件,源程序文件見附錄程序四。調(diào)用函數(shù)ctfs4.m,即可繪出方 波脈沖的雙邊頻譜如圖6.5所示,其中周期t和width可變,修改程序即可得到單邊頻譜如 圖6.6所示。 matlab 應(yīng)用實踐課程設(shè)計 21 a 周期t=5,width=0.5的三角脈沖雙邊頻譜 b 周期t=10,width=1的三角脈沖雙邊頻譜 圖6.5 周期三角波雙邊幅度頻譜 matlab 應(yīng)用實踐課程設(shè)計 22 a 周期t=5,width=0.5的三角脈沖單邊頻譜 b 周期t=10,width=1的三角脈沖單邊頻譜 圖6.6周期三角波單邊幅度頻譜 matlab 應(yīng)用實踐課程設(shè)計 23 結(jié)束語 本次課程設(shè)計至此已經(jīng)接近尾聲,一周的時間雖然很短暫,但在這一個星期的設(shè)計 過程中收獲頗多。設(shè)計的核心內(nèi)容就是利用 matlab 強大的圖形處理功能,符號運算功 能以及數(shù)值計算功能,實現(xiàn)連續(xù)時間周期信號頻域分析的仿真波形。整個設(shè)計過程中首 先對所學的信號與系統(tǒng)與數(shù)字信號處理有了更深的了解,比如傅立葉級數(shù)、信號頻譜等; 其次,實現(xiàn)過程是通過 matlab 軟件完成的,matlab 的圖形功能強大,具有良好的 人機界面5,此次設(shè)計過程中熟練了 matlab 的編程,掌握了很多函數(shù)的作用及使用方 法;最后,通過此次課程設(shè)計,我對設(shè)計所用到的軟件 matlab 有了更加深刻地了解, matlab 不管在數(shù)值計算方面的功能很強大,而且其圖形仿真功能更能滿足各個領(lǐng)域的 需要,因此我們以后更要經(jīng)常運用 matlab 軟件,使其成為自己不可或缺的工具。 matlab 應(yīng)用實踐課程設(shè)計 24 致謝 感謝學校給我們這次matlab課程設(shè)計的機會,不僅讓我們更加學會了matlab的 強大圖形處理方法,掌握了matlab的編程技術(shù),而且也鍛煉了我們的動手能力。通過 這次課設(shè)讓我明白了理論聯(lián)系實踐的重要性,書本上的理論知識學了不少,我們必須得 應(yīng)用到實踐當中,做到學以致用,這樣我們才能有不斷的創(chuàng)新。這次課程設(shè)計也感謝指 導老師在設(shè)計過程中的輔導以及同學們的幫助。 matlab 應(yīng)用實踐課程設(shè)計 25 參考文獻 1 陳懷琛,吳大正,高西全.matlab 及在電子信息課程中的應(yīng)用z. 北京:電子工業(yè) 出版社,2005 2 劉泉,江雪梅.信號與系統(tǒng)z. 北京:高等教育出版社,2006 3 劉泉,闕大順,郭志強.數(shù)字信號處理原理與實現(xiàn)z. 北京:電子工業(yè)出版社,2009 4 梁虹. 信號與系統(tǒng)分析及 matlab 實現(xiàn)z. 北京:電子工業(yè)出版社,2002 5 羅建軍. matlab 教程z. 北京:電子工業(yè)出版社,2005 matlab 應(yīng)用實踐課程設(shè)計 26 附錄 源程序一 周期信號的傅里葉級數(shù)分解與綜合的源程序如下: functiona_sym,b_sym=ctfs1 syms t n k x t=5;tao=0.2*t;a=0.5; if nargin4;nf=6;end if nargin5;nn=32;end x=time_fun_x(t); a0=2*int(x,t,-a,t-a)/t; as=int(2*x*cos(2*pi*n*t/t)/t,t,-a,t-a); bs=int(2*x*sin(2*pi*n*t/t)/t,t,-a,t-a); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn); end if nargout=0 c=a_sym;disp(c) d=b_sym;disp(d) t=-8*a:0.01:t-a; f1=2*(0.2/2+0.1871.*cos(2*pi*1*t/5)+0.*sin(2*pi*1*t/5); f2=2*(0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5); f3=2*(0.1009.*cos(2*pi*3*t/5)+0.*sin(2*pi*3*t/5); f4=2*(0.0468.*cos(2*pi*4*t/5)+0.*sin(2*pi*4*t/5); f5=2*(-0.0312.*cos(2*pi*6*t/5)+0.*sin(2*pi*6*t/5); f6=f1+f2; f7=f6+f3; f8=f7+f4+f5; subplot(2,2,1) plot(t,f1),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波) subplot(2,2,2) plot(t,f6),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次諧波) subplot(2,2,3) plot(t,f7),hold on y=time_fun_e matlab 應(yīng)用實踐課程設(shè)計 27 plot(t,y,:) title(周期矩形波的形成基波+2次諧波+3次諧波) subplot(2,2,4) plot(t,f8),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次諧波+3次諧波+6次諧波) end function x=time_fun_x(t) h=1; x1=sym(heaviside(t+0.5)*h; x=x1-sym(heaviside(t-0.5)*h; function y=time_fun_e a=0.5;t=5;h=1;tao=0.2*t;t=-8*a:0.01:t-a; e1=1/2+1/2.*sign(t+tao/2); e2=1/2+1/2.*sign(t-tao/2); y=h.*(e1-e2); 源程序二 雙邊、單邊(幅度,相位)頻譜分析源程序如下: 雙邊頻譜分析源程序: function a_sym,b_sym=ctfs2 syms t n y if nargin3;nf=input(pleas input 所需展開的最高諧波次數(shù): nf=);end t=input(pleas input 信號的周期=); if nargin5;nn=32;end y=time_fun_s(t); a0=2*int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2*s1) s3=fliplr(1/2*b_sym) s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; s6=fliplr(s5); matlab 應(yīng)用實踐課程設(shè)計 28 n=nf*2*pi/t; k2=-n:2*pi/t:n; s7=s6,s5(2:end); x=time_fun_e subplot(3,1,2) stem(k2,abs(s7); title(連續(xù)時間函數(shù)周期矩形脈沖的雙邊幅度譜) axis(-80,80,0,0.12) line(-80,80,0,0) line(0,0,0,0.12) subplot(3,1,3) stem(k2,angle(s7); title(連續(xù)時間函數(shù)周期矩形脈沖的雙邊相位譜) axis(-80,80,-4,4) line(-80,80,0,0) line(0,0,-4,4) end function y=time_fun_s(t) syms a a1 t=input(pleas input 信號的周期t=); m=input(周期與脈沖寬度之比m=); a=1;tao=t/m;a=tao/2; y1=sym(heaviside(t+a1)*a; y=y1-sym(heaviside(t-a1)*a; y=subs(y,a1,a); y=simple(y); function x=time_fun_e t=5;t=-2*t:0.01:2*t;tao=t/5; x=rectpuls(t,1); subplot(3,1,1) plot(t,x) hold on x=rectpuls(t-5,1); plot(t,x) hold on x=rectpuls(t+5,1); plot(t,x) title(周期為t=5,脈寬tao=1的矩形脈沖) axis(-10,10,0,1.2) 單邊頻譜分析源程序: function a_sym,b_sym=ctfs21 syms t n k y matlab 應(yīng)用實踐課程設(shè)計 29 if nargin4;nf=input(pleas input 所需展開的最高諧波次數(shù): nf=);end t=input(pleas input 信號的周期t=); if nargin5;nn=32;end y=time_fun_s(t); a0=2*int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2*s1) s3=fliplr(1/2*b_sym) s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; n=nf*2*pi/t; k2=0:2*pi/t:n; x=time_fun_e subplot(3,1,2) stem(k2,abs(s5); title(連續(xù)時間函數(shù)周期矩形脈沖的單邊幅度譜) axis(0,80,0,0.12) line(0,80,0,0) line(0,0,0,0.12) subplot(3,1,3) stem(k2,angle(s5); title(連續(xù)時間函數(shù)周期矩形脈沖的單邊相位譜) axis(0,80,-5,5) line(0,80,0,0) line(0,0,-5,5) end function y=time_fun_s(t) syms a a1 t=input(pleas input 信號的周期t=); m=input(周期與脈沖寬度之比m=); a=1;tao=t/m;a=tao/2; y1=sym(heaviside(t+a1)*a; y=y1-sym(heaviside(t-a1)*a; y=subs(y,a1,a); y=simple(y); matlab 應(yīng)用實踐課程設(shè)計 30 function x=time_fun_e t=5;t=-2*t:0.01:2*t;tao=t/5; x=rectpuls(t,1); subplot(3,1,1) plot(t,x) hold on x=rectpuls(t-5,1); plot(t,x) hold on x=rectpuls(t+5,1); plot(t,x) title(周期為t=5,脈

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論