0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

浮點(diǎn)LMS算法的FPGA實(shí)現(xiàn)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:未知 ? 2023-12-21 16:40 ? 次閱讀

引言
LMS(最小均方)算法因其收斂速度快及算法實(shí)現(xiàn)簡(jiǎn)單等特點(diǎn)在自適應(yīng)濾波器、自適應(yīng)天線陣技術(shù)等領(lǐng)域得到了十分廣泛的應(yīng)用。為了發(fā)揮算法的最佳性能,必須采用具有大動(dòng)態(tài)范圍及運(yùn)算精度的浮點(diǎn)運(yùn)算,而浮點(diǎn)運(yùn)算的運(yùn)算步驟遠(yuǎn)比定點(diǎn)運(yùn)算繁瑣,運(yùn)算速度慢且所需硬件資源大大增加,因此基于浮點(diǎn)運(yùn)算的LMS算法的硬件實(shí)現(xiàn)一直以來(lái)是學(xué)者們研究的難點(diǎn)和熱點(diǎn)。


本文正是基于這種高效結(jié)構(gòu)的多輸入FPA,在FPGA上成功實(shí)現(xiàn)了基于浮點(diǎn)運(yùn)算的LMS算法。測(cè)試結(jié)果表明,實(shí)現(xiàn)后的LMS算法硬件資源消耗少、運(yùn)算速度快且收斂性能與理論值相近。

1 浮點(diǎn)運(yùn)算單元的設(shè)計(jì)

1.1 浮點(diǎn)加法器的設(shè)計(jì)

一般說(shuō)來(lái),雙輸入浮點(diǎn)加法器需要以下操作步驟:

a) 對(duì)階操作:比較指數(shù)大小,對(duì)指數(shù)小的操作數(shù)的尾數(shù)進(jìn)行移位,使操作數(shù)的階碼相同。

b) 尾數(shù)相加:對(duì)對(duì)階后的尾數(shù)進(jìn)行加(減)操作。

c)規(guī)格化:規(guī)格化有效位并且根據(jù)移位的方向和位數(shù)修改最終的階碼。

在用FPGA進(jìn)行數(shù)字信號(hào)處理的系統(tǒng)中,一般處理的數(shù)據(jù)都是經(jīng)A/D采樣送出的信號(hào),其分辨率一般取12~16位,取18位有效位數(shù)即可滿足絕大多數(shù)的情況。同時(shí),目前FPGA 芯片內(nèi)集成的乘法器均是18×18位的硬核。據(jù)此,文獻(xiàn)[1]自定義了一種24位的浮點(diǎn)數(shù)據(jù)格式。

該格式的浮點(diǎn)數(shù)所表示的具體值可用下面的通式表示:

式中:m為18位補(bǔ)碼數(shù)。

小數(shù)點(diǎn)定在最高位與次高位之間,這樣m即表示-1~1之間的小數(shù);e為6位補(bǔ)碼數(shù),范圍為-32~31。且規(guī)定當(dāng)m=0,e=-32時(shí)值為0。

傳統(tǒng)的多輸入浮點(diǎn)加法器結(jié)構(gòu)如圖2所示。以8輸人為例,需要7個(gè)雙輸入FPA通過(guò)3級(jí)級(jí)聯(lián)而成。這種結(jié)構(gòu)的算法的順序時(shí)延含有大量的重復(fù)步驟。如3級(jí)雙輸入FPA運(yùn)算就有3次相同的規(guī)格化操作,如果將3級(jí)規(guī)格化操作用1級(jí)操作來(lái)代替,不僅可大大縮短運(yùn)算時(shí)延,還可減少所需硬件資源。

基本運(yùn)算單元不再是傳統(tǒng)的雙輸入FPA,而是根據(jù)FPA的一般運(yùn)算步驟構(gòu)造的算法結(jié)構(gòu),通過(guò)大量采用并行運(yùn)算從而大大減小運(yùn)算時(shí)延。以8輸入的對(duì)階操作為例,改進(jìn)算法的8輸入對(duì)階操作只需順序進(jìn)行3級(jí)比較操作、1級(jí)減法操作及1級(jí)移位操作即可完成;而采用圖2所示的并行算法,則需順序進(jìn)行3級(jí)比較操作、3級(jí)減法操作及3級(jí)移位操作,相對(duì)于改進(jìn)算法來(lái)說(shuō)增加了2級(jí)順序減法操作及2級(jí)移位操作時(shí)延。

