MSCBSC 移動(dòng)通信論壇
搜索
登錄注冊(cè)
網(wǎng)絡(luò)優(yōu)化工程師招聘專欄 4G/LTE通信工程師最新職位列表 通信實(shí)習(xí)生/應(yīng)屆生招聘職位

  • 閱讀:6624
  • 回復(fù):0
LTE 信道編碼——Turbo編碼與譯碼
destild
新手上路
鎵嬫満鍙風(fēng)爜宸查獙璇? style=


 發(fā)短消息    關(guān)注Ta 

積分 -1097
帖子 60
威望 13021 個(gè)
禮品券 0 個(gè)
專家指數(shù) -1397
注冊(cè) 2017-1-19
專業(yè)方向 
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2018-12-03 10:34:03  只看樓主 

原文 Understanding LTE with MATLAB  ,作者Houman Zarrinkoub,本文是對(duì)于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準(zhǔn)確的地方請(qǐng)讀者多多包涵。

本文僅限于個(gè)人學(xué)習(xí),研究,交流,不得用于其他商業(yè)用途!



4.3 信道編碼

到目前為止,我們已經(jīng)討論了在物理信道處理中執(zhí)行的調(diào)制和加擾操作,F(xiàn)在我們將結(jié)合TrCH處理,即信道編碼,與調(diào)制和加擾。我們將介紹基于turbo編碼的糾錯(cuò)編碼和以CRC檢測(cè)為代表的錯(cuò)誤檢測(cè)機(jī)制。表4.3總結(jié)了各種TrCH的信道編碼方案。除了基于卷積編碼的廣播信道(BCH)外,大多數(shù)物理信道都采用turbo編碼。

Turbo編碼是LTE標(biāo)準(zhǔn)中規(guī)定的信道編碼的基礎(chǔ)。盡管turbo編碼在許多以前的標(biāo)準(zhǔn)中已經(jīng)被使用,但是它一直被視為與其他卷積編碼方案一起的可選組件。然而,在LTE中,turbo編碼是信道編碼機(jī)制的驅(qū)動(dòng)部件;谖覀兊慕虒W(xué)方法,我們將逐步建立LTE標(biāo)準(zhǔn)的TrCH處理,分五個(gè)步驟。首先,我們以1/3的編碼率實(shí)現(xiàn)turbo編碼算法。然后在Turbo譯碼器中加入早期終止機(jī)制。這使得Turbo解碼器的計(jì)算復(fù)雜度可擴(kuò)展。然后,我們介紹速率匹配操作,它通過對(duì)1/3速率渦輪編碼器輸出進(jìn)行操作來(lái)提供任意給定速率的編碼。介紹了與子塊分割和碼字重構(gòu)相關(guān)的功能。最后,將所有組件放在一起,實(shí)現(xiàn)TrCH處理的處理鏈。在這本書中,我們省略了與HARQ處理相關(guān)的MATLAB函數(shù)的介紹。HARQ處理非常重要,因?yàn)樗举|(zhì)上減少了重傳次數(shù),并且提高了傳輸塊錯(cuò)誤檢測(cè)之后的性能。這個(gè)省略符合我們聲明的范圍,該范圍關(guān)注于穩(wěn)態(tài)用戶平面處理。


4.4 Turbo 編碼

Turbo編碼器屬于稱為并行級(jí)聯(lián)卷積編碼的一類信道編碼算法[2]。顧名思義,turbo碼是通過并行連接兩個(gè)傳統(tǒng)編碼器并通過交織器將它們分開而形成的。LTE中Turbo碼的選擇受到多種因素的影響。首先是Turbo編碼器的近香農(nóng)約束性能。在turbo譯碼中,給定足夠的迭代次數(shù),turbo碼可以具有遠(yuǎn)遠(yuǎn)超過傳統(tǒng)卷積編碼器的誤碼性能。此外,由于采用了創(chuàng)新的速率匹配機(jī)制,Turbo編碼的適用性稍后再做討論。


4.4.1 Turbo編碼器

LTE采用基本速率為1/3的turbo編碼作為其信道編碼方案的基石,如圖4.3所示:

