一種基于FPGA的自適應譜線增強系統(tǒng)的設計
3.1 TLC5510的控制
TLC5510是8位高速模數(shù)轉換器,以流水線的工作方式進行采樣,在每一個時鐘周期啟動1次采樣、完成1次采樣,采樣在時鐘下降沿進行,經過2.5個時鐘周期后輸出轉換結果。設計中根據(jù)采樣時序,用狀態(tài)機來描述采樣控制過程,實現(xiàn)了采樣的控制。實現(xiàn)狀態(tài)交替的VHDL代碼如下:
實現(xiàn)采樣數(shù)據(jù)輸出的VHDL代碼如下:
3.2 采樣信號延遲
為了實現(xiàn)延時,FPGA片內開辟了3個緩沖區(qū),分別是輸入、時延、權值緩沖區(qū)。采樣后的數(shù)據(jù)首先存入片內數(shù)據(jù)緩存FIFO,進入待命狀態(tài)。時延緩沖區(qū)實現(xiàn)△長度的時延,權值緩沖區(qū)儲存權值。其中,時延緩沖區(qū)和輸入緩沖區(qū)地址是連續(xù)的。時延緩沖區(qū)的長度由延遲△決定,輸入緩沖區(qū)和權值緩沖區(qū)的長度由權值的維數(shù)決定。緩沖區(qū)的實現(xiàn)是在VHDL語言編寫的程序中定義存儲數(shù)據(jù)的向量,這些數(shù)據(jù)向量的數(shù)據(jù)類型定義如下:
其中:ARRAY_N1BIF定義的是濾波器參數(shù)向量的數(shù)據(jù)類型;ARRAY_N1BIYX定義的延遲后信號向量的數(shù)據(jù)類型;ARRAY_N1BIT定義的是輸入信號向量的數(shù)據(jù)類型;ARRAY_N2BIT定義的是譜線增強后信號向量的數(shù)據(jù)類型;W1是采樣數(shù)據(jù)的寬度,這里為8;Delay是延時長度;L是濾波器階數(shù)。
3.3 LMS算法核心模塊
這是設計的核心部分也是設計中的難點。用FPGA實現(xiàn)復雜數(shù)字信號處理并不像DSP中那樣簡單,需要考慮時序同步、數(shù)據(jù)寬度以及如何舍入。該設計采用16階自適應濾波器實現(xiàn)ALE,濾波器初始權值全部為0,按照式(3)的算法進行迭代更新,算法實現(xiàn)中用到大量乘法運算。調用芯片內部嵌入的乘法器宏功能模塊lpm_mult使實現(xiàn)這些乘法運算更加快速、高效的方案。lpm_mult模塊輸入采樣的8位數(shù)據(jù),因為在乘法運算中2個8位二進制數(shù)相乘得到的結果是1個16位二進制數(shù),所以設計中將處理結果輸出為16位二進制數(shù)。為了提高自適應濾波速度,設計中采用流水線的濾波器結構。流水線結構能夠顯著地提高處理的速度,但是要消耗更多的硬件資源,特別是硬件乘法器,如果LMS FIR濾波器的長的為L則需要2L個通用乘法器。設計中L=16,片內有36個片內乘法器可以勝任處理要求。編譯結果顯示片內應用于LMS核心算法的其他資源消耗全部小于或等于總消耗的6%,其余資源可以用于片內的采樣、輸出等時序控制。LMS算法硬件實現(xiàn)的流水線結構框圖如圖5所示。
評論