5G NR小區搜索算法的研究及FPGA實(shí)現
0 引言
隨著(zhù)全球移動(dòng)通信技術(shù)向著(zhù)網(wǎng)絡(luò )化和寬帶化趨勢發(fā)展,人們的社會(huì )生活方式、工作模式等方面發(fā)生了極大的改變。隨著(zhù)人類(lèi)對更高性能移動(dòng)通信網(wǎng)的追求,移動(dòng)通信系統也不斷更新?lián)Q代。5G 通信技術(shù)應運而生,作為測試技術(shù)的先行者,測試儀表5G NR 功能的開(kāi)發(fā)也提上了日程。同步技術(shù)的研究是5G 物理層中一個(gè)十分重要的課題。本文的研究工作主要集中于5G 系統下行鏈路的初始同步過(guò)程。其中,下行鏈路重點(diǎn)對主同步信號(primary synchronization signal,PSS)以及輔同步信號(secondary synchronization signal,SSS)的檢測方案展開(kāi)研究并以FPGA 實(shí)現。本研究致力于5G NR 小區搜索算法技術(shù)研究與實(shí)現,其意義在于:在市場(chǎng)上,目前5G 測試儀器受到業(yè)界的關(guān)注,本課題研究的5G NR小區搜索與實(shí)現適應測試儀器市場(chǎng)需求,對通信測試儀器的發(fā)展提供有力支持;隨著(zhù)移動(dòng)產(chǎn)業(yè)化的不斷深入發(fā)展,測試儀器作為產(chǎn)業(yè)鏈的重要組成部分越來(lái)越受到業(yè)界的關(guān)注,本課題有助于促進(jìn)測試儀器的發(fā)展及推廣。
作者簡(jiǎn)介:袁行猛(1988—),男,工程師,研究方向:信號與信息處理。
1 小區搜索過(guò)程
5G NR 小區搜索是指利用同步信號獲得其所在小區的ID 號以及取得與基站的時(shí)頻同步的過(guò)程。本章首先描述了5G NR 小區搜索流程,然后為使系統的整體性能達到最優(yōu),對各部分采用的不同算法進(jìn)行分析和討論。小區搜索流程如圖1 所示。
如圖1 所示,接收到的射頻信號同步流程通常被分為4 個(gè)部分:粗時(shí)間同步、CP 類(lèi)型檢測、頻偏估計與補償和SSS 檢測。射頻整機通過(guò)射頻端口接收到5G NR 信號,然后傳到同步模塊。粗時(shí)間同步的目的是為了找到PSS 信號的位置以此判定半幀同步,同時(shí)還能確定扇區號。CP 檢測可以確定CP 所屬類(lèi)型。在頻率同步部分,先進(jìn)行小數倍頻偏的估計與補償,以保證載波之間的正交性,同時(shí)取得定時(shí)精同步,經(jīng)過(guò)OFDM 解調到頻域后進(jìn)行整數倍頻偏估計與補償。SSS 檢測的目的是獲得10 ms 的幀定時(shí)同步,同時(shí)確定小區ID 組號。
2 5G NR小區搜索算法與仿真實(shí)現
2.1 粗同步算法
PSS 檢測算法都是基于序列相關(guān)運算的,原理如圖2 所示?;瑒?dòng)窗口保存了本地存儲的同步序列,在收到數據之后,從數據起始位置向后移動(dòng),每移動(dòng)1 個(gè)采樣點(diǎn)計算1 次相關(guān)系數,當得到1 個(gè)相關(guān)峰值時(shí),則認為這時(shí)滑動(dòng)窗口和待檢測的同步序列對齊。由于PSS 有3種,所以本地需存儲3 種PSS,且在每次滑動(dòng)窗口移動(dòng)時(shí)計算3 組相關(guān)系數,相關(guān)峰值最大的序列則為基站發(fā)送的序列,同時(shí)確定其值。
直接互相關(guān)法的本質(zhì)是利用滑動(dòng)搜索的方法,找到與接收信號匹配的同步序列。首先對本地的3 種PSS 序列補零后做IFFT 變換,然后分別與下采樣后的信號做滑動(dòng)相關(guān),得到3 個(gè)序列集,其中最大值所對應的序列號就是小區組內ID 號,最大值所在的位置就是同步序列的初始粗同步位置。由于m 序列時(shí)域互相關(guān)函數具有尖銳的峰值,所以能夠得到較為精確的同步位置?;ハ嚓P(guān)函數的模值平方如下式:
其中,“()*”表示共軛運算; NFFT 表示采樣點(diǎn)數;r(n)代表接收到的下采樣后的信號;s n i ( ) 是本地存儲的時(shí)域同步信號,i 取0,1,2 時(shí)分別對應的值0,1,2;d 是起始時(shí)刻,每一時(shí)刻做1 次相關(guān)運算,得到粗同步位置d?為:d? = MAX {C d i = I ( )} , 0,1,2 。
圖3 小區組內ID為0分別與1,2,3的序列時(shí)域互關(guān)性
圖3 是時(shí)域PSS 序列自相關(guān)及互相關(guān)性能仿真圖,顯而易見(jiàn),PSS 序列有較好的時(shí)域相關(guān)性。通過(guò)直接互相關(guān)法可以實(shí)現對主同步信號的粗定時(shí)同步和小區組內ID 的判斷,但是該方法對頻偏的魯棒性較差。當存在頻偏ε 時(shí),互相關(guān)函數表達式如下:
其中,r′(d + n)表示受頻偏影響的接收信號。由式(1)可以看出,由于頻偏因子e j2π ε/NFFT的存在,對不同時(shí)刻的信號都產(chǎn)生相位旋轉,可以使相關(guān)函數的峰值衰減,從而對定時(shí)同步正確性產(chǎn)生影響。
2.2 精同步算法
完成主同步信號檢測后,已經(jīng)獲得小區組內ID 號,由式知
與m0 和m1 有關(guān),所以可通過(guò)檢測SSS序列獲得
,進(jìn)一步根據
確定物理層小區ID。對于SSS 序列的檢測,既允許在時(shí)域進(jìn)行,又允許在頻域進(jìn)行。由于在時(shí)域做相關(guān)檢測需要對整個(gè)OFDM 符號做檢測,計算復雜度較大且易受定時(shí)估計誤差的影響,而頻域檢測只需提取127 點(diǎn)SSS 序列即可做相關(guān),計算量小且定時(shí)同步誤差在頻域上對相關(guān)峰的影響不大,所以可以在頻域進(jìn)行SSS 序列的檢測。
因為PSS 序列與SSS 序列在時(shí)域上只間隔1 個(gè)OFDM 符號,在頻域上處于相同的子載波位置。為了提升SSS 信號的解調性能,可以利用檢測后的PSS 信號得到信道沖擊響應,再對SSS 信號進(jìn)行補償。令接收到的頻域PSS 信號為基值k ,信道估計結果可以表示為:
。
其中,Spss(k) 為本地頻域PSS 序列。假設接收的SSS
序列rsss(k) 經(jīng)FFT 轉換到頻域為Rsss(k) ,則經(jīng)過(guò)信道均衡的SSS 序列可以表示為: R'sss(k)=Rsss(k)/Hpss(k) 。
頻域SSS 序列是由2 個(gè)m 序列優(yōu)選對通過(guò)異或運算組成的Gold 序列,該序列具有較好的相關(guān)性質(zhì)。將R'sss(k) 與本地產(chǎn)生的336 條SSS 序列分別進(jìn)行頻域互相關(guān),得到:,式中i =0,1,...,335,代表此時(shí)所選擇的輔同步序列的序列號。通過(guò)相關(guān)運算的結果容易找到C(i) 中的最大值對應的序列號i,如式:
。
根據以上分析,該序列號i 就是小區組ID 標識號 。
2.3 仿真結果分析
仿真軟件選用的是MATLAB R2015a,根據前章節的算法理論分析編寫(xiě)仿真代碼,編寫(xiě)的軟件函數架構以及主函數如圖4 所示。
圖4 軟件函數架構和主函數
MATLAB 仿真得到的粗同步與精同步結果如圖6和圖7 所示。
圖6 粗同步結果
圖7 精同步結果
3 5G NR小區搜索算法的FPGA實(shí)現
本研究將對PSS 算法和SSS 時(shí)延優(yōu)化算法進(jìn)行實(shí)現,并通過(guò)硬件平臺的綜合結果對算法進(jìn)行驗證。在通過(guò)FPGA 實(shí)現算法的同時(shí),也會(huì )利用一些FPGA 技巧降低實(shí)現的復雜度,節約開(kāi)發(fā)成本。本章將給出每個(gè)模塊的設計方案,整體流程和最終的硬件綜合結果。
3.1 FPGA開(kāi)發(fā)板的性能參數
在進(jìn)行FPGA 開(kāi)發(fā)之前,首先要了解FPGA 開(kāi)發(fā)板的性能和開(kāi)發(fā)工具的使用,本節主要介紹本文采用的開(kāi)發(fā)板性能參數和開(kāi)發(fā)工具的能力,FPGA 開(kāi)發(fā)板的參數由表1 給出,硬件設計結構如圖8 所示。
圖8 基帶板正反面
表1 開(kāi)發(fā)板性能參數
開(kāi)發(fā)工具采用Xilinx 的Vivado,該工具內部集成了FFT、IFFT、FIFO、RAM、乘法器等常用IP 核,可以極大降低開(kāi)發(fā)難度。
3.2 頂層模塊設計
圖9 給出了核心模塊、相關(guān)運算模塊的結構,實(shí)現中需要FPGA 進(jìn)行多次遍歷與計算,模塊采用純并行設計,每個(gè)時(shí)鐘寫(xiě)入1 個(gè)采樣點(diǎn),每個(gè)采樣點(diǎn)單獨進(jìn)行計算,求和處采用流水線(xiàn)方式進(jìn)行多個(gè)復數的求和計算,整體流程時(shí)延集中在求和與計算模值,本設計中利用乘法器直接進(jìn)行序列相乘得到相應結果。整體開(kāi)發(fā)的程序模塊如圖9 所示。
圖9 程序整體模塊
top:設計的頂層文件;
rx_jesd204_01_interface_u1:射頻信號采集模塊,直接采集射頻信號轉換成245.76 MHz 的時(shí)鐘速率;NR5G_cell_sync_u:5G NR 小區搜索頂層模塊;小區搜索模塊是具體的實(shí)現模塊,粗同步、精同步以及各個(gè)相關(guān)運算等,如圖10 所示。
圖10 小區搜索主要模塊
3.3 同步模塊設計
主同步信號的FPGA 開(kāi)發(fā)的過(guò)程:該算法的原理在第三章已進(jìn)行介紹,并且通過(guò)仿真平臺進(jìn)行了性能評估,圖11 給出了PSS 檢測模塊的功能模塊結構,圖12 給出了核心模塊,該模塊存儲了量化后的本地序列。量化后的序列取值均為2 的次冪形式,在模塊的編寫(xiě)過(guò)程中,需要根據每一項本地序列的量化結果進(jìn)行寄存器的移位,所以實(shí)現的代碼量巨大。該模塊采用純并行設計,每個(gè)時(shí)鐘寫(xiě)入1 個(gè)采樣點(diǎn),每個(gè)采樣點(diǎn)單獨進(jìn)行計算,求和處采用流水線(xiàn)方式進(jìn)行多個(gè)復數的求和計算,整體流程時(shí)延集中在求和與計算模值。
圖12 中的輸出部分有一個(gè)簡(jiǎn)化取模算法。取模運算涉及平方和開(kāi)根號運算,在FPGA 中實(shí)現困難,需要借助cordic 算法實(shí)現,這會(huì )引入較大時(shí)延和硬件開(kāi)銷(xiāo)。由于PSS 檢測部分只關(guān)心相關(guān)系數的大小,對相關(guān)系數較小的誤差并不敏感,因此可以利用取模的近似算法來(lái)計算。
輔同步信號的FPGA 開(kāi)發(fā)的過(guò)程:
SSS 檢測采用了分組并行檢測算法,該模塊的FPGA 結構如圖13 所示。將本地SSS 序列分組后進(jìn)行存儲,EN 端口電平拉高后開(kāi)始進(jìn)行遍歷,計數器存儲當前遍歷次數,每次遍歷同時(shí)計算三組序列相關(guān)系數,得到最大值A 和對應的NID1,MAX 存儲了相關(guān)系數最大時(shí)對應的NID1,遍歷過(guò)程中不斷更新。在計數器計數到112 時(shí),表示遍歷完成,輸出結果。該模塊優(yōu)化的目的是降低本地SSS 的生成時(shí)延和計算時(shí)產(chǎn)生的處理時(shí)延,SSS 生成時(shí)延是利用查表解決的,每一個(gè)SSS 對應一張表,存儲著(zhù)頻域127 點(diǎn)的數值,在使用時(shí)無(wú)需消耗額外時(shí)鐘周期進(jìn)行生成。計算的處理時(shí)延通過(guò)分組遍歷進(jìn)行優(yōu)化,分組越多性能越接近并行計算,但消耗的硬件資源也就越多。
3.4 實(shí)驗結果分析
通過(guò)連接整機射頻后實(shí)際采樣,經(jīng)過(guò)設計的FPGA模塊得到的是上板后的真實(shí)結果:小區ID 126 和499的信號。
上板測試的結果正確,功能正常,能正確解出小區ID,正確給出10 ms 幀頭,從而能確保傳輸給物理層準確信號,大大提高了解析速度。
4 結束語(yǔ)
本文介紹了5G NR 新一代通信的幀格式,并對5G NR 小區搜索算法進(jìn)行了研究與仿真,并對PSS 與SSS 同步搜索的算法進(jìn)行了FPGA 實(shí)現,經(jīng)過(guò)仿真驗證和硬件實(shí)現驗證了正確性,確定了本研究的可行性。
參考文獻:
[1] 3GPP TS 38.201:NR;Physical Layer–General Description[S].
[2] 3GPP TS 38.215: NR; Physical layer measurements[S].
[3] 張越良.5G新空口下行同步和廣播信道的仿真與FPGA實(shí)現
[D].北京:北京郵電大學(xué),2019.
[4] 郭秋陽(yáng).5G下行信號的同步與檢測技術(shù)研究[D].成都:成都電子科技大學(xué),2019.
[5] 3GPP TS 38.214: NR; Physical layer procedures for data[S].
(本文來(lái)源于《電子產(chǎn)品世界》雜志社2021年5月期)
評論