1.2 浮點(diǎn)乘法器的設(shè)計(jì)

浮點(diǎn)乘法器與浮點(diǎn)加法器相比,不需要對(duì)階等系列操作,實(shí)現(xiàn)起來(lái)相對(duì)簡(jiǎn)單示。

首先將輸人數(shù)據(jù)的18位補(bǔ)碼直接相乘得36位乘法結(jié)果,由于尾數(shù)的小數(shù)點(diǎn)定在最高位與次高位之間,相乘結(jié)果的絕對(duì)值小于1,故截取第35~18位為尾數(shù)乘法結(jié)果。尾數(shù)乘法結(jié)果與相加后的指數(shù)一起進(jìn)行規(guī)格化輸出即完成浮點(diǎn)乘法功能。

2 浮點(diǎn)LMS算法的FPGA實(shí)現(xiàn)

2.1 LMS算法的一般步驟

Widrow和Hoff在1960年提出了LMS算法,它是取單個(gè)誤差樣本平方的梯度作為均方誤差梯度的估計(jì),算法的步驟如下:

式(2)~式(5)中:y(n)為輸出信號(hào);X(n)為輸入矢量;W(n)為抽頭系數(shù)矢量;r(n)為參考信號(hào);e(n)為誤差信號(hào);▽(n)為梯度矢量;μ為步長(zhǎng)因子。

由式(2)~式(5)可知,LMS算法的所有運(yùn)算均由加法及乘法操作組成,易于硬件實(shí)現(xiàn)。算法步驟其實(shí)為遞推公式,且步驟中多處需進(jìn)行多輸入加法操作,這樣,采用高效結(jié)構(gòu)的多輸入浮點(diǎn)加法器即可大量節(jié)約硬件資源并提高運(yùn)行速度。

2.2 算法的FPGA實(shí)現(xiàn)

采用浮點(diǎn)LMS算法對(duì)自適應(yīng)橫向?yàn)V波器進(jìn)行了實(shí)現(xiàn)。輸入信號(hào)為500 kbit/s的偽隨機(jī)序列加高斯白噪聲,采樣頻率為4 MHz,采樣數(shù)據(jù)為18位補(bǔ)碼,共7級(jí)抽頭系數(shù)。這樣,由式(2)~式(5)可知,將第1步(式(2))、第2步(式(3))組合起來(lái)則需并行進(jìn)行7個(gè)乘法操作,再進(jìn)行一次8輸入的加法操作;第3步(式(4))為并行進(jìn)行7個(gè)乘法操作;第4步(式(5))需并行進(jìn)行7個(gè)加法操作,其中肛取2-5,則其乘法操作在FPGA實(shí)現(xiàn)時(shí)可用移位操作代替。

采用的開(kāi)發(fā)環(huán)境為ISE7.li,編程語(yǔ)言為VHDL,綜合工具為Synplicity7.0,仿真工具為Modelsim6.0,F(xiàn)PGA處理時(shí)鐘頻率為64 MHz。

基于浮點(diǎn)運(yùn)算的LMS算法所需硬件資源較少,運(yùn)算速度高(最高時(shí)鐘頻率大于64 MHz),可以滿足系統(tǒng)設(shè)計(jì)要求。

不同信噪比條件下FGPA實(shí)現(xiàn)后的仿真結(jié)果與理論仿真結(jié)果的對(duì)比圖。由圖中可清楚地看出,在FPGA上實(shí)現(xiàn)的浮點(diǎn)LMS算法的收斂性能與理論值非常接近。

3 結(jié)束語(yǔ)

LMS算法的理論雖然十分成熟,但浮點(diǎn)LMS算法的硬件實(shí)現(xiàn)因浮點(diǎn)運(yùn)算單元的硬件資源消耗大、運(yùn)算速度慢等缺點(diǎn),從而一定程度上限制了LMS算法在需要快速數(shù)字信號(hào)處理場(chǎng)合中的應(yīng)用。本文根據(jù)文獻(xiàn)[1]提出的高效結(jié)果的多輸入浮點(diǎn)加法器,成功地在FPGA上實(shí)現(xiàn)了浮點(diǎn)LMS算法。仿真測(cè)試結(jié)果表明,實(shí)現(xiàn)后的LMS算法硬件資源消耗少、運(yùn)算速度









