王 琳,洪婉君,林文濤,張紫文,胡 忞,易朋興
(華中科技大學(xué)機(jī)械科學(xué)與工程學(xué)院,湖北武漢 430074)
隨著科技水平與計(jì)算機(jī)技術(shù)的迅速提高,采樣系統(tǒng)被廣泛應(yīng)用于眾多領(lǐng)域中[1],但低速的數(shù)據(jù)采樣系統(tǒng)已經(jīng)不足以滿足實(shí)際應(yīng)用中高速率、高精度、實(shí)時(shí)處理等需求,這也就意味著數(shù)據(jù)采樣系統(tǒng)面臨著很大的數(shù)據(jù)傳輸與存儲(chǔ)壓力。采樣數(shù)據(jù)會(huì)通過無損壓縮和有損壓縮等壓縮算法,在盡量不丟失信息的前提下,減少數(shù)據(jù)冗余以節(jié)約存儲(chǔ)空間。因此,優(yōu)化重構(gòu)算法的研究對(duì)于高速并行采樣系統(tǒng)起著至關(guān)重要的作用。在目前的研究中,數(shù)據(jù)重構(gòu)算法主要分為以下三類:凸松弛算法、組合算法與貪婪追蹤算法[2],通過求解優(yōu)化問題從少量測(cè)量值中高準(zhǔn)確率地重構(gòu)信號(hào)。
壓縮感知(CS)[3-5],作為一種最近興起的信號(hào)處理方法,相較于傳統(tǒng)的壓縮編碼更易于硬件實(shí)現(xiàn)。本文針對(duì)采樣速率20 GSPS、采樣精度12 bit、采樣數(shù)據(jù)量級(jí)高達(dá)GHz的超高速并行采樣系統(tǒng),通過測(cè)量矩陣與采樣信號(hào)進(jìn)行矩陣相乘實(shí)現(xiàn)數(shù)據(jù)降維。在對(duì)高速數(shù)據(jù)流進(jìn)行壓縮的基礎(chǔ)上,利用CS理論,對(duì)比幾種常見的正交匹配追蹤(orthogonal matching pursuit,OMP)算法的重構(gòu)性能,提出一種經(jīng)過優(yōu)化改進(jìn)后的重構(gòu)算法,利用少量數(shù)據(jù)高精度地恢復(fù)原始信號(hào),為后續(xù)信號(hào)的進(jìn)一步處理提供有效的初始數(shù)據(jù)。
本文基于ADC+FPGA的超高速采集系統(tǒng)架構(gòu)對(duì)信號(hào)進(jìn)行采集與存儲(chǔ)處理。圖1為以該架構(gòu)為核心的數(shù)據(jù)采集與存儲(chǔ)結(jié)構(gòu)圖。ADC對(duì)外部輸入的模擬信號(hào)進(jìn)行采樣,由前端FPGA將采集數(shù)據(jù)進(jìn)行壓縮,放在DDR3緩存模塊進(jìn)行存儲(chǔ),然后經(jīng)FMC傳輸接口傳輸至后端FPGA中,最終利用數(shù)據(jù)重構(gòu)算法從壓縮后的極少測(cè)量值中高準(zhǔn)確率地重構(gòu)信號(hào)。
圖1 數(shù)據(jù)采集與存儲(chǔ)結(jié)構(gòu)圖
對(duì)于長(zhǎng)度有限、一維離散的實(shí)信號(hào)x而言,若它在某個(gè)變換基Ψ∈RN×N下是K-稀疏的。給出一個(gè)與該變換基不相關(guān)的測(cè)量矩陣Φ,則信號(hào)在該測(cè)量矩陣下作線性投影即可得到該信號(hào)的測(cè)量值y,其數(shù)學(xué)表達(dá)式如式(1)所示[6]。
y=Φx
(1)
式中:Φ為測(cè)量矩陣,Φ∈RM×N;x為原始信號(hào),x∈RN;y為壓縮后數(shù)據(jù),y∈RM(K< 由于M< (2) 式中‖x‖1為1范數(shù)形式。 正交匹配追蹤(OMP)類算法作為壓縮感知工程應(yīng)用的主流,常見的算法有OMP、ROMP、StOMP、CoSaMP/SP、SAMP。該類算法的思想均是在每次迭代中選擇一個(gè)局部最優(yōu)解來逐步逼近原始信號(hào),區(qū)別在于原子選擇策略與迭代終止條件(迭代次數(shù))的不同。 由于StOMP算法的先驗(yàn)信息中不需要已知原始信號(hào)的稀疏度K,但控制重構(gòu)精度的閾值ts設(shè)置比較困難。ts過大時(shí),增加計(jì)算量,降低計(jì)算效率;ts過小時(shí),原子正確選擇幾率下降,重構(gòu)精度下降。故本文提出一種基于粒子群優(yōu)化的分段正交匹配追蹤算法的原子選擇策略。利用粒子群算法全局尋優(yōu)能力突出、參數(shù)少等優(yōu)點(diǎn)[8],結(jié)合SAMP算法自適應(yīng)性與StOMP算法分階段的思想,通過設(shè)定閾值實(shí)現(xiàn)原子預(yù)選;然后利用固定步長(zhǎng)實(shí)現(xiàn)對(duì)預(yù)選原子復(fù)選,來降低預(yù)選過程中閾值ts設(shè)置不當(dāng)?shù)母怕?;最后選取合適粒子,通過迭代優(yōu)化更新種群全局適應(yīng)度函數(shù)值,最終得到最優(yōu)重構(gòu)參數(shù)。改進(jìn)算法稱為基于粒子群優(yōu)化的預(yù)選分段正交匹配追蹤(preselected stage-wise orthogonal matching pursuit with particle swarm optimization,PPStOMP)算法,具體算法描述如下: (1)初始化:r0=y,l0=φ,A0=φ,s=1,c1=c2=2,PSO隨機(jī)生成粒子數(shù)20個(gè),速度和位置向量維數(shù)3; (3)令I(lǐng)s=I0∪Js,As=As-1aj;若Is=Is-1,停止迭代進(jìn)入第(8)步; (7)如果rs≤η(η=10-6‖y‖2),停止迭代進(jìn)入第(8)步,如果s≥S,停止迭代進(jìn)入第(8)步,否則轉(zhuǎn)入第(2)步; 在MATLAB R2017a下,測(cè)量矩陣使用高斯隨機(jī)矩陣,稀疏基底使用離散小波變換基,其中小波基為Coiflet函數(shù)。實(shí)驗(yàn)原始信號(hào)選用Lena、Peppers、couple、boat與camera 5幅圖像進(jìn)行仿真測(cè)試,圖像均為256×256的灰度圖,適應(yīng)度函數(shù)值選取為PPStOMP算法多次運(yùn)行得到的平均峰值信噪比(peak signal to noise rate,PSNR)值作為評(píng)價(jià)標(biāo)準(zhǔn),得到不同采樣率M/N下各圖像對(duì)應(yīng)的最佳參數(shù),如表1所示。 表1 不同采樣率下PPStOMP算法最佳參數(shù)值 PSNR表達(dá)式如式(3)所示。 (3) 由表1可知,PPStOMP算法在不同采樣率下對(duì)應(yīng)的各最優(yōu)參數(shù)值范圍較大,但在相同采樣率下,不同圖像對(duì)應(yīng)的各項(xiàng)參數(shù)都在最優(yōu)值附近波動(dòng),因此基于測(cè)試數(shù)據(jù)做出的統(tǒng)計(jì)可給出PPStOMP算法各參數(shù)在不同采樣率下的取值范圍,如表2所示。 表2 PPStOMP算法推薦參數(shù)取值范圍 為驗(yàn)證PPStOMP算法的正確性,進(jìn)行一維高斯隨機(jī)信號(hào)的仿真實(shí)驗(yàn),使用不同稀疏度K下算法準(zhǔn)確重構(gòu)率、重構(gòu)時(shí)間作為算法性能的評(píng)價(jià)指標(biāo),通過PPStOMP算法與OMP、StOMP、CoSaMP、SP、SAMP算法做對(duì)比實(shí)驗(yàn)。不同稀疏度水平下算法的重構(gòu)性能如圖2、圖3所示,其中測(cè)量值M=128。實(shí)驗(yàn)中,PPStOMP算法各參數(shù)由上述的分析選擇為ts=2.0,S=20,L=5;StOMP算法取默認(rèn)值,閾值ts=2.5,迭代次數(shù)S=10;SAMP算法取步長(zhǎng)L=5。 圖2 成功重構(gòu)概率與稀疏度K的關(guān)系曲線 圖3 平均重構(gòu)時(shí)間與稀疏度K的關(guān)系曲線 由圖2可知,PPStOMP算法的重構(gòu)概率在稀疏度較大時(shí),明顯優(yōu)于OMP、StOMP、CoSaMP、SP算法,在一定程度上低于SAMP算法。 從圖3可知,PPStOMP算法的重構(gòu)時(shí)間在稀疏度較小時(shí),與CoSaMP、SP、OMP算法接近,明顯少于SAMP算法;但隨著稀疏度的增大,PPStOMP的重構(gòu)時(shí)間略多于StOMP算法,而CoSaMP、SP、SAMP算法的重構(gòu)時(shí)間都急劇增加到PPStOMP算法的數(shù)倍。實(shí)驗(yàn)結(jié)果表明改進(jìn)算法在稀疏度較大時(shí)明顯提高了信號(hào)成功重構(gòu)率,且運(yùn)行時(shí)間較低,與StOMP算法相當(dāng)。 為更直觀地說明改進(jìn)算法的正確性,采用正弦波疊加信號(hào)進(jìn)行實(shí)驗(yàn),信號(hào)表達(dá)式如式(4)所示。 x(n)=0.5sin(2πf1nts)+0.6sin(2πf2nts)+0.2sin(2πf3nts) (4) 式中:n=1,2,…,N;f1=50 Hz;f2=100 Hz;f3=300 Hz。 采樣頻率fs=800 Hz,ts=1/fs,測(cè)量值M=64,信號(hào)長(zhǎng)度N=256,測(cè)量矩陣Φ與稀疏基分別采用高斯隨機(jī)矩陣與傅里葉矩陣,算法的仿真結(jié)果如圖4所示,從圖4可以看出改進(jìn)算法可以很好地重構(gòu)原始信號(hào),并且重構(gòu)均方誤差小至10-14數(shù)量級(jí)。 圖4 PPStOMP算法重構(gòu)信號(hào) 為驗(yàn)證PPStOMP算法在圖像重構(gòu)方面的性能優(yōu)劣,選取256×256的camera圖像與其余幾種OMP類算法及參數(shù)優(yōu)化前的PStOMP進(jìn)行重構(gòu)對(duì)比仿真實(shí)驗(yàn),選用PSNR以及重構(gòu)時(shí)間作為算法對(duì)圖像重構(gòu)性能的評(píng)價(jià)標(biāo)準(zhǔn)。OMP、StOMP、SAMP與PPStOMP算法的參數(shù)設(shè)置與2.1節(jié)一致。 分別對(duì)各算法在采樣率M/N為0.4、0.5、0.6、0.7時(shí)進(jìn)行試驗(yàn),每個(gè)實(shí)驗(yàn)重復(fù)運(yùn)行50次,求其平均PSNR值以及平均重構(gòu)時(shí)間。圖像重構(gòu)得平均PSNR值與采樣率的關(guān)系如圖5所示;圖像重構(gòu)所需的平均時(shí)間與采樣率的關(guān)系如圖6所示。同時(shí),為進(jìn)一步顯示camera圖各算法的重構(gòu)性能對(duì)比,列出采樣率M/N為0.7時(shí),camera圖使用OMP、StOMP、SAMP、PStOMP與PPStOMP算法的重構(gòu)效果圖,如圖7所示。 圖5 camera圖采樣率與各算法的PSNR關(guān)系圖 圖6 camera圖采樣率與各算法平均重構(gòu)時(shí)間關(guān)系圖 圖7 采樣率為0.7時(shí)各算法的camera重構(gòu)圖像 由圖5可知,PPStOMP算法隨采樣率的提高,重構(gòu)得到的PSNR值增幅最大,且PSNR值是所有算法中最大的,即圖像重構(gòu)效果提升最明顯。由圖6可知,PPStOMP算法是除了StOMP算法中用時(shí)最短的。與SAMP算法相比,PPStOMP算法的重構(gòu)時(shí)間僅占它的10%左右。隨著采樣率的提高,PPStOMP算法的重構(gòu)時(shí)間接近為水平線,算法的收斂速度較快。因此PPStOMP算法保留了StOMP算法效率高的優(yōu)勢(shì)。由圖7可知,采樣率為0.7時(shí),各算法的重構(gòu)圖像已經(jīng)與原始camera圖像很接近了,但從每幅重構(gòu)圖像的放大局部圖來看,PPStOMP算法的視覺效果要優(yōu)于其他算法。 實(shí)驗(yàn)流程如圖8所示。首先在FPGA中對(duì)輸入的采樣數(shù)據(jù)進(jìn)行有符號(hào)數(shù)轉(zhuǎn)換,并進(jìn)行數(shù)據(jù)緩沖,然后將原始數(shù)據(jù)與讀取的測(cè)量矩陣進(jìn)行壓縮測(cè)量得到測(cè)量值,最后將該測(cè)量值傳輸至上位機(jī)中,通過PPStOMP算法對(duì)壓縮數(shù)據(jù)進(jìn)行重構(gòu)恢復(fù)。 圖8 實(shí)驗(yàn)流程圖 實(shí)驗(yàn)中FPGA選用Kintex-7系列的XC7K325T-2FFG900I芯片,使用信號(hào)發(fā)生器產(chǎn)生AD9238所需的模擬采樣信號(hào),型號(hào)為ADG6032X。整個(gè)設(shè)計(jì)的運(yùn)行頻率為200 MHz。實(shí)驗(yàn)數(shù)據(jù)來自ILA抓取得到的ADC采樣數(shù)據(jù)與壓縮數(shù)據(jù),將數(shù)據(jù)導(dǎo)入MATLAB中,解壓保存為可用excel打開的.csv格式。 在MATLAB中利用保存的壓縮數(shù)據(jù)進(jìn)行數(shù)據(jù)重構(gòu),與原始的ADC采樣數(shù)據(jù)進(jìn)行對(duì)比,其中重構(gòu)算法為PPStOMP算法,測(cè)量矩陣為硬件設(shè)計(jì)中的數(shù)據(jù)存儲(chǔ)器保存的稀疏二值矩陣,變換基為傅里葉變換矩陣。 為計(jì)算數(shù)據(jù)壓縮重構(gòu)后引入的失真度,實(shí)驗(yàn)使用信噪比(SNR)與均方誤差(NMSE)來反映重構(gòu)數(shù)據(jù)與原始采樣數(shù)據(jù)之間的失真度。SNR和NMSE表達(dá)式如式(5)、式(6)所示。 (5) (6) 同時(shí)為對(duì)比各算法的重構(gòu)性能,除PPStOMP算法外,還采用OMP、StOMP、CoSaMP、SP、SAMP算法進(jìn)行數(shù)據(jù)重構(gòu),各算法對(duì)壓縮數(shù)據(jù)重構(gòu)所得的NMSE與SNR如表3所示。從表3可知,本文設(shè)計(jì)的PPStOMP算法的重構(gòu)誤差最小,并且重構(gòu)信噪比最高。 表3 各算法重構(gòu)的NMSE與PSNR值 同時(shí)選取2組由示波器采集并保存得到的實(shí)際信號(hào)作算法重構(gòu)分析,分別如圖9與圖10所示。該實(shí)際信號(hào)由頻率與幅值都不相同的多個(gè)正弦波信號(hào)疊加組成,并且包含白噪聲,因此應(yīng)先對(duì)信號(hào)降噪處理以便與算法重構(gòu)結(jié)果進(jìn)行對(duì)比。 (a)實(shí)際信號(hào)1 (a)實(shí)際信號(hào)2 分別采用PPStOMP、SAMP與StOMP算法進(jìn)行重構(gòu),PPStOMP算法的重構(gòu)效果最好,曲線最為平滑,與降噪后的原始信號(hào)基本一致;SAMP算法的重構(gòu)效果次之,StOMP算法效果最差。 該2組信號(hào)的算法重構(gòu)SNR值如表4所示,從表4可知,本文設(shè)計(jì)的PPStOMP算法在OMP類算法中的重構(gòu)SNR值是最高的,因此該算法的重構(gòu)效果更優(yōu)。 表4 實(shí)際信號(hào)的算法重構(gòu)SNR值 本文基于超高速采集系統(tǒng)平臺(tái),針對(duì)壓縮數(shù)據(jù)在上位機(jī)的重構(gòu)問題,提出一種結(jié)合SAMP算法自適應(yīng)性與StOMP算法分階段的改進(jìn)算法——基于PSO算法優(yōu)化的預(yù)選分段正交匹配追蹤(PPStOMP)算法。與SAMP算法相比,該改進(jìn)算法的重構(gòu)運(yùn)行時(shí)間極大縮短;與StOMP算法相比,該改進(jìn)算法在保留了原算法效率高的前提下明顯提高了算法的重構(gòu)成功率。通過與OMP類算法進(jìn)行對(duì)比實(shí)驗(yàn)可知,該改進(jìn)算法對(duì)原始采樣信號(hào)或圖像信號(hào)可以很好地重構(gòu),且算法信噪比高,均方誤差小,運(yùn)行時(shí)間短。1.3 改進(jìn)正交匹配追蹤算法設(shè)計(jì)
2 PPStOMP算法性能分析
2.1 PPStOMP算法參數(shù)仿真測(cè)試
2.2 PPStOMP算法一維信號(hào)重構(gòu)仿真
2.3 PPStOMP算法圖像信號(hào)重構(gòu)仿真
3 實(shí)驗(yàn)驗(yàn)證
3.1 實(shí)驗(yàn)設(shè)計(jì)
3.2 實(shí)驗(yàn)結(jié)果與分析
4 結(jié)束語(yǔ)