王選擇, 洪 潭, 胡曉暉, 翟中生, 王淞略
(1.湖北工業(yè)大學(xué) 機械工程學(xué)院,湖北 武漢 430068;2.湖北省現(xiàn)代制造質(zhì)量工程重點實驗室,湖北 武漢 430068;3.武漢市康達電氣有限公司,湖北 武漢 430014)
調(diào)幅信號是指載波頻率固定,幅值隨被測對象狀態(tài)發(fā)生改變的信號,其包絡(luò)曲線實時反映被測對象的幅值變化。通常包絡(luò)曲線的獲取方法有硬件處理與軟件處理兩類方法,硬件處理一般采用二極管包絡(luò)檢波電路處理的方式,主要是運用二極管的單向?qū)ㄐ?,?gòu)造絕對值處理電路來獲取調(diào)幅信號的絕對大小。這種方法適合信號較大的單邊帶調(diào)幅信號,受噪聲影響較大,且元件參數(shù)選擇不當,容易出現(xiàn)惰性失真和負峰切割失真,一般不應(yīng)用于數(shù)字采樣處理的高頻載波的調(diào)幅信號之中[1,2]。軟件處理方法主要包括Hilbert幅值解調(diào)法和小波變換法,Hilbert幅 值解調(diào)法是通過Hilbert 變換獲取信號的幅值和相位,由于隨機噪聲的干擾,解調(diào)獲得的包絡(luò)輪廓較為粗糙[3]?;诰€性相位小波具有奇對稱實部與偶對稱虛部的性質(zhì),小波變換法[4,5]利用小波分解并重構(gòu)一對幅值與頻率均相同的正交信號,再對調(diào)幅信號的幅值變化實現(xiàn)解調(diào)制,小波變換克服了Hilbert變換的不足,提高了包絡(luò)提取的精度,但需要根據(jù)不同的信號選擇相應(yīng)的小波基函數(shù),且不適合嵌入式系統(tǒng)。
正弦擬合的幅相位算法具有很高的精度,但包絡(luò)計算的逐段擬合耗時長,且要求系統(tǒng)存儲空間大,不適合高速實時處理。為此,本文以最小二乘線性正弦擬合算法[6,7]為基礎(chǔ),提出了一種數(shù)字式移動正弦擬合快速求解包絡(luò)曲線
的方法。
具體思路如下:對直接AD采樣的數(shù)字調(diào)幅信號在逐段正弦移動擬合過程中,首先對以起始點數(shù)據(jù)段進行完整的正弦擬合,然后結(jié)合前向遞推思想,利用上一次擬合的中間矩陣參數(shù),在不需要重新擬合的條件下,計算下一點開始的數(shù)據(jù)段擬合結(jié)果,并得到新的中間矩陣參數(shù),直到獲取移動過程中每一段的擬合結(jié)果,最后根據(jù)擬合參數(shù)與調(diào)制信號的關(guān)系,設(shè)計適合的計算公式,準確求取調(diào)幅信號的包絡(luò)曲線。由于算法充分利用遞推思想,極大降低了計算量與包絡(luò)曲線求解時間,且具有正弦擬合算法抗干擾能力強的特點,同時算法靈活,不僅適合整周期,也適合非整周期采樣數(shù)據(jù)的處理。另外,算法適應(yīng)性廣,對采樣信號是否帶直流偏置無要求。
調(diào)幅信號是頻率固定幅值隨時間變化的曲線,假設(shè)調(diào)幅信號的公式表達為
x(t)=u(t)cos(φ0+2πfct)+c
(1)
式中fc為載波頻率,u(t)為調(diào)制信號,代表被測對象的幅值,φ0為信號的初始相位,c為信號的直流偏置。調(diào)幅信號直接經(jīng)過滿足采樣定理的A/D轉(zhuǎn)換后,得到等間隔的離散采樣信號
xi=Aicos(φ0+2πifc/fs)+ci
(2)
式中fs為采樣頻率,一般要求fs>10fc,i為采樣序列,Ai為調(diào)幅信號幅值。為了得到調(diào)幅信號的包絡(luò)曲線,需求得式(2)中每個采樣序列對應(yīng)的正弦信號的幅值A(chǔ)i,由于單個數(shù)據(jù)點不能得到信號幅值和相位,需要選取一定區(qū)間內(nèi)的數(shù)據(jù)集進行正弦擬合。
根據(jù)正弦信號周期性的特點,對整周期采樣點數(shù)的擬合具有更高的精度,因此,包絡(luò)信號的提取一般選擇一個周期的采樣長度進行逐段擬合。事實上,若載波周期不是采樣周期的整數(shù)倍,為減小計算的復(fù)雜度且保證包絡(luò)信號的準確性,則盡量選取與載波周期理論點數(shù)最相近的整數(shù)點數(shù)。
考慮到信號u(t)的變化頻率遠遠低于載波頻率,調(diào)幅信號的幅值變化緩慢,可認為fc在決定周期Tc內(nèi)幅值與直流偏置均為常數(shù),故在一個較小的采樣時間段內(nèi),則式(2)可以寫成
xi=Acos(φ0+iδ)+c+εi
(3)
式中δ=2πfc/fs,為采樣相移量,εi為采樣信號的誤差。實際逐段擬合計算過程中,可假設(shè)每小段采樣區(qū)間內(nèi)的數(shù)據(jù)i從0開始,即i=0,…,nT-1。為得到參數(shù)A,φ0,c的大小,按照最小二乘擬合的思想,滿足誤差平方和最小原則,令有
a=Acosφ0,b=-Asinφ0
(4)
則有線性化最小二乘擬合為
f(a,b,c)=∑(xi-acos (iδ)+bsin(iδ)-c)2
=min
(5)
因此,求解參數(shù)A,φ0,c轉(zhuǎn)變成求解最小二乘擬合值參數(shù)a,b,c的問題。為使最小二乘擬合誤差最小,滿足式(2)的條件為
(6)
將式(6)寫成矩陣形式,得到等式方程
(7)
令
(8)
則根據(jù)式(8)可以得到
(9)
求解出最小二乘擬合值參數(shù)a,b,c后,即可得到正弦信號幅值A(chǔ)和初始相位φ0。
一次正弦擬合只能得到調(diào)幅信號的一個包絡(luò)點,為了得到所有包絡(luò)點,形成一個包絡(luò)曲線,需要求解出包絡(luò)曲線上每一點對應(yīng)的包絡(luò)幅值,即需要對調(diào)幅信號進行逐段正弦擬合,但這會導(dǎo)致運算量較大,極大地增加了包絡(luò)曲線的求解時間,因而,需要一種能夠進行快速擬合的算法。
從線性最小二乘正弦擬合算法的計算過程可以看出,為了得到采樣數(shù)據(jù)某一點的信號幅值,需要對以該點為中心的一段區(qū)間數(shù)據(jù)進行正弦擬合。且隨著被擬合數(shù)據(jù)點的移動,擬合數(shù)據(jù)區(qū)間也對應(yīng)移動。移動正弦擬合的數(shù)據(jù)區(qū)間移動過程如圖1所示,當求解移動數(shù)據(jù)點T(m),T(m+1),T(m+2), …對應(yīng)的正弦幅值時,需要分別對區(qū)間m,m+1,m+2,…內(nèi)的數(shù)據(jù)進行正弦擬合。從圖中可以看出,在相鄰數(shù)據(jù)區(qū)間移動過程中,實際參與擬合的數(shù)據(jù)只是去掉首端值,尾端增加一個值,總數(shù)據(jù)量不變。移動擬合過程與移動平均[8]一樣,上一個數(shù)據(jù)擬合區(qū)間與下一個數(shù)據(jù)擬合區(qū)間存在大量重復(fù)數(shù)據(jù)點的處理。根據(jù)擬合算法的特點,可對重復(fù)點的數(shù)據(jù)進行適當?shù)膮^(qū)分處理,實現(xiàn)移動正弦擬合的快速算法。為此,這里引入向前遞推的算法,來降低擬合計算量,提高移動正弦擬合的計算速度。
圖1 調(diào)幅信號移動正弦擬合區(qū)間
假設(shè)當前移動擬合數(shù)據(jù)區(qū)間的數(shù)據(jù)組Xk=[xkxk+1…xk+nT-1],則下一組為Xk+1=[xk+1xk+2…xk+nT]。根據(jù)式(9)可知,在區(qū)間擬合過程中,每一個區(qū)間都作為一組新的數(shù)據(jù)進行正弦擬合,而每組數(shù)據(jù)正弦擬合的關(guān)鍵在于中間矩陣B與Y的求解。由擬合參數(shù)的推導(dǎo)過程可以看出,參與計算的矩陣B僅與擬合數(shù)據(jù)量以及采樣相移量相關(guān),因此在移動正弦擬合過程中,矩陣B與逆矩陣B-1是與采樣數(shù)據(jù)無關(guān)的常矩陣,可對其預(yù)先初始化。在實際移動擬合過程中,為得到區(qū)間長度為nT的擬合區(qū)間中間點的幅值與相位,式(8)中的矩陣B改造為如下形式
B=
其中,r=(nT-1)/2,并且由式(8)可知矩陣Y是隨著區(qū)間數(shù)據(jù)組的變化而發(fā)生改變的。假設(shè)數(shù)據(jù)組Xk對應(yīng)的矩陣為Yk,數(shù)據(jù)組Xk+1對應(yīng)的矩陣為Yk+1,那么分別有
應(yīng)用三角函數(shù)公式的數(shù)學(xué)推導(dǎo),可以發(fā)現(xiàn)Yk+1與Yk之間存在如下的遞推關(guān)系
(10)
顯然在Yk已知的條件下,此遞推公式通過預(yù)存cosδ,sinδ,cos((nT-1)δ)與sin((nT-1)δ)四個常量,僅需要少許的計算量即可求得Yk+1的值,極大地降低了矩陣Yk+1的計算工作量,從而大大降低了整體正弦移動擬合的計算工作量。在得到矩陣B-1與Yk的基礎(chǔ)上,利用式(9)即可以快速得到擬合值ak,bk,ck。
值得指出的是,由于正弦擬合需要一定的數(shù)據(jù)量,因此在移動正弦擬合算法同移動平均一樣,出現(xiàn)邊沿損失現(xiàn)象,所獲得的包絡(luò)曲線數(shù)據(jù)量比采樣數(shù)據(jù)少一個正弦擬合數(shù)據(jù)量nT。
結(jié)合Yk遞推計算量與正弦擬合公式(9),計算得到遞推法與直接擬合的運算量對比圖如圖2所示。
圖2 遞推法與直接擬合的運算量對比
圖2中橫縱坐標均為對數(shù)坐標顯示,沒有采用遞推算法的每一次正弦擬合,需要2nT+9次浮點乘法運算,3(nT-1)+6次加法運算;而采用遞推算法后僅要求15次乘法運算與14次加法運算,與區(qū)間數(shù)據(jù)量nT大小無關(guān)。從預(yù)存函數(shù)值空間來看,非遞推算法要求預(yù)存2nT個正余弦函數(shù)值,而遞推算法僅需4個函數(shù)值,所占內(nèi)存空間少,易于單片機嵌入式系統(tǒng)的實現(xiàn)。由于非遞推擬合算法的運算復(fù)雜度正比于擬合數(shù)據(jù)量,遞推算法隨著nT的增加,速度優(yōu)勢更加明顯。假設(shè)1 000個采樣數(shù)據(jù),不同周期采樣點的計算工作量比較。如每個周期達到100點以上的條件下,遞推移動正弦擬合運算相對于直接擬合算法乘法計算次數(shù)縮小1/15,加法次數(shù)縮小到1/20,這有利于高頻率采樣信號的處理,且總體計算量與采樣頻率無關(guān)。
理論上,包絡(luò)曲線所求結(jié)果是調(diào)幅信號的幅值曲線。在得到正弦移動擬合結(jié)果ak,bk,ck后,可以按照如下公式(11),直接計算幅值A(chǔ)k
(11)
嵌入式系統(tǒng)中是通過迭代運算求取平方根,為了減小計算量,可以采用對擬合值直接求絕對值的方法來計算包絡(luò)曲線。根據(jù)公式(4),可知正弦參數(shù)擬合值得絕對值滿足
在載波采樣周期nT內(nèi),幅值A(chǔ)k近似滿足如下關(guān)系
(12)
因此,可直接通過求解擬合參數(shù)的絕對值,來求取包絡(luò)幅值曲線,將平方運算轉(zhuǎn)換成加法與乘法運算,可以顯著降低移動擬合后包絡(luò)曲線的計算量。
如圖3所示為某包絡(luò)信號正弦擬合參數(shù)擬合值ak與bk的絕對值及移動平均曲線圖。
圖3 擬合參數(shù)的絕對值及其移動平均結(jié)果
圖3中所顯示的是采樣信號第750~850個采樣點的處理結(jié)果,故結(jié)果中不包括移動擬合和移動平均所導(dǎo)致的邊沿效應(yīng)。從圖中局部放大的絕對值移動平均曲線來看,兩參數(shù)的ak,bk絕對值移動平均存在較大的周期波動起伏,進一步觀察可以看出,兩者的波動大小正好相反,可以互相彌補,兩者的絕對值均值的移動平均更能反映實際的包絡(luò)曲線。故包絡(luò)幅值的計算公式修正如下
(13)
在超聲解調(diào)測距系統(tǒng)中,控制輸出激勵信號,返回的超聲波回波放大信號如圖4所示。
圖4 超聲波回波采集信號
其中超聲波發(fā)射探頭輸出頻率fc為40 kHz的方波激勵信號,回波放大信號直接采用STM32單片機內(nèi)部的12位A/D轉(zhuǎn)換器,并設(shè)置為其最高采樣頻率6/7 MHz,即采樣相位間隔δ為7π/75,則一個信號周期內(nèi)的采樣點數(shù)為21.43,采樣序列總長度為2 000。圖中的回波曲線不同于常規(guī)的回波曲線,原因在于系統(tǒng)的超聲發(fā)射采用了正反向反復(fù)激勵的輸出方式[9,10]。
在超聲回波移動正弦擬合過程中,首先選取21個采樣點作為固定擬合長度進行移動正弦擬合(非整周期擬合)并計算出常數(shù)矩陣B與B-1,再根據(jù)采樣信號獲得3個初始正弦擬合參數(shù),運用遞推算法得到所有區(qū)間段的擬合參數(shù)值,最后根據(jù)式(13)得到移動正弦擬合過程中的第500~1 000數(shù)據(jù)點的擬合相位、擬合信號以及擬合誤差的如圖5所示.從圖5 (a)可以看出采樣信號的波谷對應(yīng)的擬合相位為0,波峰對應(yīng)的擬合相位為π (或-π),從圖5(b)可以看出:原始信號與擬合信號基本重合,圖5 (c)顯示出擬合誤差較小且為白噪聲,與預(yù)期結(jié)果一致。
圖5 移動正弦擬合結(jié)果
快速移動正弦擬合求解后,對擬合求解參數(shù)ak,bk的絕對值和進行移動平均,利用包絡(luò)曲線的求解公式(13)就能夠快速計算出調(diào)幅信號的上包絡(luò)。圖6顯示了有效部分采樣點的原始信號及根據(jù)移動正弦擬合計算得到的包絡(luò)曲線圖。
圖6 超聲測距輸出信號解包絡(luò)
圖6中為了更加清晰顯示包絡(luò)曲線的求解效果,包絡(luò)曲線由包絡(luò)幅值A(chǔ)k與直流偏置ck之和替代,可以看出移動正弦擬合能夠較為準確地獲取調(diào)幅信號的包絡(luò)曲線。
分析對比了直接正弦擬合與遞推正弦擬合求解包絡(luò)曲線的算法復(fù)雜度,表明該方法在高頻采樣中運算量與存儲
空間量都具有明顯的優(yōu)勢。提出利用擬合參數(shù)絕對值均值的移動平均方法代替幅值公式求解調(diào)幅信號的包絡(luò)線,進一步降低了計算量,且適宜嵌入式系統(tǒng)的算法設(shè)計。同時該算法適用于非整周期采樣擬合,應(yīng)用于超聲波信號的包絡(luò)曲線解調(diào)實驗中,能快速有效獲取采樣信號的包絡(luò)曲線。