US20230163787A1 - Forward error control coding - Google Patents

Forward error control coding Download PDF

Info

Publication number
US20230163787A1
US20230163787A1 US18/094,710 US202318094710A US2023163787A1 US 20230163787 A1 US20230163787 A1 US 20230163787A1 US 202318094710 A US202318094710 A US 202318094710A US 2023163787 A1 US2023163787 A1 US 2023163787A1
Authority
US
United States
Prior art keywords
blocks
turbo
input
crc
create
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US18/094,710
Inventor
Mohamed Farouk Mansour
June Chul Roh
Srinath Hosur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to US18/094,710 priority Critical patent/US20230163787A1/en
Publication of US20230163787A1 publication Critical patent/US20230163787A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Definitions

  • Wireless users require high-speed connections that support real time video, streaming music, and other multimedia applications.
  • demands on wireless networks approach the broadband speeds and user experience provided by traditional DSL and cable modem wireline service.
  • Wireless networks continue to evolve to next-generation packet architectures capable of supporting enhanced broadband connections with the introduction of 4G systems.
  • 4G wireless networks put strain on backhaul networks and the carriers providing backhaul services as the transport requirements increase.
  • Providers are shifting from traditional TDM transport in 2G and 3G networks to packet transport to support higher data rates, reduce network latency, and support flexible channel bandwidths in 4G networks.
  • the backhaul networks require efficient Bit-Error-Rate (BER) performance to support 4G mobile networks.
  • BER Bit-Error-Rate
  • Embodiments provide error control coding mechanisms for backhaul applications.
  • Data is first encoded using Reed-Solomon (RS) coding.
  • the output RS blocks are then turbo coded.
  • the size of the output RS blocks is selected to match the input of the turbo encoder.
  • the bits from the RS blocks may be interleaved to create the input turbo blocks.
  • Cyclic Redundancy Check (CRC) parity bits may be added to the data prior to RS coding.
  • CRC Cyclic Redundancy Check
  • a transmitter provides forward error correction.
  • the transmitter comprises a CRC parity bit generator that appends CRC bits to incoming data, a RS coder that creates RS blocks from the incoming data and CRC bits, an interleaver that interleaves symbols in the RS blocks to create turbo coder input blocks, and a turbo encoder that uses the turbo coder input blocks to create a signal to be sent to a receiver.
  • the transmitter circuit may comprise a Digital Signal Processor (DSP) that provides hardware for the turbo encoder and CRC parity bit generator. Software instructions running on the DSP may provide the RS coder and the interleaver.
  • DSP Digital Signal Processor
  • the size of the RS blocks may be selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocks.
  • the interleaver may sequential fill the turbo input blocks with symbols from successive RS blocks.
  • the CRC parity bit generator and the turbo encoder may operate using parameters defined in the LTE standard.
  • a receiver decodes forward error corrected signals.
  • the receiver comprises a turbo decoder that decodes received signals to create turbo output blocks, a de-interleaver that de-interleaves the turbo output blocks to create RS input blocks, a Reed-Solomon decoder that receives the RS input blocks and generates decoded output data, and a CRC parity bit check circuit that evaluates CRC bits in the decoded data.
  • the receiver may further comprise a DSP that provides hardware for the turbo decoder and CRC parity bit check circuit. Software instructions running on the DSP may provide the RS decoder and the de-interleaver. The size of the RS blocks may be selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.
  • FIG. 1 is highly simplified block diagram of a system that may incorporate embodiments of the invention
  • FIG. 2 is a block diagram of a system using a combination of RC coding and turbo coding according to one embodiment
  • FIG. 3 illustrates interleaver operation in an embodiment with example block size 6144 and three turbo blocks
  • FIG. 4 is a flowchart illustrating a method for encoding data to provide forward error correction according to one embodiment
  • FIG. 5 is a method for decoding forward error corrected signals according to one embodiment.
  • FIG. 1 is highly simplified block diagram of a system 100 which is part of a cellular communications network, such as a 3GPP Long Term Evolution (LTE) network.
  • Base stations 101 , 102 serve user equipment (UE) 103 , 104 and other devices (not shown).
  • Base stations 101 , 102 may be, for example, LTE eNodeBs.
  • Backhaul links 105 - 107 allow bases stations 101 , 102 to communicate with each other or with core network 108 .
  • Channel coding between base stations and UEs in an LTE network includes CRC and turbo coding schemes.
  • LTE adopts turbo coding as the channel coding for the Physical Downlink Shared Channel (PDSCH), for example.
  • PDSCH Physical Downlink Shared Channel
  • Turbo coding provides sufficient BER for communications between base stations and UEs, but a more efficient BER is required for backhaul links 105 - 107 .
  • LTE turbo codes may be used as the core part for error control coding.
  • an outer code may be used to remove the residual errors of turbo codes.
  • the RS block code is selected as the outer code for a Forward Error Correction (FEC) system.
  • FEC Forward Error Correction
  • FIG. 2 is a block diagram of a system using a combination of RC coding and turbo coding according to one embodiment.
  • Input data 201 is received at transmitter 202 , which applies FEC coding and transmits the data to receiver 203 .
  • Receiver 203 decodes the data to generate received decoded data 204 .
  • Transmitter 202 may be in base station 101 , for example, and may use FEC for data sent over backhaul link 105 to base station 102 which includes receiver 203 .
  • Transmitter 202 FEC adds CRC in block 205 and then RS encoding in block 206 .
  • a symbol interleaver 207 is used between turbo encoder 208 and the RS encoder 206 so that symbol errors from the turbo code are dispersed between more than one RS code. This maximizes the error correcting capability of the concatenated code.
  • turbo encoder 208 may be a turbo hardware accelerator in an LTE base station.
  • the RS encoder 206 and symbol interleaver 207 may be performed by software on the same DSP as the turbo hardware accelerator.
  • a single DSP core is dedicated to FEC processing to minimize data transfer among components in the transmitter.
  • the output of turbo decoder 208 is transmitted to receiver 203 .
  • Receiver 203 decodes the data received from transmitter 202 .
  • Received signals are processed in turbo decoder 209 and then symbol de-interleaver 210 .
  • the signal is then RS decoded in block 211 and CRC checked in block 212 to generate received decoded data 204 .
  • turbo decoder 209 may be a turbo hardware accelerator DSP in an LTE base station, while the symbol de-interleaver 210 and RS decoder 211 may be performed by software on the same DSP as the turbo hardware accelerator.
  • a single DSP core is dedicated to error correction processing to minimize data transfer among components in the receiver.
  • the parameters used for the turbo+RS concatenated code may be selected to facilitate reuse of the hardware turbo modules in an LTE base station.
  • LTE turbo code with code rate matching may be used to provide a near continuous range of code rates in the Modulation and Coding Scheme (MCS) table.
  • MCS Modulation and Coding Scheme
  • three block size of turbo codes ⁇ 6144, 3072, 1024 ⁇ may be used to provide a compromise between the performance and latency of FEC encoding/decoding.
  • the maximum number of turbo iterations is varied to improve this tradeoff.
  • the exact output block size of the turbo encoder is varied to achieve maximum efficiency of the frame structure and minimize the number of unused filler bits.
  • the output block size of RS codes from RS encoder 206 should match the input block size of turbo codes in turbo encoder 208 .
  • RS over the field GF(2 8 ) may be used so that the code symbols correspond to whole bytes.
  • Two shortened RS codes may be used: (192,184,4) and (128,122,3).
  • the first code (192,184,4) is used with turbo block sizes 6144 and 3072 bits.
  • the second code (128,122,6) is used with turbo block size 1024 bits.
  • Table 1 lists RS codes for different turbo block sizes. For a turbo block size of 6144, there are four RS blocks of the constituent code (192,184,4) per a single turbo block. For a turbo block size of 3072, there are two RS blocks of the constituent code (192,184,4). For a turbo block of size 1024, there is a single RS block of the constituent code (128,122,3).
  • the input data block to the RS encoder is appended by CRC parity bits for error detection at the receiver.
  • CRC parity bits for error detection at the receiver.
  • a CRC accelerator on a bit rate coprocessor (BCP) for CRC encoder/decoder is used.
  • BCP bit rate coprocessor
  • the length of the CRC parity bits depends on the size of the turbo block size.
  • the CRC polynomials for LTE may be used for generating the parity bits.
  • Table 2 lists the length of the CRC parity check bits for the turbo block sizes used in the example of Table 1.
  • the possible information block sizes for different turbo block sizes are summarized in Table 3.
  • the information data block size is the turbo block size minus parity bits of the RS minus the CRC bits.
  • turbo blocks may be interleaved together before RS encoding. This distributes the turbo decoder error among more turbo blocks for more error protection. Up to three turbo blocks may be interleaved together, and the corresponding number of RS block is multiplied accordingly.
  • the FEC encoder is comprised of four components: CRC generator, RS encoder, interleaver, and Turbo encoder.
  • the length of the CRC parity bits depends on the turbo block size as illustrated in Table 2.
  • the generator polynomials from the LTE standard may be used for the different size CRC generation:
  • the encoding and decoding is done similar to LTE to enable the reuse of the hardware accelerator.
  • the input block size is segmented to RS blocks.
  • the number of RS blocks depends on the turbo block size and the number of turbo blocks. For example, with three turbo blocks of size 6144, then there are a total of 12 RS (192,184,4) blocks; or with one turbo block of size 1024, then there is one RS (128,122,3) block.
  • the interleaver maps the output RS blocks to the input of turbo blocks.
  • the objective of the interleaver is to spread any possible error from the turbo decoder among as many RS blocks as possible to maximize the correcting probability.
  • the RS output is in symbols (i.e., 8 bits), while the unit in the turbo block is a bit.
  • FIG. 3 illustrates the interleaver operation in an embodiment with block size 6144 and three turbo blocks 301 A-C.
  • the turbo blocks 301 A-C are filled sequentially by symbols from successive RS blocks 302 A-L.
  • the first 8 bits in the first turbo block 301 A are from the first symbol (i.e., 8 bits) of the first RS block 302 A
  • the second 8 bits of the first turbo block 301 A are the first output symbol from the second RS block 302 B
  • the 12 th set of 8 bits in the first turbo block 301 A are the first output symbol in the 12 th RS block 302 L, and so on as shown in FIG. 3 .
  • the whole eight bits of each RS symbol are sequentially placed in the corresponding locations in the turbo block.
  • the output symbols of all RS blocks may be arranged in a matrix of size MN ⁇ K.
  • Each row contains the output symbols of the corresponding RS block.
  • the matrix may be converted to a column vector by raster scanning column wise (i.e., first column then second column and so on).
  • the vector of symbols is then converted to a vector of bits by expanding each symbol to 8 bits. This generates long vector of length LMbits.
  • the vector is then converted to a matrix of size L ⁇ M with each column corresponding to an input turbo block of size L bits.
  • the turbo encoding may be performed using a bit rate coprocessor hardware accelerator.
  • An LTE rematching module may be used to generate the exact output block size as described in the MCS table.
  • the RS encoder uses standard shortened RS blocks as specified in Table 1.
  • FIG. 4 is a flowchart illustrating a method for encoding data to provide forward error correction according to one embodiment.
  • CRC parity bits are appended to incoming data.
  • RS encoded blocks are created from the incoming data and CRC bits.
  • symbols in the RS blocks are interleaved to create turbo input blocks. The interleaving may sequential fill the turbo input blocks with symbols from successive RS blocks.
  • the turbo input blocks are turbo encoded to create a signal to be sent to a receiver.
  • the CRC parity bits and turbo encoding of the input blocks may be performed using DSP hardware.
  • Software instructions on the DSP may be used to create the RS encoded blocks and interleave the RS blocks.
  • the size of the RS blocks may be selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocs so that an integer number of RS blocks are interleaved to create the turbo coder input blocks.
  • the CRC parity bits and the turbo encoder operation may be compatible with the LTE standard.
  • FIG. 5 is a method for decoding forward error corrected signals according to one embodiment.
  • received signals are turbo decoded to create turbo output blocks.
  • the turbo output blocks are de-interleaved to create RS input blocks.
  • the RS input blocks are RS decoded to generate decoded output data.
  • CRC parity bits in the decoded data are evaluated.
  • the turbo decoding and evaluating CRC parity bits may be performed by DSP hardware.
  • Software instructions executing on the DSP may decode the RS input blocks and de-interleave the turbo output blocks.
  • the size of the RS blocks is selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.

