chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

剖析正交匹配追蹤算法的優(yōu)化設(shè)計與FPGA實現(xiàn)

電子工程師 ? 來源:《電子技術(shù)應(yīng)用》 ? 作者:莫禹鈞 柏正堯 黃 ? 2021-04-08 13:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

0 引言

2006年,CANDES D E等人提出了壓縮感知(Compressed Sensing,CS)理論[1],CS理論利用與表達基不相干的觀測矩陣,以低于奈奎斯特的采樣速率非自適應(yīng)地采樣可稀疏表示的信號,得到低維的離散信息矢量,該信息矢量包含了原始信號的全部信息,然后通過非線性重建算法完美地重建信號。

壓縮感知理論主要包含了三大核心部分:信號的稀疏表示、測量矩陣的構(gòu)造和信號重構(gòu)算法的設(shè)計。在壓縮感知理論的三個核心問題中,如何設(shè)計并用硬件實現(xiàn)根據(jù)離散信息樣點準確重構(gòu)原始信號的行之有效的算法是該理論中較為重要的一環(huán)。目前,壓縮感知信號重構(gòu)算法主要分為兩類:基于凸松弛的優(yōu)化算法,如基追蹤(Basis Pursuit,BP)算法;

基于貪婪迭代的匹配追蹤算法,如OMP算法[2]。這兩類算法各有優(yōu)缺點:凸松弛算法具有很好的魯棒性,然而由于需要將求解問題轉(zhuǎn)化為線性規(guī)劃問題,計算量大,信號重構(gòu)效率低;貪婪算法雖然不具有強保證性,但實現(xiàn)簡單,重構(gòu)效率高,在工程應(yīng)用中得到廣泛使用[3]。

首次對壓縮感知恢復(fù)算法進行VLSI設(shè)計是在參考文獻[4]中,而之后,有文獻進行優(yōu)化設(shè)計。參考文獻[5]根據(jù)OMP算法必須按照特定順序執(zhí)行這一特征,采用資源復(fù)用技術(shù),提高了資源利用率。參考文獻[6]設(shè)計了一個快速求逆平方根算法,在矩陣分解部分采用QR算法。參考文獻[7]對OMP算法進行優(yōu)化,減少了計算延時。參考文獻[8]同時進行了OMP算法和AMP算法的VLSI設(shè)計。本文先對OMP算法進行理論分析,然后對OMP算法進行改進,通過增加一個閾值來減少乘法運算次數(shù),使運算速度更快。在矩陣分解部分采用ACD方法避免開方運算,同時在硬件實現(xiàn)上也進行了相應(yīng)的優(yōu)化。仿真結(jié)果驗證了設(shè)計的可行性。

1 OMP算法

1.1 基本OMP算法

在壓縮感知中,原始信號x的稀疏度為k,觀測矢量y是所采集的數(shù)據(jù),y可通過測量矩陣Φ與x相乘而得。本設(shè)計的目的是在已知y和Φ的前提下恢復(fù)出x。OMP算法主要分為兩部分,即尋找稀疏矢量中非零元素的位置和計算非零元素的值。

在OMP算法中殘差r是一個很關(guān)鍵的參數(shù),殘差是通過當前選取的列向量和原始信號的線性組合不能對壓縮測量值進行表示的部分。

1.2 改進OMP算法

令原始信號x的稀疏度為k,測量矩陣Φ大小為M×N,那么y為M維的離散信息矢量。本文提出一種新的方法,即加閾值法,通過添加一個閾值來減少乘法運算次數(shù),閾值定為內(nèi)積和的平均值的α倍,內(nèi)積小于閾值的那些列在下一次迭代中不再求內(nèi)積。每次迭代計算后都要對閾值進行更新。信號估計的均方誤差隨著α的增大而增大,當α為0時均方誤差最小。改進的OMP算法步驟如下:

6356652168871000001521054.gif

6356652171385200005385437.gif

2 計算步驟

本文利用硬件實現(xiàn)重構(gòu)長度N=256、稀疏度k=8的原始信號,觀測矢量長度M=64。