精彩推薦



至芯科技FPGA就業(yè)培訓(xùn)班——助你步入成功之路、12月30號(hào)西安中心開(kāi)課、歡迎試聽(tīng)!
流水線ADC的內(nèi)部結(jié)構(gòu)和工作原理是什么
FPGA產(chǎn)生基于LFSR的偽隨機(jī)數(shù)
掃碼加微信邀請(qǐng)您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點(diǎn)個(gè)在看你最好看




原文標(biāo)題:浮點(diǎn)LMS算法的FPGA實(shí)現(xiàn)

文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1638

    文章

    21861

    瀏覽量

    610155

原文標(biāo)題:浮點(diǎn)LMS算法的FPGA實(shí)現(xiàn)

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    LMS1587 3A、13V、線性穩(wěn)壓器數(shù)據(jù)手冊(cè)

    LMS1585A 和 LMS1587 是輸出負(fù)載電流 分別為 5A 和 3A。其低壓差 (1.2V) 和快速瞬態(tài)響應(yīng)使其成為 低電壓微處理器應(yīng)用的出色解決方案。 LMS1585A/87 有可調(diào)
    的頭像 發(fā)表于 03-14 17:38 ?292次閱讀
    <b class='flag-5'>LMS</b>1587 3A、13V、線性穩(wěn)壓器數(shù)據(jù)手冊(cè)

    LMS36x5-Q1 EVM 用戶指南

    電子發(fā)燒友網(wǎng)站提供《LMS36x5-Q1 EVM 用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-29 16:42 ?0次下載
    <b class='flag-5'>LMS</b>36x5-Q1 EVM 用戶指南

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡(jiǎn)介

    設(shè)計(jì)的關(guān)系,芯片設(shè)計(jì)人員掌握算法知識(shí)的必要性,以及位寬確定、有符號(hào)數(shù)處理、浮點(diǎn)數(shù)運(yùn)算、溢出保護(hù)和四舍五入等算法實(shí)現(xiàn)。第3~11章重點(diǎn)介紹各種典型基本
    發(fā)表于 11-21 17:14

    【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+一本介紹基礎(chǔ)硬件算法模塊實(shí)現(xiàn)的好書

    各種協(xié)議開(kāi)發(fā)中都會(huì)遇到,本書中距離的直接除法,其實(shí)就是很好的理解方式,而不是很多書中參考資料上來(lái)就是一大堆算法 最后介紹的浮點(diǎn)數(shù)算法實(shí)現(xiàn)也是很重要的內(nèi)容,可以參考參考了解下,對(duì)應(yīng)軟件
    發(fā)表于 11-20 13:42

    FPGA中的浮點(diǎn)四則運(yùn)算是什么

    由于定點(diǎn)的四則運(yùn)算比較簡(jiǎn)單,如加減法只要注意符號(hào)擴(kuò)展,小數(shù)點(diǎn)對(duì)齊等問(wèn)題即可。在本文中,運(yùn)用在前一節(jié)中描述的自定義浮點(diǎn)格式FPGA中數(shù)的表示方法(下),完成浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過(guò)程 1.自
    的頭像 發(fā)表于 11-16 12:51 ?644次閱讀
    <b class='flag-5'>FPGA</b>中的<b class='flag-5'>浮點(diǎn)</b>四則運(yùn)算是什么

    FPGA浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過(guò)程

    由于定點(diǎn)的四則運(yùn)算比較簡(jiǎn)單,如加減法只要注意符號(hào)擴(kuò)展,小數(shù)點(diǎn)對(duì)齊等問(wèn)題即可。在本文中,運(yùn)用在前一節(jié)中描述的自定義浮點(diǎn)格式FPGA中數(shù)的表示方法(下),完成浮點(diǎn)四則運(yùn)算的實(shí)現(xiàn)過(guò)程 1.自
    的頭像 發(fā)表于 11-16 11:19 ?1015次閱讀
    <b class='flag-5'>FPGA</b>中<b class='flag-5'>浮點(diǎn)</b>四則運(yùn)算的<b class='flag-5'>實(shí)現(xiàn)</b>過(guò)程

    Pure path studio內(nèi)能否自己創(chuàng)建一個(gè)component,來(lái)實(shí)現(xiàn)特定的算法,例如LMS算法?

    TLV320AIC3254EVM-K評(píng)估模塊, Pure path studio軟件開(kāi)發(fā)環(huán)境。 問(wèn)題:1.Pure path studio 內(nèi)能否自己創(chuàng)建一個(gè)component,來(lái)實(shí)現(xiàn)特定的算法
    發(fā)表于 11-01 08:25

    tlv320aic3254+purepath studio如何在PPS里面實(shí)現(xiàn)32位數(shù)據(jù)的緩存?

    問(wèn)題: 1. 如何在PPS里面實(shí)現(xiàn)32位數(shù)據(jù)的緩存? 2.如何搭建最小均方算法LMS)?
    發(fā)表于 11-01 07:39

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.46】從算法到電路 | 數(shù)字芯片算法的電路實(shí)現(xiàn)

    :elecfans123)領(lǐng)取書籍進(jìn)行評(píng)測(cè),如在5個(gè)工作日內(nèi)未聯(lián)系,視為放棄本次試用評(píng)測(cè)資格! 《從算法到電路——數(shù)字芯片算法的電路實(shí)現(xiàn)》 是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通
    發(fā)表于 10-09 13:43

    為什么FPGA屬于硬件,還需要搞算法

    嗎?單純搞算 法就行了嗎?一臉懵求解答。 A:FPGA 屬于硬件,但其功能的實(shí)現(xiàn)離不開(kāi)算法。 FPGA 雖然是硬件,但它具有可編程性,要
    發(fā)表于 09-09 16:54

    在定時(shí)器內(nèi)使用浮點(diǎn)運(yùn)算的PID控制算法,程序就會(huì)重啟,為什么?

    在定時(shí)器內(nèi)使用浮點(diǎn)運(yùn)算的PID控制算法,程序就會(huì)重啟,把浮點(diǎn)數(shù)換為整形數(shù)據(jù)就不會(huì)。
    發(fā)表于 06-05 07:24

    FPGA實(shí)現(xiàn)什么樣的算法?

    FPGA功能如此強(qiáng)大,請(qǐng)問(wèn)用FPGA實(shí)現(xiàn)或者比較適合實(shí)現(xiàn)什么樣的算法?
    發(fā)表于 05-26 20:18

    基于FPGA的實(shí)時(shí)邊緣檢測(cè)系統(tǒng)設(shè)計(jì),Sobel圖像邊緣檢測(cè),FPGA圖像處理

    運(yùn)行時(shí), FPGA 并行運(yùn)算平臺(tái)首先完成對(duì)攝像頭的初始化和寄存器配置,配置完成之后讀取實(shí)時(shí)的圖像數(shù)據(jù)存入 SDRAM 存儲(chǔ)器中,在 FPGA 芯片內(nèi)部并行實(shí)現(xiàn)圖像處理算法,對(duì)從 SDR
    發(fā)表于 05-24 07:45

    基于FPGA的常見(jiàn)的圖像算法模塊總結(jié)

    意在給大家補(bǔ)充一下基于FPGA的圖像算法基礎(chǔ),于是講解了一下常見(jiàn)的圖像算法模塊,經(jīng)過(guò)個(gè)人的總結(jié),將知識(shí)點(diǎn)分布如下所示。
    的頭像 發(fā)表于 04-28 11:45 ?744次閱讀
    基于<b class='flag-5'>FPGA</b>的常見(jiàn)的圖像<b class='flag-5'>算法</b>模塊總結(jié)

    中國(guó)鐵路網(wǎng)的Dijkstra算法實(shí)現(xiàn)案例

    該項(xiàng)目分別在DE1-SOC開(kāi)發(fā)板的FPGA和HPS上實(shí)現(xiàn)了Dijkstra算法,能在中國(guó)鐵路網(wǎng)中找到兩站之間的最短距離和路線。
    的頭像 發(fā)表于 04-09 11:10 ?825次閱讀
    中國(guó)鐵路網(wǎng)的Dijkstra<b class='flag-5'>算法</b><b class='flag-5'>實(shí)現(xiàn)</b>案例

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品