Abstract

A system and method for providing error control coding for backhaul applications are disclosed. Data is first encoded using Reed-Solomon (RS) coding. The output RS blocks are then turbo coded. The size of the output RS blocks is selected to match the input of the turbo encoder. The bits from the RS blocks may be interleaved to create the input turbo blocks. Cyclic Redundancy Check (CRC) parity bits may be added to the data prior to RS coding.

Description

    CROSS-REFERENCE TO RELATED APPLICATION(S)
  • This application is a continuation of U.S. Pat. Application Serial No. 17/141,095 filed Jan. 4, 2021, which is a continuation of U.S. Pat. Application Serial No. 16/292,693 filed Mar. 5, 2019, which also claims benefit of U.S. Pat. Application No. 14/580,622 filed on Dec. 23, 2014, all of which are incorporated herein by reference.
  • BACKGROUND
  • Wireless users require high-speed connections that support real time video, streaming music, and other multimedia applications. As a result, demands on wireless networks approach the broadband speeds and user experience provided by traditional DSL and cable modem wireline service. Wireless networks continue to evolve to next-generation packet architectures capable of supporting enhanced broadband connections with the introduction of 4G systems.
  • The higher speeds and capacity provided by 4G wireless networks put strain on backhaul networks and the carriers providing backhaul services as the transport requirements increase. Providers are shifting from traditional TDM transport in 2G and 3G networks to packet transport to support higher data rates, reduce network latency, and support flexible channel bandwidths in 4G networks. The backhaul networks require efficient Bit-Error-Rate (BER) performance to support 4G mobile networks.
  • SUMMARY OF THE INVENTION
  • Embodiments provide error control coding mechanisms for backhaul applications. Data is first encoded using Reed-Solomon (RS) coding. The output RS blocks are then turbo coded. The size of the output RS blocks is selected to match the input of the turbo encoder. The bits from the RS blocks may be interleaved to create the input turbo blocks. Cyclic Redundancy Check (CRC) parity bits may be added to the data prior to RS coding.
  • A transmitter provides forward error correction. The transmitter comprises a CRC parity bit generator that appends CRC bits to incoming data, a RS coder that creates RS blocks from the incoming data and CRC bits, an interleaver that interleaves symbols in the RS blocks to create turbo coder input blocks, and a turbo encoder that uses the turbo coder input blocks to create a signal to be sent to a receiver. The transmitter circuit may comprise a Digital Signal Processor (DSP) that provides hardware for the turbo encoder and CRC parity bit generator. Software instructions running on the DSP may provide the RS coder and the interleaver. The size of the RS blocks may be selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocks. The interleaver may sequential fill the turbo input blocks with symbols from successive RS blocks. The CRC parity bit generator and the turbo encoder may operate using parameters defined in the LTE standard.
  • A receiver decodes forward error corrected signals. The receiver comprises a turbo decoder that decodes received signals to create turbo output blocks, a de-interleaver that de-interleaves the turbo output blocks to create RS input blocks, a Reed-Solomon decoder that receives the RS input blocks and generates decoded output data, and a CRC parity bit check circuit that evaluates CRC bits in the decoded data. The receiver may further comprise a DSP that provides hardware for the turbo decoder and CRC parity bit check circuit. Software instructions running on the DSP may provide the RS decoder and the de-interleaver. The size of the RS blocks may be selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Having thus described the invention in general terms, reference will now be made to the accompanying drawings, wherein:
  • FIG. 1 is highly simplified block diagram of a system that may incorporate embodiments of the invention;
  • FIG. 2 is a block diagram of a system using a combination of RC coding and turbo coding according to one embodiment;
  • FIG. 3 illustrates interleaver operation in an embodiment with example block size 6144 and three turbo blocks;
  • FIG. 4 is a flowchart illustrating a method for encoding data to provide forward error correction according to one embodiment; and
  • FIG. 5 is a method for decoding forward error corrected signals according to one embodiment.
  • DETAILED DESCRIPTION
  • The invention now will be described more fully hereinafter with reference to the accompanying drawings. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. One skilled in the art may be able to use the various embodiments of the invention.
  • FIG. 1 is highly simplified block diagram of a system 100 which is part of a cellular communications network, such as a 3GPP Long Term Evolution (LTE) network. Base stations 101, 102 serve user equipment (UE) 103, 104 and other devices (not shown). Base stations 101, 102 may be, for example, LTE eNodeBs. Backhaul links 105-107 allow bases stations 101, 102 to communicate with each other or with core network 108.
  • Channel coding between base stations and UEs in an LTE network includes CRC and turbo coding schemes. LTE adopts turbo coding as the channel coding for the Physical Downlink Shared Channel (PDSCH), for example. Turbo coding provides sufficient BER for communications between base stations and UEs, but a more efficient BER is required for backhaul links 105-107.
  • Because turbo coding processors are already present in LTE base stations for use in UE communications, this available hardware can be incorporated into the design of error control coding for backhaul systems. LTE turbo codes may be used as the core part for error control coding. To cope with the error floor for turbo codes at high Signal-to-Noise Ratio (SNR), an outer code may be used to remove the residual errors of turbo codes. In embodiments disclosed herein, the RS block code is selected as the outer code for a Forward Error Correction (FEC) system. RS code offers excellent error correcting capability and has the maximum code rate for the number of corrected symbols.
  • FIG. 2 is a block diagram of a system using a combination of RC coding and turbo coding according to one embodiment. Input data 201 is received at transmitter 202, which applies FEC coding and transmits the data to receiver 203. Receiver 203 decodes the data to generate received decoded data 204. Transmitter 202 may be in base station 101, for example, and may use FEC for data sent over backhaul link 105 to base station 102 which includes receiver 203.
  • Transmitter 202 FEC adds CRC in block 205 and then RS encoding in block 206. To maximize concatenation gain, a symbol interleaver 207 is used between turbo encoder 208 and the RS encoder 206 so that symbol errors from the turbo code are dispersed between more than one RS code. This maximizes the error correcting capability of the concatenated code. In one embodiment, turbo encoder 208 may be a turbo hardware accelerator in an LTE base station. The RS encoder 206 and symbol interleaver 207 may be performed by software on the same DSP as the turbo hardware accelerator. In one embodiment, a single DSP core is dedicated to FEC processing to minimize data transfer among components in the transmitter. The output of turbo decoder 208 is transmitted to receiver 203.
  • Receiver 203 decodes the data received from transmitter 202. Received signals are processed in turbo decoder 209 and then symbol de-interleaver 210. The signal is then RS decoded in block 211 and CRC checked in block 212 to generate received decoded data 204. Similar to transmitter 202, turbo decoder 209 may be a turbo hardware accelerator DSP in an LTE base station, while the symbol de-interleaver 210 and RS decoder 211 may be performed by software on the same DSP as the turbo hardware accelerator. In one embodiment, a single DSP core is dedicated to error correction processing to minimize data transfer among components in the receiver.
  • The parameters used for the turbo+RS concatenated code may be selected to facilitate reuse of the hardware turbo modules in an LTE base station. LTE turbo code with code rate matching may be used to provide a near continuous range of code rates in the Modulation and Coding Scheme (MCS) table. In one embodiment, three block size of turbo codes {6144, 3072, 1024} may be used to provide a compromise between the performance and latency of FEC encoding/decoding. Additionally, the maximum number of turbo iterations is varied to improve this tradeoff. The exact output block size of the turbo encoder is varied to achieve maximum efficiency of the frame structure and minimize the number of unused filler bits.
  • The output block size of RS codes from RS encoder 206 should match the input block size of turbo codes in turbo encoder 208. The RS code is specified by three parameters (n,k, t), where n is the output block size (in symbols), k is the input block size in symbols, and t is the number of symbol errors that can be corrected. The three parameters are related where k = n -2t. To simplify software implementations of the RS encoder/decoder, RS over the field GF(28) may be used so that the code symbols correspond to whole bytes. Two shortened RS codes may be used: (192,184,4) and (128,122,3). The first code (192,184,4) is used with turbo block sizes 6144 and 3072 bits. The second code (128,122,6) is used with turbo block size 1024 bits.
  • Table 1 lists RS codes for different turbo block sizes. For a turbo block size of 6144, there are four RS blocks of the constituent code (192,184,4) per a single turbo block. For a turbo block size of 3072, there are two RS blocks of the constituent code (192,184,4). For a turbo block of size 1024, there is a single RS block of the constituent code (128,122,3).
  • TABLE 1
    Turbo Block Size (bits) RS Code Number of RS blocks per Turbo block
    6144 (192,184,4) 4
    3072 (192,184,4) 2
    1024 (128,122,3) 1
  • The input data block to the RS encoder is appended by CRC parity bits for error detection at the receiver. In one embodiment, a CRC accelerator on a bit rate coprocessor (BCP) for CRC encoder/decoder is used. The length of the CRC parity bits depends on the size of the turbo block size. The CRC polynomials for LTE may be used for generating the parity bits. Table 2 lists the length of the CRC parity check bits for the turbo block sizes used in the example of Table 1.
  • TABLE 2
    Turbo Block Size (bits) Length of CRC Parity Bits
    6144 24
    3072 16
    1024 8
  • The possible information block sizes for different turbo block sizes are summarized in Table 3. The information data block size is the turbo block size minus parity bits of the RS minus the CRC bits.
  • TABLE 3
    Turbo Block Size (bits) Length of Information Block Size (bits)
    6144 5864
    3072 2928
    1024 968
  • To increase the FEC efficiency, multiple turbo blocks may be interleaved together before RS encoding. This distributes the turbo decoder error among more turbo blocks for more error protection. Up to three turbo blocks may be interleaved together, and the corresponding number of RS block is multiplied accordingly.
  • As illustrated in FIG. 2 , the FEC encoder is comprised of four components: CRC generator, RS encoder, interleaver, and Turbo encoder.
  • The length of the CRC parity bits depends on the turbo block size as illustrated in Table 2. The generator polynomials from the LTE standard may be used for the different size CRC generation:
  • g c r c 24 = D 24 + D 23 + D 18 + D 17 + D 14 + D 11 + D 10 + D 7 + D 6 + D 5 + D 4 + D 3 + D + 1
  • g c r c 16 = D 16 + D 12 + D 5 + 1
  • g c r c 8 = D 8 + D 7 + D 4 + D 3 + D + 1
  • The encoding and decoding is done similar to LTE to enable the reuse of the hardware accelerator.
  • After adding the CRC parity bits, the input block size is segmented to RS blocks. The number of RS blocks depends on the turbo block size and the number of turbo blocks. For example, with three turbo blocks of size 6144, then there are a total of 12 RS (192,184,4) blocks; or with one turbo block of size 1024, then there is one RS (128,122,3) block.
  • The interleaver maps the output RS blocks to the input of turbo blocks. The objective of the interleaver is to spread any possible error from the turbo decoder among as many RS blocks as possible to maximize the correcting probability. The RS output is in symbols (i.e., 8 bits), while the unit in the turbo block is a bit.
  • FIG. 3 illustrates the interleaver operation in an embodiment with block size 6144 and three turbo blocks 301A-C. In this example, there are a total of 12 RS blocks (192,184,4) 302A-L. The turbo blocks 301A-C are filled sequentially by symbols from successive RS blocks 302A-L. For example, the first 8 bits in the first turbo block 301A are from the first symbol (i.e., 8 bits) of the first RS block 302A, the second 8 bits of the first turbo block 301A are the first output symbol from the second RS block 302B, and the 12th set of 8 bits in the first turbo block 301A are the first output symbol in the 12th RS block 302L, and so on as shown in FIG. 3 . The whole eight bits of each RS symbol are sequentially placed in the corresponding locations in the turbo block.
  • This interleaving may be described algebraically as follows. Assume M turbo blocks of length L bits and N RS blocks per turbo block each RS block has output size of K=L/8N symbols. The output symbols of all RS blocks may be arranged in a matrix of size MN × K. Each row contains the output symbols of the corresponding RS block. The matrix may be converted to a column vector by raster scanning column wise (i.e., first column then second column and so on). The vector of symbols is then converted to a vector of bits by expanding each symbol to 8 bits. This generates long vector of length LMbits. The vector is then converted to a matrix of size L × M with each column corresponding to an input turbo block of size L bits.
  • The turbo encoding may be performed using a bit rate coprocessor hardware accelerator. An LTE rematching module may be used to generate the exact output block size as described in the MCS table. The RS encoder uses standard shortened RS blocks as specified in Table 1.
  • FIG. 4 is a flowchart illustrating a method for encoding data to provide forward error correction according to one embodiment. In step 401, CRC parity bits are appended to incoming data. In step 402, RS encoded blocks are created from the incoming data and CRC bits. In step 403, symbols in the RS blocks are interleaved to create turbo input blocks. The interleaving may sequential fill the turbo input blocks with symbols from successive RS blocks. In step 404, the turbo input blocks are turbo encoded to create a signal to be sent to a receiver.
  • The CRC parity bits and turbo encoding of the input blocks may be performed using DSP hardware. Software instructions on the DSP may be used to create the RS encoded blocks and interleave the RS blocks. The size of the RS blocks may be selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocs so that an integer number of RS blocks are interleaved to create the turbo coder input blocks. The CRC parity bits and the turbo encoder operation may be compatible with the LTE standard.
  • FIG. 5 is a method for decoding forward error corrected signals according to one embodiment. In step 501, received signals are turbo decoded to create turbo output blocks. In step 502, the turbo output blocks are de-interleaved to create RS input blocks. In step 503, the RS input blocks are RS decoded to generate decoded output data. In step 504, CRC parity bits in the decoded data are evaluated.
  • The turbo decoding and evaluating CRC parity bits may be performed by DSP hardware. Software instructions executing on the DSP may decode the RS input blocks and de-interleave the turbo output blocks. The size of the RS blocks is selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.
  • Although the detailed example described above is used in connection with an LTE system, it will be understood that embodiments may be used with systems complying with any wireless protocol or standard.
  • Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions, and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Claims (20)

