嚴(yán)家明,黃永陽,侯曉偉
(西北工業(yè)大學(xué)電子信息學(xué)院,西安 710129)
在一些工程實際應(yīng)用場合,如機械電力、航天航空及軍工等領(lǐng)域的工程測量、機械故障診斷和監(jiān)控分析,都需要測試傳感器的幅頻特性。本文對振動傳感器輸出信號的幅度檢測進(jìn)行了深入研究,結(jié)合嵌入式技術(shù)設(shè)計了一種軟硬件結(jié)合的振動傳感器幅頻特性測試系統(tǒng)。
在振動傳感器幅頻特性測試中,傳統(tǒng)檢測振動傳感器輸出信號的幅度方法有:(1)采用模擬電路實現(xiàn),如峰值檢波電路[1];(2)基于數(shù)字信號處理的相關(guān)分析法[2]和 FFT[3-5]方法等。第一種方法需要消耗大量的硬件資源,噪聲和干擾對測量的影響較大,測量精度不高。第二種方法能充分利用處理器的運算處理能力,測量精度高,系統(tǒng)外圍電路簡單。再比較方法二中的兩種算法:①相關(guān)分析法從時域角度考慮,將響應(yīng)信號分別與激勵信號同頻率的正弦、余弦信號進(jìn)行相關(guān)運算,再通過相關(guān)函數(shù)值得到所求頻率信號的幅度,此方法對噪聲具有很強的抑制能力[6-7],但其運算處理中涉及的相關(guān)運算,用ARM實現(xiàn)比較復(fù)雜。②FFT算法從頻域角度考慮,通過對待測信號采樣、A/D轉(zhuǎn)換得到離散信號,然后對離散信號進(jìn)行快速傅里葉變換,由FFT結(jié)果求出待測頻率信號的幅值。FFT算法一次計算整個頻帶的頻譜值,在本系統(tǒng)設(shè)計中,每次只需獲得待測單頻率點的頻譜值,此方法效率不高。Goertzel算法一次只計算一個頻點的傅里葉分量,在只關(guān)心為數(shù)不多的頻率點信號的場合,該算法相比于FFT等算法有很高的計算效率[8]。因此,本文采用Goertzel算法檢測振動傳感器輸出信號的幅度。
幅頻響應(yīng)特性可以理解為被測試系統(tǒng)對不同頻率的正弦激勵信號的響應(yīng)特性。被測系統(tǒng)的幅頻特性可以通過利用Goertzel算法測取被測系統(tǒng)一系列頻率點處的幅頻響應(yīng)特性后組合而成。
單點頻率特性測試是取單一頻率的正弦信號作為激勵信號通過被測系統(tǒng),當(dāng)輸出信號達(dá)到穩(wěn)定后,利用Goertzel算法求出穩(wěn)態(tài)響應(yīng)信號的幅值,再與激勵信號幅值相比,即可得到被測系統(tǒng)對該頻率信號的幅頻響應(yīng)。逐點掃頻測試則是在單點測試的基礎(chǔ)上,在測試頻率范圍內(nèi),按步長逐點改變正弦激勵信號頻率,分別求出各點頻率的幅頻響應(yīng)特性,當(dāng)取足夠多的點后,就可以得到被測系統(tǒng)的幅頻特性。
利用Goertzel算法求穩(wěn)態(tài)響應(yīng)信號幅度的原理是利用Goertzel算法計算離散后的穩(wěn)態(tài)響應(yīng)信號的DFT值,再由DFT值得到待測頻率信號的幅值。Goertzel算法是DFT的一種快速算法[9-11],其可以看作是一個二階IIR濾波器,該濾波器在z域的傳遞函數(shù)[12]為:
其中遞推部分sk[n]滿足關(guān)系:
其中,sk[-1]=sk[-2]=0,x[n]為一定條件下對穩(wěn)態(tài)響應(yīng)信號采樣得到的采樣序列。在本系統(tǒng)設(shè)計中,不關(guān)心待測信號的相位信息,由式(2)可以推出
令B=|X[k]|2,由式(4)推出所求頻率信號的幅值A(chǔ)為:
為了保證Goertzel算法計算穩(wěn)態(tài)響應(yīng)信號幅度的準(zhǔn)確性,要求對信號進(jìn)行整周期采樣,以避免非整周期采樣導(dǎo)致的頻譜泄露對計算精度的影響。同時對信號整周期采樣的另一好處是可以利用采樣的整周期個數(shù)與頻域譜線的對應(yīng)關(guān)系,更充分高效的運用Goertzel算法。
采樣的整周期數(shù)和頻域譜線的關(guān)系為:對頻率為fi的穩(wěn)態(tài)響應(yīng)信號采樣k個整周期,取采樣頻率為fs(其值滿足采樣定理),采樣點數(shù)為N,則頻率分辨率為fs/N。在時域上可得出:
由式(6)推出信號頻率和頻率分辨率的關(guān)系為:
從式(6)和式(7)可以得出:對穩(wěn)態(tài)響應(yīng)信號采樣k個整周期,則所求頻率信號的譜線為第k根譜線。
根據(jù)此對應(yīng)關(guān)系,在逐點掃頻測試中,對不同頻率的穩(wěn)態(tài)響應(yīng)信號整周期采樣,取采樣整周期數(shù)k和采樣點數(shù)N不變,其好處有:(1)根據(jù)采樣整周期數(shù)可直接得到所求譜線值,相對于其它情況[6],還需額外運算來確定所求譜線值,大大提高了運算效率;(2)因為采樣整周期數(shù)和采樣點數(shù)不變,所以只需存儲唯一系數(shù)p,其中p=2cos(2πk/N),從而很大程度上減少了存儲空間的消耗。
本測試系統(tǒng)的關(guān)鍵技術(shù)指標(biāo)如下:掃頻范圍為50 Hz~400 Hz,步進(jìn)頻率為10 Hz;主機接口:COM串口;工作模式:單頻模式、掃頻模式。系統(tǒng)由上位機、以ARM微處理器為核心的中央控制處理單元和信號調(diào)理電路組成,系統(tǒng)總體框圖如圖1所示。
Dr. Howard Kelly was one of them. When he heard the name of the town she came from, he went down the hall of the hospital to her room. He 4)recognized her at once. He decided to do his best to save her life.
圖1 測試系統(tǒng)總體框圖
上位機通過 RS-232接口實時控制 ARM的D/A轉(zhuǎn)換器產(chǎn)生正弦掃頻信號,經(jīng)過信號調(diào)理電路后,將信號通過待測系統(tǒng),對振動傳感器的輸出信號進(jìn)行電平調(diào)整和濾波,然后通過ARM上集成的A/D轉(zhuǎn)換器對信號采樣以將模擬量轉(zhuǎn)換為數(shù)字量,對離散信號進(jìn)行Goertzel算法運算處理,最后將運算結(jié)果通過RS-232通訊模塊傳送給上位機。ARM選用STM32F103ZET6芯片,該芯片使用高性能的32位Cortex-M3系列的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置512K字節(jié)的閃存和64 K字節(jié)的SRAM。器件包含4個通用16位定時器和2個PWM定時器,3個12位的 ADC,2通道12位 DAC,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口(SPI,USB,USART等)。
逐點掃頻測試需要生成在測試頻率范圍內(nèi)頻率按步長逐點改變的標(biāo)準(zhǔn)正弦激勵信號。本系統(tǒng)利用ARM控制定時器1按照一定規(guī)律觸發(fā)D/A轉(zhuǎn)換器來產(chǎn)生正弦掃頻信號。
產(chǎn)生正弦掃頻信號的具體實現(xiàn)過程為:按設(shè)定點數(shù)N計算一個完整周期正弦波形各點的幅度值,并存儲于系統(tǒng)ROM中,然后按一定的時間間隔讀出,經(jīng)D/A轉(zhuǎn)換成模擬正弦信號,再經(jīng)過低通濾波器濾去D/A轉(zhuǎn)換帶來的臺階,通過改變時間間隔值可以輸出不同頻率的信號。時間間隔值是經(jīng)上位機通過串口傳送給ARM,再寫入定時器1的自動重裝載寄存器中。正弦波形各點幅值、時間間隔值的計算公式分別如式(8)、式(9)所示:
信號調(diào)理電路完成相應(yīng)信號電壓上移、下移、放大、衰減、濾波等,使得調(diào)整后的信號滿足待測系統(tǒng)執(zhí)行所需條件和A/D轉(zhuǎn)換條件,如圖2所示。
圖2 信號調(diào)理過程圖
由于DAC的通道1輸出信號為標(biāo)準(zhǔn)正弦信號加上一直流電平,電壓范圍為:0~2 V,在輸入到振動臺之前需要調(diào)整電平到-1 V~1 V。
振動傳感器的輸出電壓為-Ai~Ai,其中Ai為待測系統(tǒng)對激勵信號的增益。而ADC的輸入電壓范圍為:0~3.3 V,所以需要對信號電平上移。為了避免上移后信號電壓太小從而影響測量精度或超過ADC輸入電壓范圍值,增加可控增益放大電路以調(diào)節(jié)信號幅度。可控增益放大電路以線性增益芯片AD603為核心,由DAC的通道2輸出控制電平,增益調(diào)整范圍為-11 dB~+31 dB。圖3給出了振動傳感器輸出信號電平調(diào)整電路圖。
圖3 振動傳感器輸出信號電平調(diào)整電路圖
按照設(shè)定采樣頻率對穩(wěn)態(tài)響應(yīng)信號采樣,對采樣序列,應(yīng)用Goertzel算法即可求出待測信號的幅值。考慮到Goertzel算法實時性好的特點,ADC選擇單次轉(zhuǎn)換模式,轉(zhuǎn)換結(jié)束后允許產(chǎn)生相應(yīng)中斷,在中斷程序中對采樣結(jié)果立即進(jìn)行一次遞推運算。為了確保計算的準(zhǔn)確性,遞推運算必須在下一次中斷到來時已經(jīng)完成,因此采樣頻率的取值還需要考慮遞推運算所需時間Tm,即1/fs≥Tm。在遞推N次后,迭代一次即可求得待測信號的DFT值,再根據(jù)該值求得待測信號的幅值。
運用ARM實現(xiàn)信號采樣與數(shù)據(jù)處理流程如圖4所示。
圖4 信號采樣與數(shù)據(jù)處理流程圖
測試系統(tǒng)的上位機軟件是在NI公司的虛擬儀器軟件開發(fā)平臺Labview上開發(fā)的。軟件設(shè)計采用了自頂向下的設(shè)計思想,上位機與下位機通過雙方發(fā)送中斷完成交互和握手,通信內(nèi)容包括上位機的控制指令與ARM運算處理后的測試結(jié)果。
上位機程序主要包括控制指令設(shè)置、顯示和存儲三個模塊。控制指令設(shè)置模塊主要完成串口參數(shù)配置和幅頻特性的測試模式設(shè)置,其中測試模式包括單頻模式、掃頻模式。顯示模塊負(fù)責(zé)將ARM處理單元傳輸?shù)臄?shù)據(jù)包顯示在指定區(qū)域及繪制成幅頻特性曲線圖。存儲部分主要是存儲掃頻信號測試的所有頻率點的幅頻響應(yīng)值于指定路徑的excel表格中。上位機軟件界面運行效果如圖5所示。
圖5 上位機軟件界面圖
下位機程序是在Keil uVision4的環(huán)境下編譯并調(diào)試通過的,采用C語言編程,為了提高運行效率,關(guān)鍵代碼用匯編語言編寫。下位機程序主要是根據(jù)接收到的上位機控制指令來執(zhí)行相應(yīng)的操作,并把測試結(jié)果傳送給上位機。系統(tǒng)主程序流程如圖6所示。
圖6 下位機軟件主程序流程圖
測試開始,初始化各功能模塊,等待接收上位機控制指令。當(dāng)接收到控制指令后,通過串口中斷程序解碼指令,然后執(zhí)行相應(yīng)的操作,其中具體操作有:
(1)單頻信號的測試:其中信號頻率在上位機界面上設(shè)置,通過解碼得到對應(yīng)的定時器1自動重裝載值,使能定時器1和DAC通道1,就可以產(chǎn)生該頻率信號的正弦信號。當(dāng)該信號通過待測系統(tǒng)后,需要考慮輸出信號進(jìn)入穩(wěn)態(tài)所需時間,因此設(shè)置一段延時等待時間。待輸出信號穩(wěn)定后,再使能ADC對信號采樣。由于待測系統(tǒng)的輸出信號電壓可能超過ADC工作電壓范圍,設(shè)置ADC模擬看門狗的高閾值和低閾值并使能中斷,通過其中斷程序調(diào)節(jié)信號電壓放大倍數(shù)。當(dāng)調(diào)節(jié)后的信號電壓在ADC工作電壓范圍內(nèi)時,對采樣數(shù)據(jù)進(jìn)行相應(yīng)的運算處理即可得到所求結(jié)果,最后把結(jié)果通過RS-232接口傳送給上位機;
(2)掃頻信號測試:首先DAC輸出初始頻率的信號,通過ADC采樣及數(shù)據(jù)處理,得到該頻率的幅頻響應(yīng)值,然后按步長改變輸出信號的頻率,重復(fù)采樣和運算過程,即可得到掃頻范圍內(nèi)所有頻率點的幅頻特性值,最后將結(jié)果傳輸給上位機。
采用如圖7所示二階低通濾波器模擬某型號加速度傳感器,取R1=R2=10 kΩ,C1=C2=0.1 μF,運算放大器選用LM324,測試得到的幅頻特性曲線與理論曲線如圖8所示。將R1、R2與C1、C2互換即可得到二階高通濾波器,測試得到的幅頻特性曲線與理論曲線如圖9所示。
圖7 二階低通濾波電路
圖8 二階低通濾波器幅頻特性的實測曲線和理論曲線
圖9 二階高通濾波器幅頻特性的實測曲線和理論曲線
從圖8和圖9可得,實測曲線和理論曲線達(dá)到了很好的一致,從而證實了此測試系統(tǒng)軟、硬件設(shè)計的正確性和有效性。
本文設(shè)計了一種基于ARM的振動傳感器幅頻特性測試系統(tǒng),通過ARM上集成的數(shù)字模擬轉(zhuǎn)換電路(D/A)產(chǎn)生正弦激勵信號,模擬數(shù)字轉(zhuǎn)換電路(A/D)對振動傳感器輸出信號進(jìn)行采樣。針對振動傳感器的輸出信號頻率已知的特點,提出一種采用Goertzel算法來提取信號幅度比的方法。隨著輸出信號頻率的改變,確定其對應(yīng)的采樣頻率以達(dá)到對信號的正周期采樣,從而避免頻率泄露對計算精度的影響以及提高了運算效率。實驗結(jié)果表明,該系統(tǒng)測量精度高、穩(wěn)定性好、實時性強,適合于工程應(yīng)用。
[1]徐麗燕.正弦信號測試儀的設(shè)計[J].計算機測量與控制,2009,17(12):2564-2567.
[2]王慶豐,范文玲.基于互相關(guān)原理的伺服閥頻率特性測試系統(tǒng)研究[J].中國機械工程,2008,19(13):1543-1546.
[3]Uzun I S,Amira A,Bouridane A.FPGA Implementations of Fast Fourier Transforms for Real-Time Signal and Image Processing[J].IEE Proceedings Vision,Image & Signal Processing,2005,152(3):283-296.
[4]Frigo M,Johnson S G.The Design and Implementations of FFTW3[J].Proceedings of the IEEE,2005,93(2):216-231.
[5]韓建定,嚴(yán)冬超,韓亞紅.FFT及相關(guān)函數(shù)在電氣參數(shù)測量中應(yīng)用[J].空軍工程大學(xué)學(xué)報:自然科學(xué)版,2002,3(4):51-52.
[6]薛媛元,蔣東方,蔣晶.低頻頻率特性測試儀虛擬儀器設(shè)計[J].測控技術(shù),2009,28(3):31-34.
[7]楊俊,武奇生,孫宏琦.基于相關(guān)法的相位差檢測方法在科氏質(zhì)量流量計中的應(yīng)用研究[J].傳感技術(shù)學(xué)報,2007,20(1):138-145.
[8]李尚,柏鐘睿.Goertzel算法在實時電力參數(shù)測量中的應(yīng)用[J].四川大學(xué)學(xué)報:自然科學(xué)版,2008,45(5):1125-1128.
[9]Goertzel G.An Algorithm for the Evaluation of Finite Trigonometric Series[J].American Math,1958,65(1):34-35.
[10]Kuo S M,Lee B H,Tian Wen-shun.Real-Time Digital Signal Processing,Implementations and Applications[M].England:Wiley,2006:23-426.
[11]Chen T,Cao X.A New DTMF Detection Scheme Based on NDFT Goertzel Filter[J].Journal of Southwest University:Natural Science Edition,2008,30(1):152-155.
[12]王衛(wèi)兵,朱秋萍,徐心毅.Goertzel算法的一種改進(jìn)計算結(jié)構(gòu)[J].武漢大學(xué)學(xué)報:理學(xué)版,2007,53(3):375-378.