湯建文, 王仁波, 王海濤
(1. 東華理工大學(xué) 教育部核技術(shù)應(yīng)用工程中心, 江西 南昌 330013;2. 東華理工大學(xué) 機械與電子工程學(xué)院, 江西 南昌 330013)
核譜儀是一種典型的核輻射測量儀器, 常應(yīng)用于環(huán)境檢測、 醫(yī)學(xué)成像、 輻射防護等領(lǐng)域. 在能譜測量系統(tǒng)中, 脈沖幅度分析是非常關(guān)鍵的技術(shù), 也是獲取核信息的主要方法之一. 傳統(tǒng)的多道脈沖幅度分析器采用的是模擬電路的方式來實現(xiàn)對核信號進行濾波、 抗堆積處理、 基線恢復(fù)以及峰值采樣保持等功能, 但是由于模擬電路本身的局限性, 在抗干擾能力、 脈沖計數(shù)率、 處理速度和通用性等方面存在嚴(yán)重不足, 而且峰值采樣保持電路大大增加了系統(tǒng)的死時間, 使得脈沖通過率很低, 影響能譜分辨率. 隨著數(shù)字技術(shù)的快速發(fā)展, 采用數(shù)字處理能力的DSP,FPGA等芯片進行脈沖幅度分析逐漸凸顯優(yōu)勢. 與模擬多道相比, 數(shù)字脈沖幅度分析器不再對前端模擬輸出信號進行峰值保持, 而是直接將前放電路輸出的核脈沖信號用高分辨率ADC采樣, 利用數(shù)字處理技術(shù)完成脈沖信號的濾波成形、 堆積判棄、 基線估計、 幅度提取等操作. 依靠靈活的數(shù)字信號處理算法, 數(shù)字脈沖幅度分析器能夠提高對輸入脈沖信號的濾波能力, 在較高的脈沖通過率范圍內(nèi)保證其具有較好的能量分辨率. 梯形成形算法是數(shù)字多道幅度分析器常用的核脈沖信號處理方法, 該算法在FPGA上的實現(xiàn)已經(jīng)比較成熟. FPGA具有集成度高、 邏輯設(shè)計能力強等優(yōu)點, 同時并行處理速度快、 功耗低, 使用FPGA來完成核脈沖信號處理算法有利于減輕處理器的負(fù)擔(dān), 大大降低系統(tǒng)死時間, 從而提高系統(tǒng)的計數(shù)通過率.
圖 1 梯形脈沖示意圖Fig.1 Trapezoidal pulse diagram
梯形成形算法是數(shù)字脈沖幅度分析器中最常用的一種數(shù)字信號處理方法. 因為梯形脈沖前后沿時間相等, 脈寬窄, 而且脈沖上升沿和平頂可獨立調(diào)整, 通過調(diào)整參數(shù)來適應(yīng)不同情況的成形. 從脈沖堆積的角度, 成形參數(shù)越小越好; 從噪聲抑制幅度提取考慮, 成形參數(shù)越大越好, 而梯形成形提供了一個兼顧兩者的最佳選擇.
數(shù)字脈沖幅度分析器通過核輻射探測器(閃爍、 氣體、 半導(dǎo)體探測器)將核信號轉(zhuǎn)換成電壓信號從而形成幅度不同波形相似的隨機分布核脈沖信號, 其波形特征類似指數(shù)衰減脈沖. 梯形成形是將輸入的指數(shù)衰減信號幅值轉(zhuǎn)換為理想的梯形脈沖信號平頂幅值, 這大大提高了對脈沖信號幅值提取的準(zhǔn)確性. 已有研究證明: 當(dāng)只考慮電壓和電流噪聲, 探測器收集電荷的時間不為零時, 梯形成形濾波器是最優(yōu)濾波器, 并且非常適合用數(shù)字方法實現(xiàn). 理想的梯形脈沖圖是一個等腰梯形, 如圖 1 所示.
理想梯形函數(shù)的分段函數(shù)表示為
U0(t)=y1(t)+y2(t)+y3(t)+y4(t),
y1(t)=(A/t1)t,y2(t)=-y1(t-t1),y3(t)=-y1(t-t2),y4(t)=y1(t-t3),
(1)
式中:t1為梯形的上升沿脈沖;d為平頂?shù)膶挾?;t3為脈沖的寬度, 且t1+d=t2,2t1+d=t3t1=n1T1,t2=n2T2,t3=n3T3, 設(shè)前置放大器輸出為理想脈沖衰減指數(shù)信號, 時域表達式為
Ui(t)=A*exp-ti/τ*u(t),
(2)
式中:A為脈沖幅值;τ是前端放大器的時間常數(shù);u(t)為標(biāo)準(zhǔn)單位階躍函數(shù), 以TS為周期對輸入信號進行采樣, 可以得到脈沖序列的表達式
Ui(t)=A*exp-nTs/τ*u(t).
(3)
令q=exp-nT/tao, 對式(3)進行z變換得
Ui(z)=A*z/(z-q).
(4)
理想梯形函數(shù)的分段函數(shù)經(jīng)過單邊的z變換可表示為
(5)
從而可得梯形成形算法的傳遞函數(shù)
(6)
由式(6)z的逆變換得時域表達式
vo(n)=2vo(n-1)-vo(n-2)+{vi(n-1)-vi(n-n1-1)-vi(n-n2-1)+
vi(n-n3-1)-q*[vi(n-2)-vi(n-n1-2)-vi(n-n2-2)+vi(n-n3-2)}/n1,
(7)
式中:vi為輸入脈沖序列;v0為輸出序列. 由式(7)可知梯形濾波是一種特殊的IIR濾波器, 它存在反饋結(jié)構(gòu)2vo(n-1)-vo(n-2), 為了減少系統(tǒng)設(shè)計的復(fù)雜度, 避免量化誤差與舍入誤差的積累, 采用級聯(lián)型結(jié)構(gòu)來實現(xiàn)梯形成形.
利用Matlab7. 0軟件編程單指數(shù)衰減信號函數(shù)V(i)=A*e-(n-D)t/τ, 設(shè)ADC為50 MSPS (采樣率), 取梯形上升沿量化時間為150個點, 平頂寬d=350, 成形時間量化為650, 最大幅值10, 衰減時間常數(shù)為4, 取n=2 000,D=800, 得到輸入信號和成形后的波形如圖 2 所示. 該指數(shù)衰減脈沖是在理想狀態(tài)下的情形, 但實際上探測的信號是有許多噪聲干擾的, 如探測器和電子學(xué)的噪聲以及高速ADC實時采樣時的高頻噪聲, 這些噪聲會疊加在有用信號上, 從而降低測量精度, 甚至某些有用的微弱信號會被噪聲所淹沒從而給核信號脈沖幅度帶來漲落, 造成核信號脈沖變寬, 影響能量分辨率. 為此在理想指數(shù)衰減函數(shù)基礎(chǔ)上疊加一個高斯分布序列形成加性白噪聲noise_y=a+b*noise_y, 標(biāo)準(zhǔn)差0.1, 得到經(jīng)過梯形成形的仿真效果如圖 3, 發(fā)現(xiàn)成形的脈沖信號幅值并沒有明顯漲落, 且大大抑制了白噪聲的干擾.
圖 2 原理仿真Fig.2 The principle of the simulation
圖 3 濾波仿真Fig.3 Filter simulation
脈沖堆積是數(shù)字脈沖幅度分析器中影響系統(tǒng)能量分辨率的一個重要因素, 特別在高計數(shù)下, 堆積的影響更大, 為此對脈沖的堆積判棄顯得尤為重要. 通過指數(shù)衰減函數(shù)作輸入V(i)模擬了3個脈沖信號, 經(jīng)過式(7)梯形成形表達式輸出V(o), 發(fā)現(xiàn)當(dāng)兩個脈沖過近時(即兩個脈沖距離小于輸出梯形的上升沿和平頂寬度之和), 就會發(fā)生脈沖堆積現(xiàn)象, 如圖 4 所示, 后兩個核脈沖信號的峰值間隔D,n1,n2對應(yīng)梯形的上升沿和平頂寬度量化時間, 改變梯形表達式Vo(n)中n1,n2的值, 圖 4(a) 中, 脈沖間隔600,n1量化為150,n2為400,n1+n2=550
圖 4 脈沖堆積Fig.4 Pulse accumulation
FPGA芯片采用Actel的SmartFusion系列來實現(xiàn)梯形算法. SmartFusion是Actel的新一代內(nèi)嵌有Cortex-M3處理器和模擬采集功能的基于Flash架構(gòu)的FPGA. 內(nèi)嵌的Cortex-M3處理器運行速度高達100 MHz, 具有1. 25 DMIPS/MHz的執(zhí)行效率, 且內(nèi)置MPU和單周期的硬件乘法器和除法器. 該器件具有豐富的I/O資源和多樣的IP核, 處理速度很快且功耗極低.
本設(shè)計采用級聯(lián)型的結(jié)構(gòu)來驗證濾波器的算法實現(xiàn), 級聯(lián)型結(jié)構(gòu)的IIR濾波器實際上相當(dāng)于將級數(shù)較多的濾波器分解成多個級數(shù)少的濾波器, 每個濾波器可以看成獨立的結(jié)構(gòu), 只是前一級的輸出作為后一級濾波器的輸入. 由于數(shù)字處理有限精度的影響, 高階直接型結(jié)構(gòu)輸出受處理精度影響很大導(dǎo)致系統(tǒng)不穩(wěn)定. 采用將傳遞函數(shù)H(z)分解成多個傳遞子函數(shù)相乘變成多個低階系統(tǒng)級聯(lián)的形式, 與傳統(tǒng)的直接型結(jié)構(gòu)相比, 級聯(lián)型能更準(zhǔn)確地實現(xiàn)數(shù)字濾波器的零/極點, 且受量化參數(shù)的影響較小, 并具有運算速度快、 占用資源少、 系統(tǒng)穩(wěn)定等優(yōu)點, 因此應(yīng)用比較廣泛.
對于不同結(jié)構(gòu)的IIR濾波器分別進行仿真來驗證, 由式(7)得到的z變換將系統(tǒng)函數(shù)分解為4個子模塊
H(z)=H1(z)*H2(z)*H3(z)*H4(z),
(8)
式中:H1(z)=(1-qz-1)/(1-z-1),H2(z)=(1-z-n2),H3(z)=(1-z-n1),H4(z)=(1/n1)*(z-1)/(1-z-1).
4個子模塊的級聯(lián)存在順序問題, 為避免具有峰值增益的子系統(tǒng)發(fā)生溢出或?qū)⒘炕肼晹U大, 所以把H1置于第一級; H4為積分單元, 為了避免產(chǎn)生溢出, 將其置于最后一級; H2, H3置于中間, 因其結(jié)構(gòu)相同, 所以位置可以互換.
圖 5 梯形成形算法結(jié)構(gòu)Fig.5 Trapezoidal forming algorithm structure
圖 5 為級聯(lián)結(jié)構(gòu)的模塊圖, 根據(jù)方程可知該結(jié)構(gòu)設(shè)計就是用加法器、 乘法器和延遲單元等運算模塊的互聯(lián)結(jié)構(gòu)來描述線性常系數(shù)方程, 不同的結(jié)構(gòu)設(shè)計消耗的系統(tǒng)資源以及在性能上都是有很大的差異. 第一級是H1子模塊的結(jié)構(gòu)設(shè)計, 可由IIR濾波器實現(xiàn). 中間兩級H2, H3子模塊的結(jié)構(gòu)設(shè)計類型一樣, 只是存儲數(shù)據(jù)長度, 它的結(jié)構(gòu)就是兩個延遲單元模塊. 算法FPGA實現(xiàn)的RTL級模塊圖, 如圖 6 所示.
圖 6 FPGA設(shè)計模塊Fig.6 FPGA design module
以上的4個子模塊通過時延電路、 乘法器、 加法器模塊完成整個算法設(shè)計, 如圖 6 的RTL模塊設(shè)計, 前一級的輸出作為下一級的輸入, 在第一和最后一級運算時, 為避免浮點數(shù)操作, 將乘積系數(shù)擴大2n倍, 最后利用移位寄存器進行除法運算. 中間兩級運算是對數(shù)據(jù)的延時操作, 時延長度分別為n1,n2即跟梯形成形的上升沿和達峰值有關(guān). 該結(jié)構(gòu)大大節(jié)約了對硬件資源的利用, 改變了傳統(tǒng)上FPGA移植算法的難度, 同時降低了系統(tǒng)設(shè)計的復(fù)雜度, 避免了量化誤差與舍入誤差的積累.
采用Verilog HDL語言編程, 由Libero開發(fā)工具完成程序的編譯、 綜合、 布局布線, 利用FPGA實時性高的特點完成了梯形成形算法的運算. 編寫testbench文件大致模擬了核脈沖信號, 用modelsim仿真得到如圖 7 波形, 結(jié)果表明梯形算法能快速對核脈沖信號進行成形, 得到的成形效果基本與Matlab測試結(jié)果一致.
使用Libero 自帶的Signal Tap II(邏輯分析儀)對輸入輸出信號進行觀察, 仿真效果如圖8. 輸出結(jié)果表明: 梯形成形可以穩(wěn)定地將輸入的指數(shù)衰減信號轉(zhuǎn)換為梯形脈沖信號. 將時序仿真結(jié)果與MATLAB仿真結(jié)果比較, FPGA設(shè)計的梯形成形濾波器輸出精度比較理想.
圖 7 Modelsim仿真測試Fig.7 Modelsim simulation test
圖 8 基于FPGA的梯形成形測試Fig. Trapezoidal forming test based on FPGA
通過Matlab原理仿真以后, 利用NaI探測器對能量源進行信號采集, 經(jīng)過信號調(diào)理電路, 最后通過數(shù)字脈沖幅度分析器輸出濾波成形信號, 實際的輸出波形如圖 9 所示.
圖 9 采樣脈沖及梯形成形Fig.9 Sampling pulse and trapezoid forming
為了準(zhǔn)確提取出核信號的相關(guān)信息, 利用兩個通道來進行脈沖成形, 快通道成形時間快, 不容易產(chǎn)生堆積, 用來確定脈沖的到達時間, 慢通道脈寬用于幅值的提取. 圖9(a)是實際測量到的核脈沖信號, 類似于指數(shù)衰減信號, 而且夾雜很多噪聲; 圖9(b)是梯形成形處理后的信號,可以發(fā)現(xiàn)梯形成形加強了系統(tǒng)穩(wěn)定性和抗噪聲干擾能力.
本文利用Matlab軟件仿真實現(xiàn)了梯形濾波成形算法,分析了一些參數(shù)對輸出信號的影響, 通過調(diào)節(jié)成形參數(shù)得到最優(yōu)的參數(shù)來提高譜儀的能量分辨率和效率; 利用Libero開發(fā)工具進行Verilog HDL編程, 將算法結(jié)構(gòu)設(shè)計為級聯(lián)型結(jié)構(gòu), 簡化了FPGA開發(fā)的流程, 并使用Signal Tap II邏輯分析儀得到梯形成形后的信號; 通過對實際脈沖信號進行采集, 經(jīng)數(shù)字脈沖幅度分析器得到的測試結(jié)果與仿真結(jié)果大體一致,也證實了本文算法設(shè)計的可行性, 對梯形成形算法在FPGA上的高效開發(fā)具有一定參考價值.