1 系統結構和工作原理
系統的硬件組成結構如圖1所示,其是由FPGA,DSP,MCU、切換電路、A/D轉換、自動增益控制、外部RAM和LCD顯示等幾部分構成的。DSP為數字處理核心,用于FIR濾波、相關運算等大量數據處理,整個系統的時序由FPGA控制,確保了時序的準確性。
超聲波換能器A,B在FPGA的控制下,輪流工作在發射和接收狀態.用以測量順流、逆流時超聲波傳播的時間差,其諧振頻率為1 MHz。接收信號經過選頻放大濾除了部分干擾信號,再由自動增益控制AGC放大后送往A/D轉換器,以每次25 ns的轉換速度實現A/D轉換,并存儲到外部RAM中,整個過程都在FPGA的控制下進行,確保了時序的準確性。為了進一步提高運行的速度,DSP首先將外部RAM中的數據轉存到內部RAM中,再進行55階FIR濾波,經過FIR濾波后的信號,其采樣速率較低,測量精度不夠高,為了提高精度,這里進行了插值運算,插值后的兩組信號再經過相關運算處理,便得出流體順流和逆流的時間差,從而求出流體的流速。
2 滑動窗口接收技術
滑動窗口是在接收信號到達的前后才有效的一個時間窗口,窗口之外的信號一概不予處理,這樣可以減小噪聲的干擾并降低運算量。為保證檢測信號的有效性,必須先去掉接收端的干擾,采用窗口和脈寬檢測是兩個行之有效的方法。測量窗口的初始位置是根據人機對話輸入的參數設置的,并通過有效信號的檢測位置不斷調整窗口到合適的位置。窗口的設置限定了信號的接收范圍,在一定程度上消除了噪聲的干擾,同時也減少了要處理的信號樣本數,降低了運算量。
滑動窗口的設置方法為:單片機根據人機對話輸入的參數(管徑、壁厚及流體),計算出信號自發射探頭到接收探頭所需傳播時間的近似值,根據該近似值控制數據采樣的開始時間,每組數據采集15000個點,由于采集的數據足夠多,完全可以保證有用數據能夠被采集到。經過AGC電路的調整,當采集到的信號幅度滿足要求時便對它們分別進行FIR濾波,再根據幅值找出有用信號的最大值點并進行信號有效性判斷,信號確定為有效后再進行滑動窗口調整,將有用信號移動到有效窗口。由于換能器探頭的諧振頻率為1 MHz,采樣頻率為40 MHz,探頭發射信號為5個周期,考慮到探頭的余波,為了更好地采集接收信號,窗口寬度設定為800個信號點,即20個信號周期。圖2所示為窗口調整前部分內存中的數據,從上面可以看到兩組信號,前者幅度小,是超聲波沿管壁直接傳遞而形成的,其傳播速度快,傳播時間短,后者是超聲波沿正常路徑傳輸的結果,幅度較大,也是需要的有用數據。圖3是窗口調整后內存中的數據,可以看到,有效數據已被移動到最左側的有效窗口中,后面的插值及相關運算都是只對該段數據進行。
3 插值及相關算法的簡化
在超聲波發生電路中,由同一觸發脈沖觸發2個相同的換能器產生超聲波,測量中2路采集信號具有很大的相似性,因此能對信號進行相關處理。在超聲波流量計中,對時間測量精度的要求很高,為了提高分辨率,可以采取一般的采樣方法,然后通過數字信號處理中常用的插值算法,由軟件提高系統的采樣頻率,從而提高時間的分辨率。
換能器的諧振頻率為1 MHz,采樣頻率為40 MHz,采樣的時間分辨率為25 ns,對于超聲波流量計,這樣的分辨率是不夠的,還必須提高信號的采樣頻率,即進行插值處理。如果采取先補“O”再濾波的方法,必須增加濾波器的階數,同時由于插值后樣本增加,濾波運算所需要的時間會大大增加。因此該系統采用線性插值的方法,在相鄰2個數據點之間插人19個點,這些點與插入前的相鄰點在同一直線上,這樣時間分辨率可以達到1.25 ns。該系統時間差的測量是通過比較兩組超聲波信號的皮爾遜積差相關系數的值來確定的,相關系數的計算方法如下:設xi和yi分別代表兩組信號的采樣值,i=1,2,…,n。n為采樣數量,設x,y分別為兩組采樣信號的平均值有,
r稱為相關系數,其公式為:
相關系數r的重要特征為:0<| r |<1,r為正值即正相關,r為負值即負相關。系統通過不斷改變兩組采樣信號的相位關系,同時計算出相關系數,當相關系數最大時兩組采樣信號之間的相位差即為兩組信號的時間差值。
因有效窗口兩端數據的變化很小(如圖3所示),在小范圍內改變兩組數據的相位關系后,可以認為相關系數公式中的分母項的值是不變的,其不隨兩組采樣信號的移相變化而變化。因此,在判斷相關系數最大值時,只需計算相關系數公式中的分子式項n∑xiyi。一(∑xi)(∑yi)的值,然后判斷它的最大值即可,這樣可以大大地減少系統的運算量,提高系統的反應的速度。
4 相關算法及其簡化算法的仿真與比較
為了檢驗相關算法簡化后對結果帶來的影響,把采集到窗口中的兩組數據經濾波與插值后,通過Matlab分別對完整的相關算法及簡化算法進行仿真分析,仿真波形如圖4所示。
其中上部為簡化算法的仿真結果,下部為完整相關算法的仿真結果。圖5為一部分仿真數據。從圖中可以看出,完整相關算法的相關系數據介于+1~-1之間,最大值(接近于1)出現在5001的位置。相比之下,簡化算法的值大若干數量級,這是簡化算法略去分母的結果,但這對計算沒有影響,只要得到最大值出現的時間,重要的是簡化算法的最大值也出現在5001的位置,并且其波形與完整的相關算法幾乎一樣。由此可見,相關算法的簡化并沒有對這里的計算帶來誤差。
為進一步證實系統的可用性,將該系統與寶麗聲DCT7088超聲波流量計進行了對比測量,被測管道為外徑為45 mm的鋼管,壁厚3.5 mm,管道中的水由循環泵驅動,通過變頻器控制循環泵的轉速來得到不同的流速,測量結果如圖6所示,二者測量結果已經十分逼近。
5 結 語
這里以FPGA,DSP和MCU作為核心器件設計了一種時差式超聲波流量計,結合自動延遲窗口技術,大大簡化了用于計算時間差的相關算法,提高了系統的性能。通過對系統實驗測試及計算機仿真,表明該系統方案切實可行。