論文-IIR高通濾波器的matlab設(shè)計(jì)和在dsp上的實(shí)現(xiàn)_第1頁
論文-IIR高通濾波器的matlab設(shè)計(jì)和在dsp上的實(shí)現(xiàn)_第2頁
論文-IIR高通濾波器的matlab設(shè)計(jì)和在dsp上的實(shí)現(xiàn)_第3頁
論文-IIR高通濾波器的matlab設(shè)計(jì)和在dsp上的實(shí)現(xiàn)_第4頁
論文-IIR高通濾波器的matlab設(shè)計(jì)和在dsp上的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

IIR 高通濾波器的 matlab 設(shè)計(jì)和在 dsp 上的實(shí)現(xiàn) 摘要 在眾多濾波器設(shè)計(jì)方法中,本設(shè)計(jì)著重討論了 IIR高通濾波器的設(shè)計(jì)。對此濾波器的理論知識(shí)作了具體分析,通過 matlab來對其進(jìn)行設(shè)計(jì)并在 dsp上直觀形象的實(shí)現(xiàn)其功能。在本設(shè)計(jì)中,我先采集一段語音信號(hào),借助 matlab軟件,設(shè)計(jì)出一定性能指標(biāo)參數(shù)的 IIR高通濾波器對其進(jìn)行處理,借此對比此語音信號(hào)濾波前后的變化,從而觀察此濾波器的軟件濾波效果。并通過 matlab來確定此濾波器的傳遞函數(shù)參數(shù),再借助 dsp實(shí)驗(yàn)系統(tǒng)來進(jìn)行硬件上的實(shí)現(xiàn)。 實(shí)現(xiàn)時(shí),先在 CCS5000仿真開發(fā),然后將程序加載到 TMS320VC5416評(píng)估板上實(shí)時(shí)運(yùn)行,結(jié)果實(shí)現(xiàn)了目標(biāo)要求。 關(guān)鍵詞: IIR高通濾波器 Matlab7.0 Dsp Abstract In numerous filters design method, this design emphasized to discuss the design of a filter of IIR.Made the concrete nalysis to the theories knowledge of this filter, pass the Matlab to come as to its carry on the design and keep the view image to carry out its function on the DSP.In this design, I collect a speech signal first, asking for help the software of Matlab, designing a filter of an IIR of certain function index sign parameter as to its carry on the processing, borrow this contrast this speech signal wave in front and back of variety, thus observe a result of the software of this filter.Come to certain this filter to deliver the function parameter through a Matlab also, then ask for help the DSP experiment system to carry on the realization on the hardware.While carry out, imitates the true development in the CCS5000 first, then evaluate procedure add carry the TMS320VC5416 up the plank the solid luck go, as a result carrying out the target request. Keyword:A high filter of IIR Matlab7.0 Dsp 一、 模擬濾波器和數(shù)字濾波器的比較 模擬濾波器是頻率選擇電路,用于放大或衰減單一頻率成分的正弦信號(hào)或信號(hào)頻譜的一部分。 數(shù)字濾波器是指完成信號(hào)濾波處理功能的、用有限精度算法實(shí)現(xiàn)的離散時(shí)間線性非時(shí)變系統(tǒng)。它是一個(gè)離散時(shí)間系統(tǒng),它能改變包含在離散時(shí)間信號(hào) x中的譜信息,使其生成新的離散時(shí)間信號(hào) y,采樣信號(hào)表示為一列數(shù)字。數(shù)字濾波器本身既可以是用數(shù)字硬件裝配而成的一臺(tái)用于完成給定運(yùn)算的專用數(shù)字計(jì)算機(jī),也可以是將所需的運(yùn)算編成的程序,讓通用計(jì)算機(jī)執(zhí)行。數(shù)字濾波器具有穩(wěn)定性高、精度高、靈活性大等突出優(yōu)點(diǎn)。 基于以上比較,本設(shè) 計(jì)選用數(shù)字濾波器。 二、 數(shù)字濾波器的介紹 數(shù)字濾波器的種類很多,根據(jù)沖擊響應(yīng)特性,可分為有限區(qū)間沖擊響應(yīng)濾波器 FIR和無限區(qū)間沖擊響應(yīng)濾波器 IIR兩大類。 根據(jù)濾波器的功能,又可以將它們分為: 低通濾波器( LPF) 高通濾波器( HPF) 帶通濾波器( BPF) 帶阻濾波器( BSF) 數(shù)字濾波器的數(shù)學(xué)運(yùn)算通常有兩種實(shí)現(xiàn)方式。一種是頻域法,即利用 FFT快速運(yùn)算辦法對輸入信號(hào)進(jìn)行離散傅立葉變換,分析其頻譜,然后根據(jù)所希望的頻率特性進(jìn)行濾波,再利用傅立葉反變換恢復(fù)出時(shí)域信號(hào)。這種方法具有較好的頻域選擇特性和靈活性,并且由 于信號(hào)頻率與所希望的頻譜特性是簡單的相乘關(guān)系,所以它比計(jì)算等價(jià)的時(shí)域卷積要快得多。另一種方法是時(shí)域法,這種方法是通過對離散抽樣數(shù)據(jù)做差分?jǐn)?shù)學(xué)運(yùn)算來達(dá)到濾波的目的的。 數(shù)字濾波器的設(shè)計(jì)方法有多種,如雙線性變換法、窗函數(shù)設(shè)計(jì)法、插值逼近法和 Chebyshev逼近法等等。隨著 MATLAB軟件尤其是 MATLAB的信號(hào)處理工作箱的不斷完善,不僅數(shù)字濾波器的計(jì)算機(jī)輔助設(shè)計(jì)有了可能,而且還可以使設(shè)計(jì)達(dá)到最優(yōu)化。 三、 FIR和 IIR的比較 FIR類濾波器通常是非遞歸型濾波器,沒有反饋項(xiàng),僅有正饋,其主要優(yōu)點(diǎn)是穩(wěn)定性好、硬件易實(shí) 現(xiàn)。但要達(dá)到高性能,需要濾波器階次高,從而系數(shù)多,所做的乘法操作多,延遲時(shí)間長。 IIR型濾波器是一種遞歸型濾波器,具有反饋,結(jié)構(gòu)簡單,系數(shù)少,乘法操作少,可以解析控制,效率較高,與模擬濾波器有對應(yīng)關(guān)系。其缺點(diǎn)是要考慮系統(tǒng)穩(wěn)定性,需要記憶的數(shù)據(jù)多,易產(chǎn)生溢出。兩者相比較,在滿足性能要求的前下, IIR濾波器比相應(yīng)的 FIR濾波器具有低得多的階次。 雖然 FIR濾波器較 IIR可得到嚴(yán)格的線性相位,但在相同技術(shù)指標(biāo)下, IIR濾波器由于存在著輸出對輸入的反饋,因而可用約 1/10 1/5FIR 濾波器的階數(shù)來滿足指標(biāo)的要 求,這樣一來所用的存儲(chǔ)空間少,運(yùn)算次數(shù)少,實(shí)時(shí)性強(qiáng)。此外,IIR濾波可以利用模擬濾波器設(shè)計(jì)的現(xiàn)成的閉合公式、數(shù)據(jù)和表格。因而計(jì)算工作量小,對計(jì)算工具要求不高。 如在諧波檢測環(huán)節(jié)中所用數(shù)字濾波器的作用在于通過直流,濾除交流,對相位的要求不高,而對計(jì)算速度要求極高,故而在此情況下可以選擇 IIR濾波器來 實(shí)現(xiàn)功能。 四、 IIR高通濾波器的 matlab設(shè)計(jì) 1、 數(shù)字濾波器 IIR的介紹及設(shè)計(jì) 、 常用 IIR數(shù)字濾波器的比較 數(shù)字 IIR濾波器具有良好的幅頻響應(yīng)特性,被廣泛應(yīng)用于通信、控制、生物醫(yī)學(xué)、振動(dòng)分析、雷達(dá)和聲納等領(lǐng) 域。從濾波器實(shí)現(xiàn)來看,數(shù)字 IIR濾波器 的主要結(jié)構(gòu)有直接型、直接型、級(jí)聯(lián)型以及并聯(lián)型幾種 等基本網(wǎng)絡(luò)結(jié)構(gòu)類型 ,如下: 直接型 IIR濾波器的系統(tǒng)函數(shù) kkNkrrMrzazbzH101)(對應(yīng)的差分方程為 Ni iMi iinyainxbny10)()()( 其信號(hào)流程圖 直接 型 IIR濾波器的系統(tǒng)函數(shù)又可以寫成 )()(11)()()()()()()()(2110zHzHzazbzXzW zWzYzX zYzHkkNkrrMr 第一個(gè)子系統(tǒng) )(1 zH 實(shí)現(xiàn)零點(diǎn),時(shí)域?yàn)?Nr rrnwbzy0)()( 。第二個(gè)子系統(tǒng))(2 zH 實(shí)現(xiàn)極點(diǎn),時(shí)域?yàn)?Nk kknwazxzw1)()()( 。 其信號(hào)流程圖為: 級(jí)聯(lián)型 將 IIR濾波器的系統(tǒng)函數(shù)的分子分母表達(dá)為因子的形式,即 212111*11111*111)1)(1()1()1)(1()1()( NiiiNiiMiiiMiizqzqzpzhzhzgAzH由于系統(tǒng)函數(shù)的系數(shù)都是實(shí)系數(shù),故零、極點(diǎn)只有兩種情況:或者是實(shí)根,或者是共軛復(fù)根。 并聯(lián)型 將 IIR濾波器的系統(tǒng)函數(shù)展開成部分分式之和,即 1 21 1 01*1 11 )1)(1( )1(1)( Nk Nk NM k kkkkkkkk zGzdzd zeBzgAzH 總系統(tǒng)為個(gè)部分系統(tǒng)函數(shù)之和,則表示其為各響應(yīng)子系統(tǒng)的并聯(lián)。 在各種數(shù)字濾波 器結(jié)構(gòu)中,級(jí)聯(lián)型濾波器結(jié)構(gòu)一方面由于各級(jí)之間相互不影響,便于準(zhǔn)確實(shí)現(xiàn)濾波器零、極點(diǎn)和調(diào)整濾波器頻率響應(yīng)性能;另一方面由于各級(jí)極點(diǎn)密集度小,濾波器性能受濾波器系數(shù)量化的影響小,因此倍受關(guān)注。 偶數(shù)階級(jí)聯(lián)型數(shù)字 IIR濾波器由若干二階實(shí)系數(shù)子濾波器以級(jí)聯(lián)形式組成,奇數(shù)階級(jí)聯(lián)型 IIR濾波器通常由一個(gè)一階實(shí)系數(shù)子濾波器和若干二階實(shí)系數(shù)子濾波器以級(jí)聯(lián)形式組成,具體如圖 1所示。一階和二階數(shù)字 IIR子濾波器采用如圖 2所示的直接型網(wǎng)絡(luò)結(jié)構(gòu),這樣可以保證所需的存儲(chǔ)器數(shù)量最少。 IIR濾波器主要有以下幾種模擬濾波器逼近:巴 特沃斯 Butterwoth,切貝雪夫 I型 Cheby ,切貝雪夫型 Cheby ,橢圓函數(shù)型(或稱考爾型) Elliptic,以及 Bessel型。 2、 Matlab MATLAB是一套用于科學(xué)計(jì)算的可視化高性能語言與軟件環(huán)境。它集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體,構(gòu)成了一個(gè)界面友好的用戶環(huán)境。它的信號(hào)處理工具箱包含了各種經(jīng)典的和現(xiàn)代的數(shù)字信號(hào)處理技術(shù),是一個(gè)非常優(yōu)秀的算法研究與輔助設(shè)計(jì)的工具。在設(shè)計(jì)數(shù)字濾波器時(shí),通常采用 MATLAB來進(jìn)行輔助設(shè)計(jì)和仿真。在本設(shè)計(jì)中同時(shí)結(jié)合了函數(shù)和 FDATool工具來對比設(shè) 計(jì) IIR高通濾波器。 Matlab界面如下圖: ( 1) Matlab中的濾波器直接設(shè)計(jì) IIR濾波器的函數(shù) freqz函數(shù):求解數(shù)字濾波器頻率響應(yīng) h,f=freqz(b,a,n,fs) fs為采樣頻率 abs函數(shù) y=abs( x)計(jì)算 x各元素的絕對值 buttord函數(shù):選擇巴特沃斯濾波器最小階數(shù) n,wn=buttord( wp,ws,rp,rs) Cheb1ord函數(shù):選擇切筆雪夫 型濾波器最小階數(shù) n,wn= Cheb1ord( wp,ws,rp,rs) Cheb2ord函數(shù):選擇切筆雪夫 型濾波器最小階數(shù) n,wn= Cheb2ord( wp,ws,rp,rs) Ellipord函數(shù):選擇橢圓濾波器最小階數(shù) n,wn= Ellipord( wp,ws,rp,rs) ( 2) matlab中的交互式圖形用戶界面工具 sptool SPTool是一個(gè)圖形環(huán)境,它為信號(hào)處理工具箱中的很多函數(shù)提供了易于使用的界面,只需要操縱鼠標(biāo)就可以再如、觀察、分析和打印數(shù)字信號(hào),分析、實(shí)現(xiàn)和設(shè)計(jì)數(shù)字濾波器,以及頻譜分析等。 啟動(dòng) matlab后在命令窗口輸入 sptool回車就 可以打開 sptool的主窗口。 由 sptool的主窗口可以看出, sptool有 3個(gè)列表框: signals列表框, filters列表框和spectra列表框,它們對應(yīng)著 sptool工具中的 4個(gè)功能模塊。 信號(hào)瀏覽器:觀察、分析時(shí)域信號(hào)的信息; 濾波器設(shè)計(jì)器:創(chuàng)建任意階數(shù)的低通、高通、帶通或帶阻的 FIR和 IIR濾波器; 濾波器觀察器:分析濾波器的特性,有幅值響應(yīng)、相位響應(yīng)、群延遲和脈沖響應(yīng)等; 譜觀察起:把用各種 PSD估計(jì)方法得到的頻域數(shù)據(jù)以圖形的方式進(jìn)行分析研究 在用 sptool進(jìn)行信號(hào)處理時(shí),必 須先載入數(shù)據(jù)。按照不同的數(shù)據(jù)類型,數(shù)據(jù)載入可以分為信號(hào)數(shù)據(jù)載入、濾波器數(shù)據(jù)載入以及功率譜數(shù)據(jù)載入。 A、 首先在 matlab工作空間創(chuàng)建信號(hào)數(shù)據(jù) B、 載入信號(hào)數(shù)據(jù)。 Import to sptool a、 選擇載入數(shù)據(jù)對話框右上角 import as 下拉表框中的 signal選項(xiàng)。 b、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) y,再單擊與右邊 data文本框一一對應(yīng)的箭頭按鈕,則在 data文本框中會(huì)出現(xiàn) y的名字。 c、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) fs,再 單擊與右邊 samping frequency文本框一一對應(yīng)的箭頭按鈕,則在 samping frequency文本框中會(huì)出現(xiàn) fs的名字。 d、 確定載入信號(hào)的名稱,設(shè)為“ ling1”。 e、 單擊 ok按鈕后,信號(hào)數(shù)據(jù)被載入。 此時(shí),在 sptool主窗口的 signals列表框中單擊 view按鈕,就可以觀察所載入的數(shù)據(jù)信號(hào)波形了。 C、 載入濾波器數(shù)據(jù) a、 選擇載入數(shù)據(jù)對話框右上角 import as 下拉表框中的 filter選項(xiàng),表示載入濾波器數(shù)據(jù)。這時(shí)候,在該下拉列表框的下面會(huì)出現(xiàn)一個(gè)新的下拉列表框form,里面含有 4種不同類型的濾 波器表達(dá)式: Transfer Function; state space; zero,poles,gain; 2nd order sections。 b、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) a,再單擊與右邊 denominator文本框一一對應(yīng)的箭頭按鈕,則在 denominator文本框中會(huì)出現(xiàn) a的名字。同理,選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) b,再單擊與右邊 numerator文本框一一對應(yīng)的箭頭按鈕,則在 numerator文本 框中會(huì)出現(xiàn) b的名字。 c、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) fs,再單擊與右邊 samping frequency文本框一一對應(yīng)的箭頭按鈕,則在 samping frequency文本框中會(huì)出現(xiàn) fs的名字。 d、 確定載入信號(hào)的名稱,設(shè)為“ filter1”。 e、 單擊 ok按鈕后,濾波器數(shù)據(jù)被載入。 此時(shí),在 sptool主窗口的 filters列表框中單擊 view按鈕,就可以觀察所載入的濾波器數(shù)據(jù)的波形了。 D、 載入功率譜數(shù)據(jù) a、 選擇載入數(shù)據(jù)對話框右上角 import as 下拉表框中的 spectrum選項(xiàng),表示載入濾波器數(shù)據(jù)。這時(shí)候,在該下拉列表框的下面會(huì)出現(xiàn)兩個(gè)字段: PSD和Freq.Vector。 b、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) pxx,再單擊與右邊 psd文本框一一對應(yīng)的箭頭按鈕,則在 psd文本框中會(huì)出現(xiàn) a的名字。 c、 選擇載入數(shù)據(jù)對話框中間 workspace contents列表框中的信號(hào)數(shù)據(jù) F,再單擊與右邊 Freq.Vector文本框一一對應(yīng)的箭頭按鈕,則在 Freq.Vecto文本框中會(huì)出現(xiàn) F的名字。 d、 確定載入信號(hào)的名稱,設(shè)為“ spect1”。 e、 單 擊 ok按鈕后,濾波器數(shù)據(jù)被載入。 此時(shí),在 sptool主窗口的 spectrum列表框中單擊 view按鈕,就可以觀察所載入的濾波器數(shù)據(jù)的波形了 ( 3) Matlab中的交互式數(shù)字濾波器設(shè)計(jì)工具 FADTool FDATool( Filter Design & Analysis Tool)是 MATLAB 信號(hào)處理工具箱里專用的濾波器設(shè)計(jì)分析工具, MATLAB6.0 以上的版本還專門增加了濾波器設(shè)計(jì)工具箱( Filter Design Toolbox)。 FADTool可以對濾波器進(jìn)行直接設(shè)計(jì)。 FDATool可以設(shè)計(jì)幾乎所有的 基本的常規(guī)濾波器,包括 FIR 和 IIR 的各種設(shè)計(jì)方法。它操作簡單,方便靈活。 對于設(shè)計(jì)完成的濾波器,在 FADTool中而已對其進(jìn)行分析,繪制幅頻曲線、相位響應(yīng)、零極點(diǎn)圖等,并且將設(shè)計(jì)結(jié)果保存到工作空間中,同時(shí),也可將其保存為 mat文件、文本文件,或直接生成 c語言的頭文件等。通過filter design toolbox,在 FADTool 中還可以考慮濾波器量化對濾波器性能造成的影響。 FDATool 界面總共分兩大部分,一部分是 Design Filter,在界面的下半部,用來設(shè)置濾波器的設(shè)計(jì)參數(shù),另一部分則是特性區(qū) ,在界面的上半部分,用來顯示濾波器的各種特性。 Design Filter 部分主要分為: Filter Type(濾波器類型)選項(xiàng),包括 Lowpass(低通)、 Highpass(高通)、Bandpass(帶通)、 Bandstop(帶阻)和特殊的 FIR 濾波器。 Design Method(設(shè)計(jì)方法)選項(xiàng),包括 IIR 濾波器的 Butterworth(巴特沃思)法、 Chebyshev Type I(切比雪夫 I 型)法、 Chebyshev Type II(切比雪夫II 型) 法、 Elliptic(橢圓濾波器)法和 FIR 濾 波器的 Equiripple 法、 Least-Squares(最小乘方)法、 Window(窗函數(shù))法。 Filter Order(濾波器階數(shù))選項(xiàng),定義濾波器的階數(shù),包括 Specify Order(指定階數(shù))和 Minimum Order(最小階數(shù))。在 Specify Order 中填入所要設(shè)計(jì)的濾波器的階數(shù)( N 階濾波器, Specify Order N-1),如果選擇 Minimum Order 則MATLAB 根據(jù)所選擇的濾波器類型自動(dòng)使用最小階數(shù)。 Frenquency Specifications 選項(xiàng),可以詳細(xì)定義 頻帶的各參數(shù),包括采樣頻率Fs 和頻帶的截止頻率。它的具體選項(xiàng)由 Filter Type 選項(xiàng)和 Design Method 選項(xiàng)決定,例如 Bandpass(帶通)濾波器需要定義 Fstop1(下阻帶截止頻率)、 Fpass1(通帶下限截止頻率)、 Fpass2(通帶上限截止頻率)、 Fstop2(上阻帶截止頻率),而 Lowpass(低通)濾波器只需要定義 Fstop1、 Fpass1。采用窗函數(shù)設(shè)計(jì)濾波器時(shí),由于過渡帶是由窗函數(shù)的類型和階數(shù)所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參數(shù)。 Magnitude Specifications 選項(xiàng),可以定義幅值衰減的情況。例如設(shè)計(jì)帶通濾波器時(shí),可以定義 Wstop1(頻率 Fstop1 處的幅值衰減)、 Wpass(通帶范圍內(nèi)的幅值衰減)、 Wstop2(頻率 Fstop2 處的幅值衰減)。當(dāng)采用窗函數(shù)設(shè)計(jì)時(shí),通帶截止頻率處的幅值衰減固定為 6db,所以不必定義。 Window Specifications選項(xiàng),當(dāng)選取采用窗函數(shù)設(shè)計(jì)時(shí),該選項(xiàng)可定義,它包含了各種窗函數(shù)。 ( 4)、設(shè)計(jì)過程 4.1 語音信號(hào)的采集 設(shè)計(jì)的開始利用 Windows下的錄音機(jī),錄制一段語音信號(hào),時(shí)間在 1 s內(nèi) 。然后在 Matlab軟件平臺(tái)下,利用函數(shù) wavread 對語音信號(hào)進(jìn)行采樣,取一定的采樣頻率和采樣點(diǎn)數(shù)。并通過 sound()函數(shù)來試聽采集的語音信號(hào)。 y,fs,bite=wavread(f: ling.wav,1024 5120); Sound(y,fs,bite); fs fs = 11025 bite bite = 8 根據(jù)以上 sptool 工具的介紹,可載入濾波器數(shù)據(jù)的圖形如下: 圖 3 語音信號(hào)的時(shí)域波形 4.2 語音信號(hào)的頻 譜分析 針對次語音信號(hào),首先畫出語音信號(hào)的時(shí)域波形;然后對語音號(hào)進(jìn)行快速傅里葉變換,得到信號(hào)的頻譜特性,從而對次信號(hào)的頻譜特性的有個(gè)形象的描述。其程序如下: Y=fft(y,4096); 結(jié)合 sptool工具,可得出此頻譜圖如下: 圖 4 語音信號(hào)的頻譜特性 4.3 設(shè)計(jì)數(shù)字濾波器和畫出其頻率響應(yīng) 本設(shè)計(jì)首先給出要設(shè)計(jì)的高通濾波器的性能指標(biāo): 高通濾波器性能指標(biāo) fc 4 800 Hz(阻帶截止頻率) fb 5 000 Hz(通帶截止頻率) As 100 dB(阻帶衰減), Ap 1 dB(通帶衰減)。 利用雙線性變換法設(shè)計(jì)此濾波器。在 Matlab 中,可以利用函數(shù) butter, cheby1 和 cheby2、 ellip來設(shè)計(jì) IIR濾波器;本設(shè)計(jì)通過 ellip來實(shí)現(xiàn)此 IIR濾波器。利用 Matlab 中的函數(shù) freqz畫出各濾波器的頻率響應(yīng)。程序如下: fc=4800; fb=5000; As=100; Ap=1; fs=11025; wc=2*fc/fs; wb=2*fb/fs; n,wn=ellipord(wc,wb,Ap,As); b,a=ellip(n,Ap,As,wn,high); freqz(b,a,512,fs); n n = 9 wn wn = 0.8707 b b = 1.0e-003 * Columns 1 through 4 0.0315 0.1427 0.3028 0.3475 Columns 5 through 8 0.1581 -0.1581 -0.3475 -0.3028 Columns 9 through 10 -0.1427 -0.0315 a a = Columns 1 through 4 1.0000 8.2336 30.5126 66.7690 Columns 5 through 8 95.0462 91.2541 59.0826 24.8728 Columns 9 through 10 6.1780 0.6898 圖 5 頻率響應(yīng)圖 4.4 用濾波器對信號(hào)進(jìn)行濾波 通過以上性能指標(biāo)設(shè)計(jì)出的高通濾波器對采集的信號(hào)進(jìn)行濾波,在 Matlab中, IIR 濾波器利用函數(shù) filter 對信號(hào)進(jìn)行濾波。 x=filter(b,a,y); X=fft(x,4096); 圖 6 濾波器的頻率響應(yīng)圖 運(yùn)行 filter 可觀察此濾波器的各項(xiàng)特性圖如下: 4.5 比較濾波前后語音信號(hào)的波形及頻譜 為了更好的對比濾波前后信號(hào)的變化,看出濾波器的濾波效果,本設(shè)計(jì)在一個(gè)窗口同時(shí)畫出濾波前后的波形及頻譜 。其程序如下: subplot(223); plot(x); title(濾波后信號(hào)波形 ); subplot(224); plot(abs(X); title(濾波后信號(hào)頻譜 ); 圖 7 濾波前后的信號(hào)頻譜 4.6 回放語音信號(hào) 在 Matlab 中,函數(shù) sound 可以對聲音進(jìn)行回放。其調(diào)用格式: sound(x, fs,bite);可以感覺濾波前后的聲音有變化。 圖 8 濾波后的語音信號(hào)圖 4.7 為了更形象的觀察此濾波器的功能效果,本設(shè)計(jì)同時(shí)運(yùn)行 fdatool 工具來設(shè)計(jì)相同性能指標(biāo)的濾波器。在 matlab 的命令欄中輸入 fadtool,出現(xiàn) fdatool 工具的主窗口。在相應(yīng)的欄中輸入性能指標(biāo)參數(shù),設(shè)計(jì)出此濾波器的一系列圖形如下所示: 根據(jù)以上濾波器在 matlab 中的設(shè)計(jì),可以看出,對比此濾波器在 sptool 和fdatool 中設(shè)計(jì),說明能得到的性能相似的高通 IIR 濾波器。 4.8 高通 IIR 濾波器在 DSP 上的實(shí)現(xiàn) 1)、 數(shù)字濾波器的實(shí)現(xiàn)方法 數(shù)字濾波器的實(shí)現(xiàn)方法一般有以下幾種。 采用加法器、乘法器、延時(shí)器設(shè)計(jì)專用的濾波電路。 在通用計(jì)算機(jī)系統(tǒng)中加上專用的加速處理機(jī)設(shè)計(jì)實(shí)現(xiàn)。 用通用的可編程 DSP芯片實(shí)現(xiàn)。 用專用的 DSP 芯片實(shí)現(xiàn)。在一些特殊的場合,要求的信號(hào)處理速度極高,用通用 DSP芯片很難實(shí)現(xiàn)。這種芯片將相應(yīng)的濾波算法在芯片內(nèi)部用硬件實(shí)現(xiàn),無需進(jìn)行編程。 采用 FPGA/CPLD 設(shè)計(jì)實(shí)現(xiàn)。 在上述幾種方法中,第 種方法的缺點(diǎn)是速度較慢,一般可用于 DSP算法的模擬。第 、 種方法專用性強(qiáng),應(yīng)用受到很大的限制。第 、 種方法都可以通過編程來實(shí)現(xiàn)各種數(shù)字濾波,但是,第 種因有專用的指令來實(shí)現(xiàn)濾波運(yùn)算編程實(shí)現(xiàn)容易,而第 種方法編程 實(shí)現(xiàn)較為困難。 2)、數(shù)字濾波器的 DSP 實(shí)現(xiàn) DSP是一種實(shí)時(shí)、快速、特別適合于實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算的微處理器。由于它由具有豐富的硬件資源、改進(jìn)的哈佛結(jié)構(gòu)、高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng),而在通信、航空、航天、雷達(dá)、工業(yè)控制、網(wǎng)絡(luò)及家用電器等各個(gè)領(lǐng)域得到廣泛應(yīng)用。 DSP 分為定點(diǎn)和浮點(diǎn)兩種,下面以定點(diǎn) DSP 芯片為例,討論 IIR濾波器實(shí)現(xiàn)的幾個(gè)關(guān)鍵問題。所討論的這些問題,在 DSP系統(tǒng)設(shè)計(jì)中有實(shí)際的參考和應(yīng)用價(jià)值。 2.1) 定點(diǎn)數(shù)的定標(biāo) 在定點(diǎn) DSP芯片中,采用定點(diǎn)數(shù)進(jìn)行數(shù)值運(yùn)算,其操作數(shù)一般采用整型數(shù)來表示。一個(gè)整型數(shù)的最大表示范圍取決于 DSP 芯片所給定的字長,一般為 16 位或 24 位。顯然,字長越長,所能表示的數(shù)的范圍越大,精度也越高。在濾波器的實(shí)現(xiàn)過程中, DSP 所要處理的數(shù)可能是整數(shù),也可能是小數(shù)或混合小數(shù);然而,DSP在執(zhí)行算術(shù)運(yùn)算指令時(shí),并不知道當(dāng)前所處理的數(shù)據(jù)是整數(shù)還是小數(shù),更不能指出小數(shù)點(diǎn)的位置在哪里。因此,在編程時(shí)必須指定一個(gè)數(shù)的小數(shù)點(diǎn)處于哪一位,這就是定標(biāo)。通過定標(biāo),可以在 16 位數(shù)的不同位置上確定小數(shù)點(diǎn),從而表示出一個(gè)范圍大小不同且精度也不同的小數(shù)。例如:在 Q15 中,1080H=0.12890625;在 Q0時(shí), 1080H=4224。 在使用定點(diǎn) DSP 時(shí),如何選擇合適的 Q 值是一個(gè)關(guān)鍵性問題。就 DSP運(yùn)算的處理過程來說,實(shí)際參與運(yùn)算的都是變量,有的是未知的,有的則在運(yùn)算過程中不斷改變數(shù)值,但它們在一實(shí)際工程環(huán)境中作為一個(gè)物理參量而言都有一定的動(dòng)態(tài)范圍。只要個(gè)動(dòng)態(tài)范圍確定了, Q值也就確定了。因此,在程序設(shè)計(jì)前,首先要通過細(xì)致和嚴(yán)謹(jǐn)?shù)姆治觯页鰠⑴c運(yùn)算的所有變量的變化范圍,充分估計(jì)運(yùn)算中可能出現(xiàn)的各種情況,然后確定采用何種定標(biāo)標(biāo)準(zhǔn)才能保證運(yùn)算結(jié)果正確可靠。這里,所討論的理論分析法和統(tǒng)計(jì)分析法確定變量絕對 值最大值 |max|,然后根據(jù) |max|再確定 Q 值。但是, DSP 操作過程中的意外情況是無法避免的,即使采用統(tǒng)計(jì)分析法也不可能涉及到所有情況。因此,在定點(diǎn)運(yùn)算過程中應(yīng)該采取一些判斷和保護(hù)措施(特別是在定點(diǎn)加法中)。另外,在數(shù)字信號(hào)處理中的大量運(yùn)算是乘法和累加,應(yīng)盡量采用純整數(shù)或純小數(shù)運(yùn)算,即全部變量都用 Q0或 Q15格式表示。這樣做的好處是操作簡單、編程方便。只有當(dāng)純整數(shù)或純小數(shù)運(yùn)算不能滿足變量的動(dòng)態(tài)范圍和精度要求時(shí),才采用混合小數(shù)表示法進(jìn)行定點(diǎn)運(yùn)算。 2.2) 誤差問題 因?yàn)樵谟枚c(diǎn) DSP實(shí)現(xiàn)時(shí),所有的數(shù)據(jù)都是 定長的,運(yùn)算也都是定點(diǎn)運(yùn)算,因而會(huì)產(chǎn)生有限字長效應(yīng)。所產(chǎn)生的誤差主要包括:數(shù)模轉(zhuǎn)換引起的量化誤差、系數(shù)量化引起的誤差以及運(yùn)算過程中的舍入誤差。在用定點(diǎn) DSP時(shí),產(chǎn)生誤差是不能避免的,但是可以通過一些方法減小誤差。如,可以用兩個(gè)存儲(chǔ)單元來表示一個(gè)數(shù),運(yùn)算時(shí)使用雙字運(yùn)算;可以根據(jù)需要要將濾波器系數(shù)都用雙字表示,也可以只將一半的系數(shù)用雙字表示,視需要而定。另外, FIR數(shù)字濾波器和 IIR數(shù)字濾波器所引入的量化誤差是不一樣的。 FIR 數(shù)字濾波器主要采用非遞歸結(jié)構(gòu),因而在有限精度的運(yùn)算中都是穩(wěn)定的;而 IIR 數(shù)字濾波器是遞 歸結(jié)構(gòu),極點(diǎn)必須 在 z平面單位圓內(nèi)才能穩(wěn)定,這種結(jié)構(gòu)運(yùn)算中的四舍五入處理有時(shí)會(huì)引起寄生振蕩。除了有限字長效應(yīng)以外,不同結(jié)構(gòu)引入的誤差也有所不同。在實(shí)際設(shè)計(jì)中,要注意實(shí)現(xiàn)中的誤差問題。在選擇不同的結(jié)構(gòu)時(shí),應(yīng)考慮它們所引入的誤差,并用高級(jí)語言進(jìn)行定點(diǎn)仿真,以比較不同結(jié)構(gòu)下誤差的大小,從而作出合理選擇。 2.3) 循環(huán)尋址 循環(huán)尋址( circular addressing)是 DSP中經(jīng)常用到的一種尋址方式。該尋址方法可以對一塊特定存儲(chǔ)區(qū)實(shí)現(xiàn)循環(huán)的操作??梢园蜒h(huán)尋址理解為實(shí)現(xiàn)一個(gè)滑動(dòng)窗,新數(shù)據(jù)引入后將覆蓋老的數(shù)據(jù), 便得該窗中包含了需處理的最新數(shù)據(jù)。在數(shù)字信號(hào)處理中的 FIR、卷積等運(yùn)算中,循環(huán)尋址具有極其重要的意義。 在 TI的 DSP中,循環(huán)尋址通過如下方法實(shí)現(xiàn)。 設(shè)定 BK(寄存器塊大?。┲?,以確定循環(huán)尋址緩沖區(qū)的大小,也可將它看作是循環(huán)的周期。 設(shè)定緩沖區(qū)的底部地址。必須注意:其低 N位為零,其中 N為滿足式 2 NBK的最小 N值。 用輔助寄存器間接尋址循環(huán)緩沖區(qū)。 #includemath.h #define IIRNUMBER 2 /階數(shù) #define SIGNAL1F 1000 /信號(hào) 1 的頻率 #define SIGNAL2F 4500 /信號(hào) 2 的頻率 #define SAMPLEF 10000 /采樣率 #define PI 3.1415926 float InputWave(); /輸入信號(hào) float IIR(); /IIR 濾波 float fBnIIRNUMBER= 0.0,0.7757 ; /傳遞函數(shù)的分母 float fAnIIRNUMBER= 0.1122,0.1122 ; /傳遞函數(shù)的分子 float fXnIIRNUMBER= 0.0 ; / float fYnIIRNUMBER= 0.0 ; / float fInput,fOutput; float fSignal1,fSignal2; float fStepSignal1,fStepSignal2; float f2PI; int i; float fIn256,fOut256; int nIn,nOut; main() nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; / fStepSignal1=2*PI/30; / fStepSignal2=2*PI*1.4; fStepSignal1=2*PI/50; / fStepSignal2=2*PI/2.5; / while ( 1 ) fInput=InputWave(); /調(diào)用輸入信號(hào)參數(shù) fInnIn=fInput; / nIn+; nIn%=256; /256 個(gè)點(diǎn) fOutput=IIR(); /調(diào)用 IIR 濾波 fOutnOut=fOutput

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論