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