文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.002
中文引用格式: 宋春雪,文萍,張學(xué)晨. 基于5G無線通信的稀疏碼多址接入系統(tǒng)的FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(7):8-12.
英文引用格式: Song Chunxue,Wen Ping,Zhang Xuechen. FPGA implementation of the sparse code multiple access system based on 5G wireless communication[J].Application of Electronic Technique,2016,42(7):8-12.
0 引言
稀疏碼多址接入(SCMA)是一種多址接入技術(shù),也就是基站如何同時服務(wù)和區(qū)分多個用戶的一種方式?,F(xiàn)在的2G、3G、4G無線通信系統(tǒng)中的多址接入方式是正交的,用戶之間也是正交的,如TDMA、FDMA,這種正交多址接入方式的優(yōu)點是整個系統(tǒng)相對簡單,接收端可以不做多用戶均衡,但不足是容納的用戶數(shù)量取決于正交的資源數(shù)量。因此,正交接入方式不能很好地適用未來5G大容量、海量連接低延時接入等需求。解決這個問題的一種簡單想法是OFDM與CDMA結(jié)合,即在每個時頻資源上以碼分的方式疊加更多用戶。由于每個資源塊上疊加了N個用戶,N是碼字的數(shù)量,這導(dǎo)致譯碼端復(fù)雜度非常高。稀疏碼多址接入(SCMA)就是應(yīng)5G需求設(shè)計產(chǎn)生的一種非正交多址技術(shù)[1]。SCMA系統(tǒng)中稀疏擴頻的概念,將用戶的數(shù)據(jù)在頻域上擴散在有限的子載波上,每個資源塊上等效的疊加用戶數(shù)會大大減少,這就為接收端實現(xiàn)低復(fù)雜度提供可能性。
在SCMA系統(tǒng)中,信息比特首先經(jīng)過信道編碼,編碼后的比特經(jīng)過SCMA調(diào)制碼本映射成SCMA碼字,碼字以稀疏的方式擴頻在多個資源塊上,因此,其最大特點是非正交疊加的碼字個數(shù)可以成倍大于使用的資源塊個數(shù)。相比4G的OFDMA技術(shù),它可以實現(xiàn)在同等資源數(shù)量條件下,同時服務(wù)更多用戶,從而有效提升系統(tǒng)整體容量。本文中模擬6個數(shù)據(jù)流擴散在4個資源塊的情況,也就是150%的過載。
在發(fā)送端,每個用戶有自己獨立的碼本,SCMA碼本的設(shè)計過程可以看成稀疏擴頻和多維調(diào)制的聯(lián)合優(yōu)化[2]。用戶根據(jù)輸入的比特串來選擇碼本中不同的碼字,將編碼比特直接映射為復(fù)數(shù)域多維碼字,然后不同用戶的碼字在相同的資源塊上以稀疏的擴頻方式非正交疊加。本文直接使用文獻[2]中的碼本來編碼,即6個用戶分布在4個資源塊上,tanner圖如圖1。
接收端利用擴頻的稀疏性進行低復(fù)雜度的多用戶聯(lián)合檢測,并結(jié)合信道譯碼完成多用戶的比特串恢復(fù)[3]。
本文簡化的上行鏈路SCMA系統(tǒng)總體設(shè)計框圖如圖2所示。
1 SCMA譯碼器的設(shè)計原理
SCMA系統(tǒng)的性能主要取決于SCMA碼本設(shè)計和譯碼器設(shè)計。因此好的譯碼器十分重要。最大聯(lián)合后驗概率(MAP)檢測是最優(yōu)的多用戶聯(lián)合檢測,但由于巨大的存儲量,較高的復(fù)雜度往往不能在實際中使用。由于SCMA中低密度擴頻的結(jié)構(gòu),可以采用近似于最大似然比(ML)檢測性能的低復(fù)雜度的消息傳遞算法(message passing algorithm)[4]。
消息傳遞算法的基本原理就是將一個計算困難的問題分解成許多容易計算的子問題。譯碼器的最終目的在于計算每個比特的后驗概率,因此在迭代過程中消息傳遞算法的基本運算就是基于先驗概率和圖模型結(jié)構(gòu)對外概率和后驗概率的估算[5]。SCMA譯碼器設(shè)計流程圖如圖3所示。
譯碼器包含輸入緩沖、殘余信號f計算、功能節(jié)點FN更新、變量節(jié)點VN更新、輸出似然比LLR等模塊,控制部分iter_ctrl負責(zé)協(xié)調(diào)整個譯碼器的工作。譯碼器的工作流程是:當(dāng)接收到帶有高斯噪聲的信號r后,首先通過fn(.)函數(shù)計算條件概率進行初始化,然后功能節(jié)點FN與變量節(jié)點VN沿著相連的邊進行信息迭代更新,滿足最大迭代次數(shù)后,變量節(jié)點輸出信息比特的似然比作為turbo譯碼的輸入,SCMA譯碼完成。整個過程主要由以下三步完成。
1.1 初始化條件概率
給出用戶k在資源n的信道增益h_n=1,變量節(jié)點k在資源節(jié)點n上發(fā)送碼字m_k的符號C(k,n)(mk),噪聲功率N0,n,可以用fn(.)函數(shù)計算包含各種可能性的殘余信號。令fn(.)=fn(yn,m1,m2,m3,N0,n,Hn),則:
1.2 迭代消息沿邊緣傳遞更新
功能節(jié)點FN通過其相鄰的變量節(jié)點VN傳遞的外信息更新,如圖4所示。
VN通過其相鄰的FN傳遞的信息來更新,當(dāng)d_v=2,可以看作在VN上信息的交換,如圖5所示。
1.3 一定的迭代次數(shù)后變量v處LLR輸出
這樣可以得到每個比特的對數(shù)似然比LLR,用于turbo譯碼的輸入。
2 低復(fù)雜度MPA譯碼器原理與仿真
2.1 尋找MPA譯碼的最佳迭代次數(shù)
為了實現(xiàn)迭代次數(shù)與譯碼性能的平衡,對SCMA編譯碼模塊單獨進行MATLAB仿真,并在多個信噪比(Eb/N0)下測試迭代次數(shù)對誤碼率的影響以求得到最優(yōu)迭代次數(shù)。圖6是Eb/N0=6 dB,7 dB,8 dB時,nframe=400幀,每幀1 000 bit的仿真圖。
從圖6可以看出,各個信噪比不變時,曲線走向大致相同;隨著迭代次數(shù)的增加,誤碼率下降,但3次之后,誤碼率下降不明顯,而且迭代次數(shù)的增加會消耗更多的系統(tǒng)資源。綜合考慮,令迭代次數(shù)niter=5。
2.2 max-log-MPA
MPA算法雖然能以性能接近最優(yōu)的方法進行譯碼,但是其中包含了太多的指數(shù)運算,在硬件實現(xiàn)上復(fù)雜度高,這會使其譯碼性能大大折扣。采用Jacobi算法將考察變量都轉(zhuǎn)換到對數(shù)域,去掉指數(shù)運算,即max-log-MPA的SCMA譯碼:
使用這種被稱為MAX-LOG-MPA的譯碼算法雖然會有精度損失,但其復(fù)雜度大大降低,這使得在硬件上實現(xiàn)譯碼算法變得簡單可行。表1顯示出在本文中兩種運算方法的N比特譯碼大致運算量,M為一個碼本中碼字的個數(shù),可以看出MAX-LOG-MPA譯碼算法很大程度上降低了運算的復(fù)雜度,使得在硬件上實現(xiàn)變得可行、快捷。
根據(jù)以上的化簡公式,實現(xiàn)簡化的SCMA系統(tǒng),進行max-log-MPA仿真,并與復(fù)雜度較高的MPA譯碼相比較,MATLAB仿真條件為:每個用戶發(fā)送幀數(shù)為nframe=40幀,每幀1 000 bit,SCMA的譯碼迭代次數(shù)為5次,turbo譯碼迭代5次,碼率1/2,觀察誤碼率與誤幀率隨著Eb/N0的變化,仿真結(jié)果如圖7所示。
從圖7可以看出,相同條件下,max-log-MPA的性能比MPA大約差0.5 dB,但max-log-MPA硬件實現(xiàn)的復(fù)雜度大大降低,更容易在硬件上實現(xiàn)。
3 低復(fù)雜度的SCMA系統(tǒng)的FPGA設(shè)計與驗證
SCMA系統(tǒng)的性能主要取決于譯碼器的設(shè)計。為實現(xiàn)低復(fù)雜度SCMA系統(tǒng)譯碼器的設(shè)計,本文選擇max-log-MPA算法譯碼。max-log-MPA最重要的一部分就是功能節(jié)點(FNU)與變量節(jié)點(VNU)的信息迭代更新,F(xiàn)PGA設(shè)計如圖8。
一個FN節(jié)點連接3個VN節(jié)點,每做1次功能節(jié)點更新(FNU)運算,需要輸入3個用戶的碼本以及接收信號用來計算殘留信號f,殘留信號f與相連的變量節(jié)點傳來的外信息Iv→g求和,來進行功能節(jié)點更新(FNU),在max-log-MPA下,找到輸出的最大值作為一次FNU結(jié)束,輸出的Ig→v作為VNU的一個輸入。變量節(jié)點更新(VNU)模塊進行信息交換輸出Iv→g完成一次VN節(jié)點更新,輸出的值作為下一次迭代的輸入。
使用max-log-MAP譯碼算法,經(jīng)過一定迭代次數(shù)后,由前面的推導(dǎo):LLR似然比輸出為:
由于輸出似然比為最大值相減,那么Q中相同的值可以不用計算,這樣就減少了計算量。即對一個數(shù)據(jù)譯碼時,接收信號|yn|2不變,先驗概率apv(m)不變,則計算殘余誤差時可以將這些省略,不會影響結(jié)果。
假設(shè)信道增益h=1,令C=C1,n(m1)+C2,n(m2)+C3,n(m3),則:
另外,由于每次迭代使用相同的f,第一次迭代時計算f(m1,m2,m3)的同時將其存放到RAM中,供以后的迭代使用,減小了運算量。
按照以上的思想,低復(fù)雜度SCMA譯碼器硬件實現(xiàn)結(jié)構(gòu)如圖9。
按照以上的結(jié)構(gòu)完成系統(tǒng)設(shè)計,選用Terasic DE5-Net的Altera Stratix V GX FPGA(5SGXEA7N2F45C2)器件綜合時,SCMA譯碼器的資源使用情況如圖10;表2顯示了在設(shè)計中1次SCMA譯碼(輸出2 bit)所需要的乘法和加法運算次數(shù),N為迭代次數(shù)。
圖11、圖12分別是SCMA系統(tǒng)發(fā)送端發(fā)送碼字,接收端迭代譯碼仿真波形。發(fā)送端:用戶根據(jù)自己的碼本來選擇輸出碼字,6個用戶非正交疊加輸出發(fā)送信號tx在4個信道上。在接收端:利用接收信號rx計算殘余信號f,從而進行功能節(jié)點FN與變量節(jié)點VN的迭代更新,達到一定迭代次數(shù)后輸出各個比特的似然比。
圖13給出SCMA系統(tǒng)測試平臺設(shè)計圖,在PC上隨機產(chǎn)生信源,經(jīng)PCIE下傳給FPGA上完成算法編碼鏈路形成傳輸符號信息,對編碼后數(shù)據(jù)加入高斯白噪聲,然后經(jīng)過SCMA算法譯碼鏈路,并回傳PC解碼結(jié)果并在PC上顯示誤碼率BER。圖14給出SCMA系統(tǒng)FPGA上測試結(jié)果。
4 結(jié)果分析
本文在max-log-MPA算法基礎(chǔ)上進行簡化計算,優(yōu)化電路結(jié)構(gòu)來降低運算復(fù)雜度,對SCMA系統(tǒng)的各功能模塊進行了設(shè)計并在相關(guān)的軟硬件平臺下實現(xiàn)仿真驗證。從仿真驗證結(jié)果看,在FPGA上該系統(tǒng)實現(xiàn)功能完備,滿足設(shè)計要求,系統(tǒng)性能在實際應(yīng)用中是可以接受的。
參考文獻
[1] NIKOPOUR H,BALIGH H.Sparse code multiple access[C].In IEEE 24th PIMRC,2013.
[2] TAHERZADEH M,NIKOPOUR H,Bayesteh A,et al.SCMA Codebook design[C].IEEE VTC-fall,2014.
[3] AU K,Zhang Liqing,NIKOPOUR H,et al.Uplink contention based SCMA for 5G radio access[C].IEEE Globecom 5G workshop 2014.
[4] HOSHYAR R,WATHAN F P,TAFAZOLLI R.Novel low-density signature for synchronous CDMA systems over AWGN channel[J].IEEE Transactions on Signal Processing,2008,56(4).
[5] WU Y,ZHANG S,CHEN Y.Iterative multiuser receiver in sparse code multiple access systems[C].IEEE ICC 2015.