離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)_第1頁
離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)_第2頁
離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)_第3頁
離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)_第4頁
離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)信號分析與處理課程設(shè)計說明書課程設(shè)計任務(wù)書學(xué)生姓名: 專業(yè)班級:電信1306班 指導(dǎo)教師: 王虹 工作單位:信息工程學(xué)院 題 目: 離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn) 初始條件: 1.Matlab軟件; 2.課程設(shè)計輔導(dǎo)資料:“Matlab語言基礎(chǔ)及使用入門”、“信號與系統(tǒng)”、“數(shù)字信號處理 原理與實現(xiàn)”、“Matlab及在電子信息課程中的應(yīng)用”等; 3.先修課程:信號與系統(tǒng)、數(shù)字信號處理、Matlab應(yīng)用實踐及信號處理類課程等。要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1.課程設(shè)計時間:1周;2.課程設(shè)計內(nèi)容:離散時間系統(tǒng)的輸入輸出描述的編

2、程實現(xiàn),具體包括:已知系統(tǒng)差分方程求任一激勵下的響應(yīng)、系統(tǒng)線性性質(zhì)的分析討論、利用卷積運算求響應(yīng)等;3.本課程設(shè)計統(tǒng)一技術(shù)要求:研讀輔導(dǎo)資料對應(yīng)章節(jié),對選定的設(shè)計題目進行理論分析,針對具體設(shè)計部分的原理分析、建模、必要的推導(dǎo)和可行性分析,畫出程序設(shè)計框圖,編寫程序代碼(含注釋),上機調(diào)試運行程序,記錄實驗結(jié)果(含計算結(jié)果和圖表),并對實驗結(jié)果進行分析和總結(jié),按要求進行實驗演示和答辯等;4.課程設(shè)計說明書按學(xué)校“課程設(shè)計工作規(guī)范”中的“統(tǒng)一書寫格式”撰寫,具體包括:· 目錄;· 與設(shè)計題目相關(guān)的理論分析、歸納和總結(jié);· 與設(shè)計內(nèi)容相關(guān)的原理分析、建模、推導(dǎo)、可行性分

3、析;· 程序設(shè)計框圖、程序代碼(含注釋)、程序運行結(jié)果和圖表、實驗結(jié)果分析和總結(jié);· 課程設(shè)計的心得體會(至少500字);· 參考文獻(不少于5篇);· 其它必要內(nèi)容等。時間安排:1周 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日目錄1 概述111 離散時間信號及MATLAB實現(xiàn)11.1.1離散時間信號11.1.2離散時間信號的MATLAB表示11.1.3常用的典型序列12設(shè)計要求33 理論分析33.1 差分方程MATLAB實現(xiàn)33.2 系統(tǒng)的線性性質(zhì)驗證43.3直接卷積原理44程序設(shè)計與結(jié)果仿真54.1題一54

4、.1.1原理分析54.1.2程序代碼與結(jié)果54.2題二 序列的相乘、相加104.2.1理論分析104.2.2 程序代碼與結(jié)果114.3題三134.3.1 理論分析134.3.2 程序代碼與結(jié)果145.心得體會16參考文獻17本科生課程設(shè)計成績評定表171 概述 MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,是美國MathWorks 公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。 隨著其功能的日益完善,MATLAB 已經(jīng)發(fā)展成為適合多學(xué)科,多種工作平臺的功能強大型軟件。

5、在國外高校, MATLAB 已經(jīng)成為線性代數(shù),自動控制理論,數(shù)理統(tǒng)計,數(shù)字信號處理,時間序列分析,動態(tài)系統(tǒng)仿真等高級課程的基本教學(xué)工具;成為攻讀學(xué)位的大學(xué)生,碩士生,博士生必須掌握的基本技能。在設(shè)計研究單位和工業(yè)部門,MATLAB 被廣泛用于科學(xué)研究和解決各種具體問題。在國內(nèi),特別是工程界,MATLAB 一定會盛行起來??梢哉f,無論你從事工程方面的哪個學(xué)科,都能在 MATLAB 里找到合適的功能。 另一方面,正如同 FORTRAN 和 C 等高級語言使人們擺脫了需要直接對計算機硬件資源進行操作一 樣,被稱作為第四代計算機語言的MATLAB,利用其豐富的函數(shù)資源,使編程人員從繁瑣的程序代碼中解放

