《數(shù)字信號處理》上機實驗指導書_第1頁
《數(shù)字信號處理》上機實驗指導書_第2頁
《數(shù)字信號處理》上機實驗指導書_第3頁
《數(shù)字信號處理》上機實驗指導書_第4頁
《數(shù)字信號處理》上機實驗指導書_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE 1 數(shù)字信號處理上機實驗指導書 北京航空航天大學電子工程系 目錄前言1實驗一:連續(xù)信號的采樣3實驗二:IIR濾波器的設計.5實驗三:FIR濾波器的設計7實驗四:用FFT對連續(xù)時間信號進行頻譜分析.9實驗五:卷積和濾波.11附錄A:MATLAB系統(tǒng)與語言簡介.13附錄B:信號處理工具箱函數(shù)20參考書目22前 言 自60年代以來,隨著計算機和信息學科的飛速發(fā)展,數(shù)字信號處理(Digital Signal Processing,DSP)技術應用而生并迅速發(fā)展,現(xiàn)已形成一門獨立的學科體系。當前,我們正在全面地進入數(shù)字時代,隨著微電子技術的迅速發(fā)展,通用的DSP芯片的性能不斷提高,而價格持續(xù)地

2、下降。以DSP芯片及外圍開發(fā)設備為主,正在形成一個具有較大潛力的產(chǎn)業(yè)與市場。 眾所周知,幾乎所有的工程技術領域都要涉及到信號問題。這些信號包括電的、磁的、機械的、熱的、聲的、光的及生物體的等等各個方面。如何在較強的背景噪聲下提取出真正的信號或信號的特征并將其應用于工程實際是信號處理技術要完成的任務。因此可以說,信號處理幾乎涉及到所有的工程技術領域。 數(shù)字信號處理是一門以算法為核心的理論性很強的學科。它是利用數(shù)字計算機或?qū)S锰幚碓O備,以數(shù)值計算的方法對信號進行采集、變換、綜合、估值與識別等加工處理,借以達到提取信息和便于應用的目的。數(shù)字信號處理技術及設備具有靈活、精確、抗干擾強、設備尺寸小、造價

3、低、速度快等突出優(yōu)點,這些都是模擬信號處理技術與設備所無法比擬的。近30來年,數(shù)字信號處理是緊緊圍繞著理論、實現(xiàn)及應用三個方面迅速發(fā)展起來的,它以眾多的學科為理論基礎,其成果又滲透到眾多的學科,成為理論與實踐并重、在高新技術領域中占有重要地位的新興學科。 數(shù)字信號處理的實現(xiàn),大體上有如下幾種方法:(1) 在通用的微計算機上用軟件來實現(xiàn)。軟件可由使用者自己編寫,也可使用現(xiàn)成的。自IEEE DSP Comm于1979年推出第一個信號處理軟件包以來,國外的研究機構(gòu)、公司也在推出不同語言、不同用途的信號處理軟件包。這種實現(xiàn)方法速度較慢,多用于教學與科研。(2) 用單片機來實現(xiàn)。目前單片機的發(fā)展速度較快

4、,其功能也很強。依靠單片機的硬件環(huán)境配以信號處理軟件可用于工程實際,如數(shù)字控制、醫(yī)療儀器等。(3) 利用專門用于信號處理的DSP芯片來實現(xiàn)。DSP芯片較之單片機有著更為突出的優(yōu)點,如內(nèi)部帶有乘法、累加器,采用流水線工作方式及并行結(jié)構(gòu),多總線,速度快,配有適于信號處理的指令等,DSP芯片的問世及飛速發(fā)展,為信號處理技術應用于工程實際提供了可能。(4) 利用特殊用途的DSP芯片來實現(xiàn)?,F(xiàn)在國際上已推出專門用于FFT、FIR濾波、卷積、相關等專用芯片,其軟件算法已在芯片內(nèi)部用硬件電路實現(xiàn),使用者給出輸入數(shù)據(jù),可以在輸出端直接得到結(jié)果。 在實際應用中,數(shù)字信號處理的算法研究是關鍵。為了使同學們在學習數(shù)

5、字信號處理這們課程中,更好地理解和掌握課堂上所學的理論知識,加深對理論的理解,為將來在實際工作中,能夠應用理論知識解決實際問題,我們特別選擇了如下一些基本的實驗,使得同學門通過自己編程上機演練,加深和鞏固所學的理論知識。 考慮到學生們的上機的機時有限,我們選擇了如下的一些基礎實驗:1) 連續(xù)信號的采樣2) FIR濾波器的設計3) 利用FFT算法對信號進行頻譜分析4) IIR濾波器的設計5) 卷積和濾波 在本上機指導書中,我們指定的編程語言是 MathWorks公司的MATLAB語言,這是目前國際上在理論研究中普遍采用的一個軟件。為方便同學門編程,有關這一軟件的簡單使用,以及在我們實驗中用到的語

