張 陽,鄭聒天,張 建,龐立華,3,欒英姿
(1.西安電子科技大學 綜合業務網理論及關鍵技術國家重點實驗室,陜西 西安 710071;2.東南大學 移動通信國家重點實驗室,江蘇 南京 210096;3.西安科技大學 通信與信息工程學院,陜西 西安 710054)
對于任何一個多用戶通信系統而言,多址接入起到了至關重要的作用,而隨機接入作為多址接入的一種受到了廣泛的研究。目前,研究人員主要通過虛警概率和漏檢概率來衡量隨機接入的性能,同時利用檢測所需要的乘加運算次數評估隨機接入的復雜度[1]?,F有的針對隨機接入過程的研究主要集中在鏈路層和物理層兩個方面。在鏈路層方面,研究主要包含隨機接入協議和鏈路資源分配等[2-4]。在物理層方面,研究則主要集中在不同應用場景下的隨機接入檢測算法優化。
根據相關域的不同,物理層隨機接入檢測算法主要分為時域檢測算法和頻域檢測算法[5-6]。時域檢測算法就是利用具有良好相關特性的本地序列與接收信號進行相關運算進行檢測[7],包括自相關[8]、互相關[9]以及延遲相關[10]等多種形式。頻域檢測算法的原理是將接收信號變換到頻域,和本地的前導序列的頻域復共軛形式進行點乘,計算功率時延譜,最后利用檢測門限對功率時延譜進行判決。
針對不同應用場景,需要在原有的時頻域相關的基礎上進行優化,提升算法在該場景下的檢測性能。然而,現有的研究主要集中在高速或大頻偏等場景下的算法優化[11-13],對于低信噪比環境下的前導檢測算法研究卻幾乎沒有。當信噪比很低時,為了能夠較好地檢測出信號,需要加大相關窗的長度。對于時域檢測而言,這會增加實現相關運算的復數乘法器資源,而對于頻域檢測而言,高點數的離散傅里葉變換(Discrete Fourier Transform,DFT)同樣會消耗大量的資源來實現多級濾波或者DFT查找表的建立。因此,當相關窗長度過長時,傳統的檢測算法甚至會造成實際工程中信號處理板卡的資源溢出。
筆者提出了一種聯合分段相關和選擇式分離多徑接收(Joint Segment Correlation and Selective RAKE,JSC-SRAKE)的時域前導檢測算法。終端上行鏈路的隨機接入前導序列是由多段重復的具有良好的自相關和互相關特性的恒幅零自相關(Constant Amplitude Zero AutoCorrelation waveform,CAZAC)序列經過巴克碼加權構成的,在基站端,接收信號首先與本地恒幅零自相關序列分段相關累加來減少硬件實現時的資源消耗。考慮到分段減小了相關窗中的信號能量,所以接著對相關值做選擇式分離多徑接收(Selective RAKE,SRAKE)處理,從而有效增加信號的能量,提升系統在低信噪比環境下的檢測性能。
在構造隨機接入前導的過程中,主要考慮兩個會影響系統檢測性能的因素,一個是構成前導的序列,另一個則是前導的長度。由于恒幅零自相關序列具有恒包絡以及良好的自相關和互相關特性,目前已經廣泛應用于長期演進技術(Long Term Evolution,LTE)系統中,筆者也同樣采用恒幅零自相關序列中的一種Zadoff-Chu序列來構造隨機接入前導。長度為L的Zadoff-Chu序列可以表示為
(1)
其中,K為與長度L互質且不大于L的整數。
為了保證系統在低信噪比環境下具有較好的隨機接入檢測性能,常用的方法就是采用直接相關檢測的方式,同時增加系統隨機接入前導的長度[14]。但是,在硬件實現過程中,相關窗長度越長,意味著資源消耗越多。以文中實際應用場景為例,在當前散射信道下前期試驗表明,如果采用時域直接相關的檢測算法,為了保證系統在-17 dB信噪比下的漏檢概率和虛警概率滿足10-3及以下的性能指標,隨機接入前導序列長度應該設計為6 760左右。在利用Xilinx公司的V7-690t芯片實現該算法過程中發現,當系統需要同時檢測8路隨機接入前導時,用于實現直接相關檢測算法的塊隨機存取存儲器(Block Random Access Memory,BRAM)和數字信號處理器(Digital Signal Processor,DSP)資源已經溢出,不具備硬件可實現性。
因此,針對低信噪比情況下相關窗長度過長導致硬件資源消耗增加甚至溢出的問題,在發端相應地采用了一種分段形式的隨機接入前導構造方法。
假定本地相關序列是長度為M的CAZAC序列,隨機接入前導的分段數為m。如果在d0時刻接收端的前導完全進入相關窗,那么此時的相關累加值C(d0)最大。忽略噪聲和信道的影響,d0時刻的相關峰值C(d0)=Mm,等于前導序列的長度。然而,由于前導序列的結構具有重復性,當在(d0-M)時刻,相關窗內包含(m-1)段CAZAC序列,此時的相關值C(d0-M)=M(m-1),幅度只是d0時刻的相關峰值的1/m。

