姜 斌, 唐 禹, 包建榮, 唐向宏, 朱 芳
(杭州電子科技大學(xué) 通信工程學(xué)院,杭州 310018)
通常示波器在發(fā)展中可分為模擬和數(shù)字示波器。后者因強(qiáng)大的數(shù)據(jù)處理和波形分析等功能成為主流[1]。數(shù)字示波器測(cè)量信號(hào)準(zhǔn)確度高,因成本高和不易攜帶,主要應(yīng)用于高校及研究所,不適用于緊急通信線路搶修場(chǎng)景。為此,出現(xiàn)了針對(duì)具體應(yīng)用場(chǎng)景,開發(fā)小巧易攜帶示波器產(chǎn)品,缺點(diǎn)是可擴(kuò)展性差[2]。因高準(zhǔn)確度模數(shù)轉(zhuǎn)換器(Analog to Digital Converter,A/DC)售價(jià)一直較高[3],導(dǎo)致基于該核心器件的高端實(shí)驗(yàn)儀器成本高。
為消除高速A/DC對(duì)我國(guó)信號(hào)處理事業(yè)發(fā)展的影響,我國(guó)學(xué)者研發(fā)了多種等效A/DC采樣技術(shù)。時(shí)間交替并行采樣技術(shù)[4]為主流,該技術(shù)以較低成本實(shí)現(xiàn)周期及重復(fù)信號(hào)的高準(zhǔn)確度采樣,但因多片A/DC并行工作,能耗高、同步定時(shí)困難造成所需抽樣樣本數(shù)目多。示波器采樣信號(hào)具有周期性,故頻譜具有顯著稀疏性。壓縮采樣基于信號(hào)稀疏特性,利用有限采樣即可準(zhǔn)確重構(gòu)信號(hào),可有效提升A/DC采樣效率且降低能耗[5-6]。
常用壓縮采樣信號(hào)恢復(fù)算法主要有正交匹配追蹤(Orthogonal Matching Pursuit,OMP)[5]及root-MUSIC[6],上述方法僅利用單一支撐集,易陷于局部最優(yōu),造成信號(hào)恢復(fù)不理想。多路徑匹配追蹤(Multiple Matching Pursuit, MMP),生成多個(gè)候選集并選擇最優(yōu),有效提高信號(hào)準(zhǔn)確度。因示波器信號(hào)采樣無(wú)法預(yù)知信號(hào)稀疏度,故改進(jìn)了MMP算法,獲得稀疏度自適應(yīng)-MMP(Sparse adaptive-MMP, SA-MMP)方法,并應(yīng)用至該虛擬儀器,實(shí)現(xiàn)高穩(wěn)定、高準(zhǔn)確度的信號(hào)恢復(fù),保證了帶寬100 MHz、采樣速率200 MS/s的雙通道虛擬示波器的穩(wěn)定性能。為方便現(xiàn)場(chǎng)故障排查,還擴(kuò)展了信號(hào)生成,可生成5~10 MHz的常用波形?;谟?jì)算機(jī)的計(jì)算算力及硬件資源,增加了頻譜儀、掃頻儀以及記錄儀的功能,增強(qiáng)實(shí)用性。研發(fā)的虛擬儀器具有功耗低,配置靈活、信號(hào)測(cè)試帶寬大及擴(kuò)展性強(qiáng)等諸多優(yōu)勢(shì)。
依據(jù)虛擬儀器設(shè)計(jì)思想,示波器分為硬件電路和PC端軟件這兩大部分。硬件采集并量化外部輸入信號(hào),依據(jù)PC指令設(shè)置生成信號(hào)波形參數(shù),輸出信號(hào),完成信號(hào)顯示及生成的功能。雙通道虛擬示波器系統(tǒng)總體框架如圖1所示。
圖1 虛擬示波器總體框架圖
通過(guò)功能的分類,硬件電路可分為以下幾個(gè)模塊:模擬信號(hào)通道、數(shù)據(jù)采集、微控制器(MCU)、個(gè)人電腦(PC)端數(shù)據(jù)處理和信號(hào)生成等模塊。其中,信號(hào)采集主要由A/DC、現(xiàn)場(chǎng)可編程門列陣(FPGA)及時(shí)鐘邏輯控制器等組成,基于FPGA平臺(tái)壓縮采樣信號(hào),可極大降低采樣信號(hào)所需的能耗。PC端采用了采樣離散信號(hào),用信號(hào)重構(gòu)算法恢復(fù)原始信號(hào)。重構(gòu)算法的選擇應(yīng)遵循盡量少的采樣次數(shù)實(shí)現(xiàn)高質(zhì)量信號(hào)恢復(fù)。
硬件系統(tǒng)主要由“STM32+FPGA”構(gòu)成。STM32模塊以STM32F103C8T6芯片為主控制器,負(fù)責(zé)與上位機(jī)的通信及調(diào)控。FPGA選用EP1C3T100,分別控制A/DC和D/AC實(shí)現(xiàn)信號(hào)采集及生成功能。A/DC和D/AC分別選用ADS830E和AD5721。
信號(hào)采集電路主要由模擬信號(hào)預(yù)處理、觸發(fā)脈沖控制、信號(hào)采樣通道控制、模數(shù)轉(zhuǎn)換和FPGA緩存組成[8]。根據(jù)采樣定理,若要準(zhǔn)確重構(gòu)信號(hào),則A/DC工作頻率不低于信號(hào)最高頻率2倍,但會(huì)造成高能耗。為此,隨機(jī)等效采樣利用非均勻采樣,依據(jù)觸發(fā)脈沖與采樣時(shí)鐘間時(shí)間間隔存儲(chǔ)采樣值,多次采樣完成波形信號(hào)重構(gòu),實(shí)現(xiàn)低奈奎斯特采樣頻率。
設(shè)采樣信號(hào)時(shí)間間隔為(0,Ts],觸發(fā)時(shí)刻與觸發(fā)后的第1個(gè)采樣時(shí)刻的上升沿的時(shí)間間隔Δtm,m為隨機(jī)采樣次數(shù)。觸發(fā)采樣脈沖理想且不重復(fù)的情況下,需要采樣次數(shù)有N=Ts/Δtm。但在實(shí)際中,脈沖隨機(jī)生成。故Δtm在(0,Ts]區(qū)間為非均勻分布,實(shí)際采樣次數(shù)要多于N次。針對(duì)采樣樣本數(shù)少導(dǎo)致信號(hào)重構(gòu)失敗的問(wèn)題,引入壓縮采樣技術(shù)。
為保證壓縮采樣信號(hào)準(zhǔn)確還原,采樣矩陣需便于硬件實(shí)現(xiàn)。在此,利用Whittaker-Shannon構(gòu)建采樣矩陣[5]。故采樣信號(hào)y與原始信號(hào)x有下式:
(1)
式中:n為信號(hào)級(jí)數(shù)展開項(xiàng)的序號(hào);m為隨機(jī)采樣次數(shù),不大于準(zhǔn)確重構(gòu)原始信號(hào)最低采樣次數(shù),且m≤M;Te為等效時(shí)間采樣周期。將式(1)改寫為矩陣形式,則有:
y=Φx
(2)
y=Φx=ΦΨα
(3)
式中:α為稀疏度為K的稀疏信號(hào),有效降低A/DC芯片工作負(fù)荷。
信號(hào)生成電路利用直接數(shù)字信號(hào)合成(DDS)中的數(shù)字頻率合成技術(shù)[9]。該模塊主要包括主控芯片STM32、FPGA和D/AC。信號(hào)生成主要步驟如下:
步驟1PC端設(shè)置生成信號(hào)參數(shù),依據(jù)協(xié)議編碼指令,并由USB轉(zhuǎn)發(fā)至STM32;
步驟2STM32解析指令,初始化D/AC,并生成指令發(fā)送至FPGA;
步驟3FPGA讀取STM32指令并利用查表方式讀取ROM固有波形信息,并完成相位累加、RAM讀寫和并串轉(zhuǎn)換的時(shí)序邏輯控制,并生成指令下發(fā)至D/AC;
步驟4D/AC在時(shí)鐘邏輯控制下輸出對(duì)應(yīng)波形。D/AC為AD5721芯片,可生成信號(hào)頻率范圍為:5 Hz~10 MHz。
軟件模塊主要包括通信、采樣、恢復(fù)及儀器驅(qū)動(dòng)程序等。
STM32作為一種集成多功能及成熟開發(fā)庫(kù)的芯片,具有穩(wěn)定、快速的特點(diǎn),選用STM32連接硬件電路與PC通信。利用高速USB保證PC端信號(hào)穩(wěn)定傳輸至STM32,STM32基于指令譯碼,并下發(fā)至FPGA及周邊電路,F(xiàn)PGA與STM32通信流程如圖2所示。
圖2 STM32通信工作流程圖
PC端給STM32發(fā)送初始化指令,STM32讀取Flash中固有數(shù)據(jù),初始化并設(shè)置時(shí)鐘。STM32連接FPGA,采集信號(hào)并儲(chǔ)存數(shù)據(jù)至FIFO中,將一定量的數(shù)據(jù)發(fā)送至PC端,完成信號(hào)采集。STM32作為主控模塊,依據(jù)指令要求,選擇生成或采樣信號(hào),基于異步通信協(xié)議激活信號(hào)采樣和生成功能。
壓縮感知可利用有限采樣樣本,準(zhǔn)確重構(gòu)原始信號(hào)。但因接收端未知信號(hào)稀疏度K,故需利用窮盡方式選擇性重構(gòu)信號(hào),每次采樣都會(huì)造成能耗,時(shí)間及存儲(chǔ)成本增加。信號(hào)重構(gòu)需以盡量少的次數(shù)完成。
為滿足上述要求,本文提出的SA-MMP算法的目標(biāo)是在未知K條件下恢復(fù)原始稀疏信號(hào)?;舅枷霝椋?/p>
(1) 估計(jì)方法估計(jì)信號(hào)稀疏度K;
(2) 基于估計(jì)得到的稀疏度K,構(gòu)建深度為K的二叉搜索樹模型;
(3) 利用深度搜索方式,尋求滿足閾值的最優(yōu)解。
按深度優(yōu)先搜索的路徑按次序生成,可有效避免路徑重復(fù)遍歷,降低存儲(chǔ)負(fù)擔(dān)。
3.2.1 稀疏度估計(jì)
利用匹配測(cè)試得到原子集合,即真實(shí)稀疏度K0略小于K。假設(shè)第m次采樣能夠有效地恢復(fù)信號(hào),接收信號(hào)y的真實(shí)支撐集為Ω,用|>·|表示勢(shì),有|>Ω|=K。令f=Φ*y,設(shè)f的第i個(gè)元素為fi,且f為壓縮感知的中間投影矩陣變量,“*”為預(yù)設(shè)值。取|>fi|前K0(1≤K0≤N)最大值索引得集合為Ω0,則|>Ω0|=K0。因Φ滿足有限等距離性質(zhì)(Restricted Isometry Property,RIP)性質(zhì),故若K0≥K,且δk是預(yù)設(shè)偏差量,有:
(4)
3.2.2 稀疏多徑匹配信號(hào)估計(jì)
MMP算法在OMP算法估得的索引基礎(chǔ)上擴(kuò)增候選索引集,并基于索引集擴(kuò)增多個(gè)候選集,形成多個(gè)路徑,類似于二叉樹樹形結(jié)構(gòu)。將每一個(gè)候選集視作葉子節(jié)點(diǎn),將殘差最小候選集轉(zhuǎn)化為樹搜索問(wèn)題。
MMP算法主要由稀疏度K及路徑數(shù)S控制。每次迭代過(guò)程中,對(duì)當(dāng)前候選集先通過(guò)計(jì)算內(nèi)積,選出殘差最為匹配的S個(gè)原子,在將該原子依據(jù)路徑數(shù)分為S組,并將其加入到當(dāng)前索引集,生成下一級(jí)迭代的S個(gè)索引集。經(jīng)迭代,將產(chǎn)生多個(gè)索引集,并逐路徑選擇最優(yōu)支撐集,實(shí)現(xiàn)數(shù)據(jù)重建。該算法通過(guò)增加候選集數(shù)目,提升選擇正確索引的概率。但基于層序遍歷的樹最優(yōu)解搜索,路徑存在重合,需存儲(chǔ)候選集,計(jì)算負(fù)擔(dān)較大。因此,引入深度遍歷搜索算法。有效避免從頂層開始計(jì)算多條路徑候選集,降低計(jì)算量,提升信號(hào)重構(gòu)準(zhǔn)確度。
3.2.3 采樣判決停止步驟
故采樣信號(hào)采樣判決停止步驟如下
圖3 信號(hào)恢復(fù)流程圖
驅(qū)動(dòng)程序模塊主要由儀器關(guān)閉和啟動(dòng)、通道控制、水平控制、觸發(fā)控制、數(shù)據(jù)采集、自動(dòng)設(shè)置和波形生成等模塊組成[9]。用戶使用UI界面設(shè)置各模塊參數(shù)。其功能組成框架如圖4所示。
圖4 儀器驅(qū)動(dòng)模塊組成框架圖
PC端啟動(dòng)上位機(jī)示波器軟件,發(fā)送指令初始化硬件電路,建立硬件電路與PC端的通信連接。儀器軟件關(guān)閉,PC斷開與硬件電路連接,釋放PC端及硬件緩存。
通道控制模塊主要控制信號(hào)采樣通道。水平控制模塊主要設(shè)置采樣方式和時(shí)基擋位。
觸發(fā)控制模塊主要控制硬件電路觸發(fā)脈沖,確保精準(zhǔn)的時(shí)基定位,使波形穩(wěn)定顯示。模塊主要包括2個(gè)設(shè)置,即觸發(fā)方式及參數(shù)設(shè)置。觸發(fā)參數(shù)因成本和硬件資源限制,主要調(diào)控是觸發(fā)極性和電平。自動(dòng)設(shè)置模塊在系統(tǒng)啟動(dòng)時(shí),默認(rèn)設(shè)置時(shí)基和波形靈敏度。波形生成模塊存儲(chǔ)各標(biāo)準(zhǔn)生成信號(hào),在選定某波形后,將該波形信息傳輸至信號(hào)生成電路,得到特定頻率及幅度波形[11]。
圖5 不同稀疏度兩種算法重構(gòu)概率
圖6 不同采樣數(shù)兩種算法重構(gòu)概率
如圖5所示信號(hào)長(zhǎng)度為256,采樣矩陣為Whittaker-Shannon矩陣,采樣128次,不同稀疏度對(duì)信號(hào)重構(gòu)的影響。此處,稀疏度設(shè)置為[30,70],SA-MMP搜索樹的寬度為4。由圖6可見,本文所提SA-MMP算法要明顯優(yōu)于傳統(tǒng)的OMP算法,當(dāng)稀疏度K為40時(shí),OMP算法的重構(gòu)概率低于90%,之后性能將急劇下降。SA-MMP算法仍能保持100%信號(hào)重構(gòu)。當(dāng)稀疏度為55時(shí),OMP算法無(wú)法重構(gòu)信號(hào),但SA-MMP仍能保持87%左右的重構(gòu)概率。SA-MMP引入了多路徑候選集,因此SA-MMP在較大稀疏度K仍保持良好性能。圖6為稀疏度為30時(shí),采樣次數(shù)對(duì)信號(hào)重構(gòu)的影響。由圖6可見,當(dāng)OMP實(shí)現(xiàn)90%以上重構(gòu)成功率,則需采樣95次左右。而所提算法僅需64次即可。故SA-MMP需要的采樣樣本數(shù)更低,并極大降低了對(duì)A/DC的準(zhǔn)確度要求。各個(gè)壓縮恢復(fù)算法的運(yùn)行時(shí)間,見表1。SA-MMP因稀疏度估計(jì)原因,運(yùn)行時(shí)長(zhǎng)略高于OMP,僅相差0.41 ms,結(jié)合SA-MMP所需信號(hào)采樣樣本數(shù)更少,SA-MMP可實(shí)現(xiàn)更快信號(hào)重構(gòu)。
表1 不同恢復(fù)算法CPU執(zhí)行時(shí)間
根據(jù)上述方案研制的虛擬示波器樣機(jī),同時(shí)具備示波器以及信號(hào)發(fā)生器功能。將PC端通過(guò)USB與硬件電路相連接,啟動(dòng)軟件,點(diǎn)擊“Start Device”啟動(dòng)示波器功能,點(diǎn)擊右側(cè)的“高級(jí)”設(shè)置信號(hào)發(fā)生輸出信號(hào)參數(shù)。
圖7所示為示波器系統(tǒng)測(cè)試圖。分別連接信號(hào)發(fā)生端至數(shù)字示波器DS1152E及虛擬示波器,輸出頻率為1 kHz的不同波形。收集不同情形虛擬示波器與數(shù)字示波器測(cè)量結(jié)果,結(jié)果見表2。由表2可見,虛擬示波器能夠準(zhǔn)確測(cè)定信號(hào)頻率,幅值測(cè)量尚存在一定誤差。但信號(hào)誤差波動(dòng)也僅在1%~3%,基本滿足日常實(shí)驗(yàn)教學(xué)所需。
圖7 系統(tǒng)工作效果測(cè)試
表2 虛擬數(shù)字示波器測(cè)量結(jié)果對(duì)比
除實(shí)現(xiàn)示波器及信號(hào)發(fā)生器功能外,還可進(jìn)一步擴(kuò)展軟件功能?;谟布娐沸盘?hào)采集功能,對(duì)采樣插值后的數(shù)據(jù)做離散傅里葉變換(Discrete Fourier Transform,DFT),可得到信號(hào)頻域數(shù)據(jù),將數(shù)據(jù)在PC端顯示得到頻譜分析儀的功能,如圖8所示。利用PC端可控制生成信號(hào)頻率,設(shè)置步進(jìn)頻率,可輸出掃頻信號(hào),實(shí)現(xiàn)掃頻儀功能,如圖9所示。
圖8 頻譜分析儀功能界面
圖9 信號(hào)發(fā)生器和掃頻儀功能界面
此外,為方便工程師回顧歷史數(shù)據(jù)波形,增加了無(wú)紙記錄儀的功能。點(diǎn)擊REC 按鈕即可對(duì)當(dāng)前的波形進(jìn)行記錄,以星號(hào)*.osc文件名保存,記錄容量大小受限于計(jì)算機(jī)存儲(chǔ)容量。實(shí)現(xiàn)上述功能后,進(jìn)一步測(cè)試示波器硬件電路的各項(xiàng)指標(biāo),由表3可得到結(jié)論:各項(xiàng)參數(shù)基本符合項(xiàng)目目標(biāo)要求。
表3 虛擬示波器硬件電路模塊各項(xiàng)參數(shù)
本文主要論述了基于稀疏采樣的高性能雙通道虛擬示波器的研制。該虛擬示波器采用STM32F103作為主控芯片,利用EP1C3T100和其他外圍電路實(shí)現(xiàn)了示波器、信號(hào)發(fā)生器功能。為提升信號(hào)采樣效率,利用FPGA芯片豐富的存儲(chǔ)計(jì)算資源,基于非均勻采樣采樣信號(hào),利用SA-MMP恢復(fù)信號(hào),實(shí)現(xiàn)信號(hào)高質(zhì)量測(cè)量、恢復(fù)。為充分利用硬件資源,進(jìn)一步擴(kuò)展頻譜儀,信號(hào)發(fā)生器的軟件功能[15]。該示波器具有體積小、易攜帶和多功能等特點(diǎn),具有廣闊應(yīng)用市場(chǎng),可為同類產(chǎn)品設(shè)計(jì)提供借鑒思路。