6、句和函數(shù),我們將在附錄中給出。同學們?nèi)绻M一步地掌握MTLAB語言,可以閱讀有關MTLAB語言這方面的書籍。另外,還可以參考周秀芝、卞蓉輝的“信號處理習題演示”軟件。 同學們在作完上機實驗后,必須提交實驗報告。實驗報告分為如下三個部分:1. 實驗要求和目的2. 實驗方案和程序清單3.實驗結(jié)果和結(jié)果分析 實驗一 連續(xù)信號的采樣物理世界中的信號,通常都是連續(xù)信號(即模擬信號)。利用數(shù)字技術實現(xiàn)信號處理,第一步就是要將連續(xù)信號離散化(既對信號的抽樣)。那末,在時域抽樣后的離散信號與原來的時域連續(xù)信號之間有什么樣的關系,是我們比較關心的。本實驗的第一題中,將看到在不同的抽樣率下,離散信號波形與連續(xù)

7、信號波形的關系。隨著抽樣率的提高,抽樣信號更容易看出連續(xù)信號。由于MATLAB語言無法表示連續(xù)信號,因此在本題中要用足夠多的采樣點來模擬連續(xù)信號,同時要注意抽樣后數(shù)字信號的表示。即以來表示連續(xù)信號的自變量,以來表示采樣后的信號的自變量,則,為采樣頻率,而應遠遠小于。本實驗的第二題,是為了分析離散信號與連續(xù)信號之間的頻譜關系,加深對信號采樣定理的理解,了解模擬頻譜、數(shù)字頻譜、以及離散信號被加窗后各自的頻譜,從而直觀地理解抽樣頻率對頻譜的影響和加窗后對頻譜的影響。由此,可以掌握用數(shù)字分析的方法對模擬信號進行頻譜分析的基本原則(即:如何選擇合適信號長度、采樣間隔,使得對模擬信號頻譜分析的誤差最?。?/p>

8、本題中應注意用MATLAB的函數(shù)將信號的頻譜幅度正確的表達出來。在上面的兩道題中,要用到的MATLAB的系統(tǒng)函數(shù)有sin(正弦函數(shù)),exp(自然指數(shù)),為了將結(jié)果直觀的表達出來,需要用到MATLAB的基本繪圖函數(shù)plot(x,y),其中參數(shù)x和y為長度為n的向量,它的作用是在坐標系中以x為橫坐標y為縱坐標的曲線。為了使生成的圖形易于理解,也可以加上坐標軸的說明文字,分別用命令xlabel和ylabel產(chǎn)生。例如:xlabel(Frequence);ylabel(Magnitude);也可以加上坐標系的標題,由命令title給出。例如:title(幅頻響應);上機題:考慮下面的一模擬信號, 它

9、由三個正弦頻率組成,其中,。要求對信號以的頻率抽樣,得到的抽樣信號,在同一張圖表中繪出和兩信號,其中重復上題,信號抽樣頻率Hz考慮一以指數(shù)率衰減的信號,為簡單起見,以復數(shù)形式表示?,F(xiàn)在以抽樣,則得到抽樣信號,。這樣的無限長序列是無法在計算機中存儲的,通常的做法是令,,它是長度為L的加窗后信號。模擬、采樣、加窗后信號的頻譜幅度如下: , 其中極限,其中:,。,兩頻率,請在同一張圖上繪出模擬頻譜及采樣信號頻譜,在另一張圖上繪出 三個頻譜(頻率范圍)。 實驗二 IIR濾波器的設計 濾波器設計是數(shù)字信號處理中最基本的內(nèi)容之一。在本實驗中,我們研究IIR濾波器設計的問題。在理論學習中,我們知道濾波器分I

10、IR濾波器(無限沖激響應濾波器)和FIR濾波器(有限沖激響應濾波器)兩種。IIR濾波器具有階數(shù)低,實現(xiàn)成本少的特點。其設計有兩種方法:一種是沖激不變法,另一種是雙線性變換法。這兩種設計方法都是對原型連續(xù)時間濾波器進行變換來設計數(shù)字信號濾波器。連續(xù)時間濾波器的技術指標是通過對給定的數(shù)字濾波器的技術指標加以變換而得到的。在這些變換中,我們通常要求所得到的數(shù)字濾波器的頻率響應中應保留連續(xù)時間濾波器頻率響應的基本特性。這也就是說,應將模擬的平面的虛軸映射到數(shù)字的平面的單位圓。沖激不變法和雙線性變換都能滿足這樣的要求,但這兩種方法是有區(qū)別的,對于第一種方法,它是基于沖激響應抽樣的關系,根據(jù)采樣定理,我們

11、知道,其頻率特性在高頻端可能產(chǎn)生混疊,但數(shù)字頻率與模擬頻率之間的關系是線性關系;對于第二種方法,數(shù)字頻率與模擬頻率之間的關系是非線性關系,并且是一一映射的,故不存在高頻混疊的情況,但是頻率軸產(chǎn)生畸變,這在分段恒定的濾波器中是無關緊要的,它只是影響過渡帶。 為了使同學們充分理解這兩種方法的各自的特點及它們的區(qū)別,熟練掌握IIR濾波器設計的最基本的方法,。特別安排下面兩道上機題。通過第一題的練習,同學可以清楚地看到?jīng)_激不變法和雙線性變換法設計的濾波器頻率特性與原型連續(xù)濾波器之間的相同處和區(qū)別,以及為什么在IIR數(shù)字濾波器的設計中通常采用雙線性變換法。在本題中,要用到幾個MATLAB信號處理工具箱中

