基于FPGA的自適應(yīng)譜線增強系統(tǒng)設(shè)計
3.3 LMS算法核心模塊
這是設(shè)計的核心部分也是設(shè)計中的難點。用FPGA實現(xiàn)復(fù)雜數(shù)字信號處理并不像DSP中那樣簡單,需要考慮時序同步、數(shù)據(jù)寬度以及如何舍入。該設(shè)計采用16階自適應(yīng)濾波器實現(xiàn)ALE,濾波器初始權(quán)值全部為O,按照式(3)的算法進行迭代更新,算法實現(xiàn)中用到大量乘法運算。調(diào)用芯片內(nèi)部嵌入的乘法器宏功能模塊lpm_muIt使實現(xiàn)這些乘法運算更加快速、高效的方案。lpm_mult模塊輸入采樣的8位數(shù)據(jù),因為在乘法運算中2個8位二進制數(shù)相乘得到的結(jié)果是1個16位二進制數(shù),所以設(shè)計中將處理結(jié)果輸出為16位二進制數(shù)。為了提高自適應(yīng)濾波速度,設(shè)計中采用流水線的濾波器結(jié)構(gòu)。流水線結(jié)構(gòu)能夠顯著地提高處理的速度,但是要消耗更多的硬件資源,特別是硬件乘法器,如果LMS FIR濾波器的長的為L則需要2L個通用乘法器。設(shè)計中L=16,片內(nèi)有36個片內(nèi)乘法器可以勝任處理要求。編譯結(jié)果顯示片內(nèi)應(yīng)用于LMS核心算法的其他資源消耗全部小于或等于總消耗的6%,其余資源可以用于片內(nèi)的采樣、輸出等時序控制。LMS算法硬件實現(xiàn)的流水線結(jié)構(gòu)框圖如圖5所示。本文引用地址:http://www.ex-cimer.com/article/191647.htm
流水線結(jié)構(gòu)中調(diào)用乘法器的VHDL代碼如下:
4 仿真結(jié)果分析
VHDL程序在QuartusⅡ軟件上部分仿真結(jié)果如圖6所示,圖中仿真數(shù)據(jù)以十進制表示。因為仿真結(jié)果不便于繪制類似Matlab中的圖形,將仿真結(jié)果的數(shù)據(jù)與Matlab仿真結(jié)果進行對比。通過行比較,發(fā)現(xiàn)處理結(jié)果在大體上與Matlab相一致,但是在幅度上整體有些衰減,這是由于FPGA中將處理結(jié)果的低位進行截尾處理,而Matlab仿真環(huán)境使用浮點形式、數(shù)據(jù)位數(shù)長,處理精度遠高于FPGA,F(xiàn)PGA設(shè)計中存在較大的截尾誤差。該仿真結(jié)果表明,基于FPGA實現(xiàn)ALE是切實可行的。
5 結(jié)語
系統(tǒng)采用FPGA芯片加上少量的外圍電路,完成了信號的自適應(yīng)譜線增強。通過調(diào)用FPGA片內(nèi)乘法器和片內(nèi)存儲器,完成了LMS算法的自適應(yīng)譜線增強,仿真結(jié)果與理論相符合。現(xiàn)代數(shù)字信號處理算法大多要進行大量的乘法運算,調(diào)用FPGA片內(nèi)乘法器是實現(xiàn)這些算法的快速高效而又經(jīng)濟的手段,這使得復(fù)雜信號處理算法在FPGA上實現(xiàn)成為可能。流水線結(jié)構(gòu)是硬件設(shè)計中犧牲資源以提高速度的有效手段,有效地利用流水線可以顯著地提高資源利用率和處理速度。該設(shè)計可以實現(xiàn)高速、準確地譜線增強,在需要濾除寬帶噪聲提取單根譜線的領(lǐng)域具有一定的現(xiàn)實意義。
fpga相關(guān)文章:fpga是什么
評論