基于DSP與FPGA的光柵地震檢波器的信號(hào)處理系統(tǒng)
2.3 雙口RAM的仿真結(jié)果
圖4為該進(jìn)程的仿真時(shí)序圖,由圖可見(jiàn)第一個(gè)時(shí)鐘的上升沿?cái)?shù)據(jù)輸入端口data_in的值為4,這時(shí)寫(xiě)選通端口write_address選通地址1,然后對(duì)應(yīng)著地址1的存儲(chǔ)器模塊ram_block1的內(nèi)的值在此刻刷新為4,這說(shuō)明寫(xiě)進(jìn)程正確。同時(shí)應(yīng)注意到讀地址選通信號(hào)read_address的值被傳遞到讀地址寄存器read_address_reg中,read_address_reg中的值被刷新為1。當(dāng)?shù)谝粋€(gè)時(shí)鐘的下降沿到來(lái)時(shí),信號(hào)輸出端口data_out根據(jù)讀地址寄存器read_address_reg中的地址值1選通ram_block1,此時(shí)data_out的值刷新為4,這說(shuō)明讀進(jìn)程也正確。
3 DSP的軟件細(xì)分
采用大數(shù)可逆計(jì)數(shù)與小數(shù)細(xì)分計(jì)數(shù)的軟件細(xì)分技術(shù)。其中大數(shù)計(jì)數(shù)是對(duì)莫爾條紋整周期數(shù)進(jìn)行可逆的加減計(jì)數(shù),這部分功能有采集模塊中的FPGA來(lái)完成,小數(shù)計(jì)數(shù)是對(duì)莫爾條紋不到一個(gè)周期信號(hào)細(xì)分結(jié)果進(jìn)行計(jì)數(shù),其功能由DSP來(lái)完成。運(yùn)算的結(jié)果為大數(shù)計(jì)數(shù)結(jié)果乘以光柵柵距與小數(shù)計(jì)數(shù)結(jié)果乘以細(xì)分當(dāng)量之和,其中細(xì)分當(dāng)量為光柵柵距除以細(xì)分倍數(shù)。該模塊的硬件原理圖如圖5所示。
通過(guò)DSP的地址選通線依次選通讀取FPGA中三個(gè)數(shù)據(jù)緩存區(qū)中的數(shù)據(jù),緩存區(qū)分別存放兩路模擬信號(hào)的數(shù)字量與加減計(jì)數(shù)器的累加計(jì)數(shù)值,然后利用公式R=N*w+K*L求出任意一點(diǎn)諧振子的幅值并輸出。式中N為整周期的累加計(jì)數(shù)值,W為光柵柵距,K為細(xì)分計(jì)數(shù),L=W/M,M為細(xì)分倍數(shù)。該細(xì)分模塊主要是完成對(duì)細(xì)分計(jì)數(shù)K值、和幅值R值的求取,并完成對(duì)幅值的數(shù)字量轉(zhuǎn)換并輸出。
其中細(xì)分方法也就是對(duì)K值的求取采用了八卦限幅值分割法,根據(jù)上述方法設(shè)計(jì)了細(xì)分倍數(shù)可變的細(xì)分算法,利用DSP C語(yǔ)言的專(zhuān)用庫(kù)函數(shù)實(shí)現(xiàn)了純計(jì)算的算法。細(xì)分算法流程如圖6所示。
由幅值細(xì)分法可知,軟件細(xì)分算法設(shè)計(jì)的關(guān)鍵問(wèn)題是根據(jù)兩路信號(hào)的比值對(duì)該點(diǎn)的相位角的正確定位。該點(diǎn)的位置有兩種情況,一種是落在各象限的邊界上,另一種是落在各象限之中。根據(jù)細(xì)分邊界條件判斷該點(diǎn)的采樣數(shù)據(jù)是否發(fā)生在四個(gè)象限的分界線上,如果判斷此次換向發(fā)生在象限的分界線上,則細(xì)分?jǐn)?shù)為固定值,并且通過(guò)象限的正負(fù)關(guān)系就可以確定具體細(xì)分?jǐn)?shù)值,不需要進(jìn)行復(fù)雜的計(jì)算。如果該點(diǎn)不是發(fā)生在象限分界線上,則需根據(jù)象限正負(fù)關(guān)系判斷換向發(fā)生的具體象限,不同象限對(duì)應(yīng)不同計(jì)算公式。細(xì)分算法程序如下:
根據(jù)標(biāo)志字判斷相位點(diǎn)的位置,根據(jù)相應(yīng)位置不同公式求取細(xì)分值
然后利用公式R=N×ω+d×L求出任意一點(diǎn)諧振子的幅值并輸出。式中N為整周期的累加計(jì)數(shù)值,W為光柵柵距,d為細(xì)分計(jì)數(shù),L=ω/m,m為細(xì)分倍數(shù)。
4 結(jié)束語(yǔ)
設(shè)計(jì)的光柵地震檢波器充分結(jié)合了FPGA的強(qiáng)大控制功能和DSP高速運(yùn)算處理功能,實(shí)現(xiàn)了信號(hào)的同步采集、高倍細(xì)分和實(shí)時(shí)復(fù)現(xiàn)。減少了單一處理器的負(fù)荷,提高了系統(tǒng)的速度和穩(wěn)定性,為光柵震動(dòng)信號(hào)處理提出了一個(gè)新思路。由于硬件雙口RAM接口時(shí)序復(fù)雜,成本高也會(huì)給系統(tǒng)帶來(lái)不穩(wěn)定性,因此本文在FPGA中設(shè)計(jì)了一軟RAM。對(duì)于振動(dòng)信號(hào)幅值的計(jì)算則是在對(duì)整周期的莫爾條紋進(jìn)行計(jì)數(shù)的同時(shí),利用軟件細(xì)分法實(shí)時(shí)地計(jì)算出非整周期的莫爾條紋信號(hào)所代表的小數(shù)值,并實(shí)時(shí)將二者相加后乘以莫爾條紋當(dāng)量(每個(gè)莫爾條紋所代表的位移量),即可得到信號(hào)的實(shí)時(shí)振動(dòng)幅值。
評(píng)論