What is claimed is:
1. A transmitter circuit providing forward error correction, comprising:
a Cyclic Redundancy Check (CRC) parity bit generator that appends CRC bits to incoming data;
a Reed-Solomon (RS) coder that creates RS blocks from the incoming data and CRC bits;
an interleaver that interleaves symbols in the RS blocks to create turbo coder input blocks; and
a turbo encoder that uses the turbo coder input blocks to create a signal to be sent to a receiver.
2. The transmitter circuit of claim 1, further comprising:
a Digital Signal Processor (DSP) that provides hardware for the turbo encoder and CRC parity bit generator.
3. The transmitter circuit of claim 2, further comprising:
software instructions running on the DSP to provide the RS coder and the interleaver.
4. The transmitter circuit of claim 1, wherein the size of the RS blocks is selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocks.
5. The transmitter circuit of claim 1, wherein the interleaver sequential fills the turbo input blocks with symbols from successive RS blocks.
6. The transmitter circuit of claim 1, wherein the CRC parity bit generator and the turbo encoder operate using parameters defined in a Long Term Evolution (LTE) standard.
7. A method for encoding data to provide forward error correction, comprising:
appending Cyclic Redundancy Check (CRC) parity bits to incoming data;
creating Reed-Solomon (RS) encoded blocks from the incoming data and CRC bits;
interleaving symbols in the RS blocks to create turbo input blocks; and
turbo encoding the turbo input blocks to create a signal to be sent to a receiver.
8. The method of claim 7, further comprising:
creating CRC parity bits and turbo encoding the input blocks using Digital Signal Processor (DSP) hardware.
9. The method of claim 8, further comprising:
executing software instructions on the DSP to create the RS encoded blocks and interleave the RS blocks.
10. The method of claim 7, wherein the size of the RS blocks is selected to match the input block size of the turbo coder so that an integer number of RS blocks are interleaved to create the turbo coder input blocs so that an integer number of RS blocks are interleaved to create the turbo coder input blocks.
11. The method of claim 7, wherein the interleaving sequential fills the turbo input blocks with symbols from successive RS blocks.
12. The method of claim 7, wherein the CRC parity bits are generated and the turbo encoder operates using parameters defined in a Long Term Evolution (LTE) standard.
13. A receiver circuit decoding forward error corrected signals, comprising:
a turbo decoder that decodes received signals to create turbo output blocks;
a de-interleaver that de-interleaves the turbo output blocks to create Reed-Solomon (RS) input blocks;
a Reed-Solomon decoder that receives the RS input blocks and generates decoded output data; and
a Cyclic Redundancy Check (CRC) parity bit check circuit that evaluates CRC bits in the decoded data.
14. The receiver circuit of claim 13, further comprising:
a Digital Signal Processor (DSP) that provides hardware for the turbo decoder and CRC parity bit check circuit.
15. The receiver circuit of claim 14, further comprising:
software instructions running on the DSP to provide the RS decoder and the de-interleaver.
16. The receiver circuit of claim 1, wherein the size of the RS blocks is selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.
17. A method for decoding forward error corrected signals, comprising:
turbo decoding received signals to create turbo output blocks;
de-interleaving the turbo output blocks to create Reed-Solomon (RS) input blocks;
Reed-Solomon decoding the RS input blocks to generate decoded output data; and
evaluating Cyclic Redundancy Check (CRC) parity bits in the decoded data.
18. The method of claim 17, further comprising:
turbo decoding the received signals and evaluating CRC parity bits and using Digital Signal Processor (DSP) hardware.
19. The method of claim 18, further comprising:
executing software instructions on the DSP to decode the RS input blocks and to de-interleave the turbo output blocks.
20. The method of claim 17, wherein the size of the RS blocks is selected to match the output block size of the turbo decoder so that an integer number of RS blocks are de-interleaved from the turbo decoder output blocks.
US18/094,710 2014-12-23 2023-01-09 Forward error control coding Pending US20230163787A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/094,710 US20230163787A1 (en) 2014-12-23 2023-01-09 Forward error control coding

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/580,622 US10230404B2 (en) 2014-12-23 2014-12-23 Forward error control coding
US16/292,693 US10886949B2 (en) 2014-12-23 2019-03-05 Forward error control coding
US17/141,095 US11552654B2 (en) 2014-12-23 2021-01-04 Forward error control coding
US18/094,710 US20230163787A1 (en) 2014-12-23 2023-01-09 Forward error control coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US17/141,095 Continuation US11552654B2 (en) 2014-12-23 2021-01-04 Forward error control coding

