Channel and Coding Implementation¶
After establishing a basic channel, AWGN was then added as shown on Figure 5.5. The AWGN function has an Eb/No input, which is the target Eb/No of the signal (the Eb/No received).
Figure 5.5 Communication Diagram
In order to further improve the communication chain, coding is applied to this channel, a illustrated in figure 6. The BER function in LabVIEW compares the received bit stream to the Galois generated PN sequence. At this point, as mentioned in the limitations, synchronization between the two USRP was an issue. From the time the Vi was ran, there was a delay of 3 seconds on the receiving side, plotting noise, before correcting plotting the constellation. The received bits did not maintain a fixed value (since the transmitter and receiver were continuously transmitting and receiving) but rather kept changing (between 0 and 1) throughout the test, giving a BER of 1. For this reason, it was necessary to calculate the BER without the use of USRPs.
Figure 5.6 AWGN and Coding
BCH and LDPC Implementation¶
Reed-Solomon and convolutional coding was considered, but given the new standard DVB-S2 and the desire to follow it BCH and LDPC coding is used. it Knowing the complexity of implementing LDPC codes, especially since it had not been covered in class, this code is first evaluated on a separate LabVIEW GVI. Then the concatenated scheme of BCH-LDPC is also evaluated, effectively showing that they improve the BER for a communication noise when noise is present. This was done by generating bits, then using a function of LabVIEW that creates noise (not AWGN, since no modulation is done), and changes some bits of the bits stream then calculates the BER on the un-coded bit stream, and on the coded bit stream. In this particular VI, there is no Eb/No, but a bit-flip probability (with values of 0.0001), as this bit-flip-probability increases, so does the BER. Effectively, the BER is minimized when both BCH and LDPC codes are used, as can be seen on the figure below, in which the BER is 0 when both codes are used.
The parameters used in BCH and LDPC were very low (not compliant with DVB-S2 standard) given the limitations of LabVIEW low values for K and N were used for BCH and LDPC codes (not compliant with DVB-S2 standard), given the limitations of LabVIEW (as formerly explained). Parameters for BCH used was n=7, k=4 and t=1 and for LDPC, with an irregular parity matrix (as is the most used) where the maximum number of columns (n) is set to 100, the number of rows (m) set to 50, the number of ones in the columns set to 3 and iteration of 100. This would create a parity matrix with a low percentage of ones
Figure 5.7 Front Panel BCH LDPC
Implementing this coding on the chain is done after generating the bits, before the preamble (PN header) for coding with BCH, then LDPC. The bits are fed to the QPSK function, which modulates the signal, and after the filters, the signal is demodulated and the bits are decoded with LDPC, then BCH, and the BER is calculated.