6、出來。MATLAB 用更直觀的,符合人們思維習(xí)慣的代碼,代替了C 和 FORTRAN 語言的冗長代碼,給用戶帶來的是最直觀,最簡潔的程序開發(fā)環(huán)境。使得其迅速普及,并顯示出旺盛的生命力。11 離散時間信號及MATLAB實現(xiàn)1.1.1離散時間信號在離散時間系統(tǒng)中,信號要用序列來表示,其特點是時間離散,幅值連續(xù)。離散時間信號通常由對連續(xù)時間信號進行抽樣獲得。離散時間信號表示方法有3種:列表法、函數(shù)表示法、線圖法。1.1.2離散時間信號的MATLAB表示表示一個序列要用兩個元素:樣值和位置。在MATLAB中用樣值向量和位置向量來表示一個序列,要求兩個向量長度相等。例如x(n)=5,6,7,80,3,其

7、MATLAB產(chǎn)生語句為:n=0:3;X=5,6,7,8。1.1.3常用的典型序列(1)單位階躍序列 單位階躍序列定義如下, 在MATLAB中,可以用邏輯關(guān)系表達式產(chǎn)生,在區(qū)間n1,n2范圍內(nèi),其產(chǎn)生方式為:n=n1:n2;x=(n-n0)>=0)。具體代碼如下:function x,n=stepseq(n1,n2,n0) n=n1:n2; x=(n-n0)>=0;x,n=stepseq(-2,8,2); %調(diào)用該函數(shù) stem(n,x); %繪制函數(shù)圖像同理,單位采樣序列的產(chǎn)生方法如下:function x,n=impseq(n1,n2,n0) n=n1:n2; x=(n

8、-n0)=0;調(diào)用該函數(shù)x,n=impseq(-2,8,2);stem(n,x)(2)矩形序列 矩形序列定義如下:îíì-££=其中,N為矩形序列的長度。在MATLAB中,可以用邏輯關(guān)系表達式產(chǎn)生,其產(chǎn)生方式為:x=(n-n1)>=0)&(n-n2)<=0);其中n1,n2表示取值區(qū)間的范圍,由這兩個值可以確定該矩形序列的長度,公式為N=n2-n1+1。具體代碼如下:function x,n=jx(n1,n2,n0) n=n1:n2; x=(n-n1)>=0)&(n-n2)<=0);x,n=jx

9、(-2,8,2);stem(n,x)(3)實指數(shù)序列實指數(shù)序列定義為x(n)=an,-<n<+,式中a為實數(shù)。當(dāng)n<0,x(n)=0時,上式可表示為x(n)=anu(n).例如x(n)=0.8n,0n10在MATLAB中可以用n=0:10;x=0.9.n;產(chǎn)生。 例如:n=0:10;x=0.9.n; % (運算符“.”)stem(n,x)2設(shè)計要求課程設(shè)計內(nèi)容:離散時間系統(tǒng)的輸入輸出描述的編程實現(xiàn)。具體包括:求系統(tǒng)的輸出序列、驗證系統(tǒng)的線性性質(zhì)、求卷積。 設(shè)計內(nèi)容如下:1.給定因果穩(wěn)定線性時不變系統(tǒng)的差分方程,對下列輸入序列,求出系統(tǒng)的輸出序列。(1) ,(2) ,(3) ,

