何華光, 謝忠杰, 譚柳丹, 謝開仲
(1.廣西大學 計算機與電子信息學院,廣西 南寧530004; 2.廣西大學 土木建筑工程學院 廣西 南寧530004)
基于M-Rife算法的振弦式傳感器精確測頻系統(tǒng)設計*
何華光1, 謝忠杰1, 譚柳丹1, 謝開仲2
(1.廣西大學 計算機與電子信息學院,廣西 南寧530004; 2.廣西大學 土木建筑工程學院 廣西 南寧530004)
針對振弦式傳感器測頻系統(tǒng)易受噪聲干擾,導致測頻精度下降的問題,介紹了一種基于M-Rife算法的高精度頻率測量方法。結合ARM處理器的硬件結構特點和編程方式,將M-Rife算法移植到ARM處理器上,實現了完整的振弦式傳感器精確測頻系統(tǒng)。實驗結果證明:系統(tǒng)頻率測量的相對誤差小于0.025 %,具有較強的抗干擾能力。
振弦式傳感器;M-Rife算法; ARM
振弦式傳感器結構簡單、精度高、穩(wěn)定性好,被廣泛應用于橋梁、大壩與路基等大型工程建筑上[1]。目前基于振弦式傳感器的測頻系統(tǒng)大多是在信號的時間域內完成的,即先對信號進行放大、濾波、整形得到脈沖信號后接入微處理器進行頻率測量,常見的測頻方法有直接測頻法、測周期法和等精度測頻法。這些時域測頻方法應用在振弦式傳感器上,普遍存在激振電壓過高,傳感器輸出信號易受噪聲干擾等問題。為解決上述缺陷,利用快速傅里葉變換(FFT)估計正弦信號頻率的方法受到了廣泛的關注[2]。由于FFT的“柵欄效應”引起頻譜泄露,導致信號頻率不是FFT頻率分辨率整數倍時會產生較大的誤差。目前提高頻率估計精度的方法主要有:基于幅度比值的頻率插值方法和利用相位信息的頻率估計方法[3]。M-Rife算法是典型的基于幅度比值的頻率插值方法,該算法計算公式簡單,運算量小,適合在微處理器上實現。
本文采用數字信號處理的方法,將高精度測頻M-Rife算法移植到ARM處理器上,完成對信號的頻率域處理,實現振弦式傳感器頻率的精確測量。
帶加性高斯白噪聲的信號可表示為
x(n)=Aej(2πf0nΔt+θ0)+z(n),n=0,1,…,N-1,
(1)
式中A,θ0分別為正弦信號的幅度和初相;fo為待測信號頻率;Δt為采樣間隔;N為采樣點數;z(n)為高斯白噪聲。Rife算法對頻率進行估計得公式如下[4]
(2)
式中fs為采樣頻率;|X(k0)|為x(n)最大譜線的幅度,記為Al;k0為最大譜線離散頻率索引值;|X(k0+r)|為緊鄰k0左側和右側的次大譜線幅度,記為A2;若|X(k0+1)|≥|X(k0-1)|,r=1;反之,r=-1。此時有
(3)
式中δ為信號頻率與最大譜線對應頻率的相對偏差。當信號頻率靠近兩相鄰量化頻率的中點時,Rife算法有較高的估計精度;反之,當信號頻率靠近量化頻率點時,則會產生較大的誤差。
M-Rife算法是在Rife算法的基礎上進行修正而來,利用了Rife算法當信號頻率位于FFT兩相鄰量化頻率中點附近時,式(2)精度較高的特點。其基本思想是:先使用Rife算法計算信號頻率f,如果f位于兩相鄰量化頻率的中心區(qū)域,則將該頻率值作為最終輸出的結果;反之,如果f靠近量化頻率點時,則對原始信號頻譜進行頻移,使得f位于兩相鄰量化頻率的中心區(qū)域,再利用Rife算法估算信號的頻率,這樣可以獲得較高的估算精度。文獻[2]給出了Rife算法的頻率估計誤差方差公式
(4)
式中 erfc( )為補誤差函數,SNR為信噪比。根據上述公式,圖1為N=1024,fs=1 024 Hz,SNR=6 dB,M-Rife算法與Rife算法在δ變化時的頻率估計誤差曲線。

