聶偉,王天明,邱蓉
(北京化工大學(xué) 計(jì)算機(jī)系統(tǒng)與通信實(shí)驗(yàn)中心, 北京 100029)
摘要:利用改進(jìn)的完美重構(gòu)方法對多A/D采樣系統(tǒng)的時(shí)鐘偏斜誤差校正方法進(jìn)行了FPGA實(shí)現(xiàn)。采用自頂向下和模塊化的設(shè)計(jì)方法,實(shí)現(xiàn)了多路采樣數(shù)據(jù)的相位同步模塊、數(shù)據(jù)位置映射模塊、并行多相濾波器組模塊以及多路數(shù)據(jù)合成模塊。對完美重構(gòu)方法中的濾波器組運(yùn)用多相分解技術(shù)將其化為并行結(jié)構(gòu)濾波器組,對輸出數(shù)據(jù)采用流水線結(jié)構(gòu)加法器組進(jìn)行處理,降低了系統(tǒng)運(yùn)算延遲,提高了系統(tǒng)的實(shí)時(shí)性。在MATLAB和ModelSim中進(jìn)行仿真,結(jié)果表明了該實(shí)現(xiàn)的正確性和有效性。
關(guān)鍵詞:時(shí)間交替采樣;時(shí)鐘偏斜誤差;多相分解;FPGA
0引言
在模擬信號采集中采樣速率是其重要指標(biāo)。傳統(tǒng)單一A/D采樣的不足是采樣速率低,不能滿足實(shí)際需求。為提高采樣速率,現(xiàn)多采用時(shí)間交替并行采樣技術(shù),即TIADC(TimeInterleaved ADC)[14]。但是在多A/D采樣系統(tǒng)中,由于時(shí)鐘抖動(dòng)以及A/D器件的離散性,系統(tǒng)存在時(shí)鐘相位偏斜、增益和偏置誤差,這些誤差都具有隨機(jī)性。
在這三個(gè)誤差中,增益誤差和偏置誤差只需簡單運(yùn)算即可消除,而校正時(shí)鐘偏斜誤差卻比較困難[35]。文獻(xiàn)[5]提出的分?jǐn)?shù)延遲濾波器法,需要過采樣,占用很多的輸入信號帶寬;文獻(xiàn)[6]提出了插值法,該方法運(yùn)算量大,難以進(jìn)行實(shí)時(shí)處理,主要用于離線校正;文獻(xiàn)[7]中提出完美重構(gòu)修正方法,其并行實(shí)現(xiàn)方式可帶來很高的數(shù)據(jù)處理速率;文獻(xiàn)[8]在完美重構(gòu)基礎(chǔ)上利用濾波器多相分解構(gòu)建濾波陣列,對數(shù)據(jù)處理速率進(jìn)行了有效提高。
本文在文獻(xiàn)[8]的基礎(chǔ)上,在FPGA中實(shí)現(xiàn)利用改進(jìn)的完美重構(gòu)方法實(shí)時(shí)校正時(shí)鐘偏斜誤差的系統(tǒng)結(jié)構(gòu)。該系統(tǒng)利用FIFO對采樣數(shù)據(jù)進(jìn)行緩存及相位對齊,然后進(jìn)行降速處理并對數(shù)據(jù)位置映射重置,再通過多相分解方法構(gòu)建濾波器陣列對采樣數(shù)據(jù)進(jìn)行重構(gòu),最終將處理數(shù)據(jù)合成輸出。這樣不但有利于實(shí)時(shí)處理,還減少了系統(tǒng)的運(yùn)算量[9]。
1時(shí)間交替并行采樣系統(tǒng)時(shí)鐘偏斜誤差校正方法
1.1完美重構(gòu)校正方法原理
時(shí)間交替并行采樣對任意波形的采樣示意圖如圖1所示。理想的多A/D器件采樣時(shí)鐘之間有相同的頻率和固定的等間隔相差,但實(shí)際采樣過程中,由于時(shí)鐘抖動(dòng)、傳輸路徑延遲等因素使得各個(gè)通道間相對理想相差存在著一定的相位偏離,從而產(chǎn)生時(shí)鐘偏斜差。
時(shí)鐘相位偏差會(huì)引起雜散頻譜,經(jīng)采樣后的輸出信號頻域表示為:
其中,As(k,rm)=1M∑M-1m=0e-jω0rme-j(2πmkMTs),M為通道數(shù)。由于時(shí)鐘相位偏差引起雜散頻譜(在頻點(diǎn)2πkMTs±ω0上),現(xiàn)一般用完美重構(gòu)方法來對采樣后的數(shù)據(jù)進(jìn)行校正,圖2所示是基于完美重構(gòu)方法校正時(shí)鐘相位偏斜誤差的原理框圖。
如圖2所示,帶限模擬信號經(jīng)多路A/D并行采樣后將采樣數(shù)據(jù)輸入到濾波器組Fm(z)中,將每路輸出數(shù)據(jù)累加就可以得到重構(gòu)數(shù)據(jù)。圖2中,F(xiàn)m(z)可表示為:
其中,m=0,1,...,M-1,fm[k]是其濾波器系數(shù),可以表示為:
式(3)中,di=i·Ts+ΔTiTs,其中Ts為系統(tǒng)采樣時(shí)鐘周期,ΔTi為第i個(gè)采樣通道與第1個(gè)采樣通道之間的時(shí)間偏差,d為常整數(shù),wi(k)為凱撒窗函數(shù),通過調(diào)節(jié)其參數(shù)來改變過渡帶大小,降低紋波,2L為濾波器階數(shù),M為采樣通道數(shù)。
1.2改進(jìn)的完美重構(gòu)校正方法
為了使完美重構(gòu)校正方法在數(shù)字電路實(shí)現(xiàn)高速實(shí)時(shí)的數(shù)據(jù)校正,把圖2中的濾波器組用多相結(jié)構(gòu)實(shí)現(xiàn)??砂袴m(z)表示為:
如圖3所示為濾波器組的多相實(shí)現(xiàn)結(jié)構(gòu)。
它將每一路的重構(gòu)濾波器分解為若干子濾波器,其中Fkm(z)就是Fm(z)的多相分量。圖3中的F(b)(z)是m×m矩陣,可表示為:
最終的輸出可表示為:
Y(z)=F(b)(z)X(z)(6)
其中,
X(z)=[X0(z)X1(z)X2(z)...Xm(z)]T(7)
Y(z)=[Y0(z)Y1(z)Y2(z)...Ym(z)]T(8)
這里的X(z)是該系統(tǒng)的輸入序列,Y(z)是X(z)經(jīng)過多相結(jié)構(gòu)濾波器組校正后的輸出序列。
2校正系統(tǒng)的FPGA設(shè)計(jì)實(shí)現(xiàn)
2.1校正系統(tǒng)的FPGA設(shè)計(jì)實(shí)現(xiàn)
本設(shè)計(jì)選用Altera公司CycloneII系列的EP2C5芯片,采用原理圖與VHDL(VeryHighSpeed,Integrated Circuit Hardware Description Language)進(jìn)行模塊化設(shè)計(jì)。軟件環(huán)境采用QuartusII,仿真工具為Modelsim。
利用前面介紹的改進(jìn)方法在FPGA中進(jìn)行設(shè)計(jì),根據(jù)現(xiàn)有實(shí)驗(yàn)條件,設(shè)A/D通道數(shù)為4路,每路A/D轉(zhuǎn)換精度為12位,每個(gè)通道的采樣速率為50 MHz,系統(tǒng)最高采樣頻率200 MHz,輸入信號頻率為12.5 MHz。
根據(jù)參數(shù)及數(shù)據(jù)降速要求,現(xiàn)給出如圖4所示的時(shí)間交替并行采樣時(shí)鐘偏斜誤差校正電路的總體設(shè)計(jì)框圖。
如圖4所示,帶限模擬信號xin(t)同時(shí)輸入到4個(gè)采樣時(shí)鐘相位依次相差90°的A/D進(jìn)行采樣,然后將A/D的輸出數(shù)據(jù)x0[n]、x1[n]、x2[n]、x3[n]送入FPGA進(jìn)行數(shù)字處理。FPGA主要由數(shù)據(jù)緩存同步模塊、數(shù)據(jù)映射模塊、多相濾波器組、數(shù)據(jù)合路模塊以及時(shí)鐘產(chǎn)生模塊組成。
2.2校正系統(tǒng)各模塊詳細(xì)設(shè)計(jì)
2.2.1數(shù)據(jù)緩存同步模塊的設(shè)計(jì)
圖5四個(gè)通道寫時(shí)鐘的控制結(jié)構(gòu)圖在該模塊中采用四個(gè)FIFO來完成數(shù)據(jù)緩存和數(shù)據(jù)相位對齊,其中每個(gè)FIFO的寫時(shí)鐘與它對應(yīng)通道的采樣時(shí)鐘一致。如圖5所示,WEN為寫使能信號,Wclk0、Wclk1、Wclk2、Wclk3分別是四個(gè)采樣通道對應(yīng)的寫時(shí)鐘,為使從4個(gè)FIFO中讀出的數(shù)據(jù)同步并且保證第一個(gè)數(shù)據(jù)是從FIFO0中讀出的,故在寫使能信號有效之后用Wclk3作為同步的讀時(shí)鐘。
2.2.2數(shù)據(jù)映射模塊設(shè)計(jì)
此模塊主要完成串并轉(zhuǎn)換及數(shù)據(jù)順序重置。串并轉(zhuǎn)換的本質(zhì)就是移位寄存并行讀出的過程,該模塊實(shí)現(xiàn)比較簡單,每個(gè)通道只需要利用4個(gè)D觸發(fā)器外加計(jì)數(shù)器即可。需要注意的是,輸出數(shù)據(jù)是按照采樣的先后順序進(jìn)行合成,所以第一路輸入數(shù)據(jù)經(jīng)串并轉(zhuǎn)換后四路輸出數(shù)據(jù)應(yīng)為x0,x4,x8,x12;同理,得到其他三個(gè)通道共16路數(shù)據(jù)。
2.2.3多相濾波器組的設(shè)計(jì)
該模塊設(shè)計(jì)的重點(diǎn)是多相濾波器的參數(shù),其電路實(shí)現(xiàn)比較簡單。根據(jù)提供的時(shí)鐘相位誤差信息,在MATLAB中仿真確定濾波器的階數(shù)為64。
利用式(3)可以計(jì)算出4個(gè)A/D通道每個(gè)通道對應(yīng)的濾波器組的系數(shù),對這16個(gè)濾波器的系數(shù)進(jìn)行多相分解,得到16×16=256個(gè)子濾波器的系數(shù),每個(gè)系數(shù)不為零的子濾波器的階數(shù)都是4。
此16×16的濾波器陣列由式(5)可以表示為:
其中,每個(gè)元素Fj,i(z)代表一個(gè)子濾波器,可以由濾波器組里的Fi(z)計(jì)算得到,即:
式(10)中,F(xiàn)i(z)代表每個(gè)通道的重構(gòu)濾波器,式(11)中,fi[j+16·m]為濾波器系數(shù),可以根據(jù)式(3)進(jìn)行計(jì)算。依照式(6),濾波校正過程可表示為:
其中,Xi(z)表示16路輸入數(shù)據(jù),Yi(z)表示濾波后的16路輸出數(shù)據(jù)。
分析可得,這個(gè)16×16的濾波器陣列只有3/4的濾波器系數(shù)不為零,故只需在FPGA中實(shí)現(xiàn)192個(gè)子濾波器即可。
依照式(12),在圖6中給出了校正濾波器陣列數(shù)據(jù)流的示意圖,在FPGA中易于實(shí)現(xiàn)。每個(gè)輸出數(shù)據(jù)流由16個(gè)濾波器的輸出相加得到,在FPGA中用流水線型加法器組實(shí)現(xiàn)16輸入加法。
2.2.4數(shù)據(jù)合路模塊的設(shè)計(jì)
數(shù)據(jù)合路模塊的功能是實(shí)現(xiàn)16路12 bit的數(shù)據(jù)到1路12 bit的數(shù)據(jù)的轉(zhuǎn)換。該模塊工作輸入時(shí)鐘為12.5 MHz。由于最終16路數(shù)據(jù)串行輸出需要200 MHz時(shí)鐘,故通過PLL對系統(tǒng)輸入時(shí)鐘倍頻,再用一個(gè)4 bit計(jì)數(shù)器作為選通信號來完成合路。
3仿真及性能分析
3.1數(shù)據(jù)緩存同步模塊仿真
采用圖4結(jié)構(gòu),產(chǎn)生4個(gè)相位相差90°的輸入時(shí)鐘,每路輸入數(shù)據(jù)均為兩個(gè)12 bit數(shù)循環(huán)輸入。在QuartusII環(huán)境下進(jìn)行VHDL實(shí)現(xiàn),在Modelsim中對該模塊進(jìn)行仿真,得到圖7所示仿真波形。
圖7中,4路數(shù)據(jù)data0~data3分別按照各自對應(yīng)通道的時(shí)鐘wclk0~wclk3進(jìn)行輸入操作,每個(gè)通道的時(shí)鐘相位依次相差90°,4路輸出數(shù)據(jù)q0、q1、q2、q3是在同一個(gè)讀時(shí)鐘rclk下讀取輸出,它們之間無相位差,rclk與wclk3頻率相位一致,可以看出該模塊程序?qū)崿F(xiàn)了緩存同步功能,達(dá)到設(shè)計(jì)要求。
3.2數(shù)據(jù)合路模塊仿真
此模塊需要把誤差處理模塊中的并行數(shù)據(jù)按照順序高速串行輸出,按照前面設(shè)計(jì)要求,在一個(gè)輸入數(shù)據(jù)周期內(nèi)串行輸出16個(gè)數(shù)據(jù)。用VHDL語言描述數(shù)據(jù)合路模塊并進(jìn)行仿真,其結(jié)果如圖8所示。
圖8數(shù)據(jù)合路模塊仿真波形圖圖8中,clk_in為輸出時(shí)鐘,它是經(jīng)過對系統(tǒng)輸入時(shí)鐘倍頻得到的,cnt是為了方便觀察引出的計(jì)數(shù)端口,輸出端y_out將16路并行輸入數(shù)據(jù)y0~y15進(jìn)行了串行輸出,輸出16個(gè)數(shù)據(jù)所需的時(shí)間與輸入端單個(gè)數(shù)據(jù)周期相同,輸入數(shù)據(jù)順序與輸出數(shù)據(jù)順序一致,說明該模塊設(shè)計(jì)正確。
3.3多相濾波器組MATLAB與Modelsim聯(lián)合仿真
由于在ModelSim中只能進(jìn)行時(shí)域數(shù)據(jù)波形仿真,無法看到頻域變化,故采用ModelSim和MATLAB聯(lián)合仿真。設(shè)置4個(gè)通道時(shí)鐘偏斜誤差分別為[0,-0.01,0.02,0.01]Ts,[0,-0.03,0.03,0.02]Ts,[0,-0.05,0.05,0.05]Ts三種情況。
在用VHDL實(shí)現(xiàn)了誤差校正模塊后,在Modelsim中對該模塊進(jìn)行仿真。按照仿真步驟,將MATLAB生成的正弦波采樣數(shù)據(jù)送給ModelSim,得到未經(jīng)校正的輸入信號和校正后的輸出信號,截圖如圖9所示。
從圖9中可以看到,經(jīng)過該模塊輸出的正弦波相對于輸入波形只是增加了延時(shí),而輸出的幅值基本不變,這是由濾波器引起的。在此圖中從時(shí)域波形不能夠看出該模塊的校準(zhǔn)性能。為了驗(yàn)證濾波器的校準(zhǔn)功能,將輸出信號導(dǎo)入到MATLAB中進(jìn)行測試,得到校準(zhǔn)前后信號頻譜如圖10~12所示。
從校正前和校正后的頻譜可以看出,時(shí)間偏斜誤差越大,雜散頻譜幅度越高,此時(shí)該校正系統(tǒng)依舊能夠?yàn)V除雜散頻譜,保證采樣的均勻性。
4結(jié)束語
本文對改進(jìn)的時(shí)間交替并行采樣時(shí)鐘偏斜誤差校正方法進(jìn)行FPGA設(shè)計(jì)并實(shí)現(xiàn),在Modelsim中仿真表明各模塊均能達(dá)到相應(yīng)功能要求;在MATLAB仿真測試中可以看到,在不同時(shí)鐘偏斜誤差參數(shù)下,未濾波時(shí)相應(yīng)雜散頻點(diǎn)幅度隨誤差參數(shù)變化,誤差越大,雜散頻譜幅度越大,而經(jīng)多相濾波陣列后均能夠有效濾除雜散頻譜,說明該方法正確有效,可以應(yīng)用于需要多A/D采樣的儀器前端。
參考文獻(xiàn)
?。?] 黃武煌,王厚軍,曾浩. 一種超高速并行采樣技術(shù)的研究與實(shí)現(xiàn)[J]. 電子測量與儀器學(xué)報(bào),2009(8):6771.
[2] BLACK W C, HODGES D. Time interleaved converter arrays[J]. IEEE Journal of SolidState Circuits, 1980, 15(6):1415.
?。?] 潘卉青. 高速TIADC并行采樣系統(tǒng)綜合校正技術(shù)研究[D]. 成都:電子科技大學(xué), 2010.
[4] HUANG L, LIN B, ZHANG S. A digitalbackground TIADC calibration architecture and a fast calibration algorithm for timingerror mismatch[C]. ASICON '07. 7th International Conference on. IEEE, 2007:253256.
?。?] 李玉生. 超高速并行采樣模擬/數(shù)字轉(zhuǎn)換的研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué), 2007.
[6] 王吉林,郭鋼,趙力. 高速數(shù)字示波器中的插值算法的研究[J]. 電子器件,2009,32(3):627630.
?。?] 秦國杰,劉國滿,高梅國,等. 一種時(shí)間交替ADC時(shí)間失配誤差自適應(yīng)校正方法[J]. 儀器儀表學(xué)報(bào),2013,34(12):27302735.
?。?] 聶偉,邱蓉. 一種TIADC系統(tǒng)時(shí)鐘偏斜誤差的全并行校正方法[J]. 實(shí)驗(yàn)技術(shù)與管理,2015,32(4):4751.
?。?] 唐邵春. 基于時(shí)間并行交替技術(shù)的超高速高精度波形數(shù)字化研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué), 2012.