12、的函數(shù),如求巴特沃思濾波器的階數(shù)的函數(shù)buttord和 巴特沃思濾波器的設計函數(shù)butterworth,以及沖激響應不變法實現(xiàn)模擬到數(shù)字的濾波器變換函數(shù)impinvar,雙線性變換函數(shù)bilinear和數(shù)字濾波器的頻率響應函數(shù)freqz。Buttord的用法為n,wn=buttord(wp,ws,rp,rs,s),其中wp,ws分別為通帶和阻帶的截止頻率,rp,rs分別為通帶和阻帶的波紋系數(shù)。s表示模擬域。也可不加s,則表示的是數(shù)字域。N為模擬butterworth濾波器的階數(shù),wn為截止頻率。這個函數(shù)的使用,主要應注意模擬域和數(shù)字域的頻率關系的轉(zhuǎn)換,即模擬域的頻率為數(shù)字域的頻率比上抽樣周期。

13、Butter的用法為b,a=butter(n,wn,s),可設計出截止頻率為wn的n階低通模擬butterworth濾波器為impinvar的用法為bz,az=impinvar(b,a.Fs),b,a的說明同butter函數(shù),得到的數(shù)字濾波器可寫成bilinear函數(shù)的用法為numd,dend=bilinear(num,den,Fs),在課堂上,我們已經(jīng)學過雙線性變換的映射關系為該函數(shù)就是完成這種變換的.其中num和den的說明同b和a, numd和dend的說明同bz,az。Freqz函數(shù)是用來求數(shù)字濾波器的頻率響應。h,f=freqz(bz,az,n,whole,Fs)表示在0-Fs之間均

14、勻選取n個頻率點(記錄在f中),并計算相應的頻率響應h.第二題的練習是要求同學門掌握低通、高通、帶通、帶阻型的IIR濾波器的設計方法。以及比較不同類型的原型濾波器下,所設計的數(shù)字濾波器的區(qū)別。在本題中,我們要用到幾個關于橢圓濾波器和切比雪夫濾波器的函數(shù)。Cheb1ord用于切比雪夫I型濾波器階的選擇。n,wn=cheb1ord(wp,ws,rp,rs,s),該函數(shù)與buttord的用法基本相同。Elliporp是用來求橢圓濾波器階的選擇。n,wn=ellipord(wp,ws,rp,rs,s),該函數(shù)與buttord的用法基本相同。Cheby1用于切比雪夫I型濾波器的設計??稍O計低通、帶通、高

15、通和帶阻的數(shù)字和模擬chebyshev I 濾波器,其通帶內(nèi)為等波紋,阻帶內(nèi)為單調(diào)。b,a=cheby1(n,rp,wn,s)可設計出截止頻率為wn的n階低通模擬切比雪夫I型濾波器當wn=w1 w2時,cheby1函數(shù)可產(chǎn)生一2n階的帶阻濾波器,其通帶為w1ww2。b,a=cheby1(n,rp,wn,ftype,s)可設計高通或帶阻濾波器:當ftype=high時,可設計截止頻率為wn的高通濾波器;當ftype=stop時,可設計出帶阻濾波器,這時wn=w1 w2,且阻帶為w1ww2。Ellip用于橢圓濾波器的設計,它的用法與cheby1基本相同。上機練習題1. 設計一個巴特沃色低通濾波器,

16、其技術指標為:3dB帶寬為,阻帶截至頻率為,阻帶衰減大于30dB,采樣間隔。用沖擊不變法設計,用雙線性變換法設計;要求: 在同一圖中畫出原型、沖激不變法和雙線性變換法所設計的數(shù)字濾波器的幅頻特性圖.2. 用雙線性變換法分別設計如下低通、高通、帶通和帶阻四種數(shù)字濾波器。模擬濾波器的原型分別為切比雪夫濾波器和橢圓濾波器,采樣率Fs=20kHz,指標如下:低通:通帶kHz,阻帶5kHz,通帶衰減Rp=0.5dB,阻帶衰減As=10dB。高通:阻帶kHz,通帶5kHz,通帶衰減Rp=0.5dB,阻帶衰減 As=10dB。帶通:通帶kHzkHz,阻帶1.5kHz,4.5kHz以上,通帶衰減Rp=0.5d

