The same as LTE turbo decoder improvement shown in https://sourceforge.net/p/openlte/discussion/general/thread/e023e4ea/,
IT++ build-in soft-demodulator and viterbi decoder function provides much better error-correction performance than the current openlte implementation. We have verified this using both simulations and real FDD-LTE downlink channels (e.g., PBCH, PCFICH and PDCCH). They can significantly increase the probability to detect PBCH and PDCCH at relatively low signal-to-noise ratio range.
The QPSK sof-demodulator and LTE bit tailing viterbi decoder can be found as follows in openlte format. The two functions need to be used together to replace any physical and/or transport channel using QPSK and bit tailing convolutional code.
Regards,
Ziming He,
Path Intelligence Limited, UK
=============== source code =================
#include "itpp/itcomm.h"
/********************************************************************* Name: viterbi_decode_itpp_tailbite Description: IT++ build-in soft-viterbi decoder for LTE tail biting convolutional coding. NB: the temp variables defined under phy_struct is not used Document Reference: 3GPP TS 36.212 v10.1.0 section 5.1.3.1*********************************************************************/
voidviterbi_decode_itpp_tailbite(float*d_bits,uint32N_d_bits,uint8*c_bits,uint32*N_c_bits){usingnamespaceitpp;inti;Convolutional_Codecoder;ivecgenerator(3);generator(0)=0133;generator(1)=0171;generator(2)=0165;coder.set_generator_polynomials(generator,7);vecsoft_d_bits(N_d_bits);bvechard_c_bits;for(i=0;i<N_d_bits;i++){soft_d_bits(i)=d_bits[i];}hard_c_bits=coder.decode_tailbite(soft_d_bits);*N_c_bits=length(hard_c_bits);// prepare oitput from IT++ vectorfor(i=0;i<length(hard_c_bits);i++){c_bits[i]=(int)(hard_c_bits(i));}}
/********************************************************************* Name: modulation_demapper_itpp Description: modulation_demapper with IT++ interface Document Reference: 3GPP TS 36.211 v10.1.0 section 7.1 NOTES: the output soft bits are float, not char as in modulation_demapper*********************************************************************/
Hi Ben and All,
The same as LTE turbo decoder improvement shown in
https://sourceforge.net/p/openlte/discussion/general/thread/e023e4ea/,
IT++ build-in soft-demodulator and viterbi decoder function provides much better error-correction performance than the current openlte implementation. We have verified this using both simulations and real FDD-LTE downlink channels (e.g., PBCH, PCFICH and PDCCH). They can significantly increase the probability to detect PBCH and PDCCH at relatively low signal-to-noise ratio range.
The QPSK sof-demodulator and LTE bit tailing viterbi decoder can be found as follows in openlte format. The two functions need to be used together to replace any physical and/or transport channel using QPSK and bit tailing convolutional code.
Regards,
Ziming He,
Path Intelligence Limited, UK
=============== source code =================
#include "itpp/itcomm.h"
Last edit: Ziming He 2015-10-08
Nice work, that helps me a lot.