Implementation Of Turbo Product Codes In The FEC-API

3y ago
137 Views
26 Downloads
870.76 KB
16 Pages
Last View : 17d ago
Last Download : 1m ago
Upload by : Roy Essex
Transcription

Implementation of TurboProduct Codes in the FEC-APIKiran KarraVirginia Tech

Agenda Introduction Turbo Product Code – Encoding Overview Turbo Product Code – Decoding Overview Implementation in C BER Performance Computational Performance Using FEC-API TPC Blocks in GNURadio2

Introduction to Turbo Product Codes Turbo Codes are a class of high-performance forward error correcting (FEC)codes. First practical codes to reach Shannon channel capacity limit. Different flavors of Turbo Codes exist: Turbo Convolutional Code Turbo Product Code Enhanced Turbo Product Code Now used in multiple commercial standards including: UMTS, CDMA2000, LTE, DVB-RCS, WiMAX Turbo Product Codes (a form of parallel concatenated codes) are the focusof this talk.3

Turbo Product Codes – Encoding Overview Algorithm for encoding:1.) READ ky x kx bits2.) Place data into ky x kx matrix3.) ENCODE each row by (nx,kx) systematic code4.) ENCODE each column by (ny,ky) systematic code5.) TRANSMIT nx x ny code bits6.) GOTO Step 1*Information on this slide copied Reference [1]4

Turbo Product Codes – Encoding Overview(cont.) Block shortening is also sometimes performed, to conform to otherPHY layer constraints, such as OFDM symbol size. Define k per col (ky – Iy) Define k per row (kx – Ix) Algorithm to allow for shortened blocks:1.) READ k per row x k per col bits2.) PREPAD with B Q zeros3.) Place data into k per row x k per col matrix4.) ENCODE each row by (nx-Ix, k per row) systematic code5.) ENCODE each column by (ny-Iy,k per col) systematic code6.) DELETE B zeros7.) TRANSMIT (nx-Ix)* (ny-Iy) – B data bits8.) GOTO Step 15

Turbo Product Codes – Encoding Overview(cont.) Parameters such as B, Q, kx, Ix, ky, Iy and the systematic codepolynomials to encode the rows and columns all need to be pickedcarefully to ensure proper operation*Information on this slide from Reference [1]6

Turbo Product Codes – Decoding Overview Turbo decoding is an iterative process Each encoder must be “undone” using the appropriate decoder. Decoders exchange information, and hence are required to operate on soft inputsand produce soft outputs. Different than Viterbi decoding MAP algorithm makes decisions based on most likely bit, rather than most likely sequence asin Viterbi decoding Basic building block of Turbo decoding is the SISO (Soft Input Soft Output)decoder7

Turbo Product Codes – Decoding Overview SISO Decoding Overview Forward Sweep Sweep through trellis. At each node, update metric insteadof ADD/COMPARE/SELECT Backward Sweep Sweep through trellis. At each node, update metric insteadof ADD/COMPARE/SELECT. Update LLR*Information on this slide from Reference [1]8

Turbo Product Codes – Decoding Overview Block Diagram of overall decoder is shown below.9

C Implementation Implementation drawn heavily from code provided by the Coded Modulation Library(CML). https://code.google.com/p/iscml/ RSCEncode and SISODecode functions were implemented in C in the CML. RSCEncode and SISODecode are the core functions which enable encoding and decoding. They were copied directly from CML into GNURadio as static functions (with small functionargument changes, and some code optimizations). BTCEncode and BTCDecode functions were implemented in Matlab in the CML. The BTCEncode and BTCDecode handled the row/column processing of the block’s, essentiallyrepeatedly calling the RSCEncode or SISODecode functions described above on the appropriaterow/col. Matlab code was ported to separate GNURadio blocks. TPCEncoder encompasses functionality of BTCEncode Matlab function. TPCDecoder encompasses functionality of BTCDecode Matlab function. GNU Scientific Library’s (GSL) matrix functionality was NOT used in implementation. Perhaps one path to optimizing the code even further? In order to increase performance, early exit algorithm was added to Turbo Decoder10

C Implementation (cont.) Early Exit Algorithm The signs of the LLRs at the input and the output of the SISO module arecompared. Decoder is stopped if signs agree. Higher SNR environment leads to less iterations of decoder because there is ahigher likelihood that the LLRs will agree between input and output.11

BER Performance12

Computational Performance13

