码迷,mamicode.com
首页 > 编程语言 > 详细

通信算法之十二:Turbo编码与译码仿真链路

时间:2014-11-05 21:26:31      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   for   

一. Turbo编码与译码原理

       Turbo编码器是:并行级联卷积编码(PCCC,Parallel Concatenated ConvolutionalCode),它使用了两个8状态子编码器和一个Turbo码内交织器。Turbo编码器的码率为1/3。


二. 仿真链路:

信道环境:高斯白噪声

仿真参数:R =1/3 ,  约束长度=9,MAP交织器为:LTE交织器

仿真结果:LTE标准Turbo编码译码,仿真增益为:13dB。(12.6 - (-0.9 )= 13.5dB )

仿真平台:matlab

信道环境:高斯白噪声

信噪比SNR : -1.4:0.1:-0.6

仿真链路:源比特+Turbo编码+QPSK调制+AWGN+QPSK解调+Turbo译码+BER

仿真验证架构:

bubuko.com,布布扣


误码率曲线:

bubuko.com,布布扣


三.  MATLAB仿真代码

%****************************************************************
% 内容概述:Turbo编码与Turbo译码链路,符合LTE标准,仿真增益:13dB,R=1/3
% 仿真链路:源比特-->Turbo编码-->QPSK调制-->高斯白噪声信道-->
%           QPSK解调-->Turbo译码-->BER
% 创 建 人:
% 创建时间:2013年11月21日
% 参考文献:网络资料
% 版权声明:不可随意复制、不可随意传播。
%****************************************************************
clc;
clear all;
close all;
%系统参数设计------------------------------
TurboIter = 8;%Turbo迭代次数
SourceBitlen = 5184;%输入源比特长度
SNR = -1.4:0.1:-0.6;%信噪比序列
BerEbNo = zeros(1,length(SNR));

for nEN=1:length(SNR)
    Err_counter = 0;
    for nframe=1:10000  
        %输入源比特序列基带信号--------------------
        SourceBit = round(rand(1,SourceBitlen));
        
        %Turbo编码--------------------------------
        TurboInterTable = load TurboInterTable.mat
        for k=1:5
            if TurboInterTable(k,1)>=SourceBitlen
               break;
            end
        end
        RefLen = TurboInterTable(k,1);
        F1 = TurboInterTable(k,2);
        F2 = TurboInterTable(k,3); 
        %Turbo编码-
        Turbo_out = TurboEncode(SourceBit,SourceBitlen,RefLen,F1,F2);
        
        %QPSK调制---------------------------------
        Turbo_out2 = QpskMod(Turbo_out);
        
        %高斯白噪声信道----------------------
        soft_in = Channel(Turbo_out2,SNR(nEN));
        %QPSK解调---------------------------
        soft_in1 = QpskDemod(soft_in);    


        %Turbo译码--LTE----------------
        [hard_out,soft_out] = TurboDecode(soft_in1,TurboIter,RefLen,F1,F2);
        %误码率-----------------------------
        errs = length(find(hard_out(1:SourceBitlen) ~= SourceBit));
        Err_counter = Err_counter + errs;
        Ber = Err_counter/nframe/SourceBitlen;
    end
    BerEbNo(nEN) = Ber;
    fprintf(‘EcNo:%1.3fdB,误码率:%9.5e,\n‘,SNR(nEN),Ber);
end
grid on;
semilogy(SNR,BerEbNo,‘b-v‘);
xlabel(‘Ec/No[dB]‘);
ylabel(‘Bit Error Rate‘);
title(‘Turbo性能仿真误码率曲线‘);



【详细资料,及相应MATLAB代码,咨询qq:1279682290】

通信算法之十二:Turbo编码与译码仿真链路

标签:style   blog   http   io   color   ar   os   使用   for   

原文地址:http://blog.csdn.net/leegang12/article/details/40832601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!