當(dāng)前位置:歐亞貿(mào)易網(wǎng) > 技術(shù)中心 > 所有分類
摘 要:采用比ⅡR型計(jì)算更為簡單的自適應(yīng)格型陷波濾波器對科里奧利質(zhì)量流量計(jì)的流量傳感器的輸出信號進(jìn)行濾波并求得其頻率;并應(yīng)用自適應(yīng)譜線增強(qiáng)器從含有噪聲的信號中提取出流量管振動(dòng)的基頻信號;然后采用滑動(dòng)Goertzel算法計(jì)算兩路信號之間的實(shí)時(shí)相位差,再根據(jù)頻率和相位差計(jì)算出時(shí)間差最終求得質(zhì)量流量。
關(guān)鍵字:計(jì)量學(xué) 科里奧利質(zhì)量流量計(jì) 自適應(yīng)格型陷波器 自適應(yīng)譜線增強(qiáng) 滑動(dòng)Goertzel算法
1 引言
科里奧利質(zhì)量流量計(jì)(以下簡稱為質(zhì)量流量計(jì))可以直接測量質(zhì)量流量,并可同時(shí)獲取流體密度值,應(yīng)用廣泛,有很好的發(fā)展前景。但是,目前的國內(nèi)外產(chǎn)品采用基于模擬和數(shù)字電路的信號處理方法存在很多局限。例如,對噪聲比較敏感、模擬濾波器會(huì)改變信號的幅值和相位、測量的是合成波的相位差等,使其在現(xiàn)場的測量精度低于實(shí)驗(yàn)室標(biāo)定的精度[1]。為了解決上述問題,也為提升流量測量儀表的性能,國內(nèi)外研究機(jī)構(gòu)和公司將數(shù)字信號處理方法和數(shù)字信號處理器(DSP)應(yīng)用于HKC質(zhì)量流量計(jì)的信號處理。文獻(xiàn)[2]采用基于DFT(離散傅里葉變換)的方法計(jì)算科氏質(zhì)量流量傳感器的頻率和相位差,提出了粗測、細(xì)測和頻率跟蹤的思路。文獻(xiàn)[3,4]采用DFT和基于DSP的信號處理系統(tǒng),并在細(xì)測和頻率跟蹤方面做了改進(jìn)。文獻(xiàn)[5,6]研究了基于信號幅值的計(jì)算相位差的方法來處理科氏質(zhì)量流量傳感器的信號,并進(jìn)行補(bǔ)償。這些方法均存在一些不足之處。文獻(xiàn)[7,8]提出了基于陷波濾波器的信號處理方法,首先采用兩級多抽一濾波器,對HKC質(zhì)量流量計(jì)中的兩個(gè)磁電式傳感器的輸出信號進(jìn)行濾波,以減少隨機(jī)噪聲的影響;再采用自適應(yīng)陷波濾波方法,抑制確定性噪聲的干擾,提取流量管振動(dòng)基頻的信號并測得其頻率。然后,采用加漢寧窗的DFT或常規(guī)Goertzel算法進(jìn)行譜分析,得到振動(dòng)管基頻處的相位差和時(shí)間差,從而測得質(zhì)量流量。但是,這種方法存在一些問題,如兩級多抽一濾波器的計(jì)算量比較大,所采用的直接型ⅡR自適應(yīng)陷波器計(jì)算復(fù)雜且對初始值的選取較為敏感,譜分析方法不能做到實(shí)時(shí)輸出相位差,只能每64個(gè)點(diǎn)(即一個(gè)漢寧窗的寬度)計(jì)算一次時(shí)間差。
本文研究了一種新的信號處理方法,該方法中沒有使用多抽一濾波器,從而節(jié)約了計(jì)算時(shí)間,并采用一種計(jì)算更為簡單的自適應(yīng)格型陷波器[9,10]來對信號進(jìn)行陷波濾波。最后采用滑動(dòng)Goertzel算法[12]進(jìn)行實(shí)時(shí)譜分析,從而可以在每個(gè)采樣點(diǎn)都能測得兩路信號之間的相位差及時(shí)間差,實(shí)現(xiàn)在線計(jì)算。
2 自適應(yīng)格型陷波器
圖1所示的為一種級聯(lián)的全極點(diǎn)和全零點(diǎn)格型陷波器,其傳遞函數(shù)為
(1)
k0在經(jīng)過一段時(shí)間自適應(yīng)后應(yīng)該收斂到-cosω,ω是信號y(n)的歸一化頻率。α可決定著陷波的帶寬。
自適應(yīng)算法如下[10]:
其中是k0(n)的估計(jì)值,是經(jīng)過平滑處理后的值,γ=0.5。y(n)-x(n)即為去除噪聲后的增強(qiáng)信號。
在將計(jì)算出的頻率用于相位差的計(jì)算之前我們先采用下面的方法對其進(jìn)行平滑處理,以減少陷波器計(jì)算相位差時(shí)所引入的隨機(jī)誤差。
3 相位差及時(shí)間差的計(jì)算
常規(guī)Goertzel算法的傳遞函數(shù)如下:
其頻率為等間隔分布,當(dāng)信號的頻率恰好對應(yīng)于某個(gè)k值時(shí),可以獲得精確的結(jié)果。而當(dāng)信號頻率落在頻率間隔內(nèi)時(shí),就會(huì)由于泄漏問題而產(chǎn)生較大誤差。泄漏問題對于計(jì)算相位的影響要遠(yuǎn)遠(yuǎn)大于對計(jì)算功率譜的影響[7]。
滑動(dòng)Goertzel算法[12]克服了常規(guī)Goertzel算法的這一缺點(diǎn),它用實(shí)際的信號頻率替換傳遞函數(shù)中的2πk/N,因此在信號頻率不變的情況下,經(jīng)過一定時(shí)間的收斂,可以精確地計(jì)算出信號的傅里葉系數(shù),并且可以在每個(gè)采樣點(diǎn)計(jì)算一次傅里葉系數(shù)。滑動(dòng)Goertzel算法如圖2所示。
設(shè)固定頻率信號Y(n)的傅里葉展開為y(n)=asinnω+bcosnω,其z變換為
V(z-1)是中間變量v(n)的z變換,對其進(jìn)行z反變換[12],得
從式(15)~(18)可以看出在n值較大時(shí)Δ1和Δ2可以忽略。經(jīng)計(jì)算得到
則信號的相位為φ(n)=arctan[b(n)/a(n)] (21)
相位差的計(jì)算公式為
其中和為兩路信號的相位估計(jì)值。
由于滑動(dòng)Goertzel算法的相位差計(jì)算結(jié)果是振蕩收斂,所以,對于每一點(diǎn)的計(jì)算結(jié)果也采用了與頻率計(jì)算相同的平滑處理方法。時(shí)間差的計(jì)算公式為
其中為信號頻率的估計(jì)值,fs為采樣頻率。
4 仿真結(jié)果
仿真實(shí)踐中,使用的信號幅值為10V,隨機(jī)噪聲的幅值為1.0547V,服從正態(tài)分布且去均值,采樣點(diǎn)數(shù)為20000。仿真結(jié)果如表1所示,表中的數(shù)據(jù)為第6001~20000點(diǎn)Δt的計(jì)算相對誤差的均值,單位為% 。
表1 不同頻率和相位差下的計(jì)算誤差
相位差 | 頻率/Hz | ||
97.0 | 100.0 | 103.0 | |
0.0001 | 0.017357 | 0.034520 | 0.031693 |
0.0010 | 0.017356 | 0.034521 | 0.013702 |
0.0030 | 0.017356 | 0.034521 | 0.013701 |
0.0050 | 0.017356 | 0.034521 | 0.013701 |
0.0100 | 0.017357 | 0.034520 | 0.013701 |
0.0500 | 0.017362 | 0.034516 | 0.013701 |
0.1000 | 0.017368 | 0.034511 | 0.013702 |
0.5000 | 0.017418 | 0.034472 | 0.013706 |
1.0000 | 0.017479 | 0.034423 | 0.013711 |
1.5000 | 0.017540 | 0.034373 | 0.013717 |
2.0000 | 0.017601 | 0.034323 | 0.013724 |
4.0000 | 0.017845 | 0.034122 | 0.013760 |
圖3給出了頻率為103Hz、相位差為0.1時(shí)相位差和時(shí)間差的相對計(jì)算誤差變化趨勢。
值得注意的是將本文所研究的方法應(yīng)用于實(shí)際的系統(tǒng)時(shí)要注意到DSP有限精度的影響。從式(15)和式(16)中可以看出隨著采樣點(diǎn)n的增大而增大。當(dāng)v增大到一定程度時(shí)會(huì)超出DSP所能表示的數(shù)的范圍,造成溢出,這一點(diǎn)在16位定點(diǎn)DSP上尤其明顯。對于這種情況的解決辦法是一旦檢測到v溢出,就將滑動(dòng)Goertzel算法的所有變量清零,重新開始計(jì)算。這種方法相當(dāng)于用一個(gè)矩形窗對數(shù)據(jù)進(jìn)行截取,而這個(gè)窗的寬度是不固定的,取決于DSP的位數(shù),所以,本文方法比較適合于以32位浮點(diǎn)DSP為處理核心的系統(tǒng)。
5 結(jié)束語
格型陷波器比原先的直接型ⅡR陷波器計(jì)算更為簡單并且初始值易于選擇。滑動(dòng)Goertzel算法實(shí)現(xiàn)了實(shí)時(shí)譜分析和兩信號之間相位差的計(jì)算。仿真結(jié)果表明,本文的方法計(jì)算精度較高,取得了令人滿意的效果。