用DSP實現(xiàn)FIR數(shù)字濾波器
2.卷積和運算的實現(xiàn)
本文引用地址:http://www.j9360.com/article/267754.htm(1) h(n)序列N個點數(shù)值的存儲
由于h(n)是根據(jù)濾波性能要求已經(jīng)設計好的有限長單位沖激響應,故其N個點的數(shù)值是已知的,因此可以存放在ROM或RAM當中,且對應著N個不同的地址,便于尋址。
(2) 輸入序列x(n)的移位寄存
輸入序列x(n)是不斷變化的,因此只能對其進行移位寄存,寄存器的個數(shù)為N,即N個寄存器中分別存放著x(n)、x(n-1)……x(n-N+1),它們都隨著n的變化而變化。
(3) 乘法器
用以完成兩個數(shù)值的乘法,即h(m)x(n-m),也就是將存儲器中N地址所對應的N個固定數(shù)值h(m)分別與N個移位寄存器中的不斷變化的N個變化數(shù)值x(n-m)相乘。
(4) 累加器
用以實現(xiàn)N個乘積的累加,即將當前x(n)所對應的N個乘積進行累加,所得到的和就是y(n)。當濾波器的下一個輸入值即x(n +1)到來時,累加器清零,并重新將下一組x(n +1)所對應的N個乘積進行累加,所得到的和就是y(n +1)。
3.DSP的支持
DSP作為信號處理應用,與一般微處理器有很大的區(qū)別。
(1) 哈佛結構:采用多個并行存儲器塊結構,使得能夠訪問的存儲器個數(shù)增加,從而減少在一個指令周期中所需存儲器操作周期數(shù)。
(2) 乘加流水線為核心的數(shù)據(jù)通路:卷積和運算的基本操作就是乘法與加法,DSP則將相乘及累加統(tǒng)一考慮,構成以乘法器、加法器流水線為中心的運算部件。
(3) 特殊的指令:指令RPT由數(shù)據(jù)存儲器指定重復次數(shù),指令MACD可以一次完成相乘并帶數(shù)據(jù)移位的累加,因此使得每一級FIR濾波器只需一個指令周期。
(4) 指令系統(tǒng)的多級流水線:采用多級流水線操作方式,可以把指令周期減小到最小值,同時也就增加了數(shù)字信號處理器的吞吐量。
五、 具體電路框圖及程序流程圖
圖 1為FIR濾波器DSP實現(xiàn)的電路方框圖,其核心部分為TI公司生產(chǎn)的DSP芯片TMS320C203 ,EP2ROM和RAM是其外圍電路。DSP送給A/D抽樣時鐘,對輸入的模擬信號抽樣,即將模擬信號轉換成數(shù)字信號,然后讀取每一次的抽樣值,并對抽樣值進行卷積運算(FIR數(shù)字濾波),最后將運算結果(濾波后的數(shù)字信號)送至D/A ,轉換成模擬信號進行輸出。

圖 1 電路框圖
圖 2為程序流程圖,說明如下:

圖 2 程序流程圖
(1) 對DSP進行初始化,定義DSP的一些向量和工作模式;
(2) 為數(shù)字濾波作準備,將預先設計好的有N個抽頭的FIR數(shù)字濾波器的沖激響應序列h(n)中的N個數(shù)值放入存儲單元B1~BN;
(3) 作好濾波準備工作后,開始進行抽樣,并讀入抽樣值,放入存儲單元A1中;
(4) 之后便對抽樣值進行運算處理:
(a) 將累加器清零,并設置兩個準備相乘的存儲單元A與B的初始值K和L;
(b) 將第K個抽樣值AK與沖激響應序列的第L個數(shù)值BL相乘(K+L=N+1),并將乘積送入累加器進行累加;
(c) 將第K-1個抽樣值AK-1放入AK,此時AK中原數(shù)值被覆蓋;
(d) 重復(b)~(c),直至共完成N次乘加運算。
(5) 輸出處理結果;
(6) 重復(3)~(5)。
六、 結束語
FIR濾波器具有嚴格的線性相位,且是可物理實現(xiàn)的因果系統(tǒng),因此被廣泛地應用在現(xiàn)代通信技術當中,如解調器中的位同步與位定時提取、自適應均衡去碼間串擾以及話音的自適應編碼等。可見對FIR濾波器的研究是具有非常重要的現(xiàn)實意義的。
濾波器相關文章:濾波器原理
濾波器相關文章:濾波器原理
電源濾波器相關文章:電源濾波器原理
數(shù)字濾波器相關文章:數(shù)字濾波器原理
評論