Simulation Project 2
BCH codes are introduced as a class of block codes with error detection and error correction capabilities. Like any cyclic codes, a BCH encoder accepts k bits as the information and transfers them to its output together with n-k bits named as parity bits. Considering dmin as the minimum distance of codewords, a BCH code can be represented as (n,k,dmin).
Part 1) Simulating (n,k) BCH codes
Write a program to provide the following requests:
- Construct a (7,4) BCH code with the generator matrix G(p)=p3+p+1. (Draw the structure of the encoder in your report).
- Determine the shift register contents of the encoder in each step for two different bitstreams d=1011 and d=0111.
- Calculate codewords’ weight of the (7,4) BCH code and its dmin value (based on all possible bitstreams). Confirm your result with the simulation program.
Part 2) Simulating turbo BCH codes
- Two identical (n,k) BCH codes are linked together in parallel form by an interleaver. As a result, a new code is achieved named as the turbo BCH code. Figure 1 shows the structure of turbo BCH codes. Note that only parity bits of the second BCH code are contributed in codewords.
- For turbo (7,4) BCH code with the generator matrix G(p)=p3+p+1 for its constituent BCH codes, determine the weight of codewords and dmin value. Assume that the turbo BCH code (or turbo code as its abbreviation) encodes input bitstreams with the length L=4. Confirm your answer with the conducted simulation.
- The interleaver accepts these bitstreams. Considering the length of input bitstreams, i.e. L=4, the row-column interleaver 4=2×2 in tailored with the length of input bitstreams is applied in the structure of turbo code. In row-column interleavers, data are written into N×L matrix (N rows and L columns) in column fashion. Once the array is filled, it is read out in row fashion and its contents are sent to the second BCH encoder. Figure 2 shows the operation of row-column interleaver 3×4.
Figure 2- Operation of 3×4 row-column interleaver.
- For (10,4) turbo BCH code constructed by two (7,4) BCH codes, determine its minimum Hamming weight. Confirm your answer with the conducted simulation.
- Compare dmin values calculated in parts (b) and (d)
Part 3) Other codes
- Repeat parts 1 and 2 for (15,11) BCH code as well as turbo code with length L=22 formed by two (15,11) BCH codes, where 2×11 row-column interleaver is applied. Prove your answer with the conducted simulation
- What dmin is expected for the turbo with length L=121, where two (15,11) BCH codes and 11×11 row-column interleaver are applied? Explain your answer.
Generator polynomial for (15,11) BCH code is G(p)=p4+p+1.
- In this part, the length of input bitstream is not equal to the value of k, i.e. 11. it is multiple of 11. You need to change one bitstream with the length 22 to two bitstreams with length 11 for BCH encoding. After encoding and multiplexing, the dmin must be calculated for codewords with L=22.
- dmin is given from bitstreams with low weights (low number of “1”s). In your simulation, just focus on input bitstreams having weights no greater than 3.
- For interleaving, you can use ready function “matintrlv” available in Matlab.
Part 4) Conclusions
- Derive your conclusions regarding the performance of the BCH and turbo BCH codes given in parts 1,2 and 3.
- What is the function and importance of the interleaver in turbo BCH codes?
* Explain clearly how data in different parts of the abovementioned codes are generated. Attach the results of each part and source of your program.
Get expert help for BCH and turbo BCH codes and many more. 24X7 help, plag-free solution. Order online now!