圖1 未進行巴克碼加權相關檢測曲線
圖1仿真的是由13段重復的長度為509的CAZAC序列構成的隨機接入前導的分段相關累加曲線。如圖中游標所示,在2 060這個采樣時刻點,前導序列完全進入相關窗,此刻的相關峰值最大。但是因為序列的重復特性,導致每間隔509個采樣點都會出現一個幅度相近的相關峰值。由于相鄰的兩個峰值幅度相近,所以在利用門限對相關峰值檢測時,門限可選范圍將會變得非常小。在設計檢測算法時,為了降低檢測性能對門限的敏感度,應使得相關峰值尤為明顯,從而擴大判決門限的可選范圍。
利用m位巴克碼分別對每段CAZAC序列進行加權。在接收端,也相應地對每個分段相關值采用相同的巴克碼進行加權。與CAZAC序列特性類似,巴克碼的自相關值等于序列的長度,局部自相關值為0或者±1。忽略信道和噪聲對相關值的影響,經過巴克碼加權之后,d0時刻的相關峰值C(d0)=Mm不變。而在(d0-M)時刻,用于分段相關的接收信號r(n)可以表示為
(2)
其中,N(n)代表的是n時刻的噪聲,w(j)代表的是用于對第j個分段數據加權的巴克碼。此時,接收信號與本地序列分段相關累加值C(d0-M)可以通過下式計算得到:

(3)
從式(3)可以看出,經過巴克碼加權后,d0-M時刻的分段相關累加值相當于m位巴克碼的局部自相關值與分段長度M的乘積,可能等于0或者±M。

圖2 巴克碼加權相關檢測曲線
圖2仿真的是經過13位巴克碼加權后的分段累加曲線。從圖中可以看出,通過巴克碼加權破壞了原本前導序列的重復結構,同時利用巴克碼良好的相關性,降低了其他時刻的相關值,因此經過加權后的前導序列相關峰值尤為明顯。
綜上所述,通過分段形式構造隨機接入前導序列,同時在接收端采用分段相關累加,在硬件實現時將大大減少用于相關運算的復數乘法器資源,使得并行多路隨機接入檢測在硬件上變得可能。同時,利用巴克碼加權的方式避免因為分段相關產生的多峰值,有效提升了系統的檢測性能。
RAKE接收是一種通過合并多徑信號增加有用信號能量的技術,通過RAKE接收可以有效提升相關窗中的信號能量,從而提升系統的檢測性能。RAKE接收算法包含多徑搜索、相位補償、時延補償以及多徑合并等處理流程。根據多徑搜索方式的不同,RAKE接收算法主要分為3種:SRAKE、全部RAKE(All RAKE,ARAKE)和部分RAKE(Partial RAKE,PRAKE)。由于RAKE接收機性能受合并多徑數目影響,合并多徑數目越多,性能越好。因此,ARAKE接收機的檢測性能最好。而文獻[15]中的相關研究表明,對于SRAKE接收機,隨著合并多徑數目的增加,對檢測性能的提升越小。對于PRAKE接收機,由于最先達到的幾徑不一定是能量最強的,所以其性能也是相對最差的。因此,綜合考慮實現復雜度和檢測性能,采用SRAKE作為多徑搜索算法。為了使得表述更加清晰,接下來將以連續信號形式通過理論推導分析SRAKE接收算法的性能。
假設n(t)是服從高斯分布的加性白噪聲,其可以表示為
(4)
其中,Spow代表信號的平均功率,P代表噪聲的平均功率,SNR代表信噪比。假設發送前導信號為p(t),那么根據多徑傳輸模型,可得基站接收信號r(t)為
(5)
其中,D代表散射信道中多徑數目,αl為第l條路徑的增益,τl是第l條路徑所對應的時延,φl則代表的是第l條路徑的相位。
基站端接收信號首先經過相關器,如果相關窗的長度為T,那么相關器輸出信號為
(6)
假定以第一徑信號作為基準,那么對于第一徑信號而言,有τ0=0,φ0=0。因此,當第一徑信號剛好經過相關器之后,式(6)可以表示為