10、(4) ,(5) 。2設(shè)系統(tǒng)差分方程為,要求用程序驗證系統(tǒng)的線性性質(zhì)。3計算下列卷積,并圖示各序列及其卷積結(jié)果。3 理論分析3.1 差分方程MATLAB實現(xiàn)在信號與系統(tǒng)和數(shù)字信號處理課程中,我們知道描述線性移不變離散時間系統(tǒng)的數(shù)學(xué)模型是常系數(shù)差分方程,它與系統(tǒng)的結(jié)構(gòu)流圖之間可以互相推導(dǎo)。迭代解法(也稱遞推解法)是求解差分方程的最簡單也最適用的方法,也是實現(xiàn)數(shù)字濾波器的一種基本方法。差分方程通式為:,x(n)與y(n)分別為系統(tǒng)的激勵和響應(yīng)。 離散系統(tǒng)的響應(yīng)可分為零輸入響應(yīng)分量和零狀態(tài)響應(yīng)分量,零輸入分量僅由系統(tǒng)的初始狀態(tài) y(-1)、y(-2)、y(-N) 引起,

11、外激勵 x(n)=0 ;而零狀態(tài)分量僅由外激勵x(n)引起,初始狀態(tài) y(-1)、y(-2)、y(-N) 均為零。 初始條件是指計算差分方程所需的初始值 y(0)、y(1)、y(N-1)。如果已知 y(-1)、y(-2)、y(-N),欲求y(0)、y(1)、y(N-1),可利用迭代法逐一導(dǎo)出。這樣我們可以由給定的差分方程以及已知的初始狀態(tài)找到所需的初始值(包括零輸入初始值、零狀態(tài)初始值、全響應(yīng)初始值),進而求出響應(yīng)。也可以利用系統(tǒng)單位沖激響應(yīng)h(n)與輸入信號x(n)的離散卷積求出。MATLAB以函數(shù)filter(num&#

12、160;, den , x),來計算在給定輸入和差分方程系數(shù)時求差分方程的數(shù)值解。num,den分別為系統(tǒng)方程的系數(shù)向量。X是輸入序列。3.2 系統(tǒng)的線性性質(zhì)驗證線性系統(tǒng)是一個既具有分解特性,又具有零狀態(tài)線性和零輸入線性的系統(tǒng),線性性質(zhì)是線性系統(tǒng)所具有的本質(zhì)特性,線性離散系統(tǒng)的數(shù)學(xué)模型是線性差分方程。即滿足疊加原理的系統(tǒng)稱為線性系統(tǒng)。線性性質(zhì)實際上包含了可加性和齊次性兩個性質(zhì)。設(shè)y1(n)和y2(n)分別是系統(tǒng)對輸入x1(n)和x2(n)的響應(yīng),系統(tǒng)的激勵x(n)與響應(yīng)y(n)之間的關(guān)系可簡記為y(n)=Tx(n)即y1(n)=Tx1(n)和y2(n) 

13、= Tx2(n),若滿足:a1 y1(n) + a2 y2(n) = Ta1 x1(n) + a2 x2(n) = a1 Tx1(n) + a2 Tx2(n)則此系統(tǒng)稱為線性系統(tǒng)。驗證系統(tǒng)的線性性質(zhì),即驗證上式是否成立。3.3 直接卷積原理1.離散時間序列f1(k)和f2(k)的卷積和定義:2.在離散信號與系統(tǒng)分析中有兩個與卷積和相關(guān)的重要結(jié)論:(1) ,即離散序列可分解為一系列幅度由f(k)決定的單位序列(k)及其平移序列之

14、積。(2) 對線性時不變系統(tǒng),設(shè)其輸入序列為f(k),單位響應(yīng)為h(k),其零狀態(tài)響應(yīng)為y(k),則有: 3.在Matlab中可以通過直接調(diào)用conv.m用來實現(xiàn)兩個離散序列的線性卷積。其調(diào)用格式是:y=conv(x,h)若x的長度為N,h的長度為M,則y的長度L=N+M-1。4 MATLAB程序設(shè)計與結(jié)果仿真4.1題一題目:給定因果穩(wěn)定線性時不變系統(tǒng)的差分方程,對下列輸入序列,求出系統(tǒng)的輸出序列。(1) ,(2) ,(3) ,(4) ,(5) 。4.1.1原理分析MATLAB以函數(shù)filter(num , den , x),來計算在給定輸入和差分方程系數(shù)時求差分方程的數(shù)值解。num,den分