Computational PerformanceNumber ofDecoderIterationsMax Log-MAPConstant LogMAPLinear LogMAPLog-MAPLUTLog-MAP C672 kbits/sec56 kbits/sec53 kbits/sec47kbits/sec8 kbits/sec587 kbits/sec67 kbits/sec64 kbits/sec56kbits/sec10kbits/sec4107 kbits/sec85 kbits/sec80 kbits/sec70kbits/sec13kbits/sec3144 kbits/sec114 kbits/sec106 kbits/sec91kbits/sec17kbits/sec2216 kbits/sec169 kbits/sec157 kbits/sec139kbits/sec26kbits/sec14

Using FEC-API TPC Blocks15

References M.C. Valenti, “Channel coding for IEEE 802.16e mobile WiMAX,” atutorial presented at International Conference on Communications(ICC) (Dresden, Germany), June 18, 2009. Iterative Solutions Coded Modulation Library(https://code.google.com/p/iscml) Boutillon, Emmanuel et. al, “Iterative Decoding of ConcatenatedConvolutional Codes: Implementation Issues,” Proceedings of the IEEE200716

Turbo Convolutional Code Turbo Product Code Enhanced Turbo Product Code Now used in multiple commercial standards including: UMTS, CDMA2000, LTE, DVB-RCS, WiMAX Turbo Product Codes (a form of parallel concatenated codes) are the focus of this talk. 3

Related Documents:

turbo codes, and other concatenated coding schemes are outlined. Index Terms— Belief propagation, iterative decoding, low-den-sity parity-check (LDPC) codes, message-passing decoders, turbo codes, turbo decoding. I. INTRODUCTION IN the wake of the phenomenal success of turbo codes [2],

Shell Turbo T 32 Toegestaan Shell Turbo T 32 Ja Ja Shell Turbo T 46 Toegestaan Shell Turbo T 46 Ja Ja . BP Turbo Oil 2380 Toegestaan BP Turbo Oil 2380 Ja Ja Castrol Perfecto T32 Toegestaan Castrol Perfecto T32 Ja Ja Tribol GR 1350-2.5 PD Toegestaan Tribol GR 1350-2.5 PD Ja Ja

INSTRUCTIONS FOR ADDING PRIMOS SOUNDS TO BOSS DOGGTM, ALPHA DOGG TM AND TURBO DOGGTM Boss DoggTM Model# 3757 Alpha Dogg TM Model# 3756 Turbo Dogg TM Model# 3755 INSTALLATION: STEP 1 – Connect Boss / Alpha / Turbo Dogg Speaker to computer (PC or Mac) a) Turn OFF Boss / Alpha / Turbo Dogg remote. b) Turn ON Boss / Alpha / Turbo Dogg Speaker.File Size: 1MBPage Count: 5

the code sequence for the information sequence u. The collection of 2x such code sequences, one for each information sequence u, form a turbo code of length N 1(2a; - ki). Since the component codes are block codes, it is called a block turbo code. The decoder for a turbo code with two component codes consists of two soft-input/soft-

As a consequence, SDR systems such as the ones in [3]–[5] rely on convolution codes instead of turbo codes to avoid the high complexity of channel decoding. The use of con-volutional codes, however, results in inferior error-correction performance (compared to turbo codes). In addition, LTE-Advanced, spec

Turbo and LDPC Codes 2/133 Tutorial Overview . approaching code. EXIT chart analysis of turbo codes 3:15 PM Iyer Seshadri 4:30 PM Valenti 1:15 PM Valenti. 2 6/7/2006

Turbo Coding and MAP Decoding www.complextoreal.com 4 EC1 EC2 ECn S1 Sn 1 p y k 1, p y k 2, n p y k, s y k k 1, u Figure 1 - A rate 1/(n 1) Parallel Concatenated Convolutional Code (PCC) Turbo Code Turbo codes also come as Serial Concatenated Convolutional Code or SCCC. The SCCC codes appear to have better performance at higher SNRs. Where .

quality results of AGMA Class 10 with a double cut cycle and AGMA Class 9 with a single cut cycle can be expect-ed. The 100H weighs 7,100 lbs with a cube size of 78” X 64” X 72” high. For more information, contact Bourn & Koch at (815) 965-4013, Boeing F/A-18E/F Super Hornet Completes First AESA Flight In a press release dated August 13, 2003, it was announced that the Boeing F/A-18E/F .