LTE中卷積碼的譯碼器設計與FPGA實現
3 譯碼器的設計與實現
在譯碼器的設計中,采用固定延遲算法。首先對進入譯碼器之前的軟判決數據進行處理,如圖3所示。本文引用地址:http://www.104case.com/article/191081.htm
將其處理成圖中所示的待譯碼數據格式,其中DL是實際輸入的所需譯碼數據長度,PL為所需在數據中加的數據前綴長度,也即上述固定延遲算法中的頭譯碼長度,DD為所要達到的譯碼深度(Decoding Depth),DD-DL為所要加的后綴長度,即固定延遲算法中的尾譯碼長度。在設計中選擇PL為96,由于在LTE系統中DL是變化的,最大為76,不能夠選擇固定的尾譯碼長度,但在本文設計中選擇固定的DD為192。
譯碼器的整體設計框圖,如圖4所示。圖中譯碼器主要由譯碼器系統控制模塊,分支度量(BM)模塊,加比選(ACS)模塊,回溯(TB)模塊和輸出緩存組成。
數據處理由譯碼器系統控制模塊控制完成,它控制從輸入緩存中讀入數據進行譯碼。
下面對譯碼器BM模塊、ACS模塊和TB模塊這三個核心模塊的具體設計與實現進行詳細介紹。
3.1 BM模塊
在整個系統中分支度量采用的是軟判決數據。軟判決根據接收的的軟判決比特和編碼器網格圖的參考分支,計算其歐氏距離。一般的歐氏距離采用如下公式計算:
式中:ri為接收的軟判決比特;ci為編碼器網格圖的參考分支。上述公式經簡化后結合系統所用軟判決數據特點,可以得到如下計算方法:
式中:Ri為接收的軟判決比特的絕對值;Ci∈{0,1)為參考分支比特。
3.2 BM模塊
在每一個時鐘中,用得到的分支度量(BM)和路徑度量(PM)相加,得到下一時刻狀態的多個路徑度量,通過比較,選擇一個幸存分支。將每個狀態的幸存分支,存儲到回溯存儲器中,更新路徑度量。在設計中,存儲從數據段(即圖4中的Initial State)開始,在這之前的幸存分支不需存儲。同時,計算出64個狀態中,具有最小路徑度量的狀態。
如果直接將前一狀態的路徑度量與分支度量相加,得到下一狀態的路徑度量,來選擇幸存分支,如圖2中,比較PMi+BMp和PMj+BMq選擇幸存分支。每個狀態2個加法器,64個狀態就需要128個加法器。
評論