17、B,阻帶衰減As=10dB。帶阻:阻帶kHzkHz,通帶1.5kHz,4.5kHz以上,通帶衰減Rp=0.5dB,阻帶衰減As=10dB。要求:分別畫出低通、高通、帶通和帶阻四種數(shù)字濾波器的幅頻特性圖,并且要求兩種不同的原型濾波器下設計的結(jié)果畫在同一幅圖中。 實驗三 FIR濾波器的設計FIR濾波器幾乎完全限于離散時間濾波器的實現(xiàn)問題。其設計方法以直接逼近所需離散時間系統(tǒng)的頻率響應為基礎。另外FIR濾波器可以很容易地獲得線性相移特性,并且不存在不穩(wěn)定的問題。在實際系統(tǒng)中是廣為采用的一種數(shù)字濾波器。一般,在FIR濾波器設計中,我們都加上線性相移這一條件。FIR濾波器的設計,通常有窗函數(shù)設計法、頻率

18、抽樣設計法和最佳逼近設計法。我們在本實驗中,研究前兩種設計方法。窗函數(shù)設計方法是簡單的,它的頻譜特性是理想濾波器頻譜與窗的頻譜的卷積。因而,其頻率特性取決于窗的類型和長度。頻率抽樣法設計方法是直觀的,但由于頻域的采樣會造成時域的混疊,從而使濾波器的性能不高,為提高濾波的性能,可以在過渡帶加上之間的過渡點。本實驗安排有三道上機練習題。通過第一道上機題,掌握利用窗函數(shù)設計濾波器的方法,了解階數(shù)不同時,濾波器的指標有何變化,了解矩形窗和哈明窗在主瓣寬度、旁瓣峰值、旁瓣衰減速度方面的差異。通過第二道上機題的練習,掌握設計凱澤而窗時各參數(shù)的計算和凱澤而窗的設計,了解凱澤而窗的特點,及其與其它窗在主瓣寬度

19、、旁瓣峰值、旁瓣衰減速度等方面的異同。通過第三道上機題的練習,掌握并了解在過渡帶加過渡點對逼近濾波器的實際響應的影響,掌握頻率抽樣定理及其內(nèi)插公式用窗函數(shù)法設計濾波器時,要用到以下幾個函數(shù):矩形窗函數(shù)w=boxcar(n)產(chǎn)生一長度為n的矩形窗函數(shù)。哈明窗函數(shù)w=boxcar(n)產(chǎn)生一長度為n的哈明窗函數(shù)。凱澤窗函數(shù)w=boxcar(n,beta)產(chǎn)生一長度為n的凱澤窗函數(shù),beta為影響窗函數(shù)旁瓣的參數(shù),其最小的旁瓣抑止as與beta的關系為b=fir2(n,f,m,window)可將列矢量window中指定的窗函數(shù)用于濾波器設計,n為FIR濾波器的階數(shù),f為頻率點矢量,當f=1時對應于。

20、矢量f中按升序排列,且第一個必須為0,最后一個必須為1,并允許出現(xiàn)相同的頻率值,矢量m中包含與f相對應的期望濾波器的響應幅度。F和m的長度必須相同。實驗題目:1. 當N=11,41,81,和121時,用矩形窗設計一個低通FIR濾波器,其剪切頻率畫出其幅度響應,用哈明窗重復上述設計,比較兩個窗2. 用凱澤而窗、哈明窗、矩形窗設計一個具有以下指標的濾波器:畫出它們的幅頻響應然后,再用三種窗設計一個具有下列指標的高通濾波器 ,畫出他們的幅頻響應比較凱澤窗,矩形窗,哈明窗設計相同長度的濾波器的異同3. 用頻率抽樣法設計一個理想低通濾波器,該低通濾波器的通帶截止頻率為,阻帶截止頻率為a不加過渡點b加一個

21、過渡點c加兩個過渡點 實驗四 用FFT對連續(xù)時間信號進行頻譜分析用數(shù)字技術來對連續(xù)信號進行頻譜分析,首先要對連續(xù)時間信號離散化,這一過程是通過對連續(xù)時間信號抽樣來獲得,抽樣間隔必需滿足采樣定理,即抽樣頻率必須大于或等于信號帶寬的兩倍。因而,這就要求信號的帶寬必須有限,根據(jù)信號理論,我們知道信號帶寬和信號時寬之間是有制約關系的,帶寬有限的信號時寬一定是無限的。為了能夠用數(shù)字計算機對連續(xù)信號進行頻譜分析,我們必須要對信號截短,截斷的過程相當于一個窗函數(shù)與原信號相乘的過程,在頻域是信號頻譜與窗的頻譜卷積,故窗的頻率特性影響到對原信號的頻譜分析,為減少這一影響,要求窗函數(shù)的頻率特性是主瓣盡可能地窄,旁

