Question: Project Instructions Introduction In this coursework you will implement (in MATLAB) the encoders and decoders for linear block and convolutional codes. The implementation will then





Project Instructions Introduction In this coursework you will implement (in MATLAB) the encoders and decoders for linear block and convolutional codes. The implementation will then be used to generate simulation results assuming BPSK modulation with on Additive White Gaussian Noise (AWGN) channel. We will deliberately take a direct implementation approach which, will enhance understanding of the concepts and algorithms covered in lectures. You are required to write .m files for all the steps. The coursework consists of 2 main tasks. You are required to submit an individual technical report containing discussions of your results and implementation choices and all MATLAB codes. You should also include any relevant introduction and description of your algorithms. Task 2 LDPC codes Investigate the performance the rate 1/2 LDPC code (400,200) on the same channel than in task one. Task 2.1 Construct your own random low density party check matrix for the code. Use regular code construction, chose and discuss the node degrees (variable and check node degrees). An example of a parity check code with H node degree (4,6) is shown in figure 4 below. Design a systematic generator a matrix for your code. Detail the steps needed to design the generator matrix. 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 Figure 4: Example of a Regular construction of LDPC party check matrix. As an alternative construction, you can use H matrix with the "stair-case" structure (see the guest lecture and additional lecture slides). Such matrix can be used for both the encoding and the decoding Task 2.2 Investigate the performance of your LDPC code on AWGN channel (the same channel than in task one). Present your results (BER curves) as the function of iterations. Investigate the performance on the same "noise burst" channel than in task 1.2. Discuss what countermeasures against noise "bursts are possible with LDPC codes. Compare the performance of your two codes: convolutional code and your LDPC. Task 1: Empirical investigation of the error correcting performance of a binary convolutional code In this task you need to write a script which performs Monte Carlo simulations to obtain BER curves in noisy channels: AWGN channel, with BPSK modulation. For this task you will use a convolutional code and the probability of error will be estimated empirically i.e. in the form of BER via Monte Carlo simulations. The rate 1/2 code for this task is given in Figure 1. Assume that the input data sequence k=200 bits (adding 3 terminating bits). Therefore, there code-length is 406. As the decoder you should implement the Viterbi decoder. Vli di + V2i Figure 1: Convolutional encoder for Task 1. Assume the encoded signal is modulated by BPSK and is subjected to additive white Gaussian noise (AWGN), which can be simulated by adding Gaussian noise with a variance: N. 2E, 1 Note that this assumes that symbols are transmitted as 1 (BPSK) (suitably scaled to adjust for the code rate) Task 1.1 Plot in the same figure: the curve for uncoded BPSK transmission, uncoded BPSK transmission with Eb/NO adjusted for the code rate, and the BER plot for your code - Figure 2 shows how your results should be represented. Discuss our results. 1. What is the coding gain at BER=0.01, 0.001 and 0.0001? 10 10 10 Bit error rate 10* Coding gain 10 Without coding Before decoding After decoding 10 5 8 9 10 6 7 Eb/No (dB) Figure 2: Example of error correction statistics for some code (NOT THE ONE FROM taskl). Coding Theory 2020-2021 Project Instructions Introduction In this coursework you will implement (in MATLAB) the encoders and decoders for linear block and convolutional codes. The implementation will then be used to generate simulation results assuming BPSK modulation with on Additive White Gaussian Noise (AWGN) channel. We will deliberately take a direct implementation approach which will enhance understanding of the concepts and algorithms covered in lectures. You are required to write .m files for all the steps. The coursework consists of 2 main tasks. You are required to submit an individual technical report containing discussions of your results and implementation choices and all MATLAB codes. You should also include any relevant introduction and description of your algorithms. Task 1: Empirical investigation of the error correcting performance of a binary convolutional code In this task you need to write a script which performs Monte Carlo simulations to obtain BER curves in noisy channels: AWGN channel, with BPSK modulation. For this task you will use a convolutional code and the probability of error will be estimated empirically i.e. in the form of BER via Monte Carlo simulations. The rate 1/2 code for this task is given in Figure 1. Assume that the input data sequence k=200 bits (adding 3 terminating bits). Therefore, there code-length is 406. As the decoder you should implement the Viterbi decoder. Vri di + V2i Figure 1: Convolutional encoder for Task 1. Assume the encoded signal is modulated by BPSK and is subjected to additive white Gaussian noise (AWGN), which can be simulated by adding Gaussian noise with a variance: N. 2E, 1 Note that this assumes that symbols are transmitted as #1 (BPSK) (suitably scaled to adjust for the code rate) Task 1.1 Plot in the same figure: the curve for uncoded BPSK transmission, uncoded BPSK transmission with Eb/NO adjusted for the code rate, and the BER plot for your code - Figure 2 shows how your results should be represented. Discuss our results. 1. What is the coding gain at BER=0.01 , 0.001 and 0.0001? to 10 ta 10 Coding gain 10 Without coding Before decoding Alter decoding 10 8 9 10 6 EbNo (dB) Figure 2: Example of error correction statistics for some code (NOT THE ONE FROM taskl). Task 1.2 Investigate, the impact of "burst noise" and the impact of the random "interleaver" countermeasure. To simulate the "noise burst" assume that 10 consecutive transmitted symbols will see much higher noise (10dB higher noise energy). For example, the transmitted symbols (101-110) will be subject to the higher noise level (it will have 10dB lower SNR) compared to all other transmitted symbols (1-100 and 111 - 406). 20 15 10 5 noise aplitude anupamamlanan - 10 -15 -20 50 100 150 250 300 350 400 200 sample number Figure 3: Example of the "noise burst". Note that in this example the burst is higher in amplitude than 10dB (this is done for visualisation purposes). 2 Investigate the impact of the interleaver. Compare the performance on the bursty noise channel with the interleaver, and without. Task 2 LDPC codes Investigate the performance the rate 1/2 LDPC code (400,200) on the same channel than in task one. Task 2.1 Construct your own random low density party check matrix for the code. Use regular code construction, chose and discuss the node degrees (variable and check node degrees). An example of a parity check code with H node degree (4,6) is shown in figure 4 below. Design a systematic generator a matrix for your code. Detail the steps needed to design the generator matrix. 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 00010 Figure 4: Example of a Regular construction of LDPC party check matrix. As an alternative construction, you can use H matrix with the stair-case structure (see the guest lecture and additional lecture slides). Such matrix can be used for both the encoding and the decoding. Task 2.2 Investigate the performance of your LDPC code on AWGN channel (the same channel than in task one). Present your results (BER curves) as the function of iterations. Investigate the performance on the same "noise burst" channel than in task 1.2. Discuss what countermeasures against noise "bursts are possible with LDPC codes. Compare the performance of your two codes: convolutional code and your LDPC. Project Instructions Introduction In this coursework you will implement (in MATLAB) the encoders and decoders for linear block and convolutional codes. The implementation will then be used to generate simulation results assuming BPSK modulation with on Additive White Gaussian Noise (AWGN) channel. We will deliberately take a direct implementation approach which, will enhance understanding of the concepts and algorithms covered in lectures. You are required to write .m files for all the steps. The coursework consists of 2 main tasks. You are required to submit an individual technical report containing discussions of your results and implementation choices and all MATLAB codes. You should also include any relevant introduction and description of your algorithms. Task 2 LDPC codes Investigate the performance the rate 1/2 LDPC code (400,200) on the same channel than in task one. Task 2.1 Construct your own random low density party check matrix for the code. Use regular code construction, chose and discuss the node degrees (variable and check node degrees). An example of a parity check code with H node degree (4,6) is shown in figure 4 below. Design a systematic generator a matrix for your code. Detail the steps needed to design the generator matrix. 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 Figure 4: Example of a Regular construction of LDPC party check matrix. As an alternative construction, you can use H matrix with the "stair-case" structure (see the guest lecture and additional lecture slides). Such matrix can be used for both the encoding and the decoding Task 2.2 Investigate the performance of your LDPC code on AWGN channel (the same channel than in task one). Present your results (BER curves) as the function of iterations. Investigate the performance on the same "noise burst" channel than in task 1.2. Discuss what countermeasures against noise "bursts are possible with LDPC codes. Compare the performance of your two codes: convolutional code and your LDPC. Task 1: Empirical investigation of the error correcting performance of a binary convolutional code In this task you need to write a script which performs Monte Carlo simulations to obtain BER curves in noisy channels: AWGN channel, with BPSK modulation. For this task you will use a convolutional code and the probability of error will be estimated empirically i.e. in the form of BER via Monte Carlo simulations. The rate 1/2 code for this task is given in Figure 1. Assume that the input data sequence k=200 bits (adding 3 terminating bits). Therefore, there code-length is 406. As the decoder you should implement the Viterbi decoder. Vli di + V2i Figure 1: Convolutional encoder for Task 1. Assume the encoded signal is modulated by BPSK and is subjected to additive white Gaussian noise (AWGN), which can be simulated by adding Gaussian noise with a variance: N. 2E, 1 Note that this assumes that symbols are transmitted as 1 (BPSK) (suitably scaled to adjust for the code rate) Task 1.1 Plot in the same figure: the curve for uncoded BPSK transmission, uncoded BPSK transmission with Eb/NO adjusted for the code rate, and the BER plot for your code - Figure 2 shows how your results should be represented. Discuss our results. 1. What is the coding gain at BER=0.01, 0.001 and 0.0001? 10 10 10 Bit error rate 10* Coding gain 10 Without coding Before decoding After decoding 10 5 8 9 10 6 7 Eb/No (dB) Figure 2: Example of error correction statistics for some code (NOT THE ONE FROM taskl). Coding Theory 2020-2021 Project Instructions Introduction In this coursework you will implement (in MATLAB) the encoders and decoders for linear block and convolutional codes. The implementation will then be used to generate simulation results assuming BPSK modulation with on Additive White Gaussian Noise (AWGN) channel. We will deliberately take a direct implementation approach which will enhance understanding of the concepts and algorithms covered in lectures. You are required to write .m files for all the steps. The coursework consists of 2 main tasks. You are required to submit an individual technical report containing discussions of your results and implementation choices and all MATLAB codes. You should also include any relevant introduction and description of your algorithms. Task 1: Empirical investigation of the error correcting performance of a binary convolutional code In this task you need to write a script which performs Monte Carlo simulations to obtain BER curves in noisy channels: AWGN channel, with BPSK modulation. For this task you will use a convolutional code and the probability of error will be estimated empirically i.e. in the form of BER via Monte Carlo simulations. The rate 1/2 code for this task is given in Figure 1. Assume that the input data sequence k=200 bits (adding 3 terminating bits). Therefore, there code-length is 406. As the decoder you should implement the Viterbi decoder. Vri di + V2i Figure 1: Convolutional encoder for Task 1. Assume the encoded signal is modulated by BPSK and is subjected to additive white Gaussian noise (AWGN), which can be simulated by adding Gaussian noise with a variance: N. 2E, 1 Note that this assumes that symbols are transmitted as #1 (BPSK) (suitably scaled to adjust for the code rate) Task 1.1 Plot in the same figure: the curve for uncoded BPSK transmission, uncoded BPSK transmission with Eb/NO adjusted for the code rate, and the BER plot for your code - Figure 2 shows how your results should be represented. Discuss our results. 1. What is the coding gain at BER=0.01 , 0.001 and 0.0001? to 10 ta 10 Coding gain 10 Without coding Before decoding Alter decoding 10 8 9 10 6 EbNo (dB) Figure 2: Example of error correction statistics for some code (NOT THE ONE FROM taskl). Task 1.2 Investigate, the impact of "burst noise" and the impact of the random "interleaver" countermeasure. To simulate the "noise burst" assume that 10 consecutive transmitted symbols will see much higher noise (10dB higher noise energy). For example, the transmitted symbols (101-110) will be subject to the higher noise level (it will have 10dB lower SNR) compared to all other transmitted symbols (1-100 and 111 - 406). 20 15 10 5 noise aplitude anupamamlanan - 10 -15 -20 50 100 150 250 300 350 400 200 sample number Figure 3: Example of the "noise burst". Note that in this example the burst is higher in amplitude than 10dB (this is done for visualisation purposes). 2 Investigate the impact of the interleaver. Compare the performance on the bursty noise channel with the interleaver, and without. Task 2 LDPC codes Investigate the performance the rate 1/2 LDPC code (400,200) on the same channel than in task one. Task 2.1 Construct your own random low density party check matrix for the code. Use regular code construction, chose and discuss the node degrees (variable and check node degrees). An example of a parity check code with H node degree (4,6) is shown in figure 4 below. Design a systematic generator a matrix for your code. Detail the steps needed to design the generator matrix. 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00001 00001 10000 10000 01000 01000 00100 00100 00010 00010 00001 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 10000 01000 00100 00010 00001 00010 Figure 4: Example of a Regular construction of LDPC party check matrix. As an alternative construction, you can use H matrix with the stair-case structure (see the guest lecture and additional lecture slides). Such matrix can be used for both the encoding and the decoding. Task 2.2 Investigate the performance of your LDPC code on AWGN channel (the same channel than in task one). Present your results (BER curves) as the function of iterations. Investigate the performance on the same "noise burst" channel than in task 1.2. Discuss what countermeasures against noise "bursts are possible with LDPC codes. Compare the performance of your two codes: convolutional code and your LDPC
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
