MAP譯碼器嵌入式狀態(tài)信息存儲機制設(shè)計
1.引言
本文引用地址:http://m.butianyuan.cn/article/86852.htm在無線通信系統(tǒng)中,可靠的數(shù)據(jù)傳輸是一個非常重要的論題。Turbo編碼得到逼近香農(nóng)限的譯碼性能,成為研究和應(yīng)用的熱點。Turbo碼的譯碼采用迭代運算的方式,即將前級譯碼器的輸出作為外信息輸入到本級譯碼運算,如此反復進行直到達到相應(yīng)收斂度才結(jié)束譯碼。圖1為turbo碼編譯碼結(jié)構(gòu)框圖。
Turbo碼有多種譯碼算法,基于Bahl-Cocke-Je-linek-Raviv(BCJR)算法的MAP譯碼是最為廣泛應(yīng)用的一種。MAP算法可以通過系統(tǒng)信息和外信息來獲得對一個比特良好的概率估計,其譯碼輸出的信息可以作為外信息由其他譯碼器在下一次迭代過程中使用。經(jīng)過一定次數(shù)的迭代運算之后,對外部信息的運輸結(jié)果收斂時,譯碼器盼陛能逼近香農(nóng)限。
盡管Turbo碼的性能接近最優(yōu)值,但在實際集成電路硬件設(shè)計中,對于MAP算法的實現(xiàn)面臨兩個主要問題:
(1)時間延遲過大。
(2)對于存儲器容量空間需求大。
MAP譯碼器采用迭代的方式工作,即在每次迭代過程中,MAP譯碼器首先利用前一次迭代中得到的外信息和信道接收信息,對待譯碼的碼字從頭部到尾部再從尾部到頭部兩個方向收集譯碼信息;利用收集到的譯碼信息,譯碼器做最大釋然估計,估計值可以作為其他譯碼器做下一次迭代過程中的外信息使用。對于比特長度為n的數(shù)據(jù)幀,前向和后向的信息提取共需2n步處理,另外估計數(shù)據(jù)需要n步。從而MAP算法共需要3n步操作,因此其譯碼延遲較大。MAP譯碼器在新的外部信息生成之前需要保存之前所有的譯碼信息,對于一個長度為n比特的數(shù)據(jù)幀,且Turho碼空間為S,則需要2×n × S個存儲單元來保存信息。例如,在CDMA2000系統(tǒng)中的Turbo碼中S=8,且n=20730,則MAP譯碼器需要331680個存儲單元,這對于存儲器的需求壓力較大。為了降低對存儲空間的要求以及提高MAP及其改進算法Log_MAP[3,4]的度量信息計算速度,本文提出了嵌入式度量存儲(ESMS)。
本文內(nèi)容組織結(jié)構(gòu)如下:在第二部分介紹了Log_MAP算法;第三部分介紹了ESMS方法;第四部分給出ESMS方法的性能分析;第五部分是我們的結(jié)論。
2.Log_MAP算法
為便于表述,將本文所用的符號定義列于表1。
Turbo編碼器根據(jù)編碼約束關(guān)系利用源數(shù)據(jù)比特形成冗余的校驗比特,源數(shù)據(jù)比特與校驗比特形成碼字一同被發(fā)送。接收機收到的是被噪聲“污染”了的碼字,MAP譯碼器根據(jù)編碼約束關(guān)系對接收數(shù)據(jù)從頭部到尾部掃描得到前向搜索網(wǎng)格狀態(tài)信息,然后從尾部到頭部掃描得到反向搜索網(wǎng)格狀態(tài)信息。譯碼器通過得到的網(wǎng)格狀態(tài)信息從所有可能路徑中找到最佳譯碼路徑,最佳路徑即是對所有輸人數(shù)據(jù)的最佳估計的譯碼路徑。
Turbo譯碼器結(jié)構(gòu)如據(jù)圖1所示,每個譯碼器的輸出為碼字中每個比特的估計概率概率值,常用對數(shù)釋然比(LLR)來表示,第k個比特的LLR定義為:
可以使用下面的公式簡化Log_MAP算法中的冪運算。
在實際應(yīng)用中,In(1+exp(-|b-a|))可以用查找表來實現(xiàn)。研究表明長度為8的表可以提供足夠的精確度。在Log_MAP算法中對網(wǎng)格信息的歸一化操作如下:
3.嵌入式狀態(tài)信息存儲(ESMS)
根據(jù)Log_MAP算法的原理,每步中的狀態(tài)信息為0到負無窮間的一組數(shù)(實際應(yīng)用中為0到一個有界的負數(shù)之間)。一個狀態(tài)的度量接近0意味著該狀態(tài)最優(yōu)譯碼路徑上的正確的狀態(tài)的概率最大。如果αk(s)是最大值,αk(s)=0,s為前向搜索第k步正確狀態(tài)的概率最大。如果βk(s)是最大值,βk(s)=0,s是反向搜索第k步正確狀態(tài)的概率最大。
從(9)式可知,LLek的值取決于{αk-1(s′)}中的最大值和{βk-1(s′}中的最大值。如果編碼器的輸出為dsk=+1且譯碼器的估計正確,則LLek為正。如果編碼器的輸出為dsk=-1且譯碼器的估計正確,LLek為負。LLek的絕對值越大,第k步估計為正確估計的概率越大。如果LLek最大值與次大值之差越大,LLek會越快收斂于正確估計。因此,譯碼的關(guān)鍵在于得到最大信息的狀態(tài),而狀態(tài)信息的絕對值不影響結(jié)果,即這個最大值是否為0并不影響結(jié)果。
在Log_MAP譯碼算法中使用模圓周上的相對位置的狀態(tài)信息度量而不是絕對位置的度量。令
由此,我們將狀態(tài)轉(zhuǎn)移到了新的位置,這里αk(0)和βk(0)永遠為0。因此不需要存儲{αk(0)}={α0(0), α1,(0)……αtength(0)和{β(0)}={β0(0),β1,(0)……βtength(0)。我們將這種技術(shù)稱為嵌入式狀態(tài)信息存儲(ESMS)。它可以降低實際應(yīng)用對存儲器的要求。
ESMS使用二進制補碼加法器和減法器。使用ESMS技術(shù)需要對Log_MAP算法進行如下修改。
3.1狀態(tài)度量信息更新
在ESMS度量更新的時候同時完成歸一化操作,因此,在ESMS歸一化過程中,不需要搜索每一步的最大狀態(tài)信息,從而可以降低VLSI應(yīng)用中的延遲和面積。
3.2外信息計算
由于在計算狀態(tài)信息和外信息的過程中,αk(0)和βk(0)始終為0,所以相關(guān)的運算可以省略;因此ESMS可以減少譯碼運算量。
4.性能分析
本文使用仿真來分析ESMS技術(shù)的性能。仿真中采用CDMA2000標準中的turbo碼,仿真參數(shù)列于表2。為性能評價,在設(shè)計數(shù)據(jù)路徑時采用了Synopsys作為綜合器。為了比較,同時采用了傳統(tǒng)的Log_MAP算法。圖2和圖3展示了仿真結(jié)果,從而得出結(jié)論使用了ESMS技術(shù)的Log_MAP算法的譯碼器可以達到傳統(tǒng)算法相同的性能。表3列出了采用ESMS技術(shù)的Log_MAP算法的譯碼器,采用MEPMUM技術(shù)的譯碼器以及采用傳統(tǒng)方法譯碼器為存儲度量信息所要求的存儲器空間數(shù)值。從表3中顯示MEPMUM和ESMS能極大的降低存儲器用量,且ESMS能協(xié)助MEPMUM降低12.5%的存儲器空間。
采用了ESMS和傳統(tǒng)方法兩種應(yīng)用來實現(xiàn)Log_MAP譯碼器。為了比較,應(yīng)用還采用了智能歸一化[8]的Log_MAP譯碼器。在綜合中選擇速度最優(yōu)化選項。表4列出了綜合結(jié)果。表4顯示智能歸一化和ESMS相比傳統(tǒng)方式能減少超過36%的面積和17%的延遲。采用了ESMS技術(shù)的Log_MAP算法比智能歸一化實現(xiàn)多降低了1%的面積和延遲,但相比存儲器空間競降低了12.5%。因此,本文提出的這種新技術(shù)ESMS能夠使Log_MAP譯碼器運算更快,面積更小,存儲器空間消耗更小。
5.結(jié)論
本文提出的嵌入式狀態(tài)信息存儲技術(shù)能夠提高Turbo譯碼器的運算速度,并減小面積占用,這種狀態(tài)信息存儲機制能夠用于Log_MAP和Max-Log_MAP譯碼器的ASIC和FPGA設(shè)計中。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論