LTE渦輪編碼器基于由內(nèi)部交織器分離的兩個(gè)8狀態(tài)分量編碼器的并行級(jí)聯(lián)。Turbo編碼器的輸出由三個(gè)碼流組成。第一流的位通常被稱為系統(tǒng)位。第二和第三流的比特——即兩個(gè)組成編碼器的輸出——通常分別稱為奇偶校驗(yàn)1和奇偶校驗(yàn)2比特流。每個(gè)組成編碼器獨(dú)立地由尾部比特終止。這意味著對(duì)于K位的輸入塊大小,由于網(wǎng)格終止,渦輪編碼器的輸出由三個(gè)長(zhǎng)度為K+4位的流組成。這使得Turbo編碼器的編碼率略小于1/3。由于在每個(gè)流的末尾多路復(fù)用尾比特,所以系統(tǒng)位和奇偶校驗(yàn)1和奇偶校驗(yàn)2比特流都具有大小K+4。


為了完全指定turbo編碼器,我們需要指定組成編碼器和turbo代碼內(nèi)部交織器的網(wǎng)格結(jié)構(gòu)。LTE交織器是基于一個(gè)簡(jiǎn)單的二次多項(xiàng)式置換(QPP)方案。交織器置換輸入比特的索引。輸出索引p(i)和輸入索引i之間的關(guān)系由以下二次多項(xiàng)式表達(dá)式描述:

其中K是輸入塊的大小,f1和f2是取決于K值的常數(shù)。LTE允許輸入塊大小K為188個(gè)不同的值。最小塊大小為40,最大塊大小為6144。這些塊大小和相應(yīng)的f1和f2常數(shù)在文獻(xiàn)[3]中進(jìn)行了總結(jié)。


LTE turbo編碼器是使用QPP交織器的無(wú)競(jìng)爭(zhēng)編碼器,它通過在交織操作中對(duì)存儲(chǔ)器訪問進(jìn)行流線化來(lái)顯著改善turbo碼的性能。組成編碼器的網(wǎng)格結(jié)構(gòu)由以下兩個(gè)多項(xiàng)式描述:


這描述了一個(gè)1/3 Turbo編碼器,具有四個(gè)狀態(tài),并且在每個(gè)組成編碼器處具有網(wǎng)格結(jié)構(gòu),由前饋和反饋連接多項(xiàng)式表示,八度值分別為13和15。


4.4.2 Turbo 解碼器

在接收機(jī)中,turbo解碼器將turbo編碼器執(zhí)行的操作反相。turbo譯碼器基于兩個(gè)校驗(yàn)位(APP)譯碼器和反饋環(huán)路中的兩個(gè)交織器的使用。在APP解碼器中使用在turbo編碼器中發(fā)現(xiàn)的相同的網(wǎng)格結(jié)構(gòu),以及相同的交織器。不同之處在于turbo解碼是一種迭代操作。turbo譯碼器的性能和計(jì)算復(fù)雜度直接關(guān)系到所執(zhí)行的迭代次數(shù)。


在接收機(jī)處,turbo解碼器執(zhí)行turbo編碼器的逆操作。通過處理其輸入信號(hào),即解調(diào)和解擾器的輸出,turbo解碼器將恢復(fù)TrCH傳輸比特的最佳估計(jì)。請(qǐng)注意,Turbo解碼器輸入需要在LLRs中表示。如前所述,如果執(zhí)行軟判決解調(diào),則解調(diào)器生成LLR。


4.4.3 MATLAB 例子

下面的兩個(gè)MATLAB函數(shù)顯示了LTE的Turobo碼器和解碼器的實(shí)現(xiàn)及其所有規(guī)范,使用通信系統(tǒng)工具箱的系統(tǒng)對(duì)象。在TurboEncoder函數(shù)中,我們使用comm.TurboEncoder系統(tǒng)對(duì)象,設(shè)置網(wǎng)格結(jié)構(gòu)和交織器屬性,以實(shí)現(xiàn)LTE標(biāo)準(zhǔn)中指定的功能。通過調(diào)用系統(tǒng)對(duì)象的step方法,對(duì)輸入比特進(jìn)行處理,生成Turbo編碼比特作為輸出。

1function y=TurboEncoder(u, intrlvrIndices)
2%#codegen
3persistent Turbo
4if isempty(Turbo)
5    Turbo 
= comm.TurboEncoder('TrellisStructure', poly2trellis(4, [13 15], 13), ...
6        'InterleaverIndicesSource','Input port');
7end
8y=step(Turbo, u, intrlvrIndices); 
9end

 

