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

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

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