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

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > OFDM系統(tǒng)中頻域同步技術(shù)及FPGA實(shí)現(xiàn)

          OFDM系統(tǒng)中頻域同步技術(shù)及FPGA實(shí)現(xiàn)

          作者: 時(shí)間:2012-10-12 來源:網(wǎng)絡(luò) 收藏

          整數(shù)倍頻率偏移估計(jì)模塊

          將相關(guān)單元輸出的復(fù)數(shù)據(jù)的實(shí)虛部符號(hào)位送到整數(shù)倍頻偏估計(jì)單元中進(jìn)行整數(shù)倍頻偏估計(jì)。為了節(jié)省芯片資源,這里我們將估計(jì)整數(shù)倍頻偏的算法加以簡(jiǎn)化,用相關(guān)后的復(fù)數(shù)據(jù)在導(dǎo)頻位置上的實(shí)虛部的符號(hào)位來估計(jì)整數(shù)倍頻偏值。下面的仿真的電路波形圖證明這樣實(shí)現(xiàn)整偏估計(jì)算法是可行的。它的輸入為相關(guān)單元輸出的復(fù)數(shù)據(jù)實(shí)虛部的符號(hào)位和此復(fù)數(shù)據(jù)的載波同步位置,輸出為整數(shù)倍頻偏估計(jì)值。

          小數(shù)倍頻率偏移和采樣鐘頻率偏移模塊

          首先對(duì)相關(guān)單元模塊輸出的復(fù)數(shù)據(jù)的實(shí)虛部進(jìn)行歸一化,然后求歸一化單元輸出的16位復(fù)數(shù)據(jù)的相角,同時(shí)用RAM的讀地址和讀使能信號(hào)分別控制讀取存有矢量A和矢量B數(shù)據(jù)的ROM表中的數(shù)據(jù)。其中矢量A和B分別為線性最小平方估計(jì)算法中矩陣AT的第一行和第二行矢量,用此相角分別和讀出的矢量A和矢量B在一個(gè)符號(hào)內(nèi)進(jìn)行相乘累加,再根據(jù)保護(hù)間隔的不同,乘以相應(yīng)的系數(shù),便可分別得到小數(shù)倍頻偏和采樣鐘頻率偏移的估計(jì)值。

          細(xì)定時(shí)估計(jì)模塊

          考慮到定時(shí)估計(jì)范圍的問題,該模塊利用四個(gè)符號(hào)的散布導(dǎo)頻進(jìn)行定時(shí)估計(jì)。將當(dāng)前符號(hào)的散布導(dǎo)頻值及從RAM中讀出的前三個(gè)符號(hào)的散布導(dǎo)頻值按一定順序排列,并做相鄰導(dǎo)頻相關(guān)。將相關(guān)后的復(fù)數(shù)據(jù)的實(shí)虛部分別取絕對(duì)值累加,并將二者的累加和進(jìn)行歸一化處理后進(jìn)行查表,從而得出復(fù)數(shù)的相位值。這個(gè)相位即為符號(hào)定時(shí)偏移所引起的旋轉(zhuǎn)相位。再對(duì)此相位做如公式(6)的運(yùn)算,這樣就得到了符號(hào)定時(shí)偏移的整數(shù)和小數(shù)部分的和,然后將其送到求整函數(shù)中,從而得到符號(hào)定時(shí)偏移的整數(shù)部分。將這個(gè)值經(jīng)過并/串變換后送到前端時(shí)域同步部分,去調(diào)整FFT窗位。

          電路仿真

          其仿真條件為:瑞利信道,SNR為15dB,載波頻偏設(shè)為-14.9倍子載波間隔(即整數(shù)倍頻偏值為-15,小數(shù)倍頻偏值為0.1倍子載波間隔),采樣鐘偏移為50ppm,保護(hù)間隔長(zhǎng)為512,定時(shí)符號(hào)偏移為-100個(gè)采樣點(diǎn)。此電路工作頻率為10MHz。輸入的16位復(fù)數(shù)據(jù)由MATLAB仿真程序產(chǎn)生的。

          整數(shù)倍頻率偏移電路仿真

          由于電路波形中無法表示小數(shù),因此將各小數(shù)進(jìn)行“擴(kuò)展”,其表示皆為二進(jìn)制數(shù)據(jù),以下同。在圖4.1中,out_re[31]和out_im[31]分別是前后兩個(gè)符號(hào)中對(duì)應(yīng)子載波相關(guān)結(jié)果的實(shí)虛部的符號(hào)位,int_freqoffset[5..0]和syn_int分別是整數(shù)倍頻偏估值和其有效起始位置脈沖。

          圖4.1 整數(shù)倍頻偏估計(jì)部分的電路仿真波形圖

          由于整數(shù)倍頻偏在每一符號(hào)的結(jié)束處才能估計(jì)出來,所以syn_int在每一個(gè)符號(hào)的結(jié)束處出現(xiàn),其后即為當(dāng)前符號(hào)的整數(shù)倍頻偏值。由于本算法利用了4個(gè)符號(hào)的連續(xù)導(dǎo)頻,故圖4.1中,從第四個(gè)syn_int后的int_freqoffset[5..0]才是當(dāng)前符號(hào)的整數(shù)倍頻偏估計(jì)值。由仿真波形可看出,估出的整數(shù)倍頻偏與仿真數(shù)據(jù)中所假設(shè)的一致。故用此算法的簡(jiǎn)化形式可以準(zhǔn)確地估計(jì)出整數(shù)倍頻偏值。

          小數(shù)倍頻率偏移及采樣鐘頻率偏移估計(jì)的電路仿真

          sernum[1..0]表示前級(jí)輸入的符號(hào)類型;syn為輸入復(fù)數(shù)據(jù)中的有用數(shù)據(jù)起始脈沖;rein[15..0]和imin[15..0]分別為FIFO模塊輸出復(fù)數(shù)據(jù)的實(shí)虛部;syn_offset為小數(shù)倍頻偏和采樣鐘偏移估計(jì)結(jié)果的起始位置;fri[14..0]和qdelt[14..0]為小數(shù)倍頻偏估計(jì)值和采樣鐘偏移估計(jì)值,它們由1位符號(hào)位和14位小數(shù)位組成。這里的小數(shù)位數(shù)是根據(jù)其估計(jì)范圍和估計(jì)精度要求來確定的。

          在圖4.2中,小數(shù)倍頻率偏移和采樣鐘頻率偏移估計(jì)模塊使用連續(xù)導(dǎo)頻進(jìn)行估計(jì)。在每個(gè)符號(hào)末,syn_offset高電平有效時(shí),fri[14..0]和qdelt[14..0]才是當(dāng)前符號(hào)的小數(shù)倍頻率偏移和采樣鐘頻率偏移估計(jì)值。波形中的估值與實(shí)際數(shù)據(jù)的對(duì)應(yīng)關(guān)系如表4.1所示。

          圖4.2 小數(shù)倍頻偏和采樣鐘偏移估計(jì)單元的電路仿真波形圖

          表4.1 波形圖中數(shù)據(jù)與實(shí)際數(shù)據(jù)對(duì)照表

          小數(shù)倍頻率偏移和采樣鐘頻率偏移模塊是在整偏校完之后才有效,此時(shí)的小數(shù)倍頻率偏移是經(jīng)過時(shí)域粗偏估計(jì)校正后的剩余部分。表4.1列出波形中的估值與實(shí)際數(shù)據(jù)的對(duì)應(yīng)關(guān)系。從表中的數(shù)字對(duì)應(yīng)關(guān)系可以看出,電路中估計(jì)的小數(shù)倍頻偏與實(shí)際頻偏的差在0.1%以內(nèi)。采樣鐘偏移估計(jì)值與實(shí)際偏移誤差為1ppm左右,這已滿足了采樣鐘的粗調(diào)精度;相位輸出為前后符號(hào)的小數(shù)倍偏頻所引起的相位旋轉(zhuǎn)。由此單元電路,可以準(zhǔn)確地估計(jì)出小數(shù)倍頻偏和采樣鐘偏移及其相位。



          關(guān)鍵詞: OFDM FPGA 系統(tǒng) 頻域

          評(píng)論


          相關(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); })();