国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

碼率可配置Turbo譯碼器設計與實現(xiàn)

2015-12-31 03:16宋英杰
現(xiàn)代導航 2015年4期
關鍵詞:譯碼器碼率交織

宋英杰

(中國電子科技集團公司第二十研究所,西安 710068)

0 引言

文章[1]提出了一種高速Turbo編譯碼方法,本文圍繞這種譯碼方法介紹碼率可配置Turbo譯碼器的具體設計與實現(xiàn)。譯碼器支持固定迭代次數(shù)譯碼和動態(tài)停止迭代譯碼,并可靈活支持1/3、1/6、1/10三種碼率。圖1為設計的Turbo譯碼器的總體結(jié)構(gòu)框圖。它主要包含輸入緩存模塊、譯碼邏輯控制模塊、SISO譯碼模塊、交織/解交織模塊、停止迭代判決模塊、硬判決模塊和輸出緩存模塊。

1 輸入緩存模塊設計

譯碼器需要存儲整塊譯碼數(shù)據(jù)供給譯碼過程使用,所以需要輸入緩存模塊。此緩存器采用四個雙口RAM分別供給SISO譯碼器A1、A2、B1、B2使用。此處Turbo譯碼采用(6,2)量化方式,每個雙口RAM深度為256,數(shù)據(jù)位寬為60bit,(對于1/3碼率來說,每個地址中的數(shù)據(jù)包含3個編碼符號即低18bit有效對于1/6碼率來說,每個地址中的數(shù)據(jù)包含6個編碼符號即低36bit有效;對于1/10碼率來說,每個地址中的數(shù)據(jù)包含10個編碼符號即60bit有效)。這樣設計保證了1/3、1/6、1/10三種碼率數(shù)據(jù)存儲深度相同,方便譯碼邏輯控制模塊對整個譯碼流程的控制。

2 SISO譯碼模塊

圖1 Turbo譯碼器的總體結(jié)構(gòu)框圖

采用子塊整體法進行譯碼[3],其基本思想是將接收到的子塊數(shù)據(jù)序列作為一個整體進行譯碼。子塊整體法的具體步驟如下:

(1)順序讀取譯碼輸入信息,計算前向遞歸Alpha和分支度量Gamma并存儲。

(2)當整個子塊的Alpha和Gamma計算完成后,逆序讀取Gamma,計算后向遞歸Bata,同時逆序讀取Alpha,繼而計算對數(shù)似然比和外信息。

2.1 Gamma計算模塊

Gamma計算模塊的功能是計算譯碼中每一時刻的分支度量值,計算出來的Gamma值將用于計算前向狀態(tài)度量Alpha和后向狀態(tài)度量Bata。對于三種碼率的可配置功能可通過選擇器實現(xiàn)。編碼輸出不同每種碼率的Gamma計算也不同,根據(jù)譯碼類型選擇對應的接收數(shù)據(jù)進入相應Gamma計算部分。例如譯碼類型為1/3碼率,則選擇接收數(shù)據(jù)y1、y2和y3進入1/3碼率Gamma計算部分。實現(xiàn)框圖如圖3所示。

為了兼容三種碼率和考慮到實現(xiàn)的穩(wěn)定性,每一時刻Gamma值計算需要4個時鐘周期。Gamma時刻1的值單獨計算,Gamma時刻2至256的值和Alpha時刻1至255的值同時計算以節(jié)約時間。

圖3 Gamma計算模塊實現(xiàn)框圖

2.2 Alpha計算模塊

此模塊的功能是在給定一個初始值的情況下,利用Gamma計算模塊所計算出來的分支度量Gamma值做連續(xù)遞推得出每一個時刻的前向狀態(tài)度量。計算后一時刻Alpha值需要前一時刻計算出來的Alpha值,所以Alpha計算模塊要進行的是一種遞推運算,而在連續(xù)遞推的過程中,可能會導致定點數(shù)的溢出,所以在特定的時刻對計算出來的Alpha值進行歸一化來防止溢出。

本次實現(xiàn)的Turbo碼有16個狀態(tài),在任一時刻需要計算所有狀態(tài)的前向狀態(tài)度量值,在此設計中任一時刻需要計算16個前向度量值即16個Alpha值。假設每一個前向度量值稱為一個節(jié)點,任一時刻需要計算16個節(jié)點的Alpha值。任一節(jié)點的計算都需要求出4個求和項的最大值,所有碼率采用相同的狀態(tài)轉(zhuǎn)移圖,所以Alpha計算模塊可共用。以任一節(jié)點的計算為例來說明Alpha值的計算過程,如圖4所示。