22、瓣盡可能低。在用FFT進行頻譜分析時,人們常常會產(chǎn)生一種誤解,認為在有效數(shù)據(jù)后補零可以提高頻率的分辨率。但是,由于用FFT進行頻譜分析,原信號頻譜是被窗函數(shù)卷積而“模糊”了,其模糊的程度是由窗函數(shù)的主瓣寬度決定的,而它的主瓣寬度取決于截斷的數(shù)據(jù)長度,也就是說,長度越長主瓣越窄,模糊程度越低。數(shù)據(jù)后面補零,只是起到對插值的作用,使頻譜的外觀得到平滑,克服了“柵欄”效應。這通過第一道上機練習題得到驗證。第二道上機練習題,同學們可以體會到采用不同的窗函數(shù)對頻譜分析的影響。實驗題目: 1.已知一正弦信號,其中 ,試利用FFT對信號進行幅頻分析,信號截斷采用矩形窗。要求如下:離散數(shù)據(jù)長度是16個點,用1

23、6點FFT分析.離散數(shù)據(jù)長度是32個點,用32點FFT分析.離散數(shù)據(jù)長度是64個點,用64點FFT分析.離散數(shù)據(jù)長度是128個點,用128點FFT分析.離散數(shù)據(jù)長度是512個點,用512點FFT分析.離散數(shù)據(jù)長度是16個點,其后再補48個零點,用64點FFT分析.離散數(shù)據(jù)長度是16個點,其后再補506個零點,用512點FFT分析.離散數(shù)據(jù)長度是32個點,其后再補32個零點,用64點FFT分析.離散數(shù)據(jù)長度是32個點,其后再補480個零點,用512點FFT分析.分別利用凱澤窗和哈明窗對下面的信號作頻譜分析, 其中,;凱澤窗的過渡帶為: ,3 令,重復習題2。 以上習題要求畫出 實驗五 卷積和濾波

24、 線性時不變系統(tǒng)的輸入輸出關系是卷積關系。當然,卷積運算可以直接進行,對于FIR濾波器,其硬件實現(xiàn)結(jié)構(gòu)是橫向濾波器結(jié)構(gòu)。但如果用數(shù)字計算機實現(xiàn),即用軟件實現(xiàn)時,可以利用FFT快速算法來實現(xiàn)快速卷積,其運算量在一定的條件下要少于直接卷積的運算量。利用FFT快速算法實現(xiàn)卷積的機理是根據(jù)卷積定理,兩個序列的卷積的傅立葉變換在頻域是乘積關系,本實驗的第一道題就是用重疊相加法和重疊保留法來實現(xiàn)一個長序列與一個短序列的卷積。 第二題是利用FIR濾波器。利用FIR濾波器的前提必須是沖激響應的長度是有限的,用h(n)求出沖激響應的變換,然后利用y=filtfilt(b,a,x)進行FIR濾波即可得輸出 第三題

25、的卷積濾波是直接從沖激響應出發(fā),在已知輸入和沖激響應的情況下,利用卷積y=conv(a,b)求輸出這樣,得到的輸出的長度是不確定的,畫圖時應注意這一點,使軸和軸的坐標相對應實驗題目:1:分別用直接卷積法、重疊保留法、重疊相加法、求以下兩個序列的卷積,看結(jié)果是否相同每次輸入序列長度為N=128 2:利用FIR濾波器進行濾波,從而實現(xiàn)下列三個系統(tǒng)的輸出,三個系統(tǒng)的沖激響應如下: ,輸入為長度為,重復四個周期的方波,該方波的平均值為 3:利用卷積進行濾波,從而實現(xiàn)下列三個系統(tǒng)的輸出,三個系統(tǒng)的沖激響應如下:,輸入為長度為,重復四個周期的方波,該方波的平均值為附錄A MATLAB系統(tǒng)與語言簡介 MAT

26、LAB 是由美國Math Works 公司推出的用于數(shù)值計算和圖形處理的科學計算系統(tǒng)環(huán)境。MATLAB是英文MATrix LABoratory(矩陣實驗室)的縮寫。它的第1版(DOS版本1.0)發(fā)行于1984年,經(jīng)過10余年的不斷改進,現(xiàn)在已推出它的Windows 95版本(5.3版)。新的版本集中了日常數(shù)學處理中的各種功能,包括高效的數(shù)值計算、矩陣運算、信號處理和圖形生成等功能。在MATLAB環(huán)境下,用戶可以集成地進行程序設計、數(shù)值計算、圖形繪制、輸入輸出、文件管理等各項操作。MATLAB提供了一個人機交互的數(shù)學系統(tǒng)環(huán)境,該系統(tǒng)的基本數(shù)據(jù)結(jié)構(gòu)是矩陣,在生成矩陣對象時,不要求明確的維數(shù)說明。與

