數字濾波器設計 電子技術等專業(yè)畢業(yè)設計 畢業(yè)論
《數字濾波器設計 電子技術等專業(yè)畢業(yè)設計 畢業(yè)論》由會員分享,可在線閱讀,更多相關《數字濾波器設計 電子技術等專業(yè)畢業(yè)設計 畢業(yè)論(19頁珍藏版)》請在裝配圖網上搜索。
1、第一章 數字濾波器概述 數字濾波器是指用有限精度算法實現的,完成信號濾波處理的離散時間線性非時變系統(tǒng),其輸入是一組由模擬信號取樣和量化得到的數字量,其輸出是經過變換的另一組數子量。數字濾波器具有高穩(wěn)定性、高精度、靈活性大等突出特點。這章主要講述了數字濾波器的基本概念、及數學建模,以便在后續(xù)章節(jié)中實現濾波算法做好準備[1]。 1.1數字濾波器的基本概念 濾波器是一種能使有用頻率信號通過而同時抑制無用頻率信號的電子裝置,或者說是可以人為調整參數來滿足給定要求的硬件或軟件系統(tǒng)[1]。 濾波器也就是一個線性移不變離散系統(tǒng),其基本輸入輸出關系為:
2、 (1-1) 其中h(n)為系統(tǒng)的單位沖激響應。 在Z域上,有: (1-2) 分析式(1.2)可知,只要分母多項式ai(i=1,2,…,n)中有一個不為零,濾波器的的內部就存在反饋環(huán)。這種內部有反饋環(huán)的濾波器稱為遞歸型濾波器。相反,所有系數ai(i=1,2,…,n)都為零的濾波器稱為非遞歸型濾波器由于非遞歸型濾波器的內部沒有反饋環(huán),所以這種濾波器總是穩(wěn)定的。 從濾波器的單位沖激響應來看,濾波器可以分為IIR濾波器和FIR濾波器。由于IIR濾波器的傳遞函數存在0之外的極點,所以單位沖激響應是無限持續(xù)的。因而IIR濾波器與遞歸型濾波器是一致的。而F
3、IR濾波器的傳遞函數不存在0之外的極點,所以,本質上FIR濾波器與非遞歸型濾波器是一致的。但是,如果穩(wěn)定的遞歸型濾波器與非遞歸型濾波器級聯(lián)后,其極點與零點相互抵消,使濾波器在0之外不存在極點,這種濾波器也是FIR濾波器[2]。這種情況下,由于濾波器內部存在反饋環(huán),因而這種濾波器就成為遞歸型濾波器。頻率采樣濾波器就是這種結構的濾波器。 具有頻率選擇功能的數字濾波器按功能分類有低通濾波器(LPF)、高通濾波器(HPF)、帶通濾波器(BPF)、帶阻濾波器[3]。另外,在全頻帶幅頻特性固定的濾波器稱為全通濾波器,可用于改善濾波器的相頻特性。 1.2 數字濾波器的頻率特性 幅頻特性 設采樣周期
4、為T,令z=jwT,從z變換理論即可得到H(z)的頻率特性,可表示為: (1-3) 圖1-1 理想幅頻特性 H(ejwT) 其中,| H(ejwT)|表示數字濾波器的幅頻特性; ∠H(ejwT)、Ф(wT)表示相頻特性[3]。另外,H(ejwT) 是數字濾波器的頻率傳遞函數,它表示決定數字濾波器的幅 頻特性與相頻特性的頻率特性。各種數字濾波器的理想幅頻 特性示于圖1-1。 相頻特性 設計數字濾波器時,不僅要考慮它的幅頻特性,相頻特性也是需要考慮的重要問題。特別是在線性相位濾波器中,相位的延遲不會造成波形失真,所以在波形要求很高時,濾波器具有線性
5、相位是非常重要的[4]。 我們知道,一般情況下要減?。ㄔ龃螅┩◣c阻帶的波紋,會造成過渡帶的截止特性變差(變好)。根據濾波器的使用目的,其重點是不一樣的,在濾波器的階次確定后,合理的折中方案是必要的。但是當幅頻特性要求很高,不能得到滿意結果時,不僅要采用更高階次FIR濾波器,還必須考慮采用IIR濾波器。 1.3 數字濾波器的數學建模 任何線性時不變集總參數離散系統(tǒng)都可用下列數學形式之一來表述其輸入輸出關系,在時域中,濾波器的功能可以用差分方程(1.4)或卷積公式(1.5)來描述: (1-4) (1-5) 在變換域中可
6、用系統(tǒng)傳遞函數(1.6)來表示: (1-6) 這三種方法是等價的,從任何一個都能推導出其他兩個[5]。即使用同一類表示方法。也存在著許多等價的算法結構。不同的算法會影響系統(tǒng)的某些實際性能。濾波器的工程實現要用計算機的硬件或軟件幫助完成,這需要考慮許多的問題: (1)計算的效率,即完成整個濾波所需要的乘法和加法次數; (2)需要的存儲量; (3)濾波器系數的量化影響; (4)運算中的舍入和截斷誤差、飽和和溢出。 不同的濾波器結構可以實現同樣的傳遞函數,但不同的算法在滿足上述的要求方面是有差別的,有的差別還很大,改變計算結構對提高計算效率和節(jié)省存儲量能起很大的作用。 1.4本章小結
7、 本章主要討論了數字濾波器的一些基本概念。數字濾波器按單位沖激響應可以分為FIR和IIR濾波器,按頻率選擇功能的數字濾波器按功能分類有低通濾波器(LPF)、高通濾波器(HPF)、帶通濾波器(BPF)、帶阻濾波器。數字濾波的作用是濾除信號中某一部分頻率分量。信號經過濾波處理,就相當于信號頻譜與濾波器的頻率相應相乘。從時域來看,就好似輸入信號與濾波器的沖激相應作卷積和。數字濾波器具有幅度特性和相位特性。 第二章 數字濾波器的設計準則及基本步驟 上一章主要討論的是數字濾波器的數學表示及一些特性和分類的問題,并沒有解決如何去設計一個數字濾波器。眾所周知,計算機或DSP芯片處理的是數字信號,那
8、么對于一個數字濾波器,要知道它設計準則。在這章主要討論數字濾波器的設計準則和基本步驟。 2.1 數字濾波器的設計準則 濾波器設計誤差是濾波器的期望響應與實際響應之間的差別。在FIR濾波器設計中通常采用3種準則[6]。 (1)最小平方(LS)近似,它是期望濾波器與設計濾波器頻率響應之間平方誤差的平均值。 (2)切比雪夫(Chebjyshe)近似,它是頻率響應指定區(qū)域內的最大誤差。 (3)巴特沃思(Butterworth)近似,它是基于泰勒級數近似的期望響應近似。 大多數的有源濾波器設計算法都是以這3種近似法的一種和Parks— McCllan(最優(yōu))算法。頻率采用快速,簡單,但其對整
9、體頻率響應的控制最弱。傅立葉設計的頻率響應中存在不合乎要求的震蕩或過沖,可以使用窗口函數控制這些效應。加窗方法的重要優(yōu)點在于其簡單性,其主要缺點是缺少對通帶和阻帶紋波控制的靈活性。Parks-McCllan算法生成一個線性相位FIR濾波器,并使切比雪夫誤差最小,但是如果不利用計算軟件,其設計非常慢[6]。 2.2數字濾波器設計的基本步驟 指標 在設計一個濾波器之前,必須首先根據工程實際的需要確定濾波器的技術指標。在很多實際應用中,數字濾波器常常被用來實現選頻操作。因此,指標的形式一般在頻域中給出幅度和相位響應。幅度指標主要以兩種方式給出。第一種是絕對指標。它提供對幅度響應函數的要求,一
10、般應用于FIR濾波器的設計。第二種指標是相對指標。它以分貝值的形式給出要求。在工程實際中,這種指標最受歡迎。對于相位響應指標形式,通常希望系統(tǒng)在通頻帶中有線性相位。運用線性相位響應指標進行濾波器設計具有如下優(yōu)點[7]: (1)只包含實數算法,不涉及復數運算; (2)不存在延遲失真,只有固定數量的延遲; (3)長度為N的濾波器(階數為N-1),計算量為N/2數量級。因此,本文中濾波器的設計就以線性相位FIR濾波器的設計為例。 逼近 確定了技術指標后,就可以建立一個目標的數字濾波器模型。通常采用理想的數字濾波器模型。之后,利用數字濾波器的設計方法,設計出一個實際濾波器模型來逼近給定的
11、目標。 性能分析和計算機仿真 上兩步的結果是得到以差分方程或系統(tǒng)函數或沖激響應描述的濾波器。根據這個描述就可以分析其頻率特性和相位特性,以驗證設計結果是否滿足指標要求;或者利用計算機仿真實現設計的濾波器,再分析濾波結果來判斷。 一些FIR濾波器的設計方法可能比較簡單,如傅立葉技術。但是,不存在對于所有濾波器特性都是最優(yōu)的單一方法。濾波器系數可以通過一些合理的公式來生成。但是,采用最優(yōu)方法來獲得最優(yōu)濾波器需要大量的計算。此外,在定點DSP處理器實現實時濾波器的主要問題就是有限精度和動態(tài)范圍。分析有限長效應的理論過于復雜,不適與手工計算,所以通常依靠計算機軟件來設計數字濾波器[7]。 2
12、.3 本章小結 本章主要討論了數字濾波器的設計準則,和設計數字濾波器的基本步驟。設計準則有最小平方(LS)近似、切比雪夫(Chebjyshe)近似、巴特沃思(Butterworth)近似,這三種方法各有優(yōu)缺點,在工程實現時由于現在有了高效的濾波器設計軟件包(如MATLAB)可供利用,所以Parks-McCllan算法被廣泛應用于大多數應用中。設計一個數字濾波器時有一些基本的步驟,首先要按照實際需要,確定濾波器的性能指標,尋找一個滿足預定性能要求的離散線性非時變系統(tǒng),然后通過模擬,驗證所設計的系統(tǒng)是否符合給定的性能指標。 第三章 濾波器的選擇 上一章我們解決了兩個問題,那就是數字濾波器
13、的設計準則及基本步驟。濾波器包括模擬濾波器和數字濾波器。但在許多信號處理應用中,使用數字濾波器代替模擬濾波器是有利的。數字濾波器不僅具有高可靠性、高精度,而且它是用可編程的處理器實現的,因而容易改變?yōu)V波器的參數。在應用環(huán)境改變時,這個特性方便設計工程師升級或修改已有的濾波器特性。并且數字濾波器容易實現不同的幅度和相位頻率特性指標,克服與模擬濾波器器件相關的電壓漂移、溫度漂移和噪聲問題,因此這里選擇使用數字濾波器。而數字濾波器的設計又分為FIR(有限長單位沖激響應)濾波器和IIR(無限長單位沖激響應)濾波器。在這一章中,就專門討論濾波器的選擇問題及FIR濾波器的定義和FIR的幾種基本結構。 3
14、.1 FIR與IIR濾波器的比較 從性能上說,IIR濾波器可用較低的階數獲得高的選擇性,所用的存儲單元少,計算量小,效率高。但是這個高效率是以相位的非線性為代價的。選擇性越好,則相位非線性越嚴重。FIR濾波器要達到高的選擇性,必須用較高的階數。對于同樣的濾波器設計指標,FIR濾波器所要求的階數可能比IIR濾波器高5~10倍,成本較高,信號延時也較大。如果按線性相位要求來說,則IIR濾波器就必須加全通網絡進行相位校正,同樣要大大增加濾波器的階數和復雜性。而FIR濾波器卻可以得到嚴格的線性相位[1]。 從結構上看,IIR濾波器必須采用遞歸結構來配置極點,并保證極點位置在單位圓內。由于有限字長
15、效應,運算過程中將對系數進行舍入處理,引起極點的偏移。這種情況有時會造成穩(wěn)定性問題,甚至產生寄生振蕩。相反,FIR濾波器只采用非遞歸結構,不論是在理論上還是在實際的有限精度運算中都不存在穩(wěn)定性問題,因此造成的頻率特性誤差也較小。此外FIR濾波器可以采用快速傅立葉變換算法,在相同階數的條件下,運算速度可以快的多[1]。 另外,也應看到,IIR濾波器雖然設計簡單,但主要是用于設計具有分段常數特性的濾波器,如低通、高通、帶通及帶阻等,往往脫離不了模擬濾波器的格局。而FIR濾波器則要靈活的多,尤其是他易于適應某些特殊應用,如構成數字微分器或西爾波特變換器等,因而有更大的適應性和廣闊的應用領域。 3
16、.2 FIR濾波器的定義 根據上面的比較,在這次設計中我們選擇的是FIR數字濾波器,所以我們只簡單介紹FIR濾波器的結構。FIR網絡結構特點是沒有反饋支路,即沒有環(huán)路,其單位脈沖響應是有限長的[8]。設單位脈沖響應h(n)長度為N,其系統(tǒng)函數H(z)和差分方程分別為 (3-1) (3-2) 其單位脈沖響應h(n)是有限長的,按照式(3-1)的Z反變換,h(n)表示為 (3-3) bn 0≤N≤n-1 0 其他 h(n)= 濾波器的階數N-1。它的長度(等于系數的個數)為N。FIR 濾波器總是穩(wěn)定的,同IIR結構相比而言,相
17、對簡單一些。而且,FIR濾波器可設計成具有線性相位,這是某些應用所希望的。 3.3 FIR濾波器的結構 直接型 設N=5(即四階FIR濾波器),按照H(Z)或者差分方程式畫出的直接結 構圖如圖3-1所示,它可以用抽頭延遲線實現[3]。則可以寫出: (3-4) 圖3-1直接型結構 x(n) y(n) z-1 z-1 z-1 z-1 z-1 b0 b1 b2 b3 b4 根據此信號流圖可以直接寫出方程式(3-4),而且不必寫出聯(lián)立方程了。 級聯(lián)型 將H(Z)進行因式分解,并將共軛成對的零點放在一起,形成一個系數對稱為實數的二階形式。這
18、樣級聯(lián)型網絡結構是由一階或二階實系數因式級聯(lián)構成的,其中每一個因式都可以用直接型實現。設FIR網絡系統(tǒng)函數H(Z)如式(3-5),要求畫出H(Z)的直接型和級聯(lián)型結構。 (3-5) 將H(Z)進行因式分解,得到: (3-6) 其級聯(lián)型結構和直接型結構如圖3-2所示。 a x(n) z-1 b z-1 z-1 d e c y(n) x(n) y(n) z-1 z-1 z-1 a1 a2 a3 a4 圖3-2 H(Z)的直接型和級聯(lián)型結構 級聯(lián)型結構每個一階因式控制一個零點,每個二階因式控制一對共軛零點,因此調
19、整零點位置比直接型方便,但H(Z)中的系數比直接型多,因而需要的乘法器多。在上例中直接型需要四個乘法器,而級聯(lián)型則需要五個乘法器。分解的因式越多,需要的乘法器也越多。當H(Z)的階次高于三階時,不易分解,需要用Matlab協(xié)助。 線性相位形式 一般的,理想的低通濾波器具有線性相位,如(3-7)式所示。 (3-7) 其中β=0或±π/2,τ為時延的拍數。要得到線性相位,實際濾波器的脈沖響應序列應當具有對稱性。利用這種對稱性可以簡化濾波器的結構。 線性相位結構在本質上仍然是直接形式,只是縮減了乘法計算量。因此,傳遞函數多項式的組成形式上,線性
20、相位結構仍等于直接形式。 3.4本章小結 經過對FIR和IIR的比較得知:FIR濾波器可以得到嚴格的線性相位;FIR濾波器只采用非遞歸結構,有限精度的計算不會產生震蕩;FIR濾波器可以采用FFT算法,在相同階數下,運算速度可以快的多;IIR濾波器可以借助于模擬濾波器的成果;而設計FIR需要借助計算機輔助設計;FIR易于適用某些特殊應用。這里,選擇的是FIR濾波器。FIR是沒有反饋支路,即沒有環(huán)路,其單位脈沖響應是有限長的。FIR的結構有直接型、接連型、轉置型和線形相位型等結果,在實際中要根據不同的要求來選擇不同的結構。 第四章 FIR濾波器的Matlab工具箱實現 本章介紹
21、了設計濾波器的Matlab工具箱SPTool和FDATool,這兩種數字信號處理工具箱都是一種圖形用戶界面,能夠方便快捷的讓我們設計自己的數字濾波器。這兩種工具箱都能查看所設計濾波器的幅度響應、相位響應、群延遲、零點極點圖、沖激響應和階躍響應。 4.1 Matlab SPTool工具箱的FIR濾波器設計 SPTool工具箱簡介 SPTool是一個圖形環(huán)境,提供了一種用于信號查看、濾波器設計和頻譜分析的多圖形環(huán)境。它為信號處理工具箱中的很多函數提供了易于使用的界面,只需要操縱鼠標就可以觀察、分析和打印數字信號,分析、實現和設計數字濾波器,以及頻譜分析等[6]。 用SPTool工具箱設計
22、FIR濾波器 啟動Matlab后在命令窗口輸入SPTool回車就可以打開SPTool的主窗口。如圖 4–1 所示,由SPTool的主窗口可以看出,SPTool有3個列表框:Signals列表框,Filters列表框和Spectra列表框,它們對應著SPTool工具中的4個功能模塊[6]: (1)信號瀏覽器; (2)濾波器設計器; (3)濾波器觀察器; (4)譜觀察器; 圖4-1 SPTool的主窗口 在用SPTool進行信號處理時,必須先載入數據或先設計好濾波器。按照不同的數據類型,數據載入可以分為信號數據載入、濾波器數據載入以及功率譜數據載入。 首先在Matlab工作空間
23、創(chuàng)建信號數據。這里以低通為例,創(chuàng)建信號數據時的Gen_Signal.m文件如下[9] [10]: fs=1000; t=0:1/fs:1; x=sin(2*pi*5*t); xn=x+rand(size(t)); [B,A]=butter(20,0.6); plot(t,xn) 可以利用File菜單中的Import選項將其他信號、濾波器或頻譜由Matlab工作區(qū)中導入到SPTool工作區(qū)內。如圖4-2所示: 圖4-2 導入信號 xn 圖4-3 信號sig1 已經從工作區(qū)中選擇數據xn導入到Signals列中,所導入的數據命名為sig1。這時單
24、擊OK按鈕,將以此信號sig1更新原來的SPTool窗口。 選擇Signals列中信號的名稱,并單擊列表下面的View按鈕,就可以查看信號了。如圖4-3給出了受干擾的正弦波sig1。 Signals Browser窗口允許查看、測試和分析時域信號的特定區(qū)域。它包括有水平和垂直標記、帶有軌跡和范圍的標記,并顯示信號的波峰和波谷,用于測試和對比。 接下來的任務是設計一個FIR低通濾波器去濾除高頻噪聲分量。將濾波器導入到Matlab工作區(qū)中最簡單的方法是單擊 File|Import,并導入分子B和分母A系數,如圖4-4所示。并單擊View來查看所導入濾波器的特性。Filter Viewer窗口
25、允許用戶查看所設計濾波器的特性,包括濾波器的幅度響應、相位響應、群延遲、零點極點圖、沖激響應和階躍響應。 圖4-4 導入分子分母系數 圖4-5 Filter Designer窗口 SPTool工具箱中還可以根據自己定義的規(guī)格設計FIR和IIR濾波器,可以通過單擊SPTool中Filters列之下的New按鈕來完成這一操作。這里選擇SPTool/Filters中的Edit,對輸入信號進行濾波設計,將出現如圖4-5所示設計的Filter Designer窗口,這里也允許自己去選擇一個濾波器設計算法、濾波器類型和頻率規(guī)格。最后通過單擊SPTool窗口中的Apply按鈕,可以選擇所設計的濾
26、波器或所導入的濾波器LSLp,并將其應用至輸入信號sig3。如下圖4-6所示: 圖4-6 信號sig3 將出現一個新的窗口,他允許我們選擇濾波器的結構,并指定輸出信號的名稱為sig3。由SPTool窗口中選擇sig1和sig3,并單擊Signal列下面的 View按鈕,可以查看輸入信號(見圖4-11)和濾波后輸出信號的時域圖。如圖4-7(a) 、(b)所示 (a)濾波前信號 (b)濾波后的信號 圖4-7 從濾波前后波形對比,我們可以看出,高頻分量被濾除掉了。 4.2 FI
27、R濾波器的Matlab FDATool工具箱的簡介 Matlab中包括一組用于設計、分析和實現FIR濾波器的函數。利用FDATool來為實際應用設計、分析和量化FIR濾波器,FDATool中整合了濾波器設計工具箱和信號處理工具箱。這一強大的工具將傳統(tǒng)的命令行濾波器設計功能集成在一個圖形窗口環(huán)境中。 濾波器設計與FDATool工具箱簡介 在Matlab命令窗口中鍵入FDATool啟動FDATool。FDATool打開默認設計模式,如圖4-8所示。 圖4-8 FDATool窗口 FDATool包含一個交互式GUI,它允許使用者指定以下濾波器設計參數[6]: (1) 濾波器類型可以為
28、低通、高通、帶通、帶阻、多頻器、微分器、Hibert轉換器、任意幅度、任意相位、升余弦。 (2) 濾波器設計方法可以是用于FIR濾波器的等紋波、最小平方和加窗法。 (3) 濾波器階數可由使用者指定,也可以是由濾波器設計方法確定的最小階數。 (4) 窗口技術要求僅可用于采用傅立葉方法的FIR設計。其中共有16種窗口可供選擇。 (5) 頻率設計要求可以是采樣頻率(fs) 、通帶截止頻率或阻帶截止頻率。 (6) 幅度技術要求可以是通帶紋波和阻帶紋波,單位可以為線性單位或dB. 有限長單位沖激響應濾波器的指標 這里以一個具體例子為例利用FDATool設計FIR濾波器的過程。濾波器的技術
29、要求給出如下: (1)應使用等紋波設計方法以最低階數設計一個帶通FIR濾波器。 (2)以Hz為單位的頻率技術要求為Fstop1=800Hz, Fstop2=1 500Hz,Fpass1=1 000Hz,Fpass2=1 300Hz,采樣頻率Fs=8 000Hz。 (3)低阻與高阻帶紋波的幅度技術要求分別為50dB(As1)和60dB(As2)。通帶紋波限制為1dB(Ap)。 4.3 Matlab FDATool工具箱的FIR濾波器設計 有了帶通濾波器的技術要求后,就可以進行Matlab軟件設計了。首先打開MATLAB進入命令窗口,在命令窗口中敲入“FDATool”命令,然后回車,
30、就進入了FDATool的默認設計模式如上圖4-7所示。在FDATool的默認設計模式中有“Response Type”,可以從中選擇“Lowpass”,“Bandpass”,“Highpass”等濾波器類型,這里以“Bandpass”為例。把技術指標填入相應的筐中,再點擊“Design Filter”,設計的濾波器就如圖4-9 Bandpass所示。 完成濾波器的設計之后,可以分析濾波器的特性。如圖4-8所示,可以通過選擇Analysis菜單中所列的方法或單擊工具欄按鈕來訪問分析方法。從Analysis菜單中選擇Magnitude Response,在右上窗口中顯示幅度響應曲線,如圖4-10
31、所示,還可以選擇Phase Response如圖4-11所示: 圖4-9 Bandpass 圖4-10 Magnitude Response 圖4-11 Phase Response Response FDATool還提供了給出濾波器特性的附加顯示。這些曲線包括相位響應、群延遲、沖激響應、階躍響應、極零圖和濾波器系數。FIR濾波器的沖激響應顯示所設計濾波器的系數。極零圖顯示極點和零點的位置。例如,相位響應和沖激響應分別顯示于圖4-11和圖4-12中。相位響應顯示的濾波器在通帶內具有線性相位,這是FIR濾波器的一個重要特性。獲得對稱系數即可獲得線性相位濾波器,
32、如沖激響應中所示(圖4-12) 圖4-12 Impulse Response 已經利用FDATool根據給定技術要求設計了一個FIR濾波器。濾波器系數以雙精度浮點格式表示,需要64位字長。需要將這些系數量化為定點數(14位或32位),以便在定點DSP處理器上實現。如圖4-13所示: 圖4-13 量化窗口 在Analysis菜單中選擇Filter Coefficents選項可以查看量化系數。在圖 圖4-14 Filter Coefficients 圖4-15 Generate C Header 4-14Filter Coefficients 中可以顯示以格式Q
33、.16格式表示的量化系數??梢栽诹斜淼淖钭罅酗@示符號+、-和0。符號+表示量化系數向+∞溢出,符號-表示量化系數向-∞溢出,符號0標志著系數已經被量化為零[6]。 系數量化后,在Filter Design & Analysis Tool界面下,單擊菜單中的Targets的下拉菜單中的Generate C Header,如圖4-15所示,以此可以完成導出過程。濾波器系數存儲在長度為BL的數組B中。然后進入Generate C Header界面,選擇Export as為signed 16-bit integer,然后單擊按紐Generate,將所得到的文件進行保存,在該文件中就可以得到一組16進
34、制有符號數據,這組數據就是后面DSP實現中編程所要用到的濾波器參數。所生成的濾波系數如下(68階): .word -93, 21, 130, 194, 104, -117, -299, -257, 15 .word 305, 360, 136, -154, -251, -127, -3, -76, -232 .word -131, 369, 895, 783, -223, -1490, -1843, -621, 1498 .word 2813, 1988, -635, -307
35、8, -3274, -869, 2339, 3802, 2339 .word -869, -3274, -3078, -635, 1988, 2813, 1498, -621, -1843 .word -1490, -223, 783, 895, 369, -131, -232, -76, -3 .word -127, -251, -154, 136, 360, 305, 15, -257, -299 .word -117, 104, 194, 130,
36、21, -93 從這組濾波器數據我們可以看出,這是一組對稱的數據. 4.4本章小結 SPTool和FDATool工具箱都是一種圖形用戶界面,能夠方便快捷的設計自己的數字濾波器。這兩種工具箱都能查看所設計濾波器的幅度響應、相位響應、群延遲、零點極點圖、沖激響應和階躍響應。為設計數字濾波器提供了方便,為后面的DSP硬件實現提供了快捷的方法。 第五章 FIR濾波器的DSP實現 本章采用上面MATLAB仿真得到的濾波系數,用循環(huán)尋址的方法,使用C54X匯編語言來實現FIR濾波器,并基于Code Composer Studio開發(fā)平臺進行的濾波運算。輸入數據通過開發(fā)系統(tǒng)File I/
37、O功能完成待處理數據的輸入,并將輸入數據送入輸入數據Buffer,運算結果也輸出到輸出Buffer中,通過開發(fā)系統(tǒng)的相應圖形功能加以顯示。 5.1 FIR DSP芯片內的循環(huán)尋址 循環(huán)尋址(circular addressing)是DSP中經常用到的一種尋址方式。該尋址方法可以對一塊特定存儲區(qū)實現循環(huán)的操作??梢园蜒h(huán)尋址理解為實現一個滑動窗,新數據引入后將覆蓋老的數據,使得該窗中包含了需處理的最新數據。在數字信號處理中的FIR、卷積等運算中,循環(huán)尋址具有極其重要的意義[11]。 在TI的DSP中,循環(huán)尋址通過如下方法實現[12]。 (1)設定BK(寄存器塊大?。┲担源_定循環(huán)尋址緩沖
38、區(qū)的大小,也可將它看作是循環(huán)的周期。 (2)設定緩沖區(qū)的底部地址。必須注意:其低N位為零,其中N為滿足式(4-3)的最小N值。 (4-3) (3) 用輔助寄存器間接尋址循環(huán)緩沖區(qū)。 5.2 帶通FIR濾波器DSP硬件實現 先準備好實驗箱,打開CCS軟件,連接好USB接口,設置DSP工作在MP方式。設置Code Composer Studio為Emulator 方式。新建一個工程,加載程序,然后編譯并下載程序到定點DSP處理器上。在接著打開觀察窗口:選擇菜單“View”、“Graph”、“Time/Frequency…”進行如下圖5-
39、1設置,點擊“OK”后,就打開了變量input的顯示圖形窗。 同上操作,選擇菜單“View”、“Graph”、“Time/Frequency…”進行如下圖5-2設置,點擊“OK”后,就打開了變量output的顯示圖形窗。然后在程序中設置斷點就可以了。 圖5-2 output 圖5-1 input 斷點設置好 后運行并觀察結果:(1)選擇“Debug”菜單的“Animate”項(快捷鍵,F12 鍵)運行程序。(2)觀察“Input”、“Output”窗口中時域圖形,如下圖5-3所示;(3)鼠標右鍵單擊“Input”和“Output”窗口,選擇“Properties…”項,設置“Dis
40、play Type”為“FFT Magitude”,如下圖5-5所示。(4)按F12 運行程序。 圖5-4 FFT Magitude 圖5-3時域圖形 圖5-3為input、output的時域波形,圖5-4為input、output作FFT變換后的頻域波形,其中橫坐標顯示實信號的歸一化頻率(f0=f/fs=0~0.5,式中f為實信號的實際頻率,fs為采樣頻率??v坐標顯示幅度的相對值,可設置圖形屬性,改為dB作單位[6]。通過觀察頻域和時域圖,結果表明,輸入波形為一個1 000Hz~1 300Hz的正弦波與一個高頻的正弦波疊加而成,輸入波形中1 000Hz~1 300Hz的波形很好
41、的通過了,輸出波形中的低于800Hz和高于1 500Hz的信號波形都很好的過濾掉了,實現了帶通濾波效果。 5.3 誤差分析 因為在用定點DSP實現時,所有的數據都是定長的,運算也都是定點運算,因而會產生有限字長效應。所產生的誤差主要包括:數模轉換引起的量化誤差、系數量化引起的誤差以及運算過程中的舍入誤差[3]。在用定點DSP時,產生誤差是不能避免的,但是可以通過一些方法減小誤差。如,可以用兩個存儲單元來表示一個數,運算時使用雙字運算;可以根據需要要將濾波器系數都用雙字表示,也可以只將一半的系數用雙字表示,視需要而定[14]。另外,FIR數字濾波器和IIR數字濾波器所引入的量化誤差是不一樣的
42、。FIR數字濾波器主要采用非遞歸結構,因而在有限精度的運算中都是穩(wěn)定的。除了有限字長效應以外,不同結構引入的誤差也有所不同[15]。在實際設計中,要注意實現中的誤差問題。在選擇不同的結構時,應考慮它們所引入的誤差,并用高級語言進行定點仿真,以比較不同結構下誤差的大小,從而作出合理選擇。 結 束 語 在數字信號處理中,數字濾波占有極其重要的地位。幾乎每一科學和工程領域,例如聲學、物理學、通信、數據通信、控制系統(tǒng)和雷達都涉及信號。在許多應用中,都希望根據期望的指標把一個信號的頻譜加以修改、整形或運算。這些過程可能包含衰減一個頻率范圍、阻止或隔離一些頻率成分。任何顯示出上述頻率選擇特性的系統(tǒng)或
43、網絡稱做一個濾波器。 數字濾波是譜分析、雷達信號處理、通信信號處理等應用中的基本處理算法,它能夠滿足濾波器對幅度和相位的嚴格要求,解決了模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題,同時有很高的可編程性和靈活性。數字濾波器是DSP最基本的應用領域,一個DSP芯片執(zhí)行數字濾波算法的能力反映了這種芯片的功能強弱,用DSP實現的數字濾波器可以十分方便地改變?yōu)V波器特性。 實時數字信號處理的應用需求和超大規(guī)模集成電路技術水平的飛速發(fā)展,推動著數字信號處理器性能的不斷提高,使其在信號處理、軍事及民用電子技術領域發(fā)揮著越來越重要的作用,其應用廣度和深度正在不斷地擴展和深化。 近幾年,DSP技術
44、發(fā)展很快,主要表現在:更新速度快;速度越來越高,內部結構越來越復雜,功能越來越強等;軟件開發(fā)工具越來越完善,用高級語言設計已經成為一種趨勢。未來DSP的理想設計模式是,設計人員編寫通用的C程序,其中調用名稱和參數規(guī)范的優(yōu)化算法函數,當DSP或DSP電路板升級時,只要將C程序在新的DSP開發(fā)環(huán)境下重新編譯和鏈接,就能生成與實際電路匹配的可執(zhí)行代碼。這樣的開發(fā)研制過程是十分快捷的,也節(jié)省了大量的人力資源、軟件開發(fā)與維護費用。 附錄 濾波器匯編程序 asm文件: .global start,fir .mmregs COFF_FIR_START: .sect "coff_fir
45、" .include "bandpass\\bandpass68.inc" //68階帶通濾波系數 K_FIR_BFFR .set 32 d_data_buffer .usect "fir_bfr",64 FIR_DP .usect "fir_vars",0 d_filin .usect "fir_vars",1 output .usect "fir_vars",1 input .usect "fir_vars",1 d_filout .usect "fir_vars",100h stacksize .set 256 stac
46、k .usect "fir_vars",stacksize .asg AR4,FIR_DATA_P .asg AR6,INBUF_P .asg AR7,OUTBUF_P .asg AR3,OUTBUF .asg AR2,INBUF .sect "fir_prog" nop start: stm #stack+stacksize,SP LD #FIR_DP,DP STM #d_data_buffer,FIR_DATA_P RPTZ A,#K_FIR_BFFR-1 STL A,*FIR_DATA_P+ STM #d
47、_filin,INBUF_P STM #d_filout,OUTBUF_P STM #output,OUTBUF STM #input,INBUF STM #100h,BK fir_loop: NOP ;Add Breakpoint & porbe point LD *INBUF_P,A STL A,*INBUF CALL fir STH A,*OUTBUF_P+% STH A,*OUTBUF main_end: b fir_loop fir: ; SSBX SXM
48、 ; SSBX FRCT STM #d_data_buffer,FIR_DATA_P STL A,*FIR_DATA_P STM #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P fir_task: RPTZ A,#K_FIR_BFFR-1 MACD *FIR_DATA_P-,COFF_FIR_START,A RET .end 連接文件: MEMORY { PAGE 0: PROG: o= 100h,l= 2000h PAGE 1: DATA1
49、: o= 2600h, l= 1000h DATA2: o= 2100h, l= 100h DATA3: o= 2200h, l= 100h DATA4: o= 2300h, l= 100h DATA5: o= 2400h, l= 100h DATA6: o= 2500h, l= 100h } SECTIONS { coff_fir : {}> PROG PAGE 0 fir_prog : {}> PROG PAGE 0 fir_vars : {}> DATA1 PAGE 1 fir_coff : {}> DAT
50、A2 PAGE 1 fir_bfr : {}> DATA3 PAGE 1 } 參考文獻 [1] 周霖.DSP通信工程技術應用. 長沙:國防工業(yè)出版社,2004.198 [2] 陳懷琛.數字信號處理教程.電子工業(yè)出版社,2004.78 [3] 程佩青.數字信號處理教程. 北京:清華大學出版社,1995.145~149,178~182 [4] 胡廣書.數字信號處理.北京:清華大學出版社,2003.99 [5] 鄭君里.信號與系統(tǒng).高等教育出版社.2003.56~57 [6] 郭森楙,顏允圣.數字信號處理器—體系結構實現與應用.北京:清華大學出版社,2005.78~9
51、5 [7] Miroslav.信號處理濾波器.電子工業(yè)出版社.2002.146~149 [8] EmmanueL.數字信號處理實踐方法.電子工業(yè)出版社.2004.199~203 [9] 張威.MATLAB基礎與編程入門.西安電子科技大學出版社,2004.152~158 [10] 王華.Matlab在電信工程中的應用.中國水利水電出版社.2005.35~37 [11] 蘇濤,盧光躍等.DSP實用技術.西安:西安電子科技大學出版社,2002.155~156 [12] 鄭紅.TMS320C54x DSP應用系統(tǒng)設計.北京航空航天大學出版社.2004.155~157 [13] ICETE
52、K-VC5416-A評估板實驗指導書 [14] 鄭紅,吳冠.TMS320C54X DSP應用系統(tǒng)設計.北京:北京航空航天大學出版社,2002.132~135 [15] 趙紅怡.DSP技術與應用實例.電子工業(yè)出版社,2003.45~47 致 謝 經過長時間的忙碌,本次畢業(yè)設計已經接近尾聲,通過進行這次設計,我對FIR濾波器的設計及實現有了較為清晰的認識。作為一個本科生的畢業(yè)設計,由于經驗的匱乏,難免有許多不足的地方,如果沒有指導老師的督促指導,以及一起學習的同學們的支持,想要完成這個設計是非常難的。 在這里首先要感謝我的指導老師曹暉老師。曹老師平日里工作繁忙,但在我做畢業(yè)設計的每個階段,都給予了我悉心的指導。在設計過程中經常遇到一些問題,曹老師都給了我詳細的講解,使我順利的完成了畢業(yè)設計。我要感謝所有幫助過我的同學,在做畢業(yè)設計的過程中他們給予我莫大的幫助。 我還要感謝所有教我的老師及實驗室的指導老師,是你們的諄諄教誨,使我擁有了豐富的專業(yè)知識。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。