0 引言
數(shù)字濾波器是一種用來過濾時(shí)間離散信號(hào)的數(shù)字系統(tǒng),通過對(duì)抽樣數(shù)據(jù)進(jìn)行數(shù)學(xué)處理來達(dá)到頻域,。濾波的目的,。根據(jù)其單位沖激響應(yīng)函數(shù)的時(shí)域特性可分為兩類:無限沖激響應(yīng)(IIR)濾波器和有限沖激響應(yīng)(FIR)濾波器,。與IIR濾波器相比,F(xiàn)IR濾波器只有零點(diǎn),,除原點(diǎn)外.在z平面上沒有極點(diǎn),,因此總是穩(wěn)定的和可實(shí)現(xiàn)的;更重要的是,,F(xiàn)IR濾波器在滿足一定的對(duì)稱條件下,,可以獲得嚴(yán)格的線性相位特性,這一點(diǎn)是IIR濾波器難以實(shí)現(xiàn)的,。因此,。它在高保真的信號(hào)處理.如數(shù)字音頻、圖像處理,、數(shù)據(jù)傳輸,、生物醫(yī)學(xué)等領(lǐng)域得到廣泛應(yīng)用。
1 FIR濾波器基本結(jié)構(gòu)
FIR濾波器的數(shù)學(xué)表達(dá)式為:
式中:N為FIR濾波器的抽頭數(shù),;x(n)為第n時(shí)刻的輸入樣本,;h(i)為FIR濾波器第i級(jí)抽頭系數(shù)。
其相應(yīng)的z變換為:
式中:z-i為N-1階多項(xiàng)式,。
普通的直接型FIR濾波器結(jié)構(gòu)如圖1所示,。
在自適應(yīng)處理、數(shù)據(jù)通信等領(lǐng)域中往往要求信號(hào)在傳輸過程中不能有明顯的相位失真,,F(xiàn)IR濾波器可以做到線性相位滿足此要求,。F1R濾波器實(shí)質(zhì)上是一個(gè)分節(jié)的延遲線,把每一節(jié)的輸出加權(quán)累加,,得到濾波器的輸出,。對(duì)于FIR濾波器的單位脈沖響應(yīng)h(i)只要滿足以下2個(gè)條件之一,則為線性相位濾波器,。
線性相位的FIR濾波器具有中心對(duì)稱的特性,,其對(duì)稱中心在N/2處。
(2)由性能指標(biāo)確定窗函數(shù)w(n)和窗口長(zhǎng)度N
(3)求得實(shí)際濾波器的單位脈沖響應(yīng)h(n)
(4)檢驗(yàn)濾波器性能,。
設(shè)計(jì)常用的窗函數(shù)有矩形窗,、漢寧窗、海明窗,、凱撒窗等,。其中:海明窗的旁瓣峰值小于主瓣峰值的1%,99.963%的能量集中在主瓣內(nèi).且通過海明窗設(shè)計(jì)的FIR濾波器在較少的階數(shù)下可以得到較小通帶紋波,,非常適合工程設(shè)計(jì),,所以本設(shè)計(jì)選擇海明窗實(shí)現(xiàn)。
3 利用QEDesign Lite設(shè)計(jì)FIR濾波器
根據(jù)窗函數(shù)設(shè)計(jì)的FIR濾波器的單位脈沖響應(yīng).h(n)有多種輔助工具進(jìn)行求取,,如:MATLAB的FDATool,、SPTool和NI的Digital Fliter Design Toolkit等,,在此.我們使用了FreeScaleDSP開發(fā)環(huán)境Codewarrior8.O自帶的QEDesignlite濾波器設(shè)計(jì)工具箱進(jìn)行FIR濾波器單位脈沖響應(yīng)h(n)的求解。
利用QE Design lite濾波器設(shè)計(jì)工具箱,,可快速進(jìn)行IIR濾波器,、基于窗函數(shù)FIR濾波器和等紋波FIR濾波器的低通、高通,、帶通和帶阻設(shè)計(jì),。并根據(jù)設(shè)計(jì)參數(shù),自動(dòng)生成濾波器的幅頻響應(yīng),、相頻響應(yīng)、群延時(shí),、沖擊響應(yīng)和單位階躍響應(yīng),,以及生成單位脈沖響應(yīng)h(n)的*.h文件和該FIR濾波器使用示例C文件,以方便后續(xù)設(shè)計(jì),。其主要設(shè)計(jì)步驟如下:
(1)運(yùn)行程序QEDesign lite,,選擇菜單項(xiàng)“DesignI FIRWindows Design……”:
(2)在彈出的“FIR(Windows)Design”窗體中,選擇“lowpass”選項(xiàng),;
(3)在“Lowpass Filter”窗體中,,輸入FIR濾波器的設(shè)計(jì)指標(biāo):采樣頻率=20000 Hz、通帶頻率=5000 Hz,、阻帶頻率=6000 Hz,、通帶紋波=O.01 dB和阻帶紋波=40 dB.如圖2所示;
(4)確定采用的窗函數(shù)類型及階數(shù)(本例采用hamming窗.階數(shù)為27階),;
(5)根據(jù)設(shè)定的FIR濾波器參數(shù),,即可得到該FIR濾波器的幅頻響應(yīng)圖、對(duì)數(shù)幅頻響應(yīng)圖,、相頻響應(yīng)圖,、群延時(shí)圖、沖擊響應(yīng)圖和單位階躍響應(yīng)圖,,可直觀的觀察設(shè)計(jì)是否滿足要求.如果不滿足設(shè)計(jì)要求,,可重復(fù)步驟3)、4),,直至滿足設(shè)計(jì)要求為止,。本FIR濾波器的幅頻響應(yīng)圖、對(duì)數(shù)幅頻響應(yīng)圖見圖3,、圖4,;
(6)設(shè)計(jì)的FIR濾波器滿足要求后,選擇菜單項(xiàng)“Code-Gen|FreeScale|DPS56800/DPS56800E”,,導(dǎo)出基于16位定點(diǎn)數(shù)的單位脈沖響應(yīng)h(n)的*.h文件,,用于后續(xù)的工程設(shè)計(jì),。
4 基于56F8013 DSP的設(shè)計(jì)實(shí)現(xiàn)
56F8013是FreeScale推出的基于56F800E內(nèi)核的低價(jià)位、低功耗的16位DSP,,它具有I2C,、SPI、UART,、ADC,、QEI等外部接口,具有在片硬件調(diào)試接口,,可進(jìn)行32位整數(shù),、36位整數(shù)加分?jǐn)?shù)運(yùn)算,配合CodeWarrior開發(fā)環(huán)境非常適合于嵌入式開發(fā),。
Processor Expert(PE)是由捷克UNIS公司開發(fā)的針對(duì)FreeScale單片機(jī)和DSP的嵌入式軟件開發(fā)包.它集成在CodeWarrior開發(fā)環(huán)境中,。Processor Expert提供了連接、生成嵌入式系統(tǒng)的硬件,、接口和算法的驅(qū)動(dòng),,對(duì)CPU核、芯片集成接口,、虛擬設(shè)備和純算法進(jìn)行了封裝(該封裝被稱為“Embedded Beans”),,并把這些功能變成屬性、方法和事件,,這與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法是一樣的,。用戶在進(jìn)行程序設(shè)計(jì)時(shí),通過調(diào)用Processor Expert提供的各種Bean,,可以方便的對(duì)DSP內(nèi)核,、外部中斷、DSP的片上外設(shè)及程序所需的各種通用算法進(jìn)行設(shè)置.使用戶只需關(guān)注整個(gè)設(shè)計(jì)的創(chuàng)造性部分,,而不是花費(fèi)大量時(shí)間讓芯片正常工作,,大大提高了生產(chǎn)率。本文的FIR濾波器的實(shí)現(xiàn),,就是基于Processor Expert的“DSP_Func_DFR”Bean和“DSP_MEM”Bean的?,F(xiàn)將具體的設(shè)計(jì)過程描述如下:
進(jìn)入CodeWarrior開發(fā)環(huán)境,選中菜單項(xiàng)“Processor Expertl| View| Bean Selector”,,在彈出的“Bean Selector”窗口中,,選中負(fù)責(zé)內(nèi)存管理的“DSP_MEM”Bean和負(fù)責(zé)數(shù)字信號(hào)處理的“DSP_Func_DFR”Beafl加入工程文件,將“DSP_Func_DFR”Bean中的“dfrl6FIRCreate”,、“dfrl6FIR”和“dfrl6FIRDestroy”方法加入主程序,。修改主程序如下:
5 結(jié)束語(yǔ)
本文介紹了基于CodeWarrior8.0軟件自帶的開發(fā)工具包QEDesign Lite和ProcessorExpert,快速進(jìn)行FIR濾波器窗函數(shù)設(shè)計(jì)的方法。通過軟件工具包的綜合運(yùn)用.大大縮減了設(shè)計(jì)研發(fā)的時(shí)間,。在實(shí)際應(yīng)用中,,可以通過對(duì)濾波器參數(shù)的修改.很容易地實(shí)現(xiàn)其他各種濾波器的設(shè)計(jì),具有一定的工程設(shè)計(jì)參考價(jià)值,。