改進后的OMP算法可分為4個模塊。第1個模塊對應(yīng)重建過程的第(1)和第(2)步,也就是在剩余列的集

6356652173749200005384317.gif

中尋找對殘差貢獻最大的列為最匹配原子。

第2個模塊對應(yīng)重建過程的第(3)步,即計算新殘差,為下次迭代做準備。

第3個模塊對應(yīng)重建過程的第(4)和第(5)步,即計算新的閾值并除去剩余列的集

6356652176521800009982774.gif

中和殘差求內(nèi)積小于閾值的列。求閾值前要先求內(nèi)積的平均值。第t次迭代的內(nèi)積平均值可用以下公式計算:

6356652179125100004473924.gif

為解決對Φ的列的定位問題,用一個256位的標志位來追蹤Φ的列,標志位的第i位對應(yīng)Φ的第i列。在第i列和殘差求內(nèi)積后,下一個時鐘和殘差求內(nèi)積的就是下一個標志位為非零所對應(yīng)的列,跳過標志位為零對應(yīng)的列。開始前先把標志位的每一位全部初始化成1,在每一次迭代之后對標志位進行更新。

第4個模塊對應(yīng)重構(gòu)過程的第(7)步,求解非零元素的值,即解決最小二乘問題。對于這類運算一般用Moore-Penrose偽逆的方法求解:

6356652182896000004892167.gif

求出C的逆矩陣后,就可以求得原始信號的估計:

6356652184855200008506623.gif

由于OMP算法的迭代性質(zhì),4個模塊是不能并行執(zhí)行的,只能每個模塊依次執(zhí)行。

3 硬件設(shè)計

硬件電路主要由以上4個模塊組成,分為兩個部分。整體硬件電路如圖1所示。

o4YBAGBuk3KAV2mfAACxnHMEU2s044.png

首先用觀測矢量y對殘差r進行初始化。y用寄存器組存儲,而觀測矩陣Φ用多個RAM存儲,這樣就能在一個時鐘內(nèi)讀出y的所有值和Φ的一列值。數(shù)據(jù)用24位定點數(shù)表示,10位整數(shù),14位小數(shù)。設(shè)計64個24位乘法器并行工作來求內(nèi)積,然后找到內(nèi)積最大值來更新

6356652190670900005707599.gif

。矩陣

6356652192624000005808729.gif

的大小變化從N×1~N×8。

每次迭代后會把Φ中和殘差內(nèi)積小于閾值的列過濾掉,根據(jù)式(9)、(10)和(11),剩余列的集中的每一列和殘差的內(nèi)積都送到累加器進行求和,然后通過求內(nèi)積平均值求得閾值。閾值參數(shù)α設(shè)置為一個常數(shù)。

256位標志位作為Φ的地址尋址,標志位每一位對應(yīng)Φ每一列,初始化為所有位為1。每次迭代后對標志位進行更新,把Φ中和殘差內(nèi)積小于閾值的列所對應(yīng)的標志位賦為零,否則保持為1。然后在下一次迭代時跳過標志位為零所對應(yīng)的Φ的列,也就是直接用下一個非零標志位所對應(yīng)的列與殘差進行求內(nèi)積。通過把標志位的前32位送到一個32位前導(dǎo)零計算器可以找出下一個非零位。

在尋找非零元素位置的部分迭代8次后,就開始計算非零元素的值。首先要計算矩陣

6356652198928900001562405.gif

可通過以下等式計算:

6356652200197600009844744.gif

此處復(fù)用之前的64個乘法器。C是一個對稱矩陣,所以只需要計算C的對角線上8個元素和對角線下半部(或上半部)的28個元素。

