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

  • 閱讀:3855
  • 回復(fù):3
信道編碼器與譯碼器原理仿真
destild
新手上路
鎵嬫満鍙風(fēng)爜宸查獙璇? style=


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

積分 -1082
帖子 60
威望 13021 個
禮品券 0 個
專家指數(shù) -1382
注冊 2017-1-19
專業(yè)方向 
回答問題數(shù) 0
回答被采納數(shù) 0
回答采納率 0%
 
發(fā)表于 2018-11-14 19:58:25  只看樓主 

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

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

1.PNG


         Understanding LTE with MATLAB——3.12到3.13節(jié)


3.12 MATLAB信道編碼例子

在本節(jié)中,我們將使用一種教學(xué)方法和一系列MATLAB程序,檢查工具箱在信道編碼方面提供的內(nèi)容。首先,我們將建立一個系統(tǒng),使用卷積編碼和基于硬判決解碼的維特比譯碼。然后,我們將使用軟判決譯碼更新算法。最后,我們將用卷積編碼算法代替卷積編碼,并比較每個階段的性能。通過這些簡單的練習(xí),我們不僅將了解使用MATLAB和通信系統(tǒng)工具箱為移動通信模型增加更多復(fù)雜性是多么容易,而且我們將清楚地看到,BER性能的顯著提高解釋了turbo編碼在LTE標準的信道編碼中所起的重要作用。


3.12.1 誤差校正與檢測

信道編碼包括錯誤檢測和糾錯。通過使用CRC(循環(huán)冗余校驗)檢測器進行錯誤檢測,接收器可以請求傳輸?shù)闹貜?fù),這被稱為自動重復(fù)請求。前向糾錯編碼允許基于傳輸信號中包括的冗余比特來校正錯誤。錯誤檢測和前向糾錯的混合稱為HARQ(Hybrid Automatic Repeat Request,混合自動重復(fù)請求)構(gòu)成了大多數(shù)3G標準的組成部分,并且也被用于LTE標準。糾錯碼通常分為分組碼和卷積碼。卷積碼在2G和3G移動通信標準中有著廣泛的應(yīng)用,主要是因為其復(fù)雜度較低。

在這一節(jié)中,我們將詳細說明我們已經(jīng)增長的Matlab模型,它已經(jīng)包含了調(diào)制,包括信道編碼。作為解釋在LTE標準中使用turbo編碼的價值和動機的完美工具,我們將比較卷積編碼和turbo編碼的性能。此外,為了解釋在使用接收機設(shè)計中所涉及的折衷,我們將比較具有和不帶軟判決譯碼的調(diào)制編碼組合的性能。


3.12.2 卷積碼

卷積碼是由輸入序列與編碼器的脈沖響應(yīng)卷積而產(chǎn)生的。編碼器接受k位輸入樣本塊,并通過對當(dāng)前數(shù)據(jù)塊和m個先前輸入塊進行操作,產(chǎn)生n位輸出樣本塊。編碼器的編碼速率由比Rc=k/n給出,卷積編碼器由這三個參數(shù)(n,k,m)指定。圖3.6示出了卷積編碼器。

2.PNG

3.12.3 硬判決Viterbi譯碼

在本練習(xí)的第一次迭代中,我們修改了上一節(jié)中的MATLAB函數(shù),以在調(diào)制中添加信道編碼方案。當(dāng)使用信道編碼方案時,發(fā)射機通過無線信道發(fā)送冗余比特和消息比特。接收機接收發(fā)送的信號,并使用冗余位來檢測和校正信道引入的一些錯誤。讓我們開始向通信系統(tǒng)添加卷積編碼器和維特比解碼器。該通信系統(tǒng)使用硬判決維特比譯碼,其中解調(diào)器將接收信號映射到位,然后將位傳遞到維特比譯碼器進行糾錯。下面的MATLAB函數(shù)(chap3_ex03_qpsk_viterbi)使用QPSK調(diào)制和AWGN信道的硬判決Viterbi解碼。


 1function [ ber,bits ] = chap3_ex03_qpsk_viterbi( EbNo,maxNumErrs,maxNumBits )