(7)
對于式(7)的倒數第2等式,第1項表示的是前導序列自身的共軛相關值,所以根據式(1)對ZC序列的定義可以推出第1項等于α0T;第2項表示的是當前其他徑的信號對第一徑信號的干擾,而由于CAZAC序列的互相關值很小,相對于自相關值基本可以忽略,故該項設為0。因此,忽略噪聲以及其他徑信號對當前徑的影響,那么當第l條路徑信號經過相關器之后,可以表示為
Cl(t)=αlTexp(jφl)δ(t-τl) 。
(8)

圖3 散射信道特性曲線
假定信道中的多徑數目為D,多徑時延擴展為Td。考慮到在低信噪比環境下需要盡可能多地合并多徑來提升信號能量,首先按照相關模值從大到小選擇D個時刻點所對應的相關值,其中模值最大的相關值Cmax所對應的時刻點是能量最強徑的到達時間。考慮在散射信道中,能量最強徑往往是在中間時刻到達的,圖3為對真實采集信道數據的仿真結果。從圖中可以看出,能量最強徑是在中間時刻到達的。
所以這里以Cmax所對應的時刻點為中心,左右各選擇Td/2個點作為多徑包絡范圍。最后從D個時刻點中選取落在此包絡范圍的S個時刻點,將這S個時刻點及其對應的相關值作為多徑搜索結果。然后對多徑搜索得到的每一徑信號進行相偏補償,即抵消掉式(8)中的φl,從而得到
Cl′(t)=αl′Tδ(t-τl′),l′=0,1,…,S-1 。
(9)
選取這S個多徑信號中時延最小的一徑作為基準,假定此時的時延為τ′,對其他的多徑信號進行時延補償,因此可得
Cl′(t)=αl′Tδ(t-τ′),l′=0,1,…,S-1 。
(10)
利用合并算法對多徑信號進行疊加。目前常用的合并算法包括最大比合并、等增益合并以及選擇式合并。同樣根據文獻[15]中對RAKE接收機三種合并算法的仿真分析,可以知道最大比合并性能最好,等增益合并次之,選擇式合并最差。而文獻中的仿真結果同樣表明在低信噪比下,最大比合并和等增益合并性能極其接近。綜合性能和實現復雜度,采用等增益合并。經過SRAKE模塊處理的信號可以表示為
(11)
由式(11)可以看出,SRAKE算法可以將多徑信號進行標量疊加。相對于式(7)中相關器輸出信號,SRAKE算法可以利用信道中的多徑效應大大增加信號的能量,從而提升在低信噪比情況下的檢測性能。
如圖4所示,前導檢測算法具體實現流程可以分為以下幾步:
(1) 首先將接收信號分段與本地序列進行相關,相關窗長度為M,分段數為m,然后利用與發端相同的m位巴克碼對每段相關值進行加權,最后將m段相關值進行累加;
(2) 首先將多徑搜索模塊按照分段相關累加值的模值從大到小排序,選取前D個相關值以及對應的時刻點,然后以最大相關值所對應的時刻為中心,左右各取Td/2個時刻點,將落在此范圍內的相關值及對應的時刻點作為多徑搜索結果;
(3) 首先相偏估計與補償模塊利用多徑搜索模塊得到的S徑信號所對應的相關值分別進行相偏估計,得到每一徑信號的相偏,然后根據相偏計算得到對應的相偏補償因子,最后進行相偏補償;
(4) 首先時延對齊模塊將多徑搜索所得到的時刻點中最小的作為基準,用其他徑所對應的時刻點減去這個基準,得到一個時延補償向量,然后各徑按照所對應的時延補償值從對應位置開始取經過相偏補償之后的相關值;
(5) 合并模塊按照等增益合并原則將各徑所對應的相關值進行疊加;
(6) 利用通過最佳判決門限的相關值所對應的前導分析隨機接入用戶信息。

