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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 5G NR小區(qū)搜索算法的研究及FPGA實現(xiàn)

          5G NR小區(qū)搜索算法的研究及FPGA實現(xiàn)

          作者:袁行猛,徐蘭天,盧高健,李運(yùn)(中電科思儀科技(安徽)有限公司;電子儀器技術(shù)蚌埠技術(shù)創(chuàng)新中心,安徽 蚌埠 233010) 時間:2021-06-17 來源:電子產(chǎn)品世界 收藏
          編者按:隨著移動通信的高速發(fā)展,5G NR通信已經(jīng)進(jìn)入我們的日常生活,5G系統(tǒng)對信息傳輸制訂了全新標(biāo)準(zhǔn),基于5G NR的小區(qū)搜索相對于長期演進(jìn)(LTE)而言,對同步信號進(jìn)行了重新定義。文章詳細(xì)分析了5G NR系統(tǒng)的主輔同步信號(PSS&SSS),對其新增內(nèi)容進(jìn)行了研究,提出了適用于5G NR系統(tǒng)的小區(qū)搜索算法,使用MATLAB軟件對該算法的性能進(jìn)行了仿真分析,最后在FPGA上實現(xiàn)開發(fā)應(yīng)用。


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

          0   引言

          隨著全球移動通信技術(shù)向著網(wǎng)絡(luò)化和寬帶化趨勢發(fā)展,人們的社會生活方式、工作模式等方面發(fā)生了極大的改變。隨著人類對更高性能移動通信網(wǎng)的追求,移動通信系統(tǒng)也不斷更新?lián)Q代。5G 通信技術(shù)應(yīng)運(yùn)而生,作為測試技術(shù)的先行者,測試儀表 功能的開發(fā)也提上了日程。同步技術(shù)的研究是5G 物理層中一個十分重要的課題。本文的研究工作主要集中于5G 系統(tǒng)下行鏈路的初始同步過程。其中,下行鏈路重點對主同步信號(primary synchronization signal,)以及輔同步信號(secondary synchronization signal,)的檢測方案展開研究并以 實現(xiàn)。本研究致力于 算法技術(shù)研究與實現(xiàn),其意義在于:在市場上,目前5G 測試儀器受到業(yè)界的關(guān)注,本課題研究的與實現(xiàn)適應(yīng)測試儀器市場需求,對通信測試儀器的發(fā)展提供有力支持;隨著移動產(chǎn)業(yè)化的不斷深入發(fā)展,測試儀器作為產(chǎn)業(yè)鏈的重要組成部分越來越受到業(yè)界的關(guān)注,本課題有助于促進(jìn)測試儀器的發(fā)展及推廣。

          作者簡介:袁行猛(1988—),男,工程師,研究方向:信號與信息處理。

          1   過程

          5G NR 小區(qū)搜索是指利用同步信號獲得其所在小區(qū)的ID 號以及取得與基站的時頻同步的過程。本章首先描述了5G NR 小區(qū)搜索流程,然后為使系統(tǒng)的整體性能達(dá)到最優(yōu),對各部分采用的不同算法進(jìn)行分析和討論。小區(qū)搜索流程如圖1 所示。

          0.png

          如圖1 所示,接收到的射頻信號同步流程通常被分為4 個部分:粗時間同步、CP 類型檢測、頻偏估計與補(bǔ)償和 檢測。射頻整機(jī)通過射頻端口接收到5G NR 信號,然后傳到同步模塊。粗時間同步的目的是為了找到 信號的位置以此判定半幀同步,同時還能確定扇區(qū)號。CP 檢測可以確定CP 所屬類型。在頻率同步部分,先進(jìn)行小數(shù)倍頻偏的估計與補(bǔ)償,以保證載波之間的正交性,同時取得定時精同步,經(jīng)過OFDM 解調(diào)到頻域后進(jìn)行整數(shù)倍頻偏估計與補(bǔ)償。 檢測的目的是獲得10 ms 的幀定時同步,同時確定小區(qū)ID 組號。

          2   5G NR小區(qū)搜索算法與仿真實現(xiàn)

          2.1 粗同步算法

          檢測算法都是基于序列相關(guān)運(yùn)算的,原理如圖2 所示?;瑒哟翱诒4媪吮镜卮鎯Φ耐叫蛄校谑盏綌?shù)據(jù)之后,從數(shù)據(jù)起始位置向后移動,每移動1 個采樣點計算1 次相關(guān)系數(shù),當(dāng)?shù)玫? 個相關(guān)峰值時,則認(rèn)為這時滑動窗口和待檢測的同步序列對齊。由于PSS 有3種,所以本地需存儲3 種PSS,且在每次滑動窗口移動時計算3 組相關(guān)系數(shù),相關(guān)峰值最大的序列則為基站發(fā)送的序列,同時確定其值。

          1.png

          直接互相關(guān)法的本質(zhì)是利用滑動搜索的方法,找到與接收信號匹配的同步序列。首先對本地的3 種PSS 序列補(bǔ)零后做IFFT 變換,然后分別與下采樣后的信號做滑動相關(guān),得到3 個序列集,其中最大值所對應(yīng)的序列號就是小區(qū)組內(nèi)ID 號image.png,最大值所在的位置就是同步序列的初始粗同步位置。由于m 序列時域互相關(guān)函數(shù)具有尖銳的峰值,所以能夠得到較為精確的同步位置。互相關(guān)函數(shù)的模值平方如下式:

          image.png

          其中,“()*”表示共軛運(yùn)算; NFFT 表示采樣點數(shù);r(n)代表接收到的下采樣后的信號;s n i ( ) 是本地存儲的時域同步信號,i 取0,1,2 時分別對應(yīng)image.png的值0,1,2;d 是起始時刻,每一時刻做1 次相關(guān)運(yùn)算,得到粗同步位置d?為:d? = MAX {C d i = I ( )} , 0,1,2 。

          2.png

          圖3 小區(qū)組內(nèi)ID為0分別與1,2,3的序列時域互關(guān)性

          圖3 是時域PSS 序列自相關(guān)及互相關(guān)性能仿真圖,顯而易見,PSS 序列有較好的時域相關(guān)性。通過直接互相關(guān)法可以實現(xiàn)對主同步信號的粗定時同步和小區(qū)組內(nèi)ID 的判斷,但是該方法對頻偏的魯棒性較差。當(dāng)存在頻偏ε 時,互相關(guān)函數(shù)表達(dá)式如下:

          image.png

          其中,r′(d + n)表示受頻偏影響的接收信號。由式(1)可以看出,由于頻偏因子e j2π ε/NFFT的存在,對不同時刻的信號都產(chǎn)生相位旋轉(zhuǎn),可以使相關(guān)函數(shù)的峰值衰減,從而對定時同步正確性產(chǎn)生影響。

          2.2 精同步算法

          完成主同步信號檢測后,已經(jīng)獲得小區(qū)組內(nèi)ID 號image.png,由式知image.png與m0 和m1 有關(guān),所以可通過檢測SSS序列獲得image.png,進(jìn)一步根據(jù)image.png確定物理層小區(qū)ID。對于SSS 序列的檢測,既允許在時域進(jìn)行,又允許在頻域進(jìn)行。由于在時域做相關(guān)檢測需要對整個OFDM 符號做檢測,計算復(fù)雜度較大且易受定時估計誤差的影響,而頻域檢測只需提取127 點SSS 序列即可做相關(guān),計算量小且定時同步誤差在頻域上對相關(guān)峰的影響不大,所以可以在頻域進(jìn)行SSS 序列的檢測。

          因為PSS 序列與SSS 序列在時域上只間隔1 個OFDM 符號,在頻域上處于相同的子載波位置。為了提升SSS 信號的解調(diào)性能,可以利用檢測后的PSS 信號得到信道沖擊響應(yīng),再對SSS 信號進(jìn)行補(bǔ)償。令接收到的頻域PSS 信號為基值k ,信道估計結(jié)果可以表示為:

          image.png

          其中,Spss(k) 為本地頻域PSS 序列。假設(shè)接收的SSS

          序列rsss(k) 經(jīng)FFT 轉(zhuǎn)換到頻域為Rsss(k) ,則經(jīng)過信道均衡的SSS 序列可以表示為: R'sss(k)=Rsss(k)/Hpss(k) 。

          頻域SSS 序列是由2 個m 序列優(yōu)選對通過異或運(yùn)算組成的Gold 序列,該序列具有較好的相關(guān)性質(zhì)。將R'sss(k) 與本地產(chǎn)生的336 條SSS 序列分別進(jìn)行頻域互相關(guān),得到:1623915281225214.png,式中i =0,1,...,335,代表此時所選擇的輔同步序列的序列號。通過相關(guān)運(yùn)算的結(jié)果容易找到C(i) 中的最大值對應(yīng)的序列號i,如式:1623915311298406.png

          根據(jù)以上分析,該序列號i 就是小區(qū)組ID 標(biāo)識號image.png

          2.3 仿真結(jié)果分析

          仿真軟件選用的是MATLAB R2015a,根據(jù)前章節(jié)的算法理論分析編寫仿真代碼,編寫的軟件函數(shù)架構(gòu)以及主函數(shù)如圖4 所示。

          3.png

          4.png

          圖4 軟件函數(shù)架構(gòu)和主函數(shù)

          MATLAB 仿真得到的粗同步與精同步結(jié)果如圖6和圖7 所示。

          5.png

          圖6 粗同步結(jié)果

          6.png

          圖7 精同步結(jié)果

          3   5G NR小區(qū)搜索算法的實現(xiàn)

          本研究將對PSS 算法和SSS 時延優(yōu)化算法進(jìn)行實現(xiàn),并通過硬件平臺的綜合結(jié)果對算法進(jìn)行驗證。在通過 實現(xiàn)算法的同時,也會利用一些FPGA 技巧降低實現(xiàn)的復(fù)雜度,節(jié)約開發(fā)成本。本章將給出每個模塊的設(shè)計方案,整體流程和最終的硬件綜合結(jié)果。

          3.1 FPGA開發(fā)板的性能參數(shù)

          在進(jìn)行FPGA 開發(fā)之前,首先要了解FPGA 開發(fā)板的性能和開發(fā)工具的使用,本節(jié)主要介紹本文采用的開發(fā)板性能參數(shù)和開發(fā)工具的能力,F(xiàn)PGA 開發(fā)板的參數(shù)由表1 給出,硬件設(shè)計結(jié)構(gòu)如圖8 所示。

          7.png

          8.png

          圖8 基帶板正反面

          表1 開發(fā)板性能參數(shù)

          9.png

          開發(fā)工具采用Xilinx 的Vivado,該工具內(nèi)部集成了FFT、IFFT、FIFO、RAM、乘法器等常用IP 核,可以極大降低開發(fā)難度。

          3.2 頂層模塊設(shè)計

          圖9 給出了核心模塊、相關(guān)運(yùn)算模塊的結(jié)構(gòu),實現(xiàn)中需要FPGA 進(jìn)行多次遍歷與計算,模塊采用純并行設(shè)計,每個時鐘寫入1 個采樣點,每個采樣點單獨(dú)進(jìn)行計算,求和處采用流水線方式進(jìn)行多個復(fù)數(shù)的求和計算,整體流程時延集中在求和與計算模值,本設(shè)計中利用乘法器直接進(jìn)行序列相乘得到相應(yīng)結(jié)果。整體開發(fā)的程序模塊如圖9 所示。

          10.png

          圖9 程序整體模塊

          top:設(shè)計的頂層文件;

          rx_jesd204_01_interface_u1:射頻信號采集模塊,直接采集射頻信號轉(zhuǎn)換成245.76 MHz 的時鐘速率;NR5G_cell_sync_u:5G NR 小區(qū)搜索頂層模塊;小區(qū)搜索模塊是具體的實現(xiàn)模塊,粗同步、精同步以及各個相關(guān)運(yùn)算等,如圖10 所示。

          11.png

          圖10 小區(qū)搜索主要模塊

          3.3 同步模塊設(shè)計

          主同步信號的FPGA 開發(fā)的過程:該算法的原理在第三章已進(jìn)行介紹,并且通過仿真平臺進(jìn)行了性能評估,圖11 給出了PSS 檢測模塊的功能模塊結(jié)構(gòu),圖12 給出了核心模塊,該模塊存儲了量化后的本地序列。量化后的序列取值均為2 的次冪形式,在模塊的編寫過程中,需要根據(jù)每一項本地序列的量化結(jié)果進(jìn)行寄存器的移位,所以實現(xiàn)的代碼量巨大。該模塊采用純并行設(shè)計,每個時鐘寫入1 個采樣點,每個采樣點單獨(dú)進(jìn)行計算,求和處采用流水線方式進(jìn)行多個復(fù)數(shù)的求和計算,整體流程時延集中在求和與計算模值。

          12.png

          圖12 中的輸出部分有一個簡化取模算法。取模運(yùn)算涉及平方和開根號運(yùn)算,在FPGA 中實現(xiàn)困難,需要借助cordic 算法實現(xiàn),這會引入較大時延和硬件開銷。由于PSS 檢測部分只關(guān)心相關(guān)系數(shù)的大小,對相關(guān)系數(shù)較小的誤差并不敏感,因此可以利用取模的近似算法來計算。

          輔同步信號的FPGA 開發(fā)的過程:

          SSS 檢測采用了分組并行檢測算法,該模塊的FPGA 結(jié)構(gòu)如圖13 所示。將本地SSS 序列分組后進(jìn)行存儲,EN 端口電平拉高后開始進(jìn)行遍歷,計數(shù)器存儲當(dāng)前遍歷次數(shù),每次遍歷同時計算三組序列相關(guān)系數(shù),得到最大值A(chǔ) 和對應(yīng)的NID1,MAX 存儲了相關(guān)系數(shù)最大時對應(yīng)的NID1,遍歷過程中不斷更新。在計數(shù)器計數(shù)到112 時,表示遍歷完成,輸出結(jié)果。該模塊優(yōu)化的目的是降低本地SSS 的生成時延和計算時產(chǎn)生的處理時延,SSS 生成時延是利用查表解決的,每一個SSS 對應(yīng)一張表,存儲著頻域127 點的數(shù)值,在使用時無需消耗額外時鐘周期進(jìn)行生成。計算的處理時延通過分組遍歷進(jìn)行優(yōu)化,分組越多性能越接近并行計算,但消耗的硬件資源也就越多。

          13.png

          3.4 實驗結(jié)果分析

          通過連接整機(jī)射頻后實際采樣,經(jīng)過設(shè)計的FPGA模塊得到的是上板后的真實結(jié)果:小區(qū)ID 126 和499的信號。

          上板測試的結(jié)果正確,功能正常,能正確解出小區(qū)ID,正確給出10 ms 幀頭,從而能確保傳輸給物理層準(zhǔn)確信號,大大提高了解析速度。

          4   結(jié)束語

          本文介紹了5G NR 新一代通信的幀格式,并對5G NR 小區(qū)搜索算法進(jìn)行了研究與仿真,并對PSS 與SSS 同步搜索的算法進(jìn)行了FPGA 實現(xiàn),經(jīng)過仿真驗證和硬件實現(xiàn)驗證了正確性,確定了本研究的可行性。

          參考文獻(xiàn):

          [1] 3GPP TS 38.201:NR;Physical Layer–General Description[S].

          [2] 3GPP TS 38.215: NR; Physical layer measurements[S].

          [3] 張越良.5G新空口下行同步和廣播信道的仿真與FPGA實現(xiàn)

          [D].北京:北京郵電大學(xué),2019.

          [4] 郭秋陽.5G下行信號的同步與檢測技術(shù)研究[D].成都:成都電子科技大學(xué),2019.

          [5] 3GPP TS 38.214: NR; Physical layer procedures for data[S].

          (本文來源于《電子產(chǎn)品世界》雜志社2021年5月期)



          關(guān)鍵詞: 5G NR FPGA 小區(qū)搜索 PSS SSS 202105

          評論


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