2%% Initializations
3
4persistent Modulator AWGN DeModulator BitError ConvEncoder Viterbi
5
6if isempty(Modulator)
7    Modulator 
= comm.QPSKModulator('BitInput',true);
8    AWGN = comm.AWGNChannel;
9    DeModulator = comm.QPSKDemodulator('BitOutput',true);
10    BitError = comm.ErrorRate;
11    ConvEncoder = comm.ConvolutionalEncoder('TerminationMethod','Terminated');
12    Viterbi = comm.ViterbiDecoder('InputFormat','Hard','TerminationMethod','Terminated');
13end
14%% Constants
15FRM = 2048;
16M = 4;
17k = log2(M);
18codeRate = 1/2;
19snr = EbNo + 10*log10(k)+10*log10(codeRate);
20AWGN.EbNo = snr;
21
22%% Processing loop modeling transmitter, channel model and receiver
23numErrs = 0;
24numBits = 0;
25results = zeros(3,1);
26while((numErrs<maxNumErrs)&&(numBits<maxNumBits))
27    % Transmitter
28    u = randi([0 1],FRM,1);
29    encoded = ConvEncoder.step(u);
30    mod_sig = Modulator.step(encoded);
31
32    % Channel 
33    rx_sig = AWGN.step(mod_sig);
34
35    % Receiver
36    demod = DeModulator.step(rx_sig);
37    decoded = Viterbi.step(demod);
38    y = decoded(1:FRM);
39    results = BitError.step(u,y);
40    numErrs = results(2);
41    numBits = results(3);
42end
43
44%% Clean up & collect results
45ber = results(1);
46bits = results(3);
47reset(BitError);
48
49end


通過在BERTool中運行該函數(shù),我們可以測量硬判決維特比譯碼的性能,并與上限理論結(jié)果進行比較。檢查圖3.7中的結(jié)果,我們可以看到模擬的BER曲線低于理論上限值,這與我們的期望是一致的。這些結(jié)果表明,為了達到更好的性能,我們需要改進我們的解碼算法。

3.PNG

圖3.7  Viterbi譯碼的性能和AWGN信道的QPSK調(diào)制對比


3.12.4 軟判決Viterbi譯碼

在這個迭代中,我們通過使用軟判決譯碼算法來改進BER性能結(jié)果。在軟判決譯碼中,解調(diào)器將接收到的信號映射到對數(shù)似然比。這些概率度量是基于接收到正確數(shù)據(jù)的可能性的對數(shù)而不是損壞的數(shù)據(jù)。當(dāng)提供對數(shù)似然比作為對維特比解碼器的輸入時,解碼器的誤碼率性能得到改善。通過改變幾個解調(diào)器和維特比譯碼器系統(tǒng)目標參數(shù),可以得到一種實現(xiàn)軟判決維特比譯碼的算法。下面的MATLAB函數(shù)(chap3_ex04_qpsk_viterbi_soft() )已被更新為使用軟判決維特比譯碼。


 1function [ ber,bits ] = chap3_ex04_qpsk_viterbi_soft( EbNo,maxNumErrs,maxNumBits )
2%% Initializations
3
4persistent Modulator AWGN DeModulator BitError ConvEncoder Viterbi Quantizer
5
6if isempty(Modulator)
7    Modulator 
= comm.QPSKModulator('BitInput',true);
8    AWGN = comm.AWGNChannel;
9    DeModulator = comm.QPSKDemodulator('BitOutput',true,'DecisionMethod','Log-likelihood ratio','VarianceSource','Input port');
10    BitError = comm.ErrorRate;
11    ConvEncoder = comm.ConvolutionalEncoder('TerminationMethod','Terminated');
12    Viterbi = comm.ViterbiDecoder('InputFormat','Soft','SoftInputWordLength',4,'OutputDataType','double','TerminationMethod','Terminated');
13    Quantizer = dsp.ScalarQuantizerEncoder('Partitioning','Unbounded','BoundaryPoints',-7:7,'OutputIndexDataType','uint8');
14
15
16end
17%% Constants
18FRM = 2048;
19M = 4;
20k = log2(M);
21codeRate = 1/2;
22snr = EbNo + 10*log10(k)+10*log10(codeRate);
23noise_var = 10.^(-snr/10);
24AWGN.EbNo = snr;
25
26%% Processing loop modeling transmitter, channel model and receiver
27numErrs = 0;
28numBits = 0;
29results = zeros(3,1);
30while((numErrs<maxNumErrs)&&(numBits<maxNumBits))
31    % Transmitter
32    u = randi([0 1],FRM,1);
33    encoded = ConvEncoder.step(u);
34    mod_sig = Modulator.step(encoded);
35
36    % Channel 
37    rx_sig = AWGN.step(mod_sig);
38
39    % Receiver
40    demod = DeModulator.step(rx_sig,noise_var);
41    llr = Quantizer.step(-demod);
42    decoded = Viterbi.step(llr);
43    y = decoded(1:FRM);
44    results = BitError.step(u,y);
45    numErrs = results(2);
46    numBits = results(3);
47end
48
49%% Clean up & collect results
50ber = results(1);
51bits = results(3);
52reset(BitError);
53
54end


理論上,我們預(yù)期結(jié)果會有2dB的改進,這正是圖3.8中所示的模擬曲線。接下來,我們檢查Turbo編碼,看看它是否可以提供任何改進的BER結(jié)果。


4.PNG

圖3.8 硬判決Viterbi譯碼 Vs 軟判決Viterbi譯碼


