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