27、利用C語言或FORTRAN語言作數(shù)值計算的程序設計相比,利用MATLAB可以節(jié)省大量的編程時間。在美國的一些大學里,MATLAB正成為對數(shù)值線性代數(shù)以及其他一些高等應用數(shù)學課程進行輔助教學的有益工具。在工程技術界,MATLAB也被用來解決一些實際課題和數(shù)學模型問題。典型的應用包括數(shù)值計算、算法預設計與驗證,以及一些特殊的矩陣計算應用,如自動控制理論、統(tǒng)計、數(shù)字信號處理(時間序列分析)等。MATLAB系統(tǒng)由五個主要部分組成,下面分別加以介紹。MATLAB語言體系MATLAB是高層次的矩陣/數(shù)組語言,具有條件控制、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)、輸入輸出、面向?qū)ο蟮瘸绦蛘Z言特性。利用它既可以進行小規(guī)模編程,完

28、成算發(fā)設計和算法實驗的基本任務,也可以進行大規(guī)模編程,開發(fā)復雜的應用程序。MATLAB工作環(huán)境 這是對MATLAB提供給用戶使用的管理功能的總稱,包括管理工作空間的變量,數(shù)據(jù)輸入輸出的方式和方法,以及開發(fā)、調(diào)試、管理M文件的各種工具。圖形句柄系統(tǒng)這是MATLAB圖形系統(tǒng)的基礎,包括完成2D和3D數(shù)據(jù)圖示、圖像處理、動畫生成、圖形顯示等功能的高層次MATLAB命令,也包括用戶對圖形圖像等對象進行特性控制的低層次MATLAB命令,以及開發(fā)GUI應用程序的各種工具。MATLAB數(shù)學函數(shù)庫這是對MATLAB使用的各種數(shù)學算法的總稱,包括各種初等函數(shù)的算法,也包括矩陣運算、矩陣分析等高層次數(shù)學算法。MA

29、TLAB應用程序接口(API) 這是MATLAB為用戶提供的一個函數(shù)庫,使得用戶能夠在MATLAB環(huán)境中使用C程序或FORTRAN程序,包括從MATLAB中調(diào)用子程序(動態(tài)鏈接),讀寫MAT文件的功能。綜上所述,可以看出MATLAB是一個功能十分強大的系統(tǒng),是集數(shù)值計算、圖形管理、程序開發(fā)為一體的環(huán)境。除此之外,MATLAB還具有很強的功能擴展能力,與它的主系統(tǒng)一起,可以配置各種各樣的工具箱,以完成一些特定的任務。目前,MathWorks公司推出了18種工具箱。用戶可以根據(jù)自己的工作任務,開發(fā)自己的工具箱。在本指導書中,我們主要利用MATLAB的關于信號處理的工具箱。MATLAB系統(tǒng)的常用概念

30、命令窗口在Windows 95下啟動MATLAB系統(tǒng)后,Windows 95的工作平臺上會彈出一個窗口,如下圖所示,這個窗口稱為MATLAB的命令窗口。MATLAB的命令窗口是用戶與MATLAB解釋器進行通信的工作環(huán)境,提示符?表示MATLAB解釋器正等待用戶輸入命令。所有的MATLAB命令、MATLAB函數(shù),以及MATLAB程序都要在這個窗口下運行。在命令窗口,用戶可以發(fā)出MATLAB命令。例如,為了生成一個3*3的矩陣,可以在提示符下,鍵入如下的命令:A=1 2 3;4 5 6; 7 8 9 方括號命令表示矩陣,空格或逗號將每行的元素分開,而分號將矩陣的各行數(shù)值分開。再鍵入Enter后,M

31、ATLAB將回顯如下的矩陣:A= 1 2 3 4 5 6 7 8 9為了求該矩陣的逆矩陣,則只要鍵入命令?B=inv(A);MATLAB就將計算出相應的結(jié)果。如果不想在命令窗口中顯示計算結(jié)果,只要如上所示,在該命令后多鍵入一個分號即可。此時,MATLAB系統(tǒng)只完成該命令所要求的計算任務,其計算結(jié)果不回顯。這項功能在程序設計中是非常必要的。MATLAB系統(tǒng)也可以說是一種新的語言,該語言十分容易掌握,其結(jié)構(gòu)非常類似于數(shù)學式子的書寫格式,用戶花上很少的時間即可掌握MATLAB的大部分命令。1.2 圖形窗口MATLAB系統(tǒng)的強大功能之一是其優(yōu)秀的圖形功能。對于任何作圖命令,MATLAB將打開另一個窗口

32、來繪制輸出圖形,這樣的窗口在MATLAB系統(tǒng)中被成為圖形窗口。在同一個圖形窗口中,可以繪制多個圖形,也可以生成多個圖形窗口,并選擇其中的一個圖形窗口,在其中繪制圖形。生成圖形窗口的方法比較多,在沒有圖形窗口存在時,每個繪圖函數(shù)都能自動生成一個圖形窗口;也可以用figure 命令生成一個新的圖形窗口;還可以用命令窗口的File菜單的New子菜單的Figure項來打開一個新的圖形窗口。1.3 搜索路徑MATLAB管理著一條搜索路徑,它在搜索路徑下尋找與命令相關的函數(shù)文件。例如,如果在MATLAB提示符下輸入example, MATLAB解釋器將按照下面的步驟來處理這條字符串:檢查example是不

