基于CORDIC矩陣奇異值分解的FPGA實現(xiàn)
發(fā)布時間:2021-04-09 15:57
在矩陣的奇異值分解(singular value decomposition,SVD)過程中,隨著矩陣維數(shù)的增加,SVD的計算量呈指數(shù)型增長,從而降低了算法運行的實時性。針對這個問題,基于Hestenes-Jacobi數(shù)值計算方法,提出了一種改進的基于坐標旋轉(zhuǎn)數(shù)字計算機(coordinate rotation digital computer,CORDIC)的邏輯設(shè)計,該邏輯設(shè)計采用并行的全流水線設(shè)計思想,能夠提高Jacobi平面旋轉(zhuǎn)變換的運行速度,進而加快任意維矩陣奇異值分解的計算速度。分析了基于Hestenes-Jacobi方法的SVD的數(shù)值計算過程,介紹了CORDIC算法的基本原理,并具體說明了基于CORDIC算法的Jacobi平面旋轉(zhuǎn)模塊的設(shè)計,利用Verilog語言實現(xiàn)設(shè)計并驗證,在現(xiàn)場可編程門陣列(field-programmable gate array,FPGA)上運行該邏輯設(shè)計單元,與Matlab軟件的運行結(jié)果進行對比。實驗測試結(jié)果表明,該結(jié)構(gòu)能夠減少計算時間,適應(yīng)高速數(shù)據(jù)處理的要求。
【文章來源】:重慶郵電大學學報(自然科學版). 2020,32(03)北大核心CSCD
【文章頁數(shù)】:7 頁
【部分圖文】:
平面旋轉(zhuǎn)變換
具體的奇異值分解實現(xiàn)電路的頂層設(shè)計如圖2,圖2中的COM_Top模塊為奇異值分解的Hestenes-Jacobi正交化變換單元,實現(xiàn)列對向量的正交化運算過程,本例設(shè)計了4個COM_Top模塊,進行并行運算。電路采用2個雙端口RAM單元,分別用于存儲左奇異向量 和右奇異向量,Addr單元即對應(yīng)算法1中Addr函數(shù),并行讀取矩陣A的列向量,輸出作為RAM單元的地址。Converge模塊為收斂判決模塊,用于判斷運算是否達到預(yù)期的收斂精度。Norm模塊為歸一化模塊,用于對正交變換后的矩陣進行歸一化,依次輸出奇異值。狀態(tài)機作為控制單元,提供同步和控制信號,在整個分解過程中每個模塊執(zhí)行不同的任務(wù)。Hestenes-Jacobi方法的核心思想是實現(xiàn)一系列的列向量對的正交化變換。因此,本文主要是在對COM_Top模塊以及其子模塊的具體實現(xiàn)進行改進。因此,下面針對COM_Top的具體設(shè)計進行說明。COM_Top模塊由3個部分組成:向量乘積運算模塊,旋轉(zhuǎn)角度運算模塊以及旋轉(zhuǎn)變換運算模塊,如圖3。
Hestenes-Jacobi方法的核心思想是實現(xiàn)一系列的列向量對的正交化變換。因此,本文主要是在對COM_Top模塊以及其子模塊的具體實現(xiàn)進行改進。因此,下面針對COM_Top的具體設(shè)計進行說明。COM_Top模塊由3個部分組成:向量乘積運算模塊,旋轉(zhuǎn)角度運算模塊以及旋轉(zhuǎn)變換運算模塊,如圖3。COM_Top模塊的運算過程如下:當初始矩陣數(shù)據(jù)存入雙口RAM中完畢后,數(shù)據(jù)在狀態(tài)機的控制下進入向量乘積運算運算單元,計算求得2個列向量的內(nèi)積值,將向量的內(nèi)積值輸出至旋轉(zhuǎn)角度運算單元。根據(jù)(8)式可知,旋轉(zhuǎn)變換矩陣的三角函數(shù)角度值可通過向量的3個內(nèi)積值計算得到。在計算得到角度值θ后,直接將角度值以及需要正交化的列向量送入旋轉(zhuǎn)變換運算單元進行正交化。
【參考文獻】:
期刊論文
[1]基于FPGA數(shù)字PLL諧振頻率的跟蹤研究[J]. 余成波,張林,龍曦. 重慶理工大學學報(自然科學). 2019(04)
[2]基于分塊和NSCT-SVD的彩色圖像數(shù)字水印算法[J]. 張倩倩,詹永照,林涵陽. 江蘇大學學報(自然科學版). 2017(05)
[3]基于改進的MCA和K-SVD的圖像稀疏表示去噪算法[J]. 鄧翔宇,劉增力. 四川大學學報(自然科學版). 2016(04)
碩士論文
[1]基于FPGA的矩陣奇異值分解加速方案的設(shè)計與實現(xiàn)[D]. 馬亞峰.北京交通大學 2017
[2]基于GPU平臺的SVD并行計算研究與實現(xiàn)[D]. 唐吉卓.電子科技大學 2014
[3]并行JACOBI方法求解矩陣奇異值的研究[D]. 郭強.蘇州大學 2011
本文編號:3127904
【文章來源】:重慶郵電大學學報(自然科學版). 2020,32(03)北大核心CSCD
【文章頁數(shù)】:7 頁
【部分圖文】:
平面旋轉(zhuǎn)變換
具體的奇異值分解實現(xiàn)電路的頂層設(shè)計如圖2,圖2中的COM_Top模塊為奇異值分解的Hestenes-Jacobi正交化變換單元,實現(xiàn)列對向量的正交化運算過程,本例設(shè)計了4個COM_Top模塊,進行并行運算。電路采用2個雙端口RAM單元,分別用于存儲左奇異向量 和右奇異向量,Addr單元即對應(yīng)算法1中Addr函數(shù),并行讀取矩陣A的列向量,輸出作為RAM單元的地址。Converge模塊為收斂判決模塊,用于判斷運算是否達到預(yù)期的收斂精度。Norm模塊為歸一化模塊,用于對正交變換后的矩陣進行歸一化,依次輸出奇異值。狀態(tài)機作為控制單元,提供同步和控制信號,在整個分解過程中每個模塊執(zhí)行不同的任務(wù)。Hestenes-Jacobi方法的核心思想是實現(xiàn)一系列的列向量對的正交化變換。因此,本文主要是在對COM_Top模塊以及其子模塊的具體實現(xiàn)進行改進。因此,下面針對COM_Top的具體設(shè)計進行說明。COM_Top模塊由3個部分組成:向量乘積運算模塊,旋轉(zhuǎn)角度運算模塊以及旋轉(zhuǎn)變換運算模塊,如圖3。
Hestenes-Jacobi方法的核心思想是實現(xiàn)一系列的列向量對的正交化變換。因此,本文主要是在對COM_Top模塊以及其子模塊的具體實現(xiàn)進行改進。因此,下面針對COM_Top的具體設(shè)計進行說明。COM_Top模塊由3個部分組成:向量乘積運算模塊,旋轉(zhuǎn)角度運算模塊以及旋轉(zhuǎn)變換運算模塊,如圖3。COM_Top模塊的運算過程如下:當初始矩陣數(shù)據(jù)存入雙口RAM中完畢后,數(shù)據(jù)在狀態(tài)機的控制下進入向量乘積運算運算單元,計算求得2個列向量的內(nèi)積值,將向量的內(nèi)積值輸出至旋轉(zhuǎn)角度運算單元。根據(jù)(8)式可知,旋轉(zhuǎn)變換矩陣的三角函數(shù)角度值可通過向量的3個內(nèi)積值計算得到。在計算得到角度值θ后,直接將角度值以及需要正交化的列向量送入旋轉(zhuǎn)變換運算單元進行正交化。
【參考文獻】:
期刊論文
[1]基于FPGA數(shù)字PLL諧振頻率的跟蹤研究[J]. 余成波,張林,龍曦. 重慶理工大學學報(自然科學). 2019(04)
[2]基于分塊和NSCT-SVD的彩色圖像數(shù)字水印算法[J]. 張倩倩,詹永照,林涵陽. 江蘇大學學報(自然科學版). 2017(05)
[3]基于改進的MCA和K-SVD的圖像稀疏表示去噪算法[J]. 鄧翔宇,劉增力. 四川大學學報(自然科學版). 2016(04)
碩士論文
[1]基于FPGA的矩陣奇異值分解加速方案的設(shè)計與實現(xiàn)[D]. 馬亞峰.北京交通大學 2017
[2]基于GPU平臺的SVD并行計算研究與實現(xiàn)[D]. 唐吉卓.電子科技大學 2014
[3]并行JACOBI方法求解矩陣奇異值的研究[D]. 郭強.蘇州大學 2011
本文編號:3127904
本文鏈接:http://www.sikaile.net/kejilunwen/dianzigongchenglunwen/3127904.html
最近更新
教材專著