命題2.4 設偽BCI-代數(shù)X的猶豫模糊集,則為X的猶豫模糊反群濾子當且僅當對任意γ ∈ P([0,1]), 要么 ?, 要么為X的反群濾子.

圖4 Alpha計算模塊實現(xiàn)框圖

gamma00、gamma01、gamma10、gamma11 是4個分支度量的輸入,alpha00、alpha01、alpha10、alpha11是4個前向度量值的輸入,對輸入按下式進行相加運算:

然后比較器對sum1~sum4做比較選出2個極大值max1和max2,再經(jīng)過一次比較器選出max1和max2的最大值max,這個max也就是sum1~sum4的最大值。將max進行歸一化,歸一化后的值作為此節(jié)點的前向狀態(tài)度量值輸出,并且反饋到下一時刻作為輸入端前向度量值。為了節(jié)約譯碼時間,系統(tǒng)在運算時采用同一時刻16個節(jié)點同時進行的方式。

每一時刻Alpha值計算需要4個時鐘周期,故256時刻共用1024個時鐘周期。

Bata計算模塊實現(xiàn)方法和Alpha計算模塊類似,此處不再贅述。需要說明的是Bata計算與對數(shù)似然比和外信息計算同時進行。

2.3 對數(shù)似然比和外信息計算模塊

此模塊的功能是計算下一分量譯碼所需要的外信息和用于硬判決所需要的對數(shù)似然比。此模塊的運算過程[2]首先是計算系統(tǒng)比特對“00”、“01”、“10”、“11”的對數(shù)似然比 llr00、llr01、llr10、llr11,利用這4個值和先驗信息la1、la2求出每個比特的對數(shù)似然比和外信息。之后將對數(shù)似然比和經(jīng)限幅后外信息輸出。所有碼率采用相同的狀態(tài)轉(zhuǎn)移圖,所以對數(shù)似然比和外信息計算模塊可共用。圖5是此模塊的結(jié)構(gòu)示意圖。

圖5 對數(shù)似然比和外信息計算模塊結(jié)構(gòu)示意圖

由上圖可以看出此計算模塊主要由alpha、bata、gamma相加運算、Max1_16、對數(shù)似然比計算和外信息計算組成。相加運算是求出16個alpha+bata+gamma的求和項;Max1_16是求出這16個求和項的最大值;對數(shù)似然比計算是由llr00、llr01、llr10、llr11計算出信息比特對中每個信息比特的對數(shù)似然比llr1和llr2;外信息le1和le2計算是由llr1、llr2、la1和la2計算出外信息,然后將外信息乘以一個比例因子,限幅處理后輸出。

Max1_16模塊的功能是求出 16個alpha+bata+gamma的求和項的最大值。這個模塊分為第一級比較、第二級比較、第三級比較和第四級比較。

每一時刻對數(shù)似然比和外信息計算需要11個時鐘周期,共用1027個時鐘周期,詳細計算時間如圖7所示。

圖6 Max1_16內(nèi)部結(jié)構(gòu)示意圖

圖7 詳細計算時間示意圖

2.4 Alpha存儲模塊和Gamma存儲模塊

Alpha存儲模塊是由16個雙口RAM(AlphaStoreMem)組成。每個AlphaStoreMem的數(shù)據(jù)寬度為每個Alpha數(shù)據(jù)的寬度18bit,深度為256,用于存儲每個時刻計算出來Alpha值。

Gamma存儲模塊由64個雙口RAM(Gamma StoreMem)組成。每個GammaStoreMem的數(shù)據(jù)寬度為每個Gamma數(shù)據(jù)的寬度17bit,深度為256,用于存儲每個時刻計算出來的Gamma值。存儲的每一個子塊的Gamma值會被逆序讀出用于計算后向狀態(tài)度量Bata、對數(shù)似然比和外信息。

2.5 Alpha初始值存儲模塊和Bata初始值存儲模塊

