一種新的死時間損失的補償方法及其實現
摘要:用計數的方法解決脈沖幅度分析器系統(tǒng)的丟峰問題,然后根據丟失脈沖的個數進行補償,是解決幅度分析系統(tǒng)中死時間問題的有效方法。本文詳細介紹了這種死時間損失補償的方法原理及其在實際中的應用。
關鍵詞:脈沖幅度分析系統(tǒng) 死時間
前言
脈沖幅度分析系統(tǒng)是核輻射探測儀器的一個重要組成部分,它根據模-數轉換原理,把前置電路(傳感器+前放+主放)輸出的模擬信號轉換成與其峰值成比例的數字信息。實現信號轉換的主要器件是模數轉換器。模數轉換器在信號轉換和存儲器存儲過程中,前置電路隨后輸出的信號將被丟失。通常,將能區(qū)分兩個脈沖之間的最小時間間隔稱為計數系統(tǒng)的死時間,對于脈沖幅度分析系統(tǒng)而言,死時間主要取決于模數轉換器的轉換時間和存儲器的存儲時間之和。一種做法是累計每個計數的死時間,然后通過延長測量時間來補償因死時間而造成的計數損失。這種死時間損失補償方法會因死時間的累計不準等原因造成很大誤差,同時,當計數率不大,模數轉換器轉換速度足夠快時,計數基本不丟失的情況下,死時間仍然存在,此時的死時間損失補償顯然是不合理的。為此,我們采用了一種新的死時間損失補償方法,可以有效地克服以上弊端。
方法原理
常用的計數系統(tǒng)死時間特性模型有兩種:擴展型響應和非擴展型響應。這些模型體現了理想化的死時間特性,實際計數系統(tǒng)的響應往往很類似于這兩者中的一種模型。假定在計數系統(tǒng)“活時間”內發(fā)生的每個真事件跟隨一個固定的死時間τ,在死時間內的真事件雖然不被計數,但跟隨丟失事件再擴展了另一個周期為τ的死時間,稱為擴展型響應死時間。假定在計數系統(tǒng)“活時間”內發(fā)生的每個真事件跟隨一個固定的死時間τ,在這個死時間內發(fā)生的真事件將會丟失且對計數系統(tǒng)特性無任何影響,稱為非擴展型響應死時間。
脈沖幅度分析系統(tǒng)的死時間是非擴展型死時間,因為一個脈沖引起計數后的分辨時間內又有脈沖進入系統(tǒng)不會引起計數,但也不會進一步引起死時間的增加。死時間的修正公式為:
N0=N/(1-Nτ)
其中,N0為單位時間內進入系統(tǒng)的脈沖總數;N為記錄到的計數率;τ為系統(tǒng)死時間;Nτ的物理意義是單位時間內死時間之和。事實上,脈沖幅度分析系統(tǒng)的死時間固然是系統(tǒng)的一個重要的技術指標,但計算死時間的最終目的是為了對死時間損失進行補償,如果采用延長測量時間的方法對死時間進行補償,在延長的測量時間內又會產生新的死時間,這顯然對死時間的修正不利。為此,我們采用了脈沖個數補償方法,即對在測量過程中累計的死時間內丟失的脈沖個數進行補償。設n0為測量時間內進入系統(tǒng)的脈沖總數;n為測量時間內記錄到的計數,新的死時間損失的補償方法就是采用對丟失的脈沖個數(即n0-n)進行補償的方法。具體做法是:用單片機的T1計時器對前置電路輸出的脈沖個數進行累計計數,得n0;同時在單片機程序中(也可采用單片機的計數器)對模數轉換器轉換的脈沖個數進行累計計數,得n;當設定的測量時間到達的瞬間,二者之差即為系統(tǒng)丟失脈沖個數(即n0-n),此時系統(tǒng)繼續(xù)工作,當模數轉換器再轉換了n0-n個脈沖后,系統(tǒng)停止工作并顯示測量時間到,從而實現死時間損失的補償。
很顯然,這種脈沖個數補償方法同樣適用于擴展型死時間的補償修正。
硬件設計
圖1為系統(tǒng)的控制電路,也可視為輸入信號的緩沖電路,用來甄別信號的上升沿,提供輸入信號的峰值信息。其中:電容C1是信號峰值的保持電容;二極管D1保證C1采集的是輸入信號峰值,防止其跟隨輸入信號的下降而變化;U1:A是信號起始判斷比較器,其反向端接入一參考電壓0.5V,正相端接輸入信號;U1:B是信號峰值幅度判斷比較器,其反向端接電容C1,正相端接輸入信號,在信號的上升沿階段,反相端的電壓總是比正相端電壓低0.3V;兩個比較器的輸出端A、B及C點波形如圖2所示。C點提供了信號上升沿信息,用于控制后續(xù)的峰值保持電路;U1:A實際上是一個閾壓判別比較器,小于0.5V的信號被認為是噪聲,C點不提供控制信息,ADC不予轉換,因此U1:A 的輸出端A可以作為信號總計數的輸入端,接到單片機的T1計時器(即P3.5腳)。
軟件設計
與死時間損失補償有關的單片機軟件的設計主要涉及以下幾個模塊:
(1)計時模塊。采用單片機的T0計時器實現系統(tǒng)測量計時,此模塊實際是計時器T0的溢出中斷服務程序。
(2)信號總計數累加模塊。采用單片機的T1計時器實現系統(tǒng)信號總計數,此模塊實際是計數器T1的溢出中斷服務程序。
(3)ADC轉換的脈沖個數累加模塊。對A/D的轉換采取中斷查詢方式,ADC的狀態(tài)口STATUS作為單片機的INT0的外部中斷源,每完成一次A/D轉換,外部中斷0服務程序便讀取ADC的轉換結果,并寫入內存,同時,ADC轉換的脈沖個數加1??梢?,ADC轉換的脈沖個數累加模塊實際上是外部中斷0服務程序的一部分。
與死時間的計算有關的軟件實現流程圖見圖3??刂婆_將測量時間Ts送入脈沖幅度分析系統(tǒng)并啟動測量,前置電路的脈沖進入分析系統(tǒng),計時器T0開始計時(假設計時時間為Tn),計數器T1開始記錄進入系統(tǒng)的總的脈沖個數(n0),ADC每轉換一個脈沖,n加1。當測量時間到達即Tn=Ts時,計數器T1停止計數,此時的n0為在設定測量時間Ts內進入分析系統(tǒng)的總的脈沖個數,如果此時的n0與ADC已轉換的脈沖個數n相等,則表示系統(tǒng)無丟峰現象,死時間為0;否則,ADC需再轉換n0-n個脈沖,以補償丟失的脈沖。
結語
成都理工學院研制的CD-10型便攜式X熒光全譜測量儀中的峰值幅度分析系統(tǒng),最初采用傳統(tǒng)意義上的死時間計算方法,由于計時參考脈沖周期(0.25μs)與ADC每次轉換的時間(8μs)處于同一個數量級等原因,使得死時間計算不準;采用新的死時間計算方法后,該峰值幅度分析系統(tǒng)能準確反映系統(tǒng)的死時間,提高了儀器的精確性。該方法同樣適用于其他信號峰值幅度分析的場合,具有較大的推廣應用價值。
評論