類似地,TurboDecoder函數(shù)對(duì)其第一輸入信號(hào)(u)進(jìn)行操作,該信號(hào)是解調(diào)器和解擾器的LLR輸出。Turbo解碼器將恢復(fù)發(fā)送比特的最佳估計(jì)。該函數(shù)還將交織索引(intrlvrIndices)和解碼器中使用的最大迭代次數(shù)(maxIter)作為輸入。

 1function y=TurboDecoder(u, intrlvrIndices,  maxIter)
2%#codegen
3persistent Turbo
4if isempty(Turbo)
5    Turbo 
= comm.TurboDecoder('TrellisStructure', poly2trellis(4, [13 15], 13),...
6         'InterleaverIndicesSource','Input port', ...
7        'NumIterations', maxIter);
8end
9y=step(Turbo, u,  intrlvrIndices);
10end


為了設(shè)置網(wǎng)格結(jié)構(gòu),我們使用通信系統(tǒng)工具箱的 ploy2trellis() 函數(shù)。由于LTE網(wǎng)格結(jié)構(gòu)同時(shí)具有前饋和反饋連接多項(xiàng)式,我們首先建立多項(xiàng)式的二進(jìn)制數(shù)表示,然后將二進(jìn)制表示轉(zhuǎn)換成八進(jìn)制表示。通過查看圖4.3中的渦輪編碼器的框圖,我們可以看出該編碼器具有約束長(zhǎng)度為4、生成器多項(xiàng)式矩陣為[1315]和反饋連接多項(xiàng)式為13。因此,為了設(shè)置網(wǎng)格結(jié)構(gòu),我們需要使用poly2trellis(4,[1315],13)函數(shù)。


為了構(gòu)建基于QPP方案的LTE交織器,我們使用lteIntrlvrIndices() 函數(shù)。該函數(shù)基于僅允許的188個(gè)輸入大小查找LTE交織器表,找到相應(yīng)的f1和f2常數(shù),并按照標(biāo)準(zhǔn)中的描述計(jì)算置換向量。

1function indices = lteIntrlvrIndices(blkLen)
2%#codegen
3
4[f1, f2] = getf1f2(blkLen);
5Idx      = (0:blkLen-1).';
6indices  =  mod(f1*Idx + f2*Idx.^2, blkLen) + 1;
8end
9


其中comm.TurboEncoder和comm.TurboDecoder系統(tǒng)對(duì)象是基于直接MATLAB實(shí)現(xiàn)來(lái)表達(dá)算法的對(duì)象。因此,使用MATLAB編輯命令,我們可以檢查每次使用這些系統(tǒng)對(duì)象時(shí)執(zhí)行的MATLAB代碼;贛ATLAB的系統(tǒng)對(duì)象的創(chuàng)建和創(chuàng)作超出了本書的范圍;有關(guān)此主題的更多信息,請(qǐng)參考MATLAB文檔[4]。為了說(shuō)明MATLAB實(shí)現(xiàn)如何符合我們的期望,我們可以檢查這個(gè)系統(tǒng)對(duì)象的stepimpl函數(shù)。


comm.TurboEncoder stepimpl函數(shù)執(zhí)行兩個(gè)卷積編碼操作,首先針對(duì)輸入信號(hào),然后針對(duì)信號(hào)的交織版本。然后它捕獲與網(wǎng)格終止相關(guān)的額外樣本并將它們附加到Systematic和Parity流的末尾。comm.TurboDecoder stepimpl重復(fù)一系列操作,包括兩個(gè)APP解碼器和交織器,N次。N值對(duì)應(yīng)于turbo解碼器中的最大迭代次數(shù)。在每個(gè)處理迭代結(jié)束時(shí),turbo解碼器使用結(jié)果更新其最佳估計(jì)。


4.4.4 誤碼率測(cè)量

