李貴勇,張翰卿,王永航
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
5G用戶設(shè)備(User Equipment,UE)開機(jī)后的第一步是小區(qū)搜索過程[1]。UE通過檢測主同步信號(Primary Synchronization Signal,PSS)和輔同步信號(Secondary Synchronization Signal,SSS)得到物理小區(qū)標(biāo)識(Physical Cell Identifier,PCI)和時頻同步,并在進(jìn)行信號均衡后解析物理廣播信道(Physical Broadcast Channel,PBCH),獲得主系統(tǒng)信息(Master Information Block,MIB)。
檢測同步信號的過程,尤其是同步點的準(zhǔn)確與否對于性能的影響極大。循環(huán)前綴(Cyclic Prefix,CP)技術(shù)允許同步點可以有一定程度的向前偏移,但是其造成的相位偏移在后續(xù)過程中很難通過算法來彌補(bǔ),對于接下來的信道處理過程有很大影響。而同步點向后偏移造成的數(shù)據(jù)丟失則完全無法消除。
因此,本文將著眼于檢測同步點的性能。文獻(xiàn)[2]介紹了使用最廣泛的時域互相關(guān)算法,將接收時域信號與本地生成的PSS時域序列進(jìn)行相關(guān);文獻(xiàn)[3]提出了一種時域自相關(guān)算法,利用PSS時域序列的共軛對稱性計算同步點;文獻(xiàn)[4-5]提出了一種分段互相關(guān)算法,將接收信號分段相關(guān),以降低頻偏累加造成的影響;文獻(xiàn)[6]利用現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)的并行策略實現(xiàn)了下行同步算法。
本文基于m序列的三階自相關(guān)特性,提出了一種新型的定時同步檢測FPGA算法,有望在低信噪比環(huán)境下提高同步過程中同步點的準(zhǔn)確性,并通過Matlab和SE14.7等軟件搭建了仿真鏈路,以驗證算法的復(fù)雜度與可行性。
下行同步是小區(qū)搜索過程的第一步。UE按照全球同步柵格(Global Synchronization Channel Number,GSCN)對應(yīng)的頻段搜索同步廣播塊(Synchronization Signal/PBCH Block,SSB)中的PSS和SSS。
圖1所示為5G系統(tǒng)下行同步過程,下行同步首先檢測PSS。UE通過對接收到的信號采用降采樣等方法進(jìn)行處理,粗略地檢測PSS存在的大概位置,此過程稱為粗同步過程,檢測的PSS粗略位置稱為粗同步點。以粗同步點為基準(zhǔn),檢測出準(zhǔn)確的PSS時域序列位置的過程稱為精同步過程,得到的PSS時域序列起始點稱為精同步點[7]。
圖1 5G系統(tǒng)下行同步過程
此外,UE在與基站建立連接后,由于時鐘精確度和信號處理時延等問題,下行同步過程中建立的同步可能會逐漸偏離正確的同步點。為此,UE需要每隔一段時間重新計算同步點,此過程稱為同步跟蹤過程。
不同于4G中使用的Zadoff-Chu(ZC)序列,5G系統(tǒng)中PSS使用m序列,原因在于在存在時偏和頻偏的情況下,ZC序列的相關(guān)函數(shù)存在較大的旁瓣,會影響檢測性能[8]。令一個m序列為x(i),則其三階自相關(guān)函數(shù)為
式中:Cm為三階相關(guān)值;i為離散序列相位;L為離散序列長度;p和q均為離散序列相對相位[9-10]。
根據(jù)m序列的移位相加特性,存在p和q,使得對任意i,有x(i-p)x(i+q)=x(i),則根據(jù)m序列的性質(zhì),此時序列的三階相關(guān)函數(shù)Cm出現(xiàn)峰值Cm(p,q)=1。對于其他的i、p和q組合,有x(i-p)x(i+q)≠x(i),此時Cm(p,q)=-1/L,即m序列的三階相關(guān)函數(shù)為
對于5G系統(tǒng)中PSS使用的m序列,其三階相關(guān)函數(shù)峰值位置如表1所示。
表1 5G PSS三階相關(guān)函數(shù)峰值位置
傳統(tǒng)的PSS同步算法有時域互相關(guān)和時域自相關(guān)算法。
令接收信號為a(t)+n(t),t為模擬信號相位,a(t)為有用信號,在本文中特指時域同步序列,n(t)為白噪聲。若使用互相關(guān)方法,本地生成a(t)信號,并與接收信號進(jìn)行互相關(guān),則互相關(guān)值為
式中:v為未知相位,進(jìn)行滑動相關(guān)時會變化,乘法代表序列相關(guān)運(yùn)算。當(dāng)n(t)的幅度較大時,有用部分a(t+v)a(t)可能會淹沒在干擾部分a(t+v)n(t)中,造成性能損失。由此可知,互相關(guān)算法的抗干擾性能較差。
時域自相關(guān)算法是將當(dāng)前接收信號與一個SSB檢測周期后的接收信號進(jìn)行相關(guān),如果出現(xiàn)相關(guān)峰值,則認(rèn)為該位置為PSS。此算法中若接收噪聲為理想白噪聲,則認(rèn)為兩個時刻的噪聲沒有相關(guān)性,相關(guān)值受噪聲影響小。故自相關(guān)算法比互相關(guān)算法具有更加優(yōu)秀的抗干擾性能。
雖然時域自相關(guān)算法理論上可行,但該算法需要儲存一個SSB檢測周期內(nèi)的所有數(shù)據(jù)(文獻(xiàn)[11]規(guī)定,如果UE沒有配置,默認(rèn)檢測周期為20 ms),所需空間資源極大,并且SSS與PSS有同樣的自相關(guān)峰值特性,算法無法確定此位置究竟是PSS還是SSS。
本文基于PSS使用的m序列的三階相關(guān)性質(zhì),提出一種可在精同步過程和同步跟蹤過程中使用的新型同步算法。
對接收信號進(jìn)行三階相關(guān),其相關(guān)值為
由于n(t)為白噪聲,我們認(rèn)為n(t)、n(t-p)和n(t+q)之間沒有相關(guān)性,或相關(guān)性極小。a(t)為m序列,根據(jù)m序列的性質(zhì)a(t)a(t+v)當(dāng)且僅當(dāng)v=0時有極大值,故在理想情況下式(4)僅剩下有用部分a(t)a(t-p)a(t+q),相比于式(3),有用部分的抗干擾性能更強(qiáng)。當(dāng)然實際噪聲不是理想白噪聲,當(dāng)噪聲幅值足夠大時,依舊會影響到有用部分的檢測。
同時,三階相關(guān)計算不需要其他時刻的信號。因此,此方法既可以使用自相關(guān)抵抗白噪聲的干擾,又避免了時域自相關(guān)需要消耗大量空間和時間資源的問題。
算法具體流程如下:
令一段接收信號為s(t),已經(jīng)進(jìn)行降采樣使得一個正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)符號中采樣點數(shù)為2 048點,并且已經(jīng)下變頻使得PSS所在的頻域位置位于接收信號中頻。
步驟1:假設(shè)粗同步過程計算出的同步點為s(v),v為粗同步點在接收序列中的位置,計算粗同步點時的精確度為±16點。則UE認(rèn)為s(v-15)、s(v-14)、…、s(v+16)中存在精同步點。
取[s(v-15)、s(v-14)、…、s(v+2 032)]、[s(v-14)、s(v-13)、…、s(v+2 033)]、…、[s(v+16)、s(v+17)、…、s(v+2 063)]這32段序列,分別作快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT),得到32組2048點頻域序列。
步驟2:分別從這32組序列中取PSS所在位置的127點:
式中:PSSk為從頻域序列中取得的32組PSS;wk(n)為步驟1中得到的32組頻域序列。
步驟3:對這些序列進(jìn)行三階相關(guān),得到
式中,Ck(p,q)為序列的三階相關(guān)函數(shù)。
PSS三階相關(guān)的峰值位置如表1所示。這里任取一理論峰值位置,如(p=3,q=4)處,則認(rèn)為這32個相關(guān)值中的最大值Ck(3,4)對應(yīng)的PSSk即為準(zhǔn)確的PSS,其對應(yīng)時域序列的起始點即為精確的定時同步點。
上述過程針對下行精同步過程,如果應(yīng)用在同步跟蹤過程中,只需要將步驟1中的粗同步點替換成現(xiàn)有的同步點即可。
使用Matlab軟件搭建仿真鏈路。首先測試精同步過程中算法的性能。信道模型使用加性高斯白噪聲(Additive White Gaussian Noise,AWGN)信道。令一個OFDM符號采樣點數(shù)為2 048, PSS占據(jù)頻域中心的127個點。粗同步過程的精確度為±16點,具體仿真參數(shù)配置,如表2所示。
表2 精同步過程仿真參數(shù)配置
作為對比,仿真還測試了文獻(xiàn)[2]中提供的傳統(tǒng)時域互相關(guān)算法和文獻(xiàn)[3]中提供的基于CP共軛對稱性的精同步算法。每種算法仿真1 000次,記錄檢測出正確同步點的次數(shù)并計算正確率。圖2所示為3種算法在不同信噪比下正確率的對比。
圖2 下行同步算法檢測同步點的正確率
由圖可知,如第2節(jié)所述,傳統(tǒng)時域互相關(guān)算法在抗噪聲方面能力有限,當(dāng)信噪比下降至2 dB左右時,時域互相關(guān)算法已經(jīng)無法保證100%的正確率;信噪比繼續(xù)下降至2 dB左右時,時域互相關(guān)算法開始出現(xiàn)檢測錯誤的情況,而基于CP共軛對稱性的精同步算法和基于三階相關(guān)的算法仍然保持著100%的正確率;當(dāng)信噪比低至-7 dB后,三階相關(guān)算法檢測正確率相比時域互相關(guān)算法高出32%,比基于CP共軛對稱性的精同步算法的正確率高出27%。
接下來測試算法在同步跟蹤時的性能,信道和幀結(jié)構(gòu)參數(shù)配置與精同步過程相同。如果信號接收模塊的時鐘精度足夠高,則跟蹤算法只需要1幀或兩幀運(yùn)行一次,就可以保證每次同步點的偏移不會很多。仿真中設(shè)置最大偏移量為5個點,即算法只計算當(dāng)前同步點左右各5個點的相關(guān)值,而不是精同步過程中的左右各16個點。
作為對比,仿真測試了時域互相關(guān)算法和文獻(xiàn)[12]提出的基于參考信號時域信道脈沖響應(yīng)的同步跟蹤算法,該算法用參考信號信道脈沖響應(yīng)的幅值進(jìn)行定時同步。圖3所示為3種算法檢測正確率的對比。
圖3 同步跟蹤算法檢測同步點的正確率
三階相關(guān)算法在同步跟蹤過程中的性能與下行同步過程類似。而時域互相關(guān)算法由于限制了同步點的偏移量,檢測正確的概率略有提高,但在低信噪比環(huán)境下仍然性能不佳。參考信號的發(fā)送功率一般比同步信號的發(fā)送功率高,所以基于參考信號時域信道脈沖響應(yīng)的同步跟蹤算法在3種算法中性能最好。當(dāng)信噪比降低至-7 dB時,三階相關(guān)算法檢測正確率相比基于參考信號的算法低2%。
本文使用ISE14.7軟件編寫了Verilog代碼。采用xc7vx690t-1ffg1158作為FPGA芯片。FFT和乘法器模塊均使用ISE14.7軟件自帶的ip核。圖4所示為頂層寄存器轉(zhuǎn)換級電路圖。圖中,Rx_data_r為輸入的接收信號;Acc_syn_clk為時鐘;adder_number為粗同步過程精確度;MAU_1_path_start為相關(guān)模塊開始標(biāo)志;Rst_n為復(fù)位信號;fft_2 048為2 048點FFT模塊;MAU為相關(guān)計算模塊;Acc_syn_cmp為相關(guān)值比較模塊。
圖4 FPGA代碼寄存器轉(zhuǎn)換級電路圖
精同步過程開始后,分別將32組接收信號送至FFT模塊進(jìn)行時頻域轉(zhuǎn)換,然后將頻域信號送至MAU模塊進(jìn)行三階相關(guān),最后將相關(guān)值送入Acc_syn_cmp模塊進(jìn)行比較,返回相關(guān)值最大的同步點為精同步點。
使用Matlab軟件粗同步后的數(shù)據(jù)作為模塊輸入,驗證FPGA算法。圖5所示為FPGA代碼和Matlab軟件代碼運(yùn)行正確率比較。由于FPGA使用的定點數(shù)相比于Matlab軟件使用的浮點數(shù)損失了小數(shù)部分的精度,故偶爾會存在Matlab代碼檢測正確而FPGA代碼檢測錯誤的情況,但整體上兩者性能相同。
圖5 軟硬件代碼性能比較
表3所示為三階相關(guān)算法使用FPGA實現(xiàn)時占用的硬件資源。本算法的實現(xiàn)除了最基本的信號存儲之外,需要1個FFT模塊和1個127點相關(guān)模塊,復(fù)數(shù)乘法1次需要4次乘法,則127點相關(guān)可以使用128×4/N個乘法器,其中N為正整數(shù),可以根據(jù)需要調(diào)整。本文使用4個乘法器,另外還有兩個乘法器實現(xiàn)復(fù)數(shù)求模,共6個乘法器。
表3 算法占用FPGA資源
表4所示為三階相關(guān)算法和其他算法需要的模塊數(shù)目比較。
表4 各種算法使用模塊數(shù)
考慮到FPGA的模塊復(fù)用機(jī)制,下行同步除了檢測PSS還需要檢測SSS,而檢測SSS的過程一般在頻域進(jìn)行[13],同步跟蹤過程運(yùn)行時信號已經(jīng)從時域變換為頻域,所以無論如何都需要1個FFT模塊。這個模塊考慮到,三階相關(guān)算法、時域互相關(guān)算法和基于CP的精同步算法的資源消耗僅在于相關(guān)模塊使用的乘法器數(shù)量。但基于參考信號的跟蹤算法仍然需要額外的快速傅里葉逆變換(Inverse Fast Fourier Transform, ITTF)模塊。
時間資源上,F(xiàn)FT所需時鐘周期取決于設(shè)置,以本文配置的Pipelined, Streaming I/O、2 048點FFT為例,這種配置下,一次FFT需要6 265個時鐘周期。相關(guān)過程需要的時鐘周期取決于乘法器的數(shù)量,本文使用4個乘法器,則相關(guān)過程需要128個時鐘周期,本文的算法需要204 576個時鐘周期。
文獻(xiàn)[11]規(guī)定SSB最低發(fā)送周期為5 ms,即理論上精同步過程和同步跟蹤過程最快也要5 ms才運(yùn)行一次,實際項目中假設(shè)同步模塊的時鐘頻率為153.6 MHz (30.72 MHz×4), 5 ms總共有768 000個時鐘,遠(yuǎn)遠(yuǎn)高于算法運(yùn)行時間,故算法的時間復(fù)雜度是可以接受的。
實際情況中,按照5G系統(tǒng)的流程,下行同步過程只要正確檢測出PCI即停止運(yùn)行,不再需要運(yùn)行算法。同步跟蹤過程也不需要每5 ms運(yùn)行一次同步算法,每1幀或兩幀運(yùn)行一次算法即可保持良好的同步性能。算法時間復(fù)雜度的影響將進(jìn)一步減少。
本文根據(jù)m序列的三階相關(guān)特性,提出了一種基于三階相關(guān)的定時同步算法。仿真結(jié)果表明,相比于傳統(tǒng)的下行精同步算法,三階相關(guān)的定時同步算法可以在不使用更多空間資源的同時,具有良好的抗白噪聲性能,而在實際應(yīng)用中算法時間消耗的提升可以忽略。當(dāng)信噪比下降至-7 dB時,三階相關(guān)的定時同步算法與傳統(tǒng)下行精同步算法相比,檢測同步點的準(zhǔn)確率提高了20%~30%。而在同步跟蹤過程中,本算法的性能相比使用參考信號的算法低5%以內(nèi),但使用資源方面少用了1個IFFT模塊。
但是三階相關(guān)同步算法是精同步算法,當(dāng)其應(yīng)用在下行同步過程中時,非常依賴粗同步算法的性能。如果粗同步算法無法定位到準(zhǔn)確同步點附近,UE在同步失敗后會反復(fù)運(yùn)行下行同步過程,此時本算法時間消耗的增加可能會導(dǎo)致整體同步過程時間延長。