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