33、是一個變量;如果不是,檢查example是不是一個內(nèi)部函數(shù);如果不是,檢查在當前文件夾下是否存在名為example.mex,example.dll或example.m的文件。MEX文件是MATLAB 的執(zhí)行文件,將優(yōu)先執(zhí)行;如果不存在,檢查在MATLAB 的搜索路徑的目錄下是否存在名為MEX,example.mex,example.dll,或example.m的文件。MEX文件優(yōu)先執(zhí)行。用戶可以打開路徑瀏覽器(Path Browse)查看MATLAB系統(tǒng)的當前搜索路徑,也可以在其中加入自己的路徑。1.4 文件類型在MATLAB系統(tǒng)中,根據(jù)功能可將MATLAB系統(tǒng)所使用的外部文件分為幾類,并用不

34、同的擴展名作為其標識,我們用的主要是M文件。M文件以字母m為其擴展名,例如startup.m。一般說來,M文件是以ASCII碼文本文件,可以用任何文本編輯器進行編輯。在MATLAB系統(tǒng)中,有兩類M文件。一類稱為程序M文件,簡稱M文件;另一類稱為函數(shù)M文件,或簡稱為函數(shù),統(tǒng)稱為 M文件。M文件的內(nèi)容是由符合MATLAB語法的語句構(gòu)成的,函數(shù)M文件的第一行必須是以關鍵字function開始的函數(shù)說明語句。兩類M文件的共同特征是:在MATLAB命令窗口中的命令提示符下鍵入文件名,來執(zhí)行M文件中的所有語句規(guī)定的計算任務或完成一定的功能。它們的區(qū)別在于以下兩方面:第一,程序M文件中創(chuàng)建的變量都是MATL

35、AB工作空間中的變量,工作空間中的其他程序或函數(shù)可以共享,而函數(shù)M文件中創(chuàng)建的所有變量除了全程變量外,均局限于函數(shù)運行空間內(nèi)的局部變量;第二,函數(shù)M文件的調(diào)用式中可以有輸入?yún)?shù)和輸出參數(shù),而程序M文件則沒有這種功能。1.5 語言語法要素MATLAB只管理一種對象矩陣??梢允褂孟铝械娜魏我环N方法在MATLAB環(huán)境下創(chuàng)建或輸入一個矩陣:顯示的輸入一個元素序列;用MATLAB的內(nèi)部函數(shù)創(chuàng)建一個矩陣;在M文件中用MATLAB語句創(chuàng)建一個矩陣;從一個外部數(shù)據(jù)文件中裝載并創(chuàng)建一個矩陣。在MATLAB中有兩個基本概念:變量和表達式。變量由變量名表示,函數(shù)名作為特殊的變量名看待,每個變量名由一個字母后面跟隨任

36、意個字母或數(shù)字(包括下劃線)組成,但MATLAB只能分辨前19個字符。MATLAB能區(qū)分組成變量名的大小寫字母。MATLAB的語句則是下列兩種形式之一:?變量名=表達式或者?表達式在前一種語句形式下,MATLAB將運算的結(jié)果賦給“變量名”;而在第二種語句形式下,將運算的結(jié)果賦給MATLAB的永久變量ans,每條語句以回車符結(jié)束。一般的,運算的結(jié)果在命令窗口中顯示出來。如果語句的最后一個字符是分號“;”,那末,MATLAB僅執(zhí)行賦值運算,不再顯示運算的結(jié)果。與C語言一樣,MATLAB將字符串當作數(shù)組或矩陣處理。1.6 MATLAB的基本運算符矩陣運算符矩陣A的轉(zhuǎn)置。A+B,A-B矩陣A與B的和與

37、差。A*B矩陣A與B的乘法。A.*B矩陣A與B的對應元素相乘關系運算符 小于或等于 =大于或等于 =等于 =不等于1.7 特殊運算符在MATLAB的M文件中,可以加入解釋行。解釋行的標識符為“%”,該標識符將被作為注解內(nèi)容。程序執(zhí)行時,注解被忽略。方括號“ ”用于生成矩陣。特別的,語句A= 生成空矩陣A。行分隔符“;”用于MATLAB語句后時,表示該語句的執(zhí)行結(jié)果不被回顯出來,這可避免顯示一些不感性趣的結(jié)果。冒號“:“最主要的作用是生成向量,從下面的例子中可以看出它的使用方法:j:k 生成向量j,j+1,j+2,kj:i:k 生成向量j,j+i,j+2*i,k,如果jk,則生成空矩陣 A(:,

38、j) 矩陣A的第j列A(I,:) 矩陣A的第I行A(j:k) 向量A(j),A(j+1),A(k)A(:,j:k) 從第 j列到第k列的矩陣子塊換行連接符“”,有時一條MATLAB語句會很長,在命令窗口的一行內(nèi)很可能寫不下,此時只要在該語句中加入三連點,再回車即可在下一行接著寫該語句。1.8 MATLAB的常用數(shù)學函數(shù)三角函數(shù)sin正弦函數(shù)Cos余弦函數(shù)Tan正切函數(shù)Asin反正弦函數(shù)Atan反正切函數(shù)Sinh雙曲正弦函數(shù)Cosh雙曲余弦函數(shù)Tanh雙曲正切函數(shù)Asinh反雙曲正弦函數(shù)Acosh反雙曲余弦函數(shù)Atanh反雙曲正切函數(shù)Acos反余弦函數(shù)初等函數(shù)Abs實數(shù)的絕對值、復數(shù)的模、字符串

