I. Turbo coding and decoding principle
The Turbo encoder is a parallel cascade convolutional encoding (Pccc,parallel concatenated convolutionalcode), which uses two 8-state sub-encoders and a turbo-in-code interleaving device. The code rate for the Turbo encoder is 1/3.
Two. Emulation Link:
Channel environment: Gaussian White Noise
Simulation parameters: R =1/3, constraint length =9,map interleaving: LTE interleaving device
Simulation results: LTE standard Turbo coding decoding, the simulation gain is: 13dB. (12.6-( -0.9) = 13.5dB)
Simulation platform: Matlab
Channel environment: Gaussian White Noise
Signal to Noise ratio Snr: -1.4:0.1:-0.6
Simulation Link: Source bit +turbo encoding +QPSK modulation +AWGN+QPSK demodulation +turbo decoding +ber
Simulation Validation Architecture:
ber curve:
Three. MATLAB Simulation code
%****************************************************************
% Content Overview: Turbo encoding and Turbo decoding link, LTE compliant, simulation gain: 13DB,R=1/3
% emulation Link: Source bit-->turbo encoded-->QPSK modulated--Gaussian white noise channel--
% QPSK demodulation-->turbo decoding-->ber
% Creator:
% created: November 21, 2013
% references: web-related documents
% copyright notice: Not to be reproduced at will and not freely disseminated.
%****************************************************************
CLC
Clear all;
Close all;
% System parameter Design------------------------------
Turboiter = number of 8;%turbo iterations
Sourcebitlen = 5184;% input source bit length
SNR = -1.4:0.1:-0.6;% signal-to-noise ratio sequence
Berebno = Zeros (1,length (SNR));
For Nen=1:length (SNR)
Err_counter = 0;
For nframe=1:10000
% input source bit sequence baseband signal--------------------
Sourcebit = Round (rand (1,sourcebitlen));
%turbo encoding--------------------------------
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 Code-
Turbo_out = Turboencode (SOURCEBIT,SOURCEBITLEN,REFLEN,F1,F2);
%QPSK modulation---------------------------------
Turbo_out2 = Qpskmod (turbo_out);
% Gaussian white noise channel----------------------
soft_in = Channel (Turbo_out2,snr (NEN));
%QPSK demodulation---------------------------
Soft_in1 = Qpskdemod (soft_in);
%turbo decoding--lte----------------
[Hard_out,soft_out] = Turbodecode (SOFT_IN1,TURBOITER,REFLEN,F1,F2);
% ber-----------------------------
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, ber:%9.5e,\n ', SNR (NEN), BER);
End
Grid on;
Semilogy (snr,berebno, ' b-v ');
Xlabel (' ec/no[db] ');
Ylabel (' Bit Error rate ');
Title (' Turbo Performance simulation ber curve ');
"Detailed information, and the corresponding MATLAB code, consulting QQ: 1279682290 "
Communication Algorithm 12: Turbo coding and decoding simulation link