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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 高速移動(dòng)下OFDM均衡器的FPGA實(shí)現(xiàn)

          高速移動(dòng)下OFDM均衡器的FPGA實(shí)現(xiàn)

          作者: 時(shí)間:2015-02-09 來(lái)源:網(wǎng)絡(luò) 收藏

            式中:pn是一個(gè)由構(gòu)成的1×(2Q+1)的矩陣,i=O,1,…,2Q。MMSE均衡器可以描述為;γ為該信道的信噪比,且。Ak是一個(gè)(2Q+1)×(4Q+1)的矩陣,再利用文獻(xiàn)中迭代的方法來(lái)計(jì)算矩陣的逆。對(duì)于一個(gè)模塊來(lái)說(shuō),該算法的總計(jì)算量是o((2Q+1)2N),由于Q<

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

            2 均衡器算法的實(shí)現(xiàn)

            當(dāng)載波數(shù)比較大時(shí),均衡算法所要計(jì)算的矩陣比較龐大,計(jì)算量大,很難保證實(shí)時(shí)性的要求。于是人們很自然地會(huì)想到用實(shí)時(shí)性很強(qiáng)的來(lái)實(shí)現(xiàn)均衡器的設(shè)計(jì),但是均衡本身所需要處理的數(shù)據(jù)量和運(yùn)算量都非常大,即使使用實(shí)現(xiàn)也很困難。

            若采用文獻(xiàn)中的算法運(yùn)算量是o(N2),假如當(dāng)載波數(shù)N=128時(shí),運(yùn)算量還是很大的,無(wú)法保證實(shí)時(shí)性。從均衡效果和運(yùn)算量?jī)煞矫婵紤],采用了文獻(xiàn)中的算法。這是一種典型的迭代算法,效果與文獻(xiàn)算法相接近,但是在計(jì)算中避免了求一個(gè)很大的矩陣的逆運(yùn)算,而是從頻域轉(zhuǎn)移矩陣G中提取出了不大的有效矩陣,這樣就減少了大量運(yùn)算。

            2.1 硬件設(shè)計(jì)思想

            在對(duì)均衡器算法進(jìn)行FPGA設(shè)計(jì)之前,先用Matlab仿真該均衡器浮點(diǎn)算法,通過(guò)分析程序可以發(fā)現(xiàn),該算法的核心部分是迭代求逆矩陣的過(guò)程。該算法的瓶頸主要是求解由復(fù)數(shù)元素組成的矩陣的逆的計(jì)算量巨大,而且是浮點(diǎn)數(shù)會(huì)占用很大的存儲(chǔ)空間。為盡量減少需要使用的邏輯資源,在進(jìn)行ISE設(shè)計(jì)時(shí),數(shù)據(jù)用16位定點(diǎn)數(shù)表示,其中高8位是整數(shù)部分,低8位是小數(shù)部分。

            2.1.1 硬件設(shè)計(jì)框圖

            實(shí)現(xiàn)該均衡器的硬件設(shè)計(jì)框圖如圖2所示,其中G為從Matlab中產(chǎn)生的頻域轉(zhuǎn)移矩陣,控制模塊完成從G中取出對(duì)應(yīng)的有效值得到Ak,并且控制當(dāng)一組運(yùn)算完成后運(yùn)用上一組產(chǎn)生的。進(jìn)行下一組運(yùn)算,CIR是該算法的核心,即矩陣迭代求逆的運(yùn)算,CPE模塊是一個(gè)簡(jiǎn)單的矩陣運(yùn)算模塊完成的運(yùn)算。

            

           

            2.1.2 CIR模塊介紹

            CIR模塊完成矩陣迭代運(yùn)算過(guò)程,它從輸入端口讀入Ak以及對(duì)應(yīng)的,采用迭代的方法計(jì)算出,用FPGA實(shí)現(xiàn)這個(gè)模塊的端口如圖3所示。

            

           

            其中,CLK為時(shí)鐘;γ是模擬信道的信噪比;Ak是頻域轉(zhuǎn)移矩陣G中取出的有效矩陣;trag是控制信號(hào),當(dāng)一次運(yùn)算結(jié)束產(chǎn)生一個(gè)有效的后,只有trag被置為高電平才會(huì)進(jìn)行下一次運(yùn)算。取Q=2時(shí),是一個(gè)5×5的矩陣。整個(gè)求逆矩陣的迭代過(guò)程就是從前一個(gè)5×5的逆矩陣(即)和從頻域轉(zhuǎn)移矩陣G中對(duì)應(yīng)區(qū)域取得的5×9的矩陣Ak運(yùn)算出下一個(gè)5×5逆矩陣(即)的過(guò)程。

            分析其矩陣求逆的迭代算法可以發(fā)現(xiàn),其中大部分完成的是復(fù)數(shù)矩陣的乘加運(yùn)算,所有數(shù)據(jù)是復(fù)數(shù),雖然復(fù)雜很多,但是實(shí)際運(yùn)算中有許多是多余的。Rk是共軛對(duì)稱矩陣,上三角部分和下三角部分的實(shí)部相同,虛部也只是正負(fù)相反,所以只需要算出上三角矩陣的數(shù)據(jù),下三角的部分直接對(duì)虛部取反就可以了。

            Xilinx的FPGA芯片中集成了硬核的乘加器DSP48,可以方便、高速地進(jìn)行乘加運(yùn)算。但是本算法中涉及到的復(fù)數(shù)運(yùn)算比較靈活,還包括一些減法運(yùn)算,直接使用DSP48不是很方便的控制。故設(shè)計(jì)了一種乘加器,使用了乘法器的IP Core,按照要求設(shè)置輸入輸出數(shù)據(jù)位數(shù),其中的一個(gè)乘加運(yùn)算中設(shè)置乘法器的兩路輸入為8位,輸出為16位,調(diào)用IP Core如下所示,算法中其他的矩陣運(yùn)算也都與此類似。

            

           

            a,b作為兩個(gè)寄存器儲(chǔ)存參與運(yùn)算的數(shù)據(jù),outl是乘法器計(jì)算的結(jié)果,用fcl進(jìn)行存放,相累加得到f1,再按照共軛復(fù)數(shù)運(yùn)算的規(guī)律得到nfl。實(shí)現(xiàn)一個(gè)8位×8位的乘加器共消耗了56個(gè)Slice,32個(gè)LUT和49個(gè)IOB。該乘加器綜合后的RTL結(jié)構(gòu)圖如圖4所示。

            

           

            為了能最大限度地提高運(yùn)算速度,所有數(shù)據(jù)都用可編程邏輯單元構(gòu)成的分布式存儲(chǔ)器存儲(chǔ)并列存儲(chǔ),并且根據(jù)算法的要求實(shí)現(xiàn)的是多個(gè)乘加器同時(shí)運(yùn)算,這樣雖然使用了很多邏輯資源,但任何數(shù)據(jù)都可以即取即用,便于進(jìn)行大量的并行運(yùn)算,以提高運(yùn)算速度。

            2.2 系統(tǒng)驗(yàn)證仿真

            本系統(tǒng)采用Xilinx公司Virtex-2實(shí)驗(yàn)板進(jìn)行仿真驗(yàn)證,該實(shí)驗(yàn)板采用的是XC2VP30芯片,它有30 816個(gè)邏輯單元,136個(gè)18位乘法器,2 448 KbRAM,資源豐富。開發(fā)軟件為該公司的集成開發(fā)軟件平臺(tái)ISE 9.2,HDL語(yǔ)言采用Verilog,使用Matlab輔助ISE完成FPGA設(shè)計(jì)的方法。通過(guò)實(shí)驗(yàn)板上的RS 232串口與PC機(jī)進(jìn)行通信,用Matlab從計(jì)算機(jī)中傳輸數(shù)據(jù)到FPGA芯片中,運(yùn)算后再通過(guò)串口回傳均衡后的信號(hào)數(shù)據(jù)到Matlab中仿真驗(yàn)證星座圖,以判斷該均衡器的效果。

          fpga相關(guān)文章:fpga是什么


          矢量控制相關(guān)文章:矢量控制原理


          關(guān)鍵詞: OFDM FPGA

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