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