Publications (1)

Publication Number Publication Date
US20230163787A1 true US20230163787A1 (en) 2023-05-25

Family

ID=56130677

Family Applications (4)

Application Number Title Priority Date Filing Date
US14/580,622 Active US10230404B2 (en) 2014-12-23 2014-12-23 Forward error control coding
US16/292,693 Active US10886949B2 (en) 2014-12-23 2019-03-05 Forward error control coding
US17/141,095 Active US11552654B2 (en) 2014-12-23 2021-01-04 Forward error control coding
US18/094,710 Pending US20230163787A1 (en) 2014-12-23 2023-01-09 Forward error control coding

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US14/580,622 Active US10230404B2 (en) 2014-12-23 2014-12-23 Forward error control coding
US16/292,693 Active US10886949B2 (en) 2014-12-23 2019-03-05 Forward error control coding
US17/141,095 Active US11552654B2 (en) 2014-12-23 2021-01-04 Forward error control coding

Country Status (1)

Country Link
US (4) US10230404B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230404B2 (en) * 2014-12-23 2019-03-12 Texas Instruments Incorporated Forward error control coding
US10527663B2 (en) * 2015-03-12 2020-01-07 Texas Instruments Incorporated Kalman filter for phase noise tracking
CN109905130B (en) 2017-12-08 2021-12-17 大唐移动通信设备有限公司 Method, device and equipment for encoding and decoding polarization code

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054585A1 (en) * 2010-08-26 2012-03-01 Qualcomm Incorporated Parity check matrix optimization and selection for iterative decoding
US10230404B2 (en) * 2014-12-23 2019-03-12 Texas Instruments Incorporated Forward error control coding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2568031B2 (en) * 1992-07-17 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション Error detection and correction system
CA2303630A1 (en) * 2000-03-31 2001-09-30 Catena Technologies Canada, Inc. A system and method for forward error correction
US6961388B2 (en) * 2001-02-01 2005-11-01 Qualcomm, Incorporated Coding scheme for a wireless communication system
US7366462B2 (en) * 2003-10-24 2008-04-29 Qualcomm Incorporated Method and apparatus for seamlessly switching reception between multimedia streams in a wireless communication system
DE102006026895B3 (en) * 2006-06-09 2007-11-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Convolution interleaver device for processing code word, has interlacing device changing sequence of interlacing units to receive interlaced code words, where interlacing device does not change sequence of symbols within interlacing units
US8356232B2 (en) * 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US8332732B2 (en) * 2006-11-30 2012-12-11 Qualcomm Incorporated Common air interface supporting single carrier and OFDM
US20090175210A1 (en) * 2007-07-26 2009-07-09 Qualcomm Incorporated Multiplexing and transmission of multiple data streams in a wireless multi-carrier communication system
US7853857B2 (en) * 2007-09-14 2010-12-14 Motorola Mobility, Inc. Multi-layer cyclic redundancy check code in wireless communication system
US8749400B2 (en) * 2008-08-18 2014-06-10 Halliburton Energy Services, Inc. Symbol synchronization for downhole OFDM telemetry

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054585A1 (en) * 2010-08-26 2012-03-01 Qualcomm Incorporated Parity check matrix optimization and selection for iterative decoding
US10230404B2 (en) * 2014-12-23 2019-03-12 Texas Instruments Incorporated Forward error control coding
US10886949B2 (en) * 2014-12-23 2021-01-05 Texas Instruments Incorporated Forward error control coding
US11552654B2 (en) * 2014-12-23 2023-01-10 Texas Instruments Incorporated Forward error control coding

