<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 高速移動(dòng)下OFDM均衡器的FPGA實(shí)現

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

作者: 時(shí)間:2010-08-04 來(lái)源:網(wǎng)絡(luò ) 收藏
式中:pn是一個(gè)由構成的1×(2Q+1)的矩陣,i=O,1,…,2Q。MMSE可以描述為;γ為該信道的信噪比,且。Ak是一個(gè)(2Q+1)×(4Q+1)的矩陣,再利用文獻中迭代的方法來(lái)計算矩陣的逆。對于一個(gè)模塊來(lái)說(shuō),該算法的總計算量是o((2Q+1)2N),由于QN,所以整個(gè)計算的復雜度就降低了很多。

2 算法的實(shí)現
當載波數比較大時(shí),均衡算法所要計算的矩陣比較龐大,計算量大,很難保證實(shí)時(shí)性的要求。于是人們很自然地會(huì )想到用實(shí)時(shí)性很強的來(lái)實(shí)現的設計,但是均衡本身所需要處理的數據量和運算量都非常大,即使使用實(shí)現也很困難。
若采用文獻中的算法運算量是o(N2),假如當載波數N=128時(shí),運算量還是很大的,無(wú)法保證實(shí)時(shí)性。從均衡效果和運算量?jì)煞矫婵紤],采用了文獻中的算法。這是一種典型的迭代算法,效果與文獻算法相接近,但是在計算中避免了求一個(gè)很大的矩陣的逆運算,而是從頻域轉移矩陣G中提取出了不大的有效矩陣,這樣就減少了大量運算。
2.1 硬件設計思想
在對均衡器算法進(jìn)行FPGA設計之前,先用Matlab仿真該均衡器浮點(diǎn)算法,通過(guò)分析程序可以發(fā)現,該算法的核心部分是迭代求逆矩陣的過(guò)程。該算法的瓶頸主要是求解由復數元素組成的矩陣的逆的計算量巨大,而且是浮點(diǎn)數會(huì )占用很大的存儲空間。為盡量減少需要使用的邏輯資源,在進(jìn)行ISE設計時(shí),數據用16位定點(diǎn)數表示,其中高8位是整數部分,低8位是小數部分。
2.1.1 硬件設計框圖
實(shí)現該均衡器的硬件設計框圖如圖2所示,其中G為從Matlab中產(chǎn)生的頻域轉移矩陣,控制模塊完成從G中取出對應的有效值得到Ak,并且控制當一組運算完成后運用上一組產(chǎn)生的。進(jìn)行下一組運算,CIR是該算法的核心,即矩陣迭代求逆的運算,CPE模塊是一個(gè)簡(jiǎn)單的矩陣運算模塊完成的運算。

本文引用地址:http://dyxdggzs.com/article/191638.htm


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


其中,CLK為時(shí)鐘;γ是模擬信道的信噪比;Ak是頻域轉移矩陣G中取出的有效矩陣;trag是控制信號,當一次運算結束產(chǎn)生一個(gè)有效的后,只有trag被置為高電平才會(huì )進(jìn)行下一次運算。取Q=2時(shí),是一個(gè)5×5的矩陣。整個(gè)求逆矩陣的迭代過(guò)程就是從前一個(gè)5×5的逆矩陣(即)和從頻域轉移矩陣G中對應區域取得的5×9的矩陣Ak運算出下一個(gè)5×5逆矩陣(即)的過(guò)程。
分析其矩陣求逆的迭代算法可以發(fā)現,其中大部分完成的是復數矩陣的乘加運算,所有數據是復數,雖然復雜很多,但是實(shí)際運算中有許多是多余的。Rk是共軛對稱(chēng)矩陣,上三角部分和下三角部分的實(shí)部相同,虛部也只是正負相反,所以只需要算出上三角矩陣的數據,下三角的部分直接對虛部取反就可以了。
Xilinx的FPGA芯片中集成了硬核的乘加器DSP48,可以方便、高速地進(jìn)行乘加運算。但是本算法中涉及到的復數運算比較靈活,還包括一些減法運算,直接使用DSP48不是很方便的控制。故設計了一種乘加器,使用了乘法器的IP Core,按照要求設置輸入輸出數據位數,其中的一個(gè)乘加運算中設置乘法器的兩路輸入為8位,輸出為16位,調用IP Core如下所示,算法中其他的矩陣運算也都與此類(lèi)似。

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


為了能最大限度地提高運算速度,所有數據都用可編程邏輯單元構成的分布式存儲器存儲并列存儲,并且根據算法的要求實(shí)現的是多個(gè)乘加器同時(shí)運算,這樣雖然使用了很多邏輯資源,但任何數據都可以即取即用,便于進(jìn)行大量的并行運算,以提高運算速度。
2.2 系統驗證仿真
本系統采用Xilinx公司Virtex-2實(shí)驗板進(jìn)行仿真驗證,該實(shí)驗板采用的是XC2VP30芯片,它有30 816個(gè)邏輯單元,136個(gè)18位乘法器,2 448 KbRAM,資源豐富。開(kāi)發(fā)軟件為該公司的集成開(kāi)發(fā)軟件平臺ISE 9.2,HDL語(yǔ)言采用Verilog,使用Matlab輔助ISE完成FPGA設計的方法。通過(guò)實(shí)驗板上的RS 232串口與PC機進(jìn)行通信,用Matlab從計算機中傳輸數據到FPGA芯片中,運算后再通過(guò)串口回傳均衡后的信號數據到Matlab中仿真驗證星座圖,以判斷該均衡器的效果。



關(guān)鍵詞: OFDM FPGA 移動(dòng) 均衡器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>