FIR濾波器公式為:
y[m] = b[0]x[m] + b[1]x[m-1] + …. + b[p]x[m-p]
其運算結(jié)構(gòu)如下:
詳細(xì)的計算過程為:
可以看到需要p+1個乘法器。
在數(shù)字信號處理中為了保證時延穩(wěn)定性以及節(jié)省乘法器,通常使用對稱系數(shù)的濾波器 ,即:
b[0] = b[p] b[1]=b[p-1] …..
此時濾波器結(jié)構(gòu)為:
此時fir的卷積計算可以化簡為:
y[m] = b[0]x[m] + b[1]x[m-1] + …. + b[p]x[m-p]
=b[0] (x[m]+x[m-p]) + b[1] (x[m-1] + x[m-p-1]) +….
此時濾波需要的乘法為ceil((P+1)/2),可以發(fā)現(xiàn)這種結(jié)構(gòu)將節(jié)省一半的乘法器。
此時我們回頭看一下dsp48e1的結(jié)構(gòu)(詳細(xì)可見FPGA的底層資源之DSP48E1),發(fā)現(xiàn)dsp的結(jié)構(gòu)中就有預(yù)加、乘法、級聯(lián)累加(紅框所示),剛好用來實現(xiàn)對稱結(jié)構(gòu)的fir濾波器。
可以得到dsp48e1實現(xiàn)fir濾波器實現(xiàn)結(jié)構(gòu)為:
在回顧一下之前講dsp48e1使用的重點:
inmode使用00101,讓A、B、D三個端口對齊輸入,C延后兩個clk
opmode[3:0]使用0101,使用M作為X,Y的數(shù)據(jù);
DSP48E1使用總結(jié):
1、 A、B、D三個端口對齊在同一時刻輸入;
2、P在數(shù)據(jù) A、B、D輸入后的第四個clk輸出;
3、C數(shù)據(jù)在數(shù)據(jù) A、B、D輸入的第二個clk輸入;
4、Pcin級聯(lián)時數(shù)據(jù)要在數(shù)據(jù) A、B、D輸入的第三個clk輸入;
5、 OPMODE,ALUMODE在數(shù)據(jù) A、B、D輸入的第二個clk輸入;
OPMODE的配置說明:
好了,dsp48e1實現(xiàn)對稱系數(shù)的fir濾波器的結(jié)構(gòu)就是這個樣子了,大家可以嘗試編寫一下fir濾波器,下一篇文章上代碼和仿真。
-
濾波器
+關(guān)注
關(guān)注
161文章
7834瀏覽量
178255 -
數(shù)字信號處理
+關(guān)注
關(guān)注
15文章
560瀏覽量
45884 -
FIR
+關(guān)注
關(guān)注
4文章
146瀏覽量
33198 -
乘法器
+關(guān)注
關(guān)注
8文章
205瀏覽量
37095 -
DSP48E1
+關(guān)注
關(guān)注
0文章
5瀏覽量
615
發(fā)布評論請先 登錄
相關(guān)推薦
評論