任何turbo編碼器的性能取決于在解碼操作中執(zhí)行的迭代次數(shù)。這意味著,對(duì)于給定的渦輪編碼器(例如,LTE標(biāo)準(zhǔn)中指定的編碼器),隨著迭代次數(shù)的增加,BER性能逐漸變好。函數(shù)chap4_ex03_nIter通過計(jì)算作為迭代次數(shù)的函數(shù)的BER性能來(lái)說(shuō)明這一點(diǎn)。

 1function [bernumBits]=chap4_ex03_nIter(EbNo, maxNumErrs, maxNumBits, nIter)
2%% Constants
3clear functions;
4FRM=2432;                                           % Size of bit frame
5Indices = lteIntrlvrIndices(FRM);
6M=4;k=log2(M);
7RFRM/(3* FRM + 4*3);
8snr = EbNo + 10*log10(k) + 10*log10(R);
9noiseVar = 10.^(-snr/10);
10ModulationMode=1;                              % QPSK
11%% Processsing loop modeling transmitter, channel model and receiver
12numErrs = 0; numBits = 0; nS=0;
13while ((numErrs < maxNumErrs) && (numBits < maxNumBits))
14    % Transmitter
15    u  =  randi([0 1], FRM,1);                                                            % Randomly generated input bits
16    t0 = TurboEncoder(u, Indices);                                                   % Turbo Encoder 
17    t1 = Scrambler(t0, nS);                                                                % Scrambler
18    t2 = Modulator(t1, ModulationMode);                                       % Modulator
19    % Channel
20    c0 = AWGNChannel(t2, snr);                                                      % AWGN channel
21    % Receiver
22    r0 = DemodulatorSoft(c0, ModulationMode, noiseVar);            % Demodulator
23    r1 = DescramblerSoft(r0, nS);                                                     % Descrambler
24    y  = TurboDecoder(-r1, Indices,   nIter);                                     % Turbo Deocder
25    % Measurements
26    numErrs     = numErrs + sum(y~=u);                                           % Update number of bit errors
27    numBits     = numBits + FRM;                                                     % Update number of bits processed
28    % Manage slot number with each subframe processed
29    nS = nS + 2; nS = mod(nS, 20);
30end
31%% Clean up & collect results
32ber = numErrs/
numBits;                                          % Compute Bit Error Rate (BER
)
33

為了比較turbo編碼器和傳統(tǒng)卷積編碼器的性能,我們還運(yùn)行了一個(gè)名為chap4_ex03_viterbi.m的函數(shù),它使用了1/3速率的卷積編碼器、Viterbi解碼器和軟判決解調(diào)。

 1function [bernumBits]=chap4_ex03_viterbi(EbNo, maxNumErrs, maxNumBits)
2%% Constants
3FRM=2432;                                           % Size of bit frame
4M=4;k=log2(M);
5RFRM/(3* (FRM+6));
6snr = EbNo + 10*log10(k) + 10*log10(R);
7noiseVar = 10.^(-snr/10);
8ModulationMode=1;                              % QPSK
9%% Processsing loop modeling transmitter, channel model and receiver
10numErrs = 0; numBits = 0; nS=0;
11while ((numErrs < maxNumErrs) && (numBits < maxNumBits))
12    % Transmitter
13    u  =  randi([0 1], FRM,1);                                                            % Randomly generated input bits
14    t0 = ConvolutionalEncoder(u);                                                   % Convolutional Encoder 
15    t1 = Scrambler(t0, nS);                                                                % Scrambler
16    t2 = Modulator(t1, ModulationMode);                                       % Modulator
17    % Channel
18    c0 = AWGNChannel(t2, snr);                                                      % AWGN channel
19    % Receiver
20    r0 = DemodulatorSoft(c0, ModulationMode, noiseVar);            % Demodulator
21    r1 = DescramblerSoft(r0, nS);                                                     % Descrambler
22    r2  = ViterbiDecoder(r1);                                                            % Viterbi Deocder
23    y=r2(1:FRM);
24    % Measurements
25    numErrs     = numErrs + sum(y~=u);                                           % Update number of bit errors
26    numBits     = numBits + FRM;                                                     % Update number of bits processed
27    % Manage slot number with each subframe processed
28    nS = nS + 2; nS = mod(nS, 20);
29end
30%% Clean up & collect results
31ber = numErrs/
numBits;                                          % Compute Bit Error Rate (BER
)
32end 
33