Also Published As

Publication number Publication date
US10886949B2 (en) 2021-01-05
US11552654B2 (en) 2023-01-10
US20210126656A1 (en) 2021-04-29
US20160182092A1 (en) 2016-06-23
US10230404B2 (en) 2019-03-12
US20190199378A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
US11838122B2 (en) Code block segmentation and configuration for concatenated turbo and RS coding
US20230163787A1 (en) Forward error control coding
US8839078B2 (en) Application layer FEC framework for WiGig
RU2481702C2 (en) Multi-layer cyclic redundancy check code in wireless communication system
US8732542B2 (en) Outer coding framework
US8225168B2 (en) Method and system for data transmission in a multiple input multiple output (MIMO) system
KR101558562B1 (en) Apparatus and Method for Transmitting Data using Turbo Code
EP2242181B1 (en) Concatenated encoding and decoding for multilayer communication protocol
US9154165B2 (en) Apparatus and method for transmitting data using a CTC (convolutional turbo code) encoder in a mobile communication system
US8347188B2 (en) Error correction methods and apparatus for mobile broadcast services
Malhotra Investigation of channel coding techniques for high data rate mobile wireless systems
JP2018037750A (en) Transmission device and reception device
Al-Moliki et al. Concatenated RS-convolutional codes for cooperative wireless communication

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED