基于DSP與FPGA的光柵地震檢波器的信號處理
由幅值細分法可知,軟件細分算法設計的關(guān)鍵問(wèn)題是根據兩路信號的比值對該點(diǎn)的相位角的正確定位。該點(diǎn)的位置有兩種情況,一種是落在各象限的邊界上,另一種是落在各象限之中。根據細分邊界條件判斷該點(diǎn)的采樣數據是否發(fā)生在四個(gè)象限的分界線(xiàn)上,如果判斷此次換向發(fā)生在象限的分界線(xiàn)上,則細分數為固定值,并且通過(guò)象限的正負關(guān)系就可以確定具體細分數值,不需要進(jìn)行復雜的計算。如果該點(diǎn)不是發(fā)生在象限分界線(xiàn)上,則需根據象限正負關(guān)系判斷換向發(fā)生的具體象限,不同象限對應不同計算公式。細分算法程序如下:
static int subdiv(int*input,int*input1)一設置指針形參用來(lái)讀取兩路波形采樣值
{
程序初始化,定義各種變量標志字。
float ADSIN_X,ADCOS_X,ABSIN_X,ABCOS_X;一定義存儲變量存放采樣值與絕對值
int m=0,n=0,k=0,d=0,i=0;一設置標志字判斷采樣值正負
ADSIN_X=*input;-從緩存區讀取sin采樣值
ADCOS_X=*input1;-從緩存區讀取cos采樣值
ABSIN_X=fabs(ADSIN_X);-求取sin絕對值
ABCOS_X=fabs(ADCOS_X);-求取COS絕對值
根據采樣值,寫(xiě)標志字
if(ADSIN_X>0) m=1; else m=0;
if(ADCOS_X>0) n=1; else n=0;
if((ABSIN_X-ABCOS_X)>0)k=1;else if((AB-SIN_X-ABCOS_X)O) k=0;elsek=2;
根據標志字判斷相位點(diǎn)的位置,根據相應位置不同公式求取細分值
然后利用公式R=N×ω+d×L求出任意一點(diǎn)諧振子的幅值并輸出。式中N為整周期的累加計數值,W為光柵柵距,d為細分計數,L=ω/m,m為細分倍數。
4 結束語(yǔ)
設計的光柵地震檢波器充分結合了FPGA的強大控制功能和DSP高速運算處理功能,實(shí)現了信號的同步采集、高倍細分和實(shí)時(shí)復現。減少了單一處理器的負荷,提高了系統的速度和穩定性,為光柵震動(dòng)信號處理提出了一個(gè)新思路。由于硬件雙口RAM接口時(shí)序復雜,成本高也會(huì )給系統帶來(lái)不穩定性,因此本文在FPGA中設計了一軟RAM。對于振動(dòng)信號幅值的計算則是在對整周期的莫爾條紋進(jìn)行計數的同時(shí),利用軟件細分法實(shí)時(shí)地計算出非整周期的莫爾條紋信號所代表的小數值,并實(shí)時(shí)將二者相加后乘以莫爾條紋當量(每個(gè)莫爾條紋所代表的位移量),即可得到信號的實(shí)時(shí)振動(dòng)幅值。
評論