基于多速率DA的根升余弦濾波器的FPGA實現
由于在FPGA中數據由定點數表示,所以需要對系數進行量化。本設計中,采用整系數表示方法,對濾波器系數先放大127倍,然后取整量化為8位整數,量化后它的沖激響應系數如表1所示。
2 分布式算法與多相原理
2.1 分布式算法原理
分布式最初由Croisier于1973年提出,但直到出現查找表結構的FPGA之后,分布式算法才被廣泛應用于乘積計算中。FIR濾波器采用分布式算法可以極大地減少硬件電路的規(guī)模,很容易實現流水線技術,提高電路的執(zhí)行速度。
根據文獻[5],長度為N的因果有限沖激響應濾波器(FIR)可以用下列傳輸函數H(z)來描述。
在時域中,上述FIR濾波器的輸入輸出關系為:
式中:y[n]和x[n]分別是輸出和輸入的序列;h[k]為沖激響應在時間序號k時的系數。若y(n)表示濾波器的輸出,Ak表示濾波器的系數,xk(n)表示第忌個輸入變量,則N階線性、時不變FIR濾波器的輸出為:
在FPGA的實現中,根據文獻[6]數據采用二進制補碼表示,所以變量xk可以表示為:
式中:xkb為xk的第b比特位;B為輸入變量xk的數據位數。將式(5)代入式(4)可得:
這里,利用一個查找表來實現,即把所有可能的2N個中間數據存儲在一個查找表中,以一個N位輸入向量xb作為地址,輸出為對應該向量的一個特定值。對于并行分布式算法結構濾波器,從低位到高位,依次乘以2N,N=0,1,2,…,然后相加得到輸出值。
評論