一種基于FPGA分布式算法的濾波器設計實(shí)現
1.2 有符號數的分布式算法設計
對于有符號數的補碼表示為:
則由式(5),式(1)可得:
2 分布式的濾波器的軟件實(shí)現
從式(5)和式(7)可以看出,利用分布式算法實(shí)現一個(gè)N項乘積和,關(guān)鍵是如何實(shí)現式(4)中乘積項及各乘積項之和。
在FPGA中可以預先設定一個(gè)N位輸入的查找表來(lái)實(shí)現部分乘積項,即預先設定N階濾波系統查找表,實(shí)現向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一個(gè)映射。由于查找表的地址空間與階數成指數關(guān)系(2N),完全用查找表來(lái)實(shí)現部分乘積項需要容量很大的存儲器,這就需要占用巨大的資源,而且功耗增加、速度降低。因此為了減小設計規模,可以將一個(gè)大的查找表分為幾個(gè)較小的查找表來(lái)實(shí)現。例如,本系統采用的8階FIR濾波器,則用一個(gè)查找表來(lái)實(shí)現需要256(28)位地址空間的ROM,將8階FIR濾波器分成兩個(gè)4階FIR濾波器實(shí)現,只需要2個(gè)16(24)位地址空間的ROM,這樣大大地降低了設計規模和資源使用量。把輸入x(i)作為地址,分為高四位和低四位地址進(jìn)行查找。表1給出了8階濾波系統的低四位地址x(i)與p(i)的映射關(guān)系。
本系統中濾波器系統函數采用Matlab中的fdatool工具,并根據設計要求采用了kaiser窗設計出濾波器的系統函數h(n),其采樣頻率為500 kHz,通頻帶帶寬為100 Hz。設計的低通濾波器如圖1所示。若需實(shí)現高通或帶通濾波器,只需在設計時(shí)利用高通或帶通濾波器代替低通濾波器即可。
評論