15、別為系統(tǒng)方程的系數(shù)向量。X是輸入序列。只需改變輸入序列,便可以得到不同的輸出。由于題目中沒有給定差分方程,設(shè)該方程為:2yn-1.7yn-1+1.1yn-2=2xn,則num = 2; den = 2 1.7 1.1;4.1.2程序代碼與結(jié)果第一小題代碼如下: n=-20:100;num=2; den=2 -1.7 1.1;x=impseq(-10,100,0); % x(n)為沖擊函數(shù)h=filter(num,den,x); % 使用函數(shù)filter()求輸出stem(n,h) %繪制離散序列數(shù)據(jù)xlabel('n'); ylabel('y(n)');titl

16、e('響應(yīng)y(n)電信1306胡容');系統(tǒng)輸出函數(shù)y(n)的圖像如圖4.1所示4.1 輸出函數(shù)第二小題代碼如下: n=-20:100;num=2; den=2 -1.7 1.1;x=impseq(-20,100,10);h=filter(num,den,x); % 使用函數(shù)filter()求輸出stem(n,h)xlabel('n'); ylabel('y(n)'); title('響應(yīng)y(n)電信1306胡容');系統(tǒng)輸出函數(shù)y(n)的圖像如圖4.2所示。圖4.2 系統(tǒng)輸出響應(yīng)第三小題代碼如下: n=-20:100;num=2

17、; den=2 -1.7 1.1;x=stepseq(-20,100,0);h=filter(num,den,x); % 使用函數(shù)filter()求輸出stem(n,h)xlabel('n'); ylabel('y(n)'); title('響應(yīng)y(n)電信1306胡容');系統(tǒng)輸出函數(shù)y(n)的圖像如圖4.3所示。圖4.3 系統(tǒng)輸出響應(yīng)圖第四小題代碼如下: n=-20:100;num=2; den=2 -1.7 1.1;x=stepseq(-20,100,0)-stepseq(-20,100,32); %兩個階躍序列之差h=filter(num

18、,den,x); % 使用函數(shù)filter()求輸出stem(n,h)xlabel('n'); ylabel('y(n)'); title('響應(yīng)y(n)電信1306胡容');系統(tǒng)輸出函數(shù)y(n)的圖像如圖4.4所示。圖4.4 系統(tǒng)輸出響應(yīng)圖第五小題代碼如下: n=-20:100;num=2; den=2 -1.7 1.1;x0 = stepseq(-20,100,0)-stepseq(-20,100,32);x1=exp(pi*n*j/8);x = x1.*x0; %對應(yīng)項之間相乘,即點乘h=filter(num,den,x); % 使用函數(shù)f

19、ilter()求輸出stem(n,h)xlabel('n'); ylabel('y(n)');title('響應(yīng)y(n)電信1306胡容');系統(tǒng)輸出函數(shù)y(n)的圖像如圖4.5所示。圖4.5系統(tǒng)輸出函數(shù)題目小結(jié):通過本題我們學(xué)會了如何在給定因果穩(wěn)定線性時不變系統(tǒng)的差分方程情況下對給定的輸入序列求輸出序列。4.2題二 序列的相乘、相加題目:設(shè)系統(tǒng)差分方程為,要求用程序驗證系統(tǒng)的線性性質(zhì)。4.2.1理論分析產(chǎn)生兩種輸入序列,分別乘以常數(shù)后:1. 分別激勵系統(tǒng),再求輸出之和;2. 先相加,再激勵系統(tǒng)求輸出;對兩個結(jié)果進行比較,方法是求它們之差,按誤差