圖4.4比較了當(dāng)使用Turbo解碼的一次、三次或五次迭代與同樣編碼速率的典型維特比解碼器時(shí)Turbo解碼器的BER性能。隨著迭代次數(shù)從1次增加到3次,然后增加到5次,我們看到BER曲線的形狀反映了Turbo譯碼器的近最佳質(zhì)量。該曲線在E/N一定值后呈現(xiàn)陡峭的斜率,例如,以5次迭代為最大迭代次數(shù),結(jié)合QPSK和軟判決解調(diào)器的LTE turbo解碼器能夠達(dá)到1.25dB的信噪比值2e_4。

圖4.4 不同迭代次數(shù)情況下的Turbo編碼與卷積編碼誤碼率對(duì)比圖


turbo編碼的這種性能特征可以解釋為什么在LTE標(biāo)準(zhǔn)中turbo編碼被選擇作為用戶數(shù)據(jù)的強(qiáng)制信道編碼機(jī)制。


通過執(zhí)行以下腳本(chap4_ex03_nIter),我們可以測(cè)量作為迭代次數(shù)的函數(shù)的收發(fā)器計(jì)算時(shí)間。計(jì)算時(shí)間是對(duì)turbo編碼和解碼操作的計(jì)算復(fù)雜度的估計(jì)。

 1%% Computation time of turbo coder 
2%% as a function of number of iterations 
3EbNo=1; 
4maxNumErrs=1e6
5maxNumBits=1e6
6for nIter=1:6 
7    clear functions 
8    tic
9    ber=chap4_ex03_nIter(EbNo, maxNumErrs, maxNumBits , nIter); 
10    toc
11end
12

表4.4總結(jié)了結(jié)果。如預(yù)期的,復(fù)雜度以及因此完成解碼操作所需的時(shí)間與迭代次數(shù)成正比。


為了了解什么函數(shù)對(duì)我們迄今為止開發(fā)的收發(fā)器(chap4_ex03_nIter)的復(fù)雜性貢獻(xiàn)最大,我們執(zhí)行以下分析腳本。

1%% Profiling the turbo coder system model 
2EbNo=1;
3maxNumErrs=1e6
4maxNumBits=1e6
5profile on 
6ber=chap4_ex03_nIter(EbNo, maxNumErrs, maxNumBits , 1); 
7profile viewer

系統(tǒng)模型的每行的執(zhí)行時(shí)間總結(jié)在圖4.5所示的分析報(bào)告中。

結(jié)果表明,采用固定的迭代值進(jìn)行Turbo譯碼約占整個(gè)系統(tǒng)仿真時(shí)間的86%。因此,Turbo譯碼器被認(rèn)為是系統(tǒng)的瓶頸之一。為了克服這個(gè)問題,LTE標(biāo)準(zhǔn)在LTE編碼器中提供了一種機(jī)制,該機(jī)制使得能夠盡早終止Turbo譯碼,而不會(huì)對(duì)Turbo譯碼的性能產(chǎn)生嚴(yán)重影響。這種早期終止機(jī)制將在下一節(jié)中討論。



未完待續(xù)

2018/12/2



點(diǎn)擊關(guān)注了解更多精彩內(nèi)容!






掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無(wú)線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5G NTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《 R16 23501-g60 5G的系統(tǒng)架構(gòu)1
  • 對(duì)本帖內(nèi)容的看法? 我要點(diǎn)評(píng)

     
    [充值威望,立即自動(dòng)到帳] [VIP貴賓權(quán)限+威望套餐] 另有大量?jī)?yōu)惠贈(zèng)送活動(dòng),請(qǐng)光臨充值中心
    充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無(wú)憂

    快速回復(fù)主題    
    標(biāo)題
    內(nèi)容
     上傳資料請(qǐng)點(diǎn)左側(cè)【添加附件】

    當(dāng)前時(shí)區(qū) GMT+8, 現(xiàn)在時(shí)間是 2025-01-31 22:51:12
    渝ICP備11001752號(hào)  Copyright @ 2006-2016 mscbsc.com  本站統(tǒng)一服務(wù)郵箱:mscbsc@163.com

    Processed in 0.380098 second(s), 13 queries , Gzip enabled
    TOP
    清除 Cookies - 聯(lián)系我們 - 移動(dòng)通信網(wǎng) - 移動(dòng)通信論壇 - 通信招聘網(wǎng) - Archiver