圖1 M-Rife算法與Rife算法的比較
由圖1可見,δ<0.3時,M-Rife算法的均方根誤差要優(yōu)于Rife算法。當δ∈[0.3,0.5],即信號頻率位于兩相鄰量化頻率的中心區(qū)域時,M-Rife算法和Rife算法的均方根誤差幾乎重合。因此,要實現M-Rife算法關鍵是對原始信號的頻譜進行平移。根據FFT性質,頻譜平移公式如下
(5)
只要對x(n)式中原始序列的每一項都乘以一個對應的指數項,得到一個新的序列x1(n),那么,x1(n)對應的頻譜就是x(n)的頻譜平移δ1個量化單位。其中,δ1可以由δ1=0.5-δ動態(tài)的計算,以便獲得最佳精度。但是為了減少計算量,可以固定的取δ1=0.3。這樣式(5)中的指數項可以事先計算好,存放在微處理器的Flash存儲器中。程序可通過查表的方式快速的計算式(5)的結果。綜上所述,M-Rife算法的實現步驟歸納如下:
1)對待測信號x(n)做FFT。
2)計算δ,若δ∈[0.3,0.5],直接用Rife算法對頻率進行計算,該結果作為最終結果。
3)若δ∈(0,0.3),利用式(5)對信號進行平移。若r=-1,則x(n)向右平移δ1個量化單位;若r=-1,則x(n)向左平移δ1個量化單位。再次進行FFT。
4)重新計算信號頻率,并將其減去0.3倍量化頻率作為最終輸出結果。
系統(tǒng)的硬件設計如圖2所示。

圖2 硬件系統(tǒng)結構圖
系統(tǒng)硬件主要由微處理器單元(MCU)、放大電路、濾波電路和激振電路等構成。MCU使用ARM處理器STM32F103ZET6,該處理器具有64kB的SRAM和512kB的flash存儲器,是一種32位字長, 72MHz主頻的優(yōu)秀處理器[5]。MCU通過激振電路對傳感器進行激振,使得傳感器輸出一個微弱的正弦波信號。該信號經過放大電路,濾波電路調理后由MCU內部自帶的12位A/D轉換器進行采樣。數據經過處理后在液晶屏上顯示最終結果。由式(4)可知信號的信噪比是影響算法估計精度的重要參數之一,信噪比越高,估計誤差越小。因此,放大電路單元采用高精度、低噪聲儀表放大器AD8523,該放大電路設計的電壓增益為60dB。濾波電路采用TI公司的OPA365低噪聲運算放大器,構成了8階高通濾波器和8階低通濾波器的串聯,有效抑制帶外噪聲的影響,提高信號的信噪比。
程序流程如圖3所示。

圖3 軟件流程圖
從式(2)可知,要提高頻率估計的精度,主要考慮兩個參數:一是增加采樣點數N;二是降低采樣頻率fs,即增大采樣周期。較大的N值會加大MCU的計算量,延長計算時間。考慮到MCU的處理能力,選擇N=1024;另外,振弦式傳感器輸出信號一般為400Hz~6kHz之間,根據采樣定理,系統(tǒng)采樣頻率至少為信號最高頻率的2倍。考慮工程應用實際情況,并結合ARM處理器STM32F103ZET6的硬件結構,程序最終設定采樣周期為28μs。此時相鄰兩量化頻率間隔約為35.7Hz。MCU對傳感器采用二次激振的方法:先用400ms的24V單位脈沖激勵傳感器,系統(tǒng)測得一個初步的頻率值f1,然后MCU再用頻率為f1的PWM脈沖波對傳感器進行第二次激振。由于f1比較接近傳感器的固有頻率,鋼弦產生共振,使得傳感器輸出信號的幅度最大,有利于提高測量的精度。程序對A/D采樣的1024個采樣點進行FFT,充分利用STM32處理器內部14個寄存器,采用基4蝶形運算實現FFT,相比基2蝶形運算,基4蝶形運算具有更快的處理速度。為了提高系統(tǒng)的抗干擾能力,軟件在計算量化頻率點對應譜線的幅度,尋找最大譜線時,可以先將小于400Hz和大于6kHz的量化頻率點排除在外。這樣,既可以減少運算量,也可避免這些頻率點具有幅度較大的譜線時對傳感器頻率的估算產生影響。
為了衡量系統(tǒng)性能,將本系統(tǒng)和文獻[6]的測頻系統(tǒng)進行比較測試,實驗結果如表1所示。
從表1的實驗數據可以看出:本系統(tǒng)能夠實現微弱信號的頻率測量,測頻精度具有一定的優(yōu)勢。