3.12.5 Turbo 編碼

Turbo碼大大提高了軟判決Viterbi譯碼的誤碼率性能。Turbo編碼在發(fā)射機處并行使用兩個卷積編碼器,在接收機處串聯(lián)使用兩個A后驗概率(APP)解碼器。此示例使用率1/3 turbo編碼器。對于每個輸入位,輸出具有一個系統(tǒng)位和兩個奇偶位,總共三位。


下面的MATLAB函數(shù)已被更新,使用Turbo編碼器和解碼器。注意,Turbo解碼是一個迭代迭代,性能隨著迭代次數(shù)的增加而提高。在這個例子中,我們選擇了六作為解碼器執(zhí)行的迭代次數(shù)。


 1function [ ber,bits ] = chap3_ex05_qpsk_turbo( EbNo,maxNumErrs,maxNumBits )
2%% Constants
3FRM = 2048;
4Trellis = poly2trellis(4,[13 15],13);
5Indices = randperm(FRM);
6M = 4;
7k = log2(M);
8R = FRM/(3*FRM+4*3);
9
10snr = EbNo + 10*log10(k)+10*log10(R);
11noise_var = 10.^(-snr/10);
12
13%% Initializations
14persistent Modulator AWGN DeModulator BitError TurboEncoder TurboDecoder
15
16if isempty(Modulator)
17    Modulator 
= comm.QPSKModulator('BitInput',true);
18    AWGN = comm.AWGNChannel;
19    DeModulator = comm.QPSKDemodulator('BitOutput',true,'DecisionMethod','Log-likelihood ratio','VarianceSource','Input port');
20    BitError = comm.ErrorRate;
21    TurboEncoder = comm.TurboEncoder('TrellisStructure',Trellis,'InterleaverIndices',Indices);
22    TurboDecoder = comm.TurboDecoder('TrellisStructure',Trellis,'InterleaverIndices',Indices,'NumIterations',6);
23end
24
25
26%% Processing loop modeling transmitter, channel model and receiver
27AWGN.EbNo = snr;
28numErrs = 0;
29numBits = 0;
30results = zeros(3,1);
31while((numErrs<maxNumErrs)&&(numBits<maxNumBits))
32    % Transmitter
33    u = randi([0 1],FRM,1);
34    encoded = TurboEncoder.step(u);
35    mod_sig = Modulator.step(encoded);
36
37    % Channel 
38    rx_sig = AWGN.step(mod_sig);
39
40    % Receiver
41    demod = DeModulator.step(rx_sig,noise_var);
42
43    decoded = TurboDecoder.step(-demod);
44    y = decoded(1:FRM);
45    results = BitError.step(u,y);
46    numErrs = results(2);
47    numBits = results(3);
48end
49
50%% Clean up & collect results
51ber = results(1);
52bits = results(3);
53reset(BitError);
54
55end


圖3.9示出了在AWGN信道下QPSK調(diào)制中turbo編碼的結(jié)果。注意,在1dB,我們有一個BER值發(fā)生在5dB的硬判決和3dB軟判決解碼。這清楚地表明了Turbo編碼算法的優(yōu)越性。記住,這種性能增益是以計算復(fù)雜性的增加為代價的 (我的電腦單單計算 Turbo Coding 就花費了很長時間,而我的電腦配置是最新的 CORE i7)。我們的Turbo解碼器經(jīng)過六次迭代譯碼以達到這一性能。我們將在Turbo譯碼器中研究性能和復(fù)雜性之間的折衷。

5.PNG


3.13 本章總結(jié)

Simulink及其工具箱提供了用于建模、仿真、評估性能、以及最終生成和實現(xiàn)通信系統(tǒng)代碼的能力。對于建模和仿真,我們可以使用來自通信系統(tǒng)工具箱的算法構(gòu)建塊,作為系統(tǒng)對象或Simulink塊。在MATLAB中可以更有效地對移動標準的PHY處理的許多方面進行建模和仿真,因為我們可以專注于將更高級的功能引入系統(tǒng)模型,而不是創(chuàng)建諸如調(diào)制器和編碼器之類的構(gòu)建塊。特別感興趣的是通信系統(tǒng)工具箱的系統(tǒng)對象。系統(tǒng)對象是為基于塊的流系統(tǒng)的建模而設(shè)計的自文檔化、易于使用和定制的建模和仿真組件。


當(dāng)模擬復(fù)雜系統(tǒng)時,我們需要訪問各種加速技術(shù)。這些技術(shù)幫助我們處理更多的測試數(shù)據(jù),并在合理的模擬時間內(nèi)獲得統(tǒng)計上正確的評估。MATLAB工具箱,如并行處理工具箱和MATLAB編碼器可以加快仿真。最后,為了在軟件或硬件上實現(xiàn)設(shè)計,我們可以使用代碼生成產(chǎn)品通過自動C或HDL代碼生成來獲得對精確實現(xiàn)細節(jié)的訪問。


