<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 軟件定義無線電應(yīng)用的轉(zhuǎn)換器增益和時序誤差實時校準(zhǔn)

          軟件定義無線電應(yīng)用的轉(zhuǎn)換器增益和時序誤差實時校準(zhǔn)

          作者: 時間:2014-06-24 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/259396.htm

          如果x0和x1表示兩個子ADC的輸出,而信號是其輸入,可以使用公式1來表示它們,下面的表達(dá)式將這兩路信號連接起來(忽略了噪聲):

          (公式2)

          這一線性濾波公式的系數(shù)h0和h1可以明確地對應(yīng)于增益g和時序Δt誤差:

          (公式3)

          可以使用一階近似,而設(shè)計中的失配誤差比較小,將這一非線性方程組線性化并求逆

          估算算法包括以下三個步驟:

          1. 提取出信號,使用LMS算法,從子ADC的輸出消除它,產(chǎn)生離散時間信號x0和x1。這一算法要求在頻率上應(yīng)用數(shù)字余弦/正弦參考信號。使用容量 為4K (實際中,K64)的小規(guī)模查找表(LUT)來產(chǎn)生余弦信號。通過簡單的將余弦信號延時K來產(chǎn)生正弦信號。

          2. 如圖2所示,使用LMS算法,從提取出的x0和x1信號中自適應(yīng)估算出系數(shù)h0和h1。

          3. 從公式3中得到的線性方程組中計算出增益和。


          圖2:通過2抽頭數(shù)字自適應(yīng)濾波器進(jìn)行增益和背景估算。

          得到估算結(jié)果后,增益和被輸入到數(shù)字校準(zhǔn)引擎中。使用簡單數(shù)字乘法器補(bǔ)償增益。采用修正的小數(shù)延時濾波器對時序誤差進(jìn)行校準(zhǔn)。通過多相和對 稱方法來降低濾波器實現(xiàn)的復(fù)雜度。估算和校準(zhǔn)引擎都都以子ADC的采樣速率運(yùn)行,為進(jìn)一步優(yōu)化,估算模塊還可以采用降采樣的方案。

          方法驗證

          一路合成測試信號包括:中心是300 MHz的一路TM3.1、20 MHz LTE載波,以及一路253.44 MHz、-35 dBFS校準(zhǔn)正弦波。對應(yīng)于S=1、K=8、P=2K,可以使用圖3中的測試設(shè)置來產(chǎn)生這些信號。這一設(shè)置具有低噪聲和高線性度D/A轉(zhuǎn)換器以及 DVGA,因此,其動態(tài)范圍非常高。我們采用了集成了高分辨率可調(diào)增益和時序誤差功能的商用14位 / 500Msps TIADC。通過FPGA采集ADC原始數(shù)據(jù),使用Matlab軟件,由IDT校準(zhǔn)算法處理這些數(shù)據(jù)。TI ADC的增益和時序誤差分別被設(shè)置為大約0.5 dB和5 ps,以仿真最差情況。


          圖3:測試設(shè)置結(jié)構(gòu)圖。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();