初始值存儲模塊的功能是將本次迭代譯碼分塊邊界處計算所得的前向狀態(tài)度量Alpha和后向狀態(tài)度量Bata的值保存起來,也就是說將Alpha計算模塊最后一次(256次)迭代計算出的16個Alpha值和Bata計算模塊最后一次迭代計算出的16個Bata值用寄存器保存起來,用作下次譯碼迭代Bata和Alpha遞歸計算的初始值。保存Alpha和Bata的初始值的寄存器在第一次加載之前都需要初始化。因初始和結(jié)束狀態(tài)未知所以每個子塊Alpha初始值都置為0,Bata初始值也置為0。

3 其余模塊

譯碼邏輯控制模塊在譯碼流程中對各個模塊起控制作用,為各個模塊提供相應的配置信息。

交織/解交織模塊主要用于產(chǎn)生交織或者解交織過程所用到的交織地址。交織/解交織是根據(jù)SISO譯碼的需要完成外信息和對數(shù)似然比的交織/解交織處理。

由于要支持動態(tài)停止迭代譯碼機制,因此引入了停止迭代判決模塊。當?shù)蟮淖g碼結(jié)果滿足停止迭代判決條件時,就產(chǎn)生停止迭代信號。

硬判決模塊實際上就是在停止迭代后,根據(jù)B分量譯碼器輸出的對數(shù)似然比符號硬判決成信息比特1或0。

輸出緩存模塊將硬判決后的譯碼結(jié)果經(jīng)過串并轉(zhuǎn)換成8bit后存入雙口RAM中。雙口RAM數(shù)據(jù)位寬8bit,深度為128。

圖8 1024比特吞吐量波形

4 譯碼器的資源占用和吞吐量

4.1 資源占用

在ISE Design Suit 14.4下碼率可配置Turbo譯碼器的資源占用情況如下表所示。選用Xilinx公司的XC7K325T-2FFG900I器件,譯碼器占用寄存器單元61242個,LUT單元98824個,RAM塊64個。

4.2 吞吐量

對幀長1024比特的待譯碼數(shù)據(jù)的仿真波形如圖8所示。

表1 譯碼器資源消耗

圖8中,第一條線是譯碼開始時刻,第二條線是譯碼結(jié)束時刻。則兩條線之間的時鐘周期個數(shù)就是譯一幀所用的時鐘周期,為2215個clk,工作時鐘頻率為128MHz,周期為0.0078125us,則迭代一次時,譯碼器吞吐量為:

5 結(jié)束語

本文提出了碼率可配置Turbo譯碼器硬件實現(xiàn)方案,詳細介紹了硬件實現(xiàn)方案中的核心模塊SISO譯碼模塊的實現(xiàn)過程。最后給出譯碼器硬件資源消耗情況,并給出里譯碼器的吞吐量。

[1]宋英杰.Turbo高速編譯碼技術研究[J].現(xiàn)代導航,2015(1).47-52

[2]張婷.無線信道可配置Turbo譯碼組件技術研究[D].西安電子科技大學碩士學位論文,2009.

[3]郗莉.LTE系統(tǒng)Turbo高速譯碼算法研究[D].西安電子科技大學碩士學位論文,2010.

猜你喜歡
譯碼器碼率交織
“新”與“舊”的交織 碰撞出的魅力“夜上?!?/a>
移動視頻源m3u8多碼率節(jié)目源終端自動適配技術
一種基于HEVC 和AVC 改進的碼率控制算法
交織冷暖
高速碼率兼容DVB-S2的LDPC譯碼器的FPGA實現(xiàn)
基于狀態(tài)機的視頻碼率自適應算法
編碼器和譯碼器綜合實現(xiàn)數(shù)字顯示
跟蹤導練(一)5
金融騙局虛實交織
奧運夢與中國夢交織延展
广宗县| 象山县| 资兴市| 拉孜县| 武穴市| 泰安市| 高安市| 廊坊市| 汉源县| 顺义区| 龙江县| 鄂州市| 云林县| 邵武市| 博罗县| 津南区| 万全县| 额尔古纳市| 白水县| 咸阳市| 库尔勒市| 永泰县| 惠安县| 通州市| 岫岩| 左贡县| 渝北区| 卫辉市| 微博| 富顺县| 闸北区| 白玉县| 乌拉特前旗| 连山| 云和县| 英吉沙县| 鄄城县| 綦江县| 洱源县| 定日县| 沙洋县|