Communications Blockset    

Mapping the Received Data

The received data, that is, the output of the AWGN Channel block, consists of complex numbers that are close to -1 and 1. In order to reconstruct the original binary message, the receiver part of the model must decode the convolutional code. Although the Viterbi Decoder block is designed for convolutional decoding, it expects its input data to have a particular format. The purpose of the mapping task is to transform the output of the AWGN Channel block into a format that the Viterbi Decoder block can interpret properly.

Specifically, the Viterbi Decoder block is configured here to process integer input values between 0 and 7. The mapping procedure includes these two tasks:

  1. Convert the received data signal to a real signal by removing its imaginary part. It is reasonable to assume that the imaginary part of the received data does not contain essential information, because the imaginary part of the transmitted data is zero (ignoring small roundoff errors) and because the channel noise is not very powerful.
  2. Map the resulting real signal to an integer between 0 and 7, to prepare for the soft-decision algorithm described in the next section.

Converting to Real Data

The Complex to Real-Imag block, in Simulink's Math library, performs step 1 above. Since its Output parameter is set to Real, the block outputs only the real part of its input.

Mapping to Decision Values

The Sampled Quantizer Encode block, in the Source Coding library, performs step 2 above. This block classifies each real input value based on whether it is greater or less than the partition values in the Quantization partition parameter. The block then outputs a value from the Quantization codebook parameter that depends on the classification.

As the section Defining the Decoding Process (Technical) explains, the Viterbi Decoder requires input values that are integers between 0 and 23-1 in order to decode using three-bit soft decisions. Therefore, the Quantization codebook parameter is a vector containing the eight integers between 0 and 7. Since the input to the Sampled Quantizer Encode block is close to the values -1 and 1, it is reasonable to select the seven partition values to be -.75, -.5, -.25, 0, .25, .5, and .75. This means that the first classification group consists of numbers less than or equal to -.75, the second classification group consists of numbers between -.75 and -.5 (including -.5), and so on, until the eighth classification group consists of numbers greater than .75. Finally, the elements of the Quantization codebook and Quantization partition vectors are ordered so that an input value of -1 maps to an output value of 7 and an input value of 1 maps to an output value of 0. The combination of this mapping and the Viterbi Decoder block's decision mapping reverses the BPSK modulation that the BPSK Modulator Baseband block performs on the transmitting side of this model.


 Transmitting Along a Noisy Channel Buffering to Convert Scalars to Vectors