圖4 前導檢測算法硬件實現流程框圖
圖5為針對實際信道環境所設計的JSC-SRAKE前導檢測算法硬件模塊實現框圖。采用的前導序列是由13段長度為509的CAZAC序列經過巴克碼加權產生的。其中,FIR_1和FIR_2是Xilinx公司開發的FIR IP核,其主要用于完成分段相關運算。巴克碼加權模塊是將經過延時的每一路輸出信號乘上其對應的巴克碼。圖中共有3個模塊,通過3步實現功能。
(1) 分段相關累加模塊利用先進先出(First Iput First Output,FIFO)來實現滑動分段相加,最終得到分段相關累加值sum_corr_i和sum_corr_q。
(2) 將分段相關累加值sum_corr_i和sum_corr_q送至SRAKE接收處理模塊??紤]到筆者設計的系統基站端是通過全球定位系統(Global Positioning System,GPS)來輔助定時的,因此只需要選取一段時間內的接收數據來做前導檢測。圖5中RAM_1就是用來存儲時間段內的分段相關累加值,供后續相偏補償模塊讀取使用。RAM_2則是用來存儲時間段內的分段相關累加值的模值。圖中排序模塊,即SRAKE接收中的多徑搜索模塊。相偏估計與補償模塊是由CORDIC IP核完成的。圖中最后利用FIFO模塊來將各徑信號時間對齊并疊加得到rake_corr_i和rake_corr_q,至此完成SRAKE接收的所有處理流程。
(3) 將經過SRAKE處理的相關值rake_corr_i和rake_corr_q送至判決模塊。在判決模塊,首先通過能量歸一化處理抵消因為噪聲幅度變化帶來的影響,然后利用信噪比為-17 dB時選取的最佳判決門限進行檢測。

圖5 JSC-SRAKE算法硬件模塊實現框圖

圖6 RAKE前后相關峰值對比
MATLAB仿真所用的信道數據均來自于實測的散射通信信道。
為了驗證SRAKE接收處理算法對信號能量有增強作用,圖6仿真了在信噪比為-17 dB,均進行巴克碼加權的前提下,僅采用分段相關累加與聯合分段相關累加和SRAKE接收處理兩種方式的相關峰值曲線。如圖所示,僅采用分段相關累加的相關峰值很小,幾乎和噪聲背景一致。而經過SRAKE處理之后,相關峰值變得非常明顯,有效地提升了正確檢測概率。
由于判決門限的選取將極大影響隨機接入檢測性能,圖7分別仿真了3種不同算法的虛警/漏檢概率隨判決門限變化曲線。其中,圖7(a)仿真的是筆者所提出的JSC-SRAKE算法,圖7(b)仿真的是分段相關累加算法,圖7(c)仿真的是直接相關檢測算法。這三張圖中的虛警概率曲線都表示的是信噪比為-17 dB時不同門限值下的虛警概率。最佳判決門限的選擇原則是信噪比為 -17 dB,虛警概率和漏檢概率之和最低時所對應的門限。對比圖7(a)、圖7(b)和圖7(c),可以發現通過SRAKE接收處理,相應地增加了最佳判決門限可選范圍,降低了因為判決門限的選擇對檢測性能的影響。

(a) 文中算法