然后要對C進行交替的柯列斯基分解,矩陣分解要求出下三角矩陣L和對角矩陣D。從式(13)和(14)可以看出,L和D是相互依存的,必須以特定的順序計算。本設(shè)計中稀疏度k=8,L和D可以按照圖2箭頭所指順序計算。設(shè)計7個乘法器并行計算D中的元素,那么每計算一個元素需要一個時鐘周期。計算D-1時采用參考文獻[9]的方法進行除法運算。由于L的同一列的各個元素并不是相互依存的,所以求L的每一列值都設(shè)計為并行計算各個元素,那么每一列的計算只需要一個時鐘周期。

o4YBAGBuk4yALcw4AABx3IGB72c747.png

矩陣L的求逆需要迭代進行,如式(18):

6356652205299200003715136.gif

由于L的逆矩陣的各列的各個元素是相互依存的,所以列和列可以并行運算,每一列要按照特定的順序運算,那么計算L-1需要7個時鐘周期。

求C-1=(L-1)T×D-1×L-1時可以先求A=(L-1)T×D-1,然后再計算C-1=A×L-1。

4 仿真及結(jié)果分析

考慮到兩個模塊的最大運行頻率不一樣,本設(shè)計在尋找非零元素部分采用85 MHz的時鐘,在求解非零元素值部分采用65 MHz的時鐘。為了進行更好的對比,在MATLAB上用相同的算法、測量矩陣和觀測矢量來重構(gòu)原始估計值。當α=0.25時,軟件和硬件的重構(gòu)結(jié)果進行歸一化后的對比如圖3所示。

pIYBAGBuk5yAA77kAADI02TWj-8179.png

當α取值為零時,尋找非零元素部分共需要2 100個時鐘周期,而僅僅是計算內(nèi)積就需要256×8=2 048個時鐘周期,計算非零元素部分共需要110個時鐘周期,總的重構(gòu)時間為26.40 μs。當α取值為0.25時,計算內(nèi)積所需減少到約1 300個時鐘周期,總的重構(gòu)時間減少到約16.99 μs。在相同條件下,參考文獻[7]重構(gòu)時間為17.61 μs。而在參考文獻[4]中,測量矩陣維數(shù)為32×128,觀測向量維數(shù)為32×1,原始信號的稀疏度為5,總的重構(gòu)時間就需要24 μs。

但是改進OMP算法歸一化誤差會隨著α的增大而增大,當α取值為零時,歸一化均方誤差為0.001 5,取α=0.25時,歸一化均方誤差增加到0.007 1。

5 結(jié)論

本文采用一種閾值法,使得OMP恢復(fù)算法的求內(nèi)積次數(shù)大大減少,從而縮短了信號重構(gòu)所需要的時間,提高了恢復(fù)速率。同時,本文在硬件結(jié)構(gòu)設(shè)計上也進行了一些優(yōu)化,較好地平衡了占用資源和運算時間。本設(shè)計采用VHDL對改進的OMP算法進行了RTL級描述,在Quartus II上針對Altera公司的Cyclone II EP2C70F672C6進行設(shè)計和仿真,結(jié)果表明信號能夠以更少的重構(gòu)時間較好地恢復(fù)。

參考文獻

[1] DONOHO D L.Compressed sensing[J].Information Theory,IEEE Trans. on,2006,52(4):1289-1306.

[2] TROPP J A,GILBERT A C.Signal recovery from random measurements via orthogonal matching pursuit[J].Information Theory,IEEE Trans.on,2007,53(12):4655-4666.

[3] 趙貽玖.稀疏模擬信號壓縮采樣與重構(gòu)算法研究[D].成都:電子科技大學(xué),2012.

[4] SEPTINUS A,STEINBERG R.Compressive sampling hardware reconstruction[C].Circuits and Systems(ISCAS),Proc.of 2010 IEEE International Symposium on.IEEE,2010:3316-3319.

[5] BLACHE P,RABAH H,AMIRA A.High level prototyping and FPGA implementation of the orthogonal matching pursuit algorithm[C].Information Science,Signal Processing and their Applications(ISSPA),2012 11th International Conference on.IEEE,2012:1336-1340.

[6] STANISLAUS J L V M,MOHSENIN T.High performance compressive sensing reconstruction hardware with QRD process[C].Circuits and Systems(ISCAS),2012 IEEE International Symposium on.IEEE,2012:29-32.

