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

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

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