劉昌欣
遼寧錦州渤海大學工學院
基于DSP的FIR濾波器設計
劉昌欣
遼寧錦州渤海大學工學院
相對于模擬濾波器而言數字濾波器不存在漂移,而且同時其頻率響應特性能夠做到理想的特性,并且精度十分高。對于的DSP開發人員而言,數字濾波器的設計是經常會使用的。
DSP 數字濾波器 頻率響應
關于數字濾波器的設計步驟是先是進行濾波器算法設計,而這個算法的實現是從DSP開發環境中獲取的,在得到了相應的DSP算法源程序以后,通過數字濾波器設計的相關軟件比如Matlab,根據具體的要求以及特定的特性從而實現濾波器,當得到了FIR數字濾波器中的各個階權的系數以后,把所獲得的系數發送給DSP源程序中,并且通過對該DSP源程序編譯執行以后進行濾波器性能的評價。在得到為理想濾波器響應之前,開發人員需要多次執行中斷目標程序,將濾波器參數值進行修改處理,再一次將源程序進行編譯,并且將執行的目標程序下載。
通常在處理數字信號的應用中都會進行線性相位的濾波器設計,FIR濾波器在設計中確保了幅度特性,所以做到嚴格的線性相位特性是很容易實現。在FIR濾波器中將輸入樣本信號x(n)進行多次延時,接著進行乘法累加的相關運算,最后把濾波的結果信號y(n)輸出,所以,事實上FIR設計在一定意義上指的就是進行乘法累加一種運算。IR濾波器中能夠隨意設置幅度特性,而且還可確保線性相位的精確性。此外FIR濾波器中最大的優點是穩定性以及線性相位相關特性,除了這些特點之外FIR濾波器的特點還有FIR濾波器采用了線性的設計方式。
濾波器的過渡過程是有著特殊的有限區間的,對于llR濾波器來說,當階次比較高的時候,對于具有相同性能的HR濾波器延遲就要大得多。
關于數字濾波器的實現方法一般情況下總結為以下幾種:
3.1 計算機軟件實現
軟件實現方法指的是用軟件在微型計算機中得到相應的結果。在計算機中執行濾波器以及存儲器需要完成的程序,其中軟件設計部分的程序使用者自己能夠完成。也能夠通過相應的信號濾波處理軟件包實現。然而考慮到這種方法的速度會比較慢,所以如果要做到實時處理還是不容易實現的,計算速度的加快能夠通過快速傅立葉變換的算法實現,然而如果想要獲得實時處理的效果就需要更多的技術支持。所以計算機軟件實現的方法使用比較多。
3.2 選擇DSP處理器方法實現
DSP處理器的處理對象是數字信號處理,DSP處理器的數字運算單元其實指的就是一個乘累加器。這種處理器的乘累加運算的完成時間是需要一個機器周期的,這種處理器的方法的使用場合通常是信號處理的指令,以及有著特別的倒序、循環尋址。FIR數字濾波器直接型結構如圖1所示。

圖1 FIR數字濾波器的直接型結構
基于DSP處理器的特點在數字信號處理中的濾波器設計過程中比較容易實現,而且這種DSP處理器的速度比較快,所投入的資金成本也比較低,然而在以為的這20年里,在商用數字信號處理硬件市場中都會用到可編程的DSP器件。數字濾波中用到DSP芯片的好處包括了穩定性強,高精確度、環境對其的影響比較小等。數字濾波中能夠通過可編程DSP芯片對濾波器的參數進行修改,而且這種修改的實現是比較容易的。
4.1 DSP芯片的選擇設計
在DSP的應用系統中DSP芯片的選擇有著重大的意義,外圍電路系統的設計中需要選擇正確的DSP芯片才可以保證電路的正常運行,通常而言,DSP芯片的選擇要考慮的因素主要包括:
DSP芯片的指標中,DSP芯片的運算速度是最重要的,在DSP芯片的選擇中有著重要的意義。DSP芯片的運算速度與幾個性能指標有著重要的聯系,分別是指令周期、MAC、MOPS、MFLOPS等。其中的指令周期指的是一條指令執行的時間,指令周期的單位是ns為單位。MAC時間指的是乘法和加法運算一次所需要的時間。FFT執行時間指的是執行一個N點的FFT程序所完成的時間。硬件設計中選擇的輸入輸出方式是SPI接口串行,設計的過程中用到的寄存器以及地址如表1所示。

表1 程序設計中用到的寄存器及地址
4.2 DSP系統的設計流程
通常而言DSP系統的設計步驟主要總結為以下幾點:
(1)按照系統所要求的任務從而確定系統處理所需要的精度以及速度、實時性等性能指標。
(2)按照系統的要求模擬高級語言的算法,例如通過MATLAB的仿真工具,對算法的可行性進行驗證,從而得到處理方法的最佳選擇。
(3)關于DSP的系統設計通常是從硬件設計以及軟件設計方面選擇適合的DSP芯片。
下圖2為數字濾波器設計流程。

圖2 數字濾波器設計流程
外圍電路的設計也是根據選擇的DSP實現的。硬件設計主要是按照系統所提供的芯片進行程序的編寫,編寫的語言包括了匯編,C語言等,使用匯編語言編程實現起來比較復雜,效率也相對而言比較高,但是缺點是過程過于繁瑣。如果選擇的編程語言是C語言,編程實現起來比較簡單,缺點是效率低。在很多的系統開發的過程中通常是結合C語言和匯編共同編寫的,通過這種方法,實現起來能大大地減少開發的時間,而且還能夠增強系統的可移植性,另外一方面也使得系統的實時性得到了滿足。
5.1 程序流程
先是進行模擬信號向數字信號的轉換過程,因此需要對輸入的模擬信號抽樣,每一次的抽樣值就會通過DSP進行讀取,而且還需要將抽樣值進行卷積運算,運算的結果就會送到數字模擬轉換器中,最終產生模擬信號。下圖3為A/D轉換工作方式。
主程序流程介紹如下所示:(1)首先是初始化DSP,實現工作模式的定義,還可以定義所需的向量以及工作模式,配置需要的寄存器。(2)準備數字濾波,在存儲單元中存儲事先設計好的沖擊響應序列。(3)將抽樣的數值讀取,接著存儲到相應的存儲單元中。(4)運算處理抽樣值,設置存儲單元A和存儲單元B,初始值用K表示,第K個抽樣值用AK表示,將AK的值和第L個沖激響應所對應的序列值進行相乘,乘積的結果存儲到累加器中,AK中也會存儲第K-1個抽樣值,這時AK里面原來的值就會被AK-1代替。

圖3 A/D轉換工作方式
在數字濾波器中,有關FIR濾波器最重要的特點指的就是不存在反饋回路,所以就沒有出現不穩定的現象。本文設計部分包括了硬件設計和軟件設計,并且給出了相應的程序流程圖。
[1]陳小平, 于盛林. FIR濾波器設計:基于遺傳算法的頻率采樣技術[J]. 南京航空航天大學學報, 2000, 32(3):276-281
[2]周衛東, 李英遠. 基于神經網絡的FIR濾波器設計與應用[J]. 山東大學學報(工學版), 2003, 33(1):50-54
[3]楊麗杰, 崔葛瑾. 基于FPGA的FIR濾波器設計方法的研究[J]. 東華大學學報(自然科學版), 2006, 32(6):93-96
[4]方偉, 孫俊, 須文波. 基于自適應量子粒子群算法的FIR濾波器設計[J]. 系統工程與電子技術, 2008, 30(7):1378-1381