圖8 不同前導檢測算法性能對比
圖8仿真了3種算法在最佳判決門限下的前導檢測性能曲線。根據圖7的仿真結果,設置直接相關檢測的判決門限為0.006,分段相關累加處理的判決門限為0.014,筆者所提算法的判決門限設置為0.005。從圖中可以看出以下幾點:
(1) 當要求漏檢概率達到10-3時,分段相關相較于直接相關信噪比損失在1 dB左右。這是因為隨著相關窗長度的減小,相關窗內的信號能量也隨之減小。
(2) 當要求漏檢概率達到10-3時,筆者所提算法相對于直接相關累加算法信噪比要少1.2 dB左右??梢钥闯觯P者所提算法通過SRAKE接收極大地提升相關窗中的信號能量,彌補了因為分段相關產生的性能損失。
(3) 筆者所提算法在系統信噪比最差為-17 dB時,其虛警概率和漏檢概率都達到了10-4及以下,大大提升了系統在低信噪比情況下的檢測性能。
利用FPGA在實際單載波交織式頻分多址(Single Carrier Interleaved Frequency Division Multiple Access,SC-IFDMA)系統中對JSC-SRAKE前導檢測算法進行了實現。FPGA采用的是Xilinx公司的Virtex-7系列的690t芯片。
圖9是根據實際場景所設計的SC-IFDMA系統上行隨機接入信道框圖。系統小區最多同時容納8個用戶,系統帶寬為500 kHz,前導是由13段長度為509的CAZAC序列經過巴克碼加權產生的。與MATLAB仿真一樣,硬件實現所用的信道數據也均來自于實測的散射通信信道,信噪比在最差的情況下只有-17 dB。
文中用于算法驗證的數據是利用MATLAB定點仿真程序生成,數據的格式為前噪加前導序列加尾噪,然后將數據通過實測的散射通信信道,并在時域疊加信噪比為-17 dB的噪聲。為了模擬多用戶同時接入的情況,按照上述格式繼續生成4組數據,來表示其他4個用戶的隨機接入請求;將這5路數據進行疊加,送入接收端做隨機接入檢測。

圖9 上行隨機接入信道框圖
表1給出了這5路仿真數據的數據格式,設置這5個用戶的前導序列對應的K值分別為1、255、170、127、102。

表1 仿真數據格式

圖10 隨機接入檢測MATLAB仿真結果
圖10是利用MATLAB仿真5個用戶同時接入的情況??梢钥闯?,用戶1至用戶5的隨機接入點位置為 6 060、7 060、8 060、9 057、10 060。
圖11是各用戶的FPGA與MATLAB中隨機接入檢測輸出對比,其中mem_addr是各用戶的隨機接入點位置,dout_i和dout_q是隨機接入檢測輸出的各用戶的I、Q兩路數據,dout_en是用戶隨機接入輸出數據有效使能。
從圖11可以看出,各個用戶的FPGA實現與MATLAB定點仿真輸出的隨機接入數據完全一致。因此可以說明該算法在硬件實現時,在低信噪比下同樣具有良好的檢測性能。

圖11 各用戶隨機接入檢測FPGA實現與MATLAB仿真輸出結果
表2給出了筆者所提算法與傳統直接相關檢測算法的硬件資源消耗情況:查找表(Look-Up-Table,LUT)、觸發器(Flip Flop,FF)、BRAM、DSP。在實際SC-IFDMA系統的上行隨機接入檢測過程中,直接相關檢測算法所需要的資源已經遠遠超過Xilinx公司的V7-690t芯片中的資源總量,而文中所提出的算法通過分段相關大大減少了硬件資源的消耗,從而滿足了硬件實現的需求。直接序列相關檢測算法實現簡單,復雜度低,但是資源消耗過多,無法在芯片上實現;而JSC-SRAKE算法資源消耗少,并且檢測性能優于直接序列相關檢測算法,但是復雜度較高。文中所提算法在滿足檢測指標的同時,實現了性能和代價的最優折中。

表2 直接相關算法與JSC-SRAKE算法資源消耗對比
針對低信噪比場景下前導檢測算法存在的實現復雜度和檢測性能之間的矛盾,筆者提出了一種JSC-SRAKE時域前導檢測算法。該算法以較低的硬件實現復雜度保證了系統在低信噪比情況下也具有良好的檢測性能。同時,在實際SC-IFDMA通信系統中利用現場可編程門陣列實現了該算法,并且性能與MATLAB仿真結果保持一致,說明筆者所提算法可以很好地應用于其他相似的多用戶通信系統中。