表1 實驗數據
為了測試系統(tǒng)的抗干擾性能,將兩系統(tǒng)分別接上振弦式傳感器,同時將傳感器的金屬弦靠近220 V市電電纜,以便給系統(tǒng)增加50 Hz的工頻干擾信號。實驗結果如圖4。

圖4 抗干擾能力測試
從圖4可以看出:在較強工頻干擾下,本系統(tǒng)依然能保持較高的測頻穩(wěn)定性,基本不受50 Hz的工頻信號的影響。
本系統(tǒng)采用數字信號處理的方法,將高精度測頻M-Rife算法移植到ARM處理器上,實現了振弦式傳感器頻率的精確測量。實驗結果表明:本系統(tǒng)能夠在振弦式傳感器有效輸出頻率范圍內實現絕對誤差不超過0.3 Hz的精確測頻,系統(tǒng)相對誤差小于0.025 %。系統(tǒng)具有較高的抗干擾性,可以滿足工程上對振弦式傳感器頻率測量的要求。
[1] 白澤生.基于振弦式傳感器測頻系統(tǒng)的設計[J].測控技術,2007,252(13):135-137.
[2] 黃 鶴,彭 曉.基于離散傅里葉變換的頻率測量方法與應用[J].湖南工程學院學報,2012,22(3):1-4.
[3] 齊國清.幾種基于FFT的頻率估計方法精度分析[J].振動工程學報,2006,19(1):86-91.
[4] Rife D C,Vincent G A.Use of the discrete Fourier transform in the measurement of frequencies and levels of tones[J].Bell Syst Tech J,1970,49:197-228.
[5] Joseph Yiu.ARM Cortex-M3權威指南[M].宋 巖,譯.北京:北京航空航天大學出版社,2009.
[6] 莫 琳,何華光.多路振弦式傳感器橋梁檢測系統(tǒng)設計[J].傳感器與微系統(tǒng),2014,33(4):68-71.
Design of precise frequency measurement system of
vibrating wire sensor based on M-Rife algorithm*HE Hua-guang1, XIE Zhong-jie1, TAN Liu-dan1, XIE Kai-zhong2
(1.College of Computer and Electronic Information,Guangxi University,Nanning 530004,China; 2.College of Civil and Architecture Engineering,Guangxi University,Nanning 530004,China)
Aiming at problem that frequency measurement system of vibrating wire sensor is easily affected by noise,resulting in decreased precision of frequency measurement,introduce a high precision frequency measurement method based on M-Rife algorithm.Combined with the hardware structural characteristics and programming mode of ARM processor,the M-Rife algorithm is transplanted to ARM processor,and high precision frequency measurement system of vibrating wire sensor is realized.Experimental results show that the relative error of frequency measurement of system is less than 0.025 %,and the system has strong anti-interference ability.
vibrating wire sensor; M-Rife algorithm; ARM
2015—01—15
國家自然科學基金資助項目(51368005)
10.13873/J.1000—9787(2015)04—0069—03
TU 375.1
A
1000—9787(2015)04—0069—03
何華光(1979-),男,廣西貴港人,工程師,研究方向為嵌入式技術與信號處理。