基于802.16d的定時(shí)同步算法 改進(jìn)及FPGA實(shí)現(xiàn)
4 基于FPGA的實(shí)現(xiàn)
4.1 自相關(guān)延時(shí)模塊的FPGA實(shí)現(xiàn)
為了進(jìn)一步簡(jiǎn)化運(yùn)算,也可以不進(jìn)行算法中的歸一化運(yùn)算,而直接計(jì)算R(n)的值,并將公式簡(jiǎn)化為:
圖3所示是自相關(guān)延時(shí)模塊的硬件組成結(jié)構(gòu)。它主要由FIFO延時(shí)單元、復(fù)數(shù)運(yùn)算器、加法器、取模模塊組成。其中復(fù)數(shù)乘法器可直接使用IP核來實(shí)現(xiàn),這比直接使用四個(gè)實(shí)數(shù)乘法器和兩個(gè)加法器更節(jié)省資源。本文引用地址:http://www.ex-cimer.com/article/191862.htm
將接收端經(jīng)過下變頻的I路和Q路數(shù)據(jù)分為兩路送入模塊,I路比Q路數(shù)據(jù)應(yīng)多延時(shí)一個(gè)時(shí)鐘周期,這是為了和Q路數(shù)據(jù)保持相同的時(shí)延,此后再進(jìn)入FIFO經(jīng)過64個(gè)時(shí)鐘周期的延時(shí)。Q路數(shù)據(jù)首先進(jìn)行取相反數(shù)運(yùn)算。這是因?yàn)閺?fù)數(shù)共軛運(yùn)算相當(dāng)于先取相反數(shù)再做復(fù)數(shù)乘法。把相減的結(jié)果送入FIFO進(jìn)行延時(shí),并將送入系統(tǒng)的復(fù)數(shù)與做減法和延時(shí)64個(gè)時(shí)鐘周期的復(fù)數(shù)進(jìn)行復(fù)數(shù)乘法運(yùn)算。由于兩路數(shù)據(jù)都是16位定點(diǎn)化整數(shù),經(jīng)過運(yùn)算后會(huì)成為33位,為了節(jié)省資源,可將所得結(jié)果的高5位和低12位截去,而這并不會(huì)影響運(yùn)算的精度。經(jīng)過復(fù)數(shù)乘法運(yùn)算的實(shí)部和虛部再分別經(jīng)過64個(gè)時(shí)鐘周期的FIFO延時(shí),并將延時(shí)前后的數(shù)據(jù)做減法運(yùn)算,然后對(duì)計(jì)算的結(jié)果做累加運(yùn)算。累加器輸出的結(jié)果經(jīng)過取模模塊后,即可得到實(shí)部和虛部的絕對(duì)值,然后將兩部分結(jié)果相加,再將相加結(jié)果與門限值比較,超過門限則將標(biāo)志位置高。但應(yīng)注意門限值的選取會(huì)影響幀檢測(cè)的范圍,由于采用的是聯(lián)合檢測(cè)方法,應(yīng)適當(dāng)擴(kuò)大門限范圍,本設(shè)計(jì)設(shè)定的門限值為峰值的1/4。
4.2 互相關(guān)模塊的FPGA實(shí)現(xiàn)
互相關(guān)模塊主要由匹配運(yùn)算單元、取模器和加法器組成。改進(jìn)的算法只對(duì)輸入數(shù)據(jù)的符號(hào)位與本地序列的符號(hào)位進(jìn)行相關(guān)運(yùn)算,并規(guī)定輸入符號(hào)為正取值為1,輸入符號(hào)為負(fù)取值為-1,接著根據(jù)輸入數(shù)據(jù)的符號(hào)和本地序列的符號(hào)構(gòu)成的16種輸入做全排列,將所有可能的相關(guān)運(yùn)算值算好存放在運(yùn)算模塊中,這樣就可以根據(jù)輸入數(shù)據(jù)的符號(hào)來選擇相關(guān)運(yùn)算的結(jié)果。這等效于把復(fù)數(shù)相關(guān)運(yùn)算簡(jiǎn)化為數(shù)據(jù)選擇器來實(shí)現(xiàn)。
圖4所示為互相關(guān)模塊的FPGA實(shí)現(xiàn)框圖,其中I、Q兩路數(shù)據(jù)進(jìn)入模塊后,可取出其最高位存入移位寄存器,然后與本地序列做匹配運(yùn)算。匹配運(yùn)算模塊由64個(gè)數(shù)據(jù)選擇器和126個(gè)加法器組成,加法運(yùn)算采用6級(jí)流水線來實(shí)現(xiàn),這樣,可使系統(tǒng)的運(yùn)算速率更高。
4.3 仿真結(jié)果分析
系統(tǒng)中的各模塊可采用Verilog HDL語言設(shè)計(jì),并可使用Xilinx公司集成設(shè)計(jì)環(huán)境ISE中的ModelSim SE 6.0來完成仿真,仿真結(jié)果如圖5所示。其中frame_re_dout和frame_im_dout為送入系統(tǒng)的實(shí)部和虛部數(shù)據(jù),abs_out為延時(shí)自相關(guān)算法中取模相加的結(jié)果,frame_head為采用延時(shí)自相關(guān)算法使數(shù)據(jù)升高時(shí)得到的一個(gè)峰值平臺(tái),top_flag為改進(jìn)自相關(guān)算法計(jì)算所得的峰值。圖中的自相關(guān)平臺(tái)內(nèi)有5個(gè)峰值,這與MATLAB仿真結(jié)果相符。最后采用Xilinx公司VirtexⅡpro系列xc2vp30器件進(jìn)行實(shí)現(xiàn)??偣策壿媶卧褂寐蕿?%,系統(tǒng)最高工作頻率為236.373 MHz 。
5 結(jié)束語
本文在研究基于802.16d的OFDM定時(shí)同步算法的基礎(chǔ)上提出了一種改進(jìn)的算法,并在FPGA上完成了其硬件電路設(shè)計(jì)。仿真結(jié)果表明該算法在保持了原算法優(yōu)秀性能的同時(shí),可節(jié)省硬件資源,有利于把同步模塊和接收部分其他模塊集成在單芯片中。同時(shí),該算法也可推廣到具有相似前導(dǎo)字結(jié)構(gòu)的802.1 1a等協(xié)議中。
評(píng)論