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