20、的絕對值是否極小進行判斷。如果二者誤差絕對值極小則可忽略不計,即兩序列為線性序列。4.2.2 程序代碼與結(jié)果本題MATLAB代碼如下:N=64;n=0:N-1;m=20;num=1;den=1,-0.8; % 設(shè)定系統(tǒng)參數(shù)num,denx1=0.9.n; % 產(chǎn)生輸入信號x1(n)x=(n>=0)&(n<32);x1=x1.*x; %點乘 y1=filter(num,den,x1); % 對x1(n)的響應(yīng)y1(n)x2=(n-m)=0; y2=filter(num,den,x2); % 對x2(n)的響應(yīng)y2(n)x3=7*x1+2*x2;y3=filter(num,de

21、n,x3); % 對5x1(n)+3x2(n)的響應(yīng)y3(n)y=7*y1+2*y2; % y(n)=5y1(n)+3y2(n)subplot(2,2,1);stem(n,y1,'.');line(0,N,0,0)axis(0,N,min(y1),max(y1);ylabel('y1(n)')title(電信1306胡容)subplot(2,2,2);stem(n,y2,'.');line(0,N,0,0)axis(0,N,min(y2),max(y2);ylabel('y2(n)')title(電信1306胡容)subplot(

22、2,2,3);stem(n,y3,'.');line(0,N,0,0)axis(0,N,min(y3),max(y3);xlabel('n');ylabel('y3(n)')title(電信1306胡容)subplot(2,2,4);stem(n,y,'.');line(0,N,0,0)axis(0,N,min(y),max(y);xlabel('n');ylabel('y(n)')title(電信1306胡容)e=y-y3,figure;stem(e)運行結(jié)果如圖4.6和4.7所示。圖4.6 各輸

23、出響應(yīng)圖像由圖4.6可以看出y(n)和y3(n)的函數(shù)圖像幾乎一模一樣,由圖4.7可以看出y(n)與y3(n)之差非常小,驗證了y1(n)和y3(n)滿足可加性和齊次性,所以該系統(tǒng)是線性的。圖4.7 序列e的圖像4.3題三題目:計算下列卷積,并圖示各序列及其卷積結(jié)果。4.3.1 理論分析卷積的計算計算x1(n)和x2(n)的線性卷積的FFT算法可由下面步驟實現(xiàn):¨ 計算X1(k)=FFTx1(n);¨ 計算X2(k)=FFTx2(n);¨ 計算Y(k)=X1(k) X2(k);¨ 計算x1(n)*x2(n)=IFFTY(k).在Matlab自帶的系統(tǒng)函數(shù)

24、中,Conv( )可以很好的完成兩個有限長序列的卷積運算,特別是對于N值較小的向量,是十分有效的。4.3.2 程序代碼與結(jié)果題二MATLAB代碼如下:>> Nx=20;Nh=10;m=5; %設(shè)定Nx,Nh和位移值mn=0:Nx-1;x1=(0.9).n; %產(chǎn)生x1(n)x2=zeros(1,Nx+m);for k=m+1:m+Nx %產(chǎn)生x2(n)x2(k)=x1(k-m);endnh=0:Nh-1;h1=ones(1,Nh); %產(chǎn)生h1(n)h2=h1; %產(chǎn)生h2(n)y1=conv(x1,h1); %計算y1(n)=x1(n)*h1(n)y2=conv(x2,h2);

25、%計算y2(n)=x2(n)*h2(n)subplot(321),stem(x1,'.')ylabel('x1')title(電信1306胡容)subplot(323),stem(h1,'.')ylabel('h1')title(電信1306胡容)subplot(325),stem(y1,'.')title(電信1306胡容)subplot(322),stem(x2,'.')ylabel('x2')title(電信1306胡容)subplot(324),stem(h2,'.&

26、#39;)ylabel('h2')title(電信1306胡容)subplot(326)stem(y2,'.')ylabel('y2')title(電信1306胡容)運行結(jié)果如圖4.8所示圖4.8 序列卷積結(jié)果圖5.心得體會在前幾次課設(shè)和實驗中我們就認識到了Matlab的強大功能,本次信號分析與處理次課程設(shè)計也是利用它完成的。Matlab作為一個功能強大,運算效率相當(dāng)高的數(shù)學(xué)工具軟件,經(jīng)過了多年發(fā)展,目前幾乎可以解決科學(xué)計算中的任何問題。作為一種以數(shù)組與矩陣為核心的處理工具,Matlab還具有與高級語言相似的編程特性,在可視化方面,Matlab提供了圖形用戶界面,使得用戶可以進行可視化編程??梢赃@么說,Mat

溫馨提示

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

評論

0/150

提交評論