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