義 炫,劉愛軍
(陸軍工程大學(xué),江蘇 南京 210007)
當(dāng)N→∞,Polar在SC譯碼算法下的性能可以達(dá)到香農(nóng)極限[1],但是對于短碼和中長碼,其譯碼性能將下降很快,其性能比已提出的Turbo碼和LDPC碼性能差很多。因此,為了解決這一問題,SCL譯碼算法被提出[2]。不像SC譯碼器只保留一條譯碼路徑,SCL譯碼器同時(shí)保留L條譯碼路徑,其復(fù)雜度相應(yīng)的也為SC譯碼器的L倍,為O(NlogN)。當(dāng)列表大小L很大時(shí),SCL譯碼器的性能已經(jīng)超過了Turbo碼和LDPC碼等碼字。然而,較大的列表大小也導(dǎo)致了較高的譯碼復(fù)雜度和譯碼延時(shí),從而限制了SCL譯碼在實(shí)際中的廣泛運(yùn)用。為了解決這個(gè)問題,許多自適應(yīng)SCL譯碼方案被提出[3-4]。
文獻(xiàn)[3]提出了一種上升模式的自適應(yīng)的SCL譯碼器,通過不斷擴(kuò)大L值,直至L條路徑中有能通過CRC校驗(yàn)的路徑才停止譯碼。這種上升模式的SCL譯碼器能夠在同樣的性能下有效減小計(jì)算復(fù)雜度,同樣復(fù)雜度的情況下有效地提升了性能。但是,這種上升模式的自適應(yīng)SCL譯碼器控制邏輯過于復(fù)雜,且每一幀重復(fù)譯碼次數(shù)不固定,導(dǎo)致譯碼延時(shí)也不可控。相比于上升模式的自適應(yīng)SCL譯碼器,文獻(xiàn)[4]提出了一種下降模式的自適應(yīng)SCL譯碼器,根據(jù)路徑特性差值特征來適當(dāng)縮減列表大小L。該方法在犧牲較小的性能情況下有效地減小了復(fù)雜度,但是在中高信噪比下,復(fù)雜度減少并不可觀。
反向傳播神經(jīng)網(wǎng)絡(luò)是1986年由Rumelharth和McClelland為首的研究者提出。反向傳播神經(jīng)網(wǎng)絡(luò)是一種基于誤差反向傳播算法的多層前饋神經(jīng)網(wǎng)絡(luò)。通過反向傳播學(xué)習(xí)算法,不斷調(diào)整神經(jīng)元之間連接的權(quán)值,使得神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值與期望輸出值的誤差均方差逐漸降至最小,因此可以從輸入中得到任何非線性映射關(guān)系輸出[5-7]。目前,在人工神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中,反向傳播神經(jīng)網(wǎng)絡(luò)是應(yīng)用最廣泛的一種神經(jīng)網(wǎng)絡(luò)模型。它主要應(yīng)用于函數(shù)逼近、模式識別、分類器和數(shù)據(jù)壓縮四個(gè)方面。因此,可以利用反向傳播神經(jīng)網(wǎng)絡(luò)預(yù)測每一幀Polar碼碼字所受到的信道干擾程度,自適應(yīng)地選擇列表大小,從而進(jìn)行自適應(yīng)的SCL譯碼。
本文充分利用了Polar碼碼字的結(jié)構(gòu)特性——凍結(jié)位。凍結(jié)位作為收發(fā)雙方都已知的數(shù)據(jù),和信息位一樣,受到信道噪聲的干擾。它的軟信息同樣可以反映出信道條件。因此,首先通過人造信號和干擾,通過軟件仿真得到相關(guān)的凍結(jié)位信息作為反向傳播神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)。其次,利用所得訓(xùn)練數(shù)據(jù)訓(xùn)練反向傳播神經(jīng)網(wǎng)絡(luò),以致能夠準(zhǔn)確預(yù)測每一幀Polar碼碼字所經(jīng)過的AWGN信道的信噪比等級。根據(jù)事先設(shè)定的信噪比等級與列表大小的映射關(guān)系,自適應(yīng)地調(diào)整列表大小,從而自適應(yīng)地進(jìn)行SCL譯碼。結(jié)果表明,所提出的方案能夠在保證SCL譯碼器性能的情況下,有效地降低SCL譯碼算法的計(jì)算復(fù)雜度。
反向傳播神經(jīng)網(wǎng)絡(luò)是一種多層前饋網(wǎng)絡(luò),由輸入層、輸出層和隱含層三種層次結(jié)構(gòu)的完全連接形成,其中可以包含多層隱含層。圖1所示的是一個(gè)三層的反向傳播神經(jīng)網(wǎng)絡(luò),即只包含一層隱含層。在反向傳播神經(jīng)網(wǎng)絡(luò)中,輸入層包含n個(gè)輸入層節(jié)點(diǎn)p1,p2,…,pn,隱含層包含k個(gè)隱含層節(jié)點(diǎn)z1,z2,…,zk, 輸出層包含m個(gè)輸出層節(jié)點(diǎn)q1,q2,…,qm。其中,n、k、m為任意的正整數(shù)。輸入層節(jié)點(diǎn)pi與隱含層節(jié)點(diǎn)zj之間的連接權(quán)值為wij,隱含層節(jié)點(diǎn)zi與輸出層節(jié)點(diǎn)qj之間的連接權(quán)值為vij。
圖1 三層神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)
反向傳播神經(jīng)網(wǎng)絡(luò)包括信號的前向傳播過程和誤差的反向傳播過程。在信號的前向傳播過程中,輸入信號自輸入層節(jié)點(diǎn)輸入,經(jīng)隱含層節(jié)點(diǎn)的非線性變換,最后到達(dá)輸出層節(jié)點(diǎn)產(chǎn)生輸出信號。如果實(shí)際的輸出信號與期望的輸出信號有所差別,它們之間的誤差將逐層反傳,并各層節(jié)點(diǎn)與節(jié)點(diǎn)之間所有連接的權(quán)值根據(jù)反傳的誤差根據(jù)一定算法進(jìn)行調(diào)整,通過修改各個(gè)節(jié)點(diǎn)之間連接的權(quán)值,使得實(shí)際的輸出信號逐漸逼近期望的輸出信號,這就是誤差的反向傳播過程。當(dāng)有多層隱含層時(shí),每一層節(jié)點(diǎn)的狀態(tài)僅僅影響下一層節(jié)點(diǎn)的狀態(tài)。隱含層的所有節(jié)點(diǎn)與外界沒有直接的聯(lián)系,但其任何一個(gè)節(jié)點(diǎn)狀態(tài)的改變都會影響到輸入與輸出的關(guān)系。
所有的神經(jīng)網(wǎng)絡(luò)在接受訓(xùn)練時(shí),不斷將輸出信號與理想信號相比較,并按學(xué)習(xí)算法改變權(quán)值,直到網(wǎng)絡(luò)的輸出信號對所有訓(xùn)練樣本與理想輸出信號之差在要求的誤差范圍之內(nèi)。與大多數(shù)學(xué)習(xí)算法類似,反向傳播算法能夠使得反向傳播神經(jīng)網(wǎng)絡(luò)產(chǎn)生盡可能逼近理想的反應(yīng)。在經(jīng)過反向傳播神經(jīng)網(wǎng)絡(luò)信號前向傳播過程后,實(shí)際的輸出信號與期望的輸出信號的偏差反向傳播。在大多數(shù)反向傳播神經(jīng)網(wǎng)絡(luò)中,用誤差平方和描述實(shí)際輸出信號與期望輸出信號之間的偏差。反向傳播神經(jīng)網(wǎng)絡(luò)通過負(fù)梯度下降算法,利用迭代運(yùn)算,反復(fù)調(diào)整和訓(xùn)練網(wǎng)絡(luò)的權(quán)值,使得輸出信號與期望信號盡可能接近。
以如圖1的三層神經(jīng)網(wǎng)絡(luò)為例。在輸入為P=(p1,p2,…,pn)時(shí),假設(shè)所期待的理想輸出和網(wǎng)絡(luò)的實(shí)際輸出分別為T=(t1,t2,…,tm)和Q=(q1,q2,…,qm),那么反向傳播算法的描述如下。
(1)定義一個(gè)損失函數(shù):
(2)計(jì)算隱含層到輸出層的連接權(quán)值vij的 梯度:
其 中,δ1i=(ti-zi)f′(N1i),N1i=∑vijqj-θ1i,θ1i是隱含層到輸出層的一個(gè)閾值函數(shù),f′(·)是激活函數(shù)的反函數(shù)。在神經(jīng)網(wǎng)絡(luò)中,閾值函數(shù)是指神經(jīng)元節(jié)點(diǎn)接受到的刺激大于這個(gè)閾值時(shí)才會觸發(fā)該神經(jīng)元節(jié)點(diǎn)去影響下一個(gè)神經(jīng)元節(jié)點(diǎn)的刺激動作。如果小于這個(gè)閾值,該神經(jīng)元的刺激就不會刺激到下一個(gè)神經(jīng)元。激活函數(shù)則是用來加入非線性因素的,通常有Sigmoid函數(shù)、tanh函數(shù)、ReLU函數(shù)和Softmax函數(shù)等。本方案中,采用tanh函數(shù),表達(dá)式為,具有零均值和收斂速度更快的優(yōu)點(diǎn)。
(3)計(jì)算隱含層到輸出層的連接權(quán)值wij的 梯度:
其中,δ2i=f′(N2i)∑δ1ivij,N2i=∑wijpj-θ2i,θ2i是輸入層到隱含層的一個(gè)閾值函數(shù),f′(·)是激活函數(shù)的反函數(shù)。
(4)更新權(quán)值wij和vij:
其中,
η、η′是學(xué)習(xí)速率,反映了反向傳播過程中梯度下降的步長。
(5)更新閾值θ1i和θ2i:
從反向傳播算法的過程可以看出,它的主要思想是利用正向傳播后實(shí)際輸出與期望輸出的誤差來估計(jì)輸出層前一層的誤差,再用這一層誤差估計(jì)更前一層的誤差,如此獲取各個(gè)層的誤差估計(jì),進(jìn)而利用這個(gè)誤差估計(jì)更新各層之間的連接權(quán)值和閾值,并利用更新后的權(quán)值和閾值重新計(jì)算輸出誤差,直至輸出誤差達(dá)到符合的要求或者已經(jīng)達(dá)到了最大迭代次數(shù)。
本節(jié)主要介紹基于反向傳播神經(jīng)網(wǎng)絡(luò)的自適應(yīng)SCL譯碼器方案。方案中通過訓(xùn)練好的反向傳播神經(jīng)網(wǎng)絡(luò)來預(yù)測每一幀所受到的干擾程度的大小,并用信噪比等級衡量這個(gè)干擾的大小。根據(jù)每一幀所受到的干擾程度的大小,SCL譯碼器自適應(yīng)選擇列表大小進(jìn)行SCL譯碼。本節(jié)提出的自適應(yīng)SCL譯碼器,控制邏輯簡單,相比原始的SCL算法,能在保證譯碼性能的前提下,有效降低譯碼復(fù)雜度,尤其在高信噪比條件下,復(fù)雜度降低的程度明顯。
對于不同列表大小的SCL譯碼器的譯碼性能,存在這樣一個(gè)事實(shí):對于一些特定的信噪比,不同的列表大小卻有相似的FER性能。例如,如圖2所示,在信噪比SNR=2 dB時(shí),列表大小L=8的SCL譯碼器和列表大小L=32的SCL譯碼器FER性能幾乎完全一樣,因此完全可以在該信噪比條件下,用列表大小L=8的SCL譯碼器取代列表大小L=32的SCL譯碼器進(jìn)行譯碼。基于此,將信噪比區(qū)間 [1 dB,3 dB]劃分為5個(gè)信噪比區(qū)間,每一個(gè)信噪比區(qū)間是一個(gè)信噪比等級,由低信噪比到高信噪比依次為信噪比等級1至5,且分別對應(yīng)使用不同的列表大小進(jìn)行SCL譯碼。本方案中,[1 dB,1.5 dB]為信噪比等級1,對應(yīng)使用列表大小L=32的譯碼器;(1.5 dB,2 dB]為信噪比等級2,對應(yīng)使用列表大小L=16的譯碼器;(2 dB,2.5 dB]為信噪比等級3,對應(yīng)使用列表大小L=8的譯碼器;(2.5 dB,2.75 dB]為信噪比等級4,對應(yīng)使用列表大小L=4的譯碼器;(2.75 dB,3 dB]為信噪比等級5,對應(yīng)使用列表大小L=2的譯碼器。
圖2 不同列表大小的SCL譯碼算法性能,碼長N=1 024,碼率R=0.5
另一方面,一個(gè)碼長為N、碼率為R的Polar碼,由K=N·R個(gè)信息比特和N-K=N-N·R個(gè)凍結(jié)比特組成。凍結(jié)比特是收發(fā)雙方都已知的數(shù)據(jù),通常設(shè)為0。每一幀Polar碼碼字經(jīng)過AWGN信道,不僅僅信息位比特受到了信道的高斯白噪聲干擾,凍結(jié)位比特同樣也受到了同樣信道條件下的噪聲干擾。在大多數(shù)譯碼算法中,不管譯碼后凍結(jié)位比特的LLR值為多少,都將凍結(jié)位比特譯碼為0,而忽略它在一定程度上也包含了信道信息。目前,也有少量文獻(xiàn)利用了凍結(jié)位進(jìn)行信噪比估計(jì)。文獻(xiàn)[8]在理論上證明了碼長無限長時(shí),[-5 dB,5 dB]范圍內(nèi)信噪比與凍結(jié)比特錯(cuò)誤概率呈線性關(guān)系,如圖3所示,且提出了有限碼長下的信噪比預(yù)測算法,但是該算法包含了大量的蒙特卡羅仿真,實(shí)用性不強(qiáng)。因此,為了簡單充分地挖掘凍結(jié)位信息,利用經(jīng)過一次SC譯碼后的凍結(jié)位的LLR值作為反向傳播神經(jīng)網(wǎng)絡(luò)的輸入,然后估計(jì)每一幀所處的信噪比等級。
為了找到反向傳播神經(jīng)網(wǎng)絡(luò)最佳的連接權(quán)值,必須知道一個(gè)已知的輸入輸出的映射關(guān)系和損失函數(shù)。根據(jù)前述內(nèi)容,本方案中輸入是每一幀凍結(jié)位比特的LLR值,輸出是信噪比等級,損失函數(shù)是實(shí)際輸出與期望輸出的均方誤差。通過使用梯度下降算法、反向傳播算法和最小化損失函數(shù),該神經(jīng)網(wǎng)絡(luò)能夠?qū)ξ粗妮斎氘a(chǎn)生正確的輸出。
一般來說,獲得神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)通常是一件很難的事情。但本方案是一個(gè)特殊例子,因?yàn)榭梢匀藶榈禺a(chǎn)生任意多的輸入信號和設(shè)定特定的信噪比[9],且產(chǎn)生對應(yīng)的輸出信號非常簡單,只要受過特定信噪比條件下干擾的碼字一產(chǎn)生,就可以輕松得到其對應(yīng)的輸出,也就是該特定信噪比所處的信噪比等級。
圖3 凍結(jié)比特錯(cuò)誤概率與信噪比的映射關(guān)系
在發(fā)送端,傳輸(1 024,512)Polar碼,經(jīng)過AWGN信道傳輸?shù)玫皆肼晭?。如圖4所示,首先對接收到的噪聲幀進(jìn)行SC譯碼,取出其中M個(gè)凍結(jié)比特的LLR值,其中M≤512,M的大小是一個(gè)經(jīng)驗(yàn)獲得的值。對于Polar碼而言,一些凍結(jié)比特的信道容量趨近于0,沒有必要選擇這些凍結(jié)比特的LLR值。一方面它很有可能降低結(jié)果的準(zhǔn)確性,另一方面會帶來巨大的計(jì)算復(fù)雜度。因此,對于 (1 024,512)Polar碼,選擇了150位凍結(jié)比特的LLR值作為神經(jīng)網(wǎng)絡(luò)的輸入。
圖4 基于反向傳播神經(jīng)網(wǎng)絡(luò)的自適應(yīng)SCL譯碼器
本方案采取了60-30-15-5的反向傳播神經(jīng)網(wǎng)絡(luò),即有2層隱含層,其節(jié)點(diǎn)數(shù)分別為30和15。至于神經(jīng)網(wǎng)絡(luò)的參數(shù)最優(yōu)化問題,文獻(xiàn)[9]已經(jīng)提出了幾種超參調(diào)優(yōu)算法。但本方案中并沒有更深入考慮這個(gè)問題,因?yàn)橐呀?jīng)實(shí)現(xiàn)了較好的結(jié)果。通過反向傳播神經(jīng)網(wǎng)絡(luò),可估計(jì)每一幀的信噪比等級,再根據(jù)前述的信噪比等級與列表大小的映射關(guān)系選擇列表大小,最后進(jìn)行SCL譯碼,選擇L條路徑中最好的路徑特性值作為譯碼輸出。
對提出的自適應(yīng)SCL譯碼方案進(jìn)行仿真。仿真中,Polar碼字構(gòu)造方法采用高斯近似構(gòu)造法,物理信道為AWGN信道,調(diào)制方式為二進(jìn)制相移鍵控(Binary Phase Shift Keying,BPSK)。本節(jié)比較了自適應(yīng)SCL譯碼器與原始的SCL譯碼器的FER性能和計(jì)算復(fù)雜度。
圖5給出了不同列表大小的原始SCL譯碼器和自適應(yīng)SCL譯碼器的FER性能比較。相比于列表大小L=2的原始SCL譯碼器,提出的自適應(yīng)SCL譯碼器在中低信噪比條件下有近0.5 dB的增益,F(xiàn)ER性能幾乎與L=32的原始SCL譯碼器FER性能相近。
圖5 原始SCL譯碼器與自適應(yīng)SCL譯碼器FER性能比較,碼長N=1 024,碼率R=0.5
表1給出了不同信噪比等級下自適應(yīng)SCL譯碼器和下降模式的自適應(yīng)SCL譯碼器[4]的平均列表大小的比較。在所提方案中,首先進(jìn)行SC譯碼,然后根據(jù)SC譯碼結(jié)果自適應(yīng)地選擇列表大小再進(jìn)行SCL譯碼。因此,所提方案對每一幀都進(jìn)行了兩次譯碼,譯碼延時(shí)固定。一旦列表大小確定,提出的自適應(yīng)SCL譯碼器的理論列表大小值應(yīng)該為Lavg=L+1。由于反向傳播神經(jīng)網(wǎng)絡(luò)存在一定預(yù)測誤差,實(shí)際的平均列表大小值將會輕微大于或小于理論的平均列表大小值。因?yàn)橥ㄟ^反向傳播神經(jīng)網(wǎng)絡(luò)預(yù)測信噪比等級和列表大小后進(jìn)行SCL譯碼,所以所提方案在中高信噪比條件下能夠有效減小SCL譯碼器的譯碼復(fù)雜度。因此,當(dāng)在低信噪比條件下,自適應(yīng)地選擇較大的列表,就能保證SCL譯碼器的性能。
表1 下降模式自適應(yīng)SCL譯碼器與所提出的自適應(yīng)SCL譯碼器的平均列表大小比較
本文主要介紹了基于反向傳播神經(jīng)網(wǎng)絡(luò)的自適應(yīng)SCL譯碼算法,根據(jù)反向傳播神經(jīng)網(wǎng)絡(luò)估計(jì)的信噪比等級,自適應(yīng)地選擇列表大小進(jìn)行SCL譯碼。仿真結(jié)果表明,所提方案相比于L=32的原始SCL譯碼器,在中高信噪比條件下能夠有效減小譯碼復(fù)雜度;相比于L=2的原始SCL譯碼器,在中低信噪比條件下能夠有效提升FER性能。此外,所提方案對每一幀都是兩次譯碼,其譯碼延時(shí)固定,且控制邏輯簡單可控。