39、的ASIIC值Angle復數(shù)的幅角Sqrt方根函數(shù)Real復數(shù)的實部Imag復數(shù)的虛部Conj復共軛運算Round最鄰近整數(shù)截斷(四舍五入)Ceil不大于自變量的最大整數(shù)Rem不小于自變量的最小整數(shù)Exp自然指數(shù)函數(shù)(以e為底)Log自然對數(shù)函數(shù)(以e為底) log10以10為底的對數(shù)函數(shù)1.9 程序流控制 與其他的程序設計語言一樣,MATLAB語言也提供了條件語句。下面分別予以介紹。for循環(huán)語句MATLAB也有自己的for循環(huán)語句。如果要反復執(zhí)行的一組語句的循環(huán)次數(shù)是已知或預定義的,就可以用for循環(huán)語句。例如:?for I=1:n x(I)=0; end這條語句將向量x的前n個元素賦予零

40、值,這里的變量n必須預先給定。注意:每一個for必須與end配對使用。while循環(huán)語句MATLAB提供有while循環(huán)語句,它的作用是在一定的邏輯條件的控制下,不斷的循環(huán)執(zhí)行一條或一組語句,直到邏輯條件不滿足為止。While 語句的一般形式是While 表達式 語句組endif條件語句和bread語句break 語句用于退出循環(huán)體,if條件語句有兩種形式,分別是if 表達式 語句組1else 語句組2end和if 表達式1 語句組1elseif 表達式2 語句組2else語句組3end1.10 MATLAB的在線幫助用戶可以隨時利用MATLAB的在線幫助查詢自己不懂得用法的函數(shù)的具體用法,例

41、如:在命令窗口鍵入help abs 后的顯示如下:ABS Absolute value ABS(X) is the absolute value of the elements of X. When X is complex,ABS(X) is the complex modulus (magnitude) of the elements of X. See also SIGN,ANGLE,UNWRAP.Overloaded methods Help sym/abs.m將abs函數(shù)的主要用法和用途都列了出來。1.11 本次實驗上機的具體過程如下:在windows 95的桌面上找到MATLAB的

42、圖標單擊進入MATLAB的命令窗口,或在開始菜單里選擇程序再找到MATLAB單擊也可進入MATLAB的命令窗口。進入命令窗口后,在菜單File中選擇open,打開已存在的文件。如果是新文件,在菜單File中選擇New,再找到M-file即可打開MATLAB的編輯窗口,在編輯窗口內(nèi)輸入你的源程序后存盤。為了使程序能夠在MATLAB中運行,需要在搜索路徑中加入你的路徑,加入路徑的過程如下,在MATLAB的命令窗口中選擇File 菜單的Set path選項,則打開一個Path Browser窗口,如下圖所示: 在該窗口中單擊Browse,選擇你的路徑加入,然后在File中選擇Save Path后退出

43、即可。這樣,你可以在MATLAB的命令窗口中鍵入你的源程序文件名,或在編輯窗口中選擇Tools中的Run即可編譯運行。若編譯無錯,則可得出結(jié)果;若編譯有錯,則可根據(jù)命令窗口的提示進行修改后再編譯運行,直至得出正確的結(jié)果。附錄B 信號處理工具箱函數(shù)MATLAB包含了進行信號處理的許多工具箱函數(shù),有關這些工具箱函數(shù)的使用可通過Help命令得到。為使用方便,在這里將給出幾個常用到的函數(shù)的使用說明。 函數(shù)形式函數(shù)功能關于函數(shù)參數(shù)的說明X=sawtooth(t,width)產(chǎn)生鋸齒波或三角波。width用于確定最大值的位置,即從0到2*width函數(shù)從-1上升到+1。X=square(t,duty)產(chǎn)生方波Duty用于指定正半周期的比例Y=abs(x)求絕對值當x為復數(shù)時,得到的是復數(shù)模(幅值),若x為字符串,得到的是各個字符的ASCII碼。C=conv(a,b)求卷積求取矢量a和b的卷積,c的長度為a和b的長度和減去1。h,w=freqs(b,a,n)模擬濾波器的頻率響應.b,a為濾波器的沖擊響應s變換的分子和分母多項式的系數(shù),在n個頻率點計算頻率響應h,f=freqz(b,a,n,

溫馨提示

  • 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

提交評論