FEC: Generation of Reed-Solomon and Convolutional Code

Reed Solomon and Convolutional Code are chosen for IEEE 802.15.7-2011 and IEEE 802.15.7m implementation. In this post, we will review the generation of the codes and simulate their performance for comparison.

Reed Solomon 

Systematic RS codes are used for FEC (typically outer FEC) with GF(16), generated by the polynomial x4+x+1. The generators for the RS(n, k) codes introduced by IEEE 802.15.7-2011 [2] are as given in Table 18, where α is a primitive element in GF(16).

Table 1 – Generator polynomials for RS(n,k)


The BER simulation results of RS(15,7) and RS(15,11) in the AWGN channel are shown in Figure 1 and Figure 2. From the simulation, you can see how much Eb/No needed for your desired BER.

Figure 1 – BER performance of RS(15,11)
Figure 2 – BER performance of RS(15,7)


Convolutional Code

The typical inner FEC code is based on a rate-1/3 or rate-1/4 mother convolutional code of constraint length seven (K=7) with generator polynomial g0 = 1338; g1 = 1718; g2 = 1658, (introduced in IEEE 802.15.7-2011) as shown in Figure 3.

Figure 3 – Rate-1/3 mother convolutional code with constraint length 7

Tail bits of zeros shall be added at the end of the encoding in order to terminate the convolutional encoder to an all zeros state. The tail bit of zeros shall be applied to both the header and the payload when the inner convolutional code is used. Also, tail bits of zeros shall be added at the end of bit sequence before feeding into the CC encoding to ensure the proper implementation.

The simulated performance of CC 1/3 and CC 1/4 in the AWGN channel are addressed in Figure 4 and Figure 5.

Figure 4 – BER performance of CC(1/3) with D=15
Figure 5 – BER performance of CC(1/4) with D=15


Combining RS + CC Codes

We combine these two, Reed Solomon and Convolutional Code, for improving the error correction ability. Note that an interleaver is placed in between two correction layers for maximizing the correction performance.

The simulation of BER at different layers are recorded as follows.

Figure 6- Simulated Performance in Combining Inner CC (1/3) and Outer RS(15,11) code
Figure 7- Simulated Performance in Combining Inner CC (1/4) and Outer RS(15,11) code



Reed Solomon and Convolutional Code are combined as an effective FEC, serving the second generation of FEC. Admittedly, there is the third FEC generation and beyond.

The combination of an inner FEC code and an outer FEC code is examined and implemented in most OCC systems, being coexistent to OWC standards of the IEEE Standard Association (IEEE SA).




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s