[7] STANISLAUS J,MOHSENIN T.Low-complexity fpga implementation of compressive sensing reconstruction[C].International Conference on Computing,Networking and Communications.2013.

[8] BAI L,MAECHLER P,MUEHLBERGHUBER M,et al.High-speed compressed sensing reconstruction on FPGA using OMP and AMP[C].Proc.19th Int.Conf.Electronics,Circuits and Systems(ICECS),Dec.2012:53-56.

[9] 周殿鳳,王俊華.基于FPGA的32位除法器設(shè)計[J].信息化研究,2010(3):26-28.

編輯:jq

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

    關(guān)注

    10

    文章

    5606

    瀏覽量

    116660
  • 稀疏信號重構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    791
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Microsemi IGLOO2 FPGA與SmartFusion2 SoC FPGA深度剖析

    Microsemi IGLOO2 FPGA與SmartFusion2 SoC FPGA深度剖析 作為一名電子工程師,在日常的設(shè)計工作中,FPGA與SoC
    的頭像 發(fā)表于 02-09 17:20 ?272次閱讀

    室內(nèi)藍牙定位追蹤技術(shù):從典型場景到技術(shù)局限性與優(yōu)化方向詳解(二)

    藍牙定位技術(shù)利用RSSI或AoA/AoD實現(xiàn)高精度室內(nèi)定位,廣泛應(yīng)用于工業(yè)、倉儲、樓宇及資產(chǎn)管理中,支持人員與設(shè)備實時追蹤。雖存在環(huán)境干擾與距離限制,但通過多基站融合、AI算法優(yōu)化及多
    的頭像 發(fā)表于 12-18 17:00 ?1175次閱讀

    AMD UltraScale架構(gòu):高性能FPGA與SoC的技術(shù)剖析

    AMD UltraScale架構(gòu):高性能FPGA與SoC的技術(shù)剖析 在當今的電子設(shè)計領(lǐng)域,高性能FPGA和MPSoC/RFSoC的需求日益增長。AMD的UltraScale架構(gòu)憑借其創(chuàng)新的技術(shù)和卓越
    的頭像 發(fā)表于 12-15 14:35 ?505次閱讀

    數(shù)字IC/FPGA設(shè)計中的時序優(yōu)化方法

    在數(shù)字IC/FPGA設(shè)計的過程中,對PPA的優(yōu)化是無處不在的,也是芯片設(shè)計工程師的使命所在。此節(jié)主要將介紹performance性能的優(yōu)化,如何對時序路徑進行優(yōu)化,提高工作時鐘頻率。
    的頭像 發(fā)表于 12-09 10:33 ?3224次閱讀
    數(shù)字IC/<b class='flag-5'>FPGA</b>設(shè)計中的時序<b class='flag-5'>優(yōu)化</b>方法

    如何選擇適合的抗干擾算法優(yōu)化電能質(zhì)量在線監(jiān)測裝置的測量精度?

    選擇適合的抗干擾算法需結(jié)合 干擾類型(如電磁噪聲、諧波、暫態(tài)脈沖)、裝置硬件能力(算力、采樣率)及應(yīng)用場景(工業(yè) / 新能源 / 民用) ,通過 “干擾特性分析→算法匹配→效果驗證” 的邏輯鏈,
    的頭像 發(fā)表于 11-06 09:54 ?685次閱讀

    SM4算法實現(xiàn)分享(一)算法原理

    ,Xi、Yi、rki為字,i=0,1,2,…,31。則本算法的加密實現(xiàn)為: 本算法的解密實現(xiàn)與加密實現(xiàn)結(jié)構(gòu)是相同的,不同的只是提供的輪
    發(fā)表于 10-30 08:10

    復(fù)雜的軟件算法硬件IP核的實現(xiàn)

    Compiler)將算法編譯轉(zhuǎn)化為可綜合的 Verilog 文本,進而通過 FPGA 在硬件上實現(xiàn)算法。 1.C to Hardware 技術(shù)簡介 AltiumDesign
    發(fā)表于 10-30 07:02

    目標追蹤的簡易實現(xiàn):模板匹配

    重新出現(xiàn)在幀圖象中時,迅速地重新捕捉到目標。 以上對目標追蹤這一領(lǐng)域做了簡要的說明,下面將會介紹目標追蹤算法中最簡單的一種 —— 模板匹配算法
    發(fā)表于 10-28 07:21

    25年11月上海FPGA算法實現(xiàn)與應(yīng)用技術(shù)高級研修分享

    數(shù)字電路的基礎(chǔ)知識即可完成本課程的學(xué)習(xí)。   有10個章節(jié)的內(nèi)容,非常全面,具體內(nèi)容如下:   章: 離散傅里葉變換講解:傅里葉變換是信號處理和分析工作中最常用的算法,本課程將離散傅里葉變換的原理和實現(xiàn)過程
    發(fā)表于 10-11 11:55

    如何使用樹莓派與OpenCV實現(xiàn)面部和運動追蹤的云臺系統(tǒng)?

    大家好,這是一個樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實現(xiàn)姿態(tài)估計和面部特征點追蹤使用樹莓派與OpenCV實現(xiàn)面部和運動追蹤的云臺系統(tǒng)使用樹莓派和OpenCV
    的頭像 發(fā)表于 08-14 17:45 ?1421次閱讀
    如何使用樹莓派與OpenCV<b class='flag-5'>實現(xiàn)</b>面部和運動<b class='flag-5'>追蹤</b>的云臺系統(tǒng)?

    信號發(fā)生器如何與波束賦形算法配合優(yōu)化?

    、SINR和誤碼率(BER),優(yōu)化算法參數(shù)(如波束寬度、掃描步長)。 2. 軟件級配合:信號發(fā)生器與算法仿真工具鏈協(xié)同 工具鏈組成: MATLAB/Simulink:實現(xiàn)波束賦形
    發(fā)表于 08-08 14:41

    基于FPGA實現(xiàn)FOC算法之PWM模塊設(shè)計

    哈嘍,大家好,從今天開始正式帶領(lǐng)大家從零到一,在FPGA平臺上實現(xiàn)FOC算法,整個算法的框架如下圖所示,如果大家對算法的原理不是特別清楚的話
    的頭像 發(fā)表于 07-17 15:21 ?3467次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>FOC<b class='flag-5'>算法</b>之PWM模塊設(shè)計

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當然實現(xiàn)上也是復(fù)雜很多。本文將從原理入手,采用Matlab與FPGA設(shè)計實現(xiàn)雙邊
    的頭像 發(fā)表于 07-10 11:28 ?4514次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊濾波<b class='flag-5'>算法</b><b class='flag-5'>實現(xiàn)</b>

    基于FPGA的壓縮算法加速實現(xiàn)

    本設(shè)計中,計劃實現(xiàn)對文件的壓縮及解壓,同時優(yōu)化壓縮中所涉及的信號處理和計算密集型功能,實現(xiàn)對其的加速處理。本設(shè)計的最終目標是證明在充分并行化的硬件體系結(jié)構(gòu) FPGA
    的頭像 發(fā)表于 07-10 11:09 ?2370次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮<b class='flag-5'>算法</b>加速<b class='flag-5'>實現(xiàn)</b>

    資產(chǎn)追蹤與室內(nèi)導(dǎo)航

    在數(shù)字化轉(zhuǎn)型的浪潮中,資產(chǎn)追蹤與室內(nèi)導(dǎo)航作為兩項關(guān)鍵技術(shù),正在改變企業(yè)管理空間和資源的方式。從醫(yī)院高效管理醫(yī)療設(shè)備,到商場為顧客提供無縫導(dǎo)航體驗,這兩項技術(shù)在提升效率、降低成本和優(yōu)化用戶體驗方
    的頭像 發(fā)表于 07-04 18:22 ?510次閱讀