參考文獻

[1] MathWorks Documentation Center, [url]http://www.mathworks.com/help/MATLAB/random-number-generation.html[/url] (accessed 16 August 2013). [2] MathWorks DSP System Toolbox, [url]http://www.mathworks.com/products/dsp-system[/url] (accessed 16 August 2013).

[3] MathWorks Communications System Toolbox, [url]http://www.mathworks.com/products/communications[/url] (accessed 16 August 2013).

[4] MathWorks Phased Array System Toolbox, [url]http://www.mathworks.com/products/phased-array[/url] (accessed 16 August 2013).

[5] MathWorks Computer Vision System Toolbox, [url]http://www.mathworks.com/products/computer-vision[/url] (accessed 16 August 2013).

[6] MathWorks Simulink, [url]http://www.mathworks.com/products/simulink[/url] (accessed 16 August 2013).

[7] MathWorks Parallel Computing Toolbox, [url]http://www.mathworks.com/products/parallel-computing[/url] (accessed 16 August 2013).

[8] MathWorks Fixed-Point Designer, [url]http://www.mathworks.com/products/fixed-point-designer[/url] (accessed 16 August 2013).

[9] MathWorks MATLAB Coder, [url]http://www.mathworks.com/help/coder/index.html[/url] (accessed 16 August 2013).

[10] MathWorks HDL Coder, [url]http://www.mathworks.com/products/hdl-coder[/url] (accessed 16 August 2013).

[11] MathWorks HDL Verifier, [url]http://www.mathworks.com/products/hdl-verifier[/url] (accessed 16 August 2013).

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



本章完

2018/11/14



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

    • bikerboy 專家指數(shù) +5 , 威望 +10 個
      · 點贊,請上傳完整圖片 詳細.. 回復(fù) 發(fā)表與:2018-11-17 21:28:45
     
    [充值威望,立即自動到帳] [VIP貴賓權(quán)限+威望套餐] 另有大量優(yōu)惠贈送活動,請光臨充值中心
    充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無憂
    bikerboy
    論壇元老
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


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

    紀念勛章·十周年  
    積分 20173
    帖子 548
    威望 201686 個
    禮品券 115 個
    專家指數(shù) -1528
    注冊 2008-11-11
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-17 21:28:45 


    QUOTE:
    原帖由 destild 于 2018-11-14 19:58:25 發(fā)表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是對于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準確的地方請讀者多多包涵。本文僅限于個人學(xué) ...

    點贊,請上傳完整圖片

    對本帖內(nèi)容的看法? 我要點評

     
    [立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!]
    bikerboy
    論壇元老
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


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

    紀念勛章·十周年  
    積分 20173
    帖子 548
    威望 201686 個
    禮品券 115 個
    專家指數(shù) -1528
    注冊 2008-11-11
    專業(yè)方向  無線
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-17 21:32:12 


    QUOTE:
    原帖由 destild 于 2018-11-14 19:58:25 發(fā)表
    “原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是對于該書的翻譯,書中的專業(yè)性詞匯給出了英文原文,圖和表的排版都是參考原文,翻譯不準確的地方請讀者多多包涵。本文僅限于個人學(xué) ...

    好帖,請上傳完整圖片,感謝!

    對本帖內(nèi)容的看法? 我要點評

     
    最新通信職位:廣東通信人才網(wǎng) | 北京通信人才網(wǎng) | 上海通信人才網(wǎng) | 南京通信人才網(wǎng) | 西安通信人才網(wǎng) | 重慶通信人才網(wǎng) | 中國通信人才網(wǎng)
    destild
    新手上路
    鎵嬫満鍙風(fēng)爜宸查獙璇? style=


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

    積分 -1082
    帖子 60
    威望 13021 個
    禮品券 0 個
    專家指數(shù) -1382
    注冊 2017-1-19
    專業(yè)方向 
    回答問題數(shù) 0
    回答被采納數(shù) 0
    回答采納率 0%
     
    發(fā)表于 2018-11-21 19:18:42  只看樓主 


    QUOTE:
    原帖由 bikerboy 于 2018-11-17 13:32:12 發(fā)表

    好帖,請上傳完整圖片,感謝!

    已上傳,謝謝提醒

    對本帖內(nèi)容的看法? 我要點評

     
    熱點: 通信招聘職位 | 網(wǎng)絡(luò)優(yōu)化全集 | WCDMA精品 | TD-SCDMA學(xué)習(xí)資料 | EVDO | MGW媒體網(wǎng)關(guān)資料

    快速回復(fù)主題    
    標題
    內(nèi)容
     上傳資料請點左側(cè)【添加附件】

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

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