From the previous section, we know that the hard-decision Viterbi scheme is simple but may not have satisfactory performance. In this section, we propose a new algorithm, which is as simple as the hard-decision decoder but enjoys higher
performance. We call this algorithm as a hard-decision weighting decoder.
We use a simple example to describe our idea. Figure 3.6 shows the decision plane for a BPSK modulation. Note that due to noise, the received symbol r can be located at anywhere in the x-axis. For hard-decision, if r > 0, the decision as 1, otherwise it is -1. The decision region for 1 is (0,∞) and the decision region for –1 is then (-∞,0)
Take two received signals r = 0.1 and r = 1 as examples. Both decision are “1”
by the hard-decision principle. However, it is simple to see that the confidence for the decision is different for these two signals. Of course, soft-decision can solve the problem easily, but it requires higher computational complexity. It is our objective to solve this problem using a simple way.
The basic idea for “hard decision weighting” scheme is simple. For each decision region, we further partition it into two regions; the first one is considered reliable and the second one is not reliable. In the BM calculation, we then increase the weight if
-1 0 1
Figure 3.6 BPSK decision plane Received signal Z(t)
n is an integer). Consider a special BPSK scenario that the transmit symbol is either a1 or a2. The received signal is then r = a+n0 where a can be a1 or a2 and n0 is additive white Gaussian noise with mean zero and varianceσ2. Figure 3.7 illustrates the conditional probability density function (PDF) for the binary noise-perturbed received symbol. The ML decision gives
where 2
The probability of error shown in the shaded are in Figure 3.7 is then
where Q(.) is the complementary error function.
probability We now want to find the threshold, γ1, that determines weighting regions.
Without loss of generality, we let a1= -1, a2=1, and σ=1. Also, let the transmit symbol
be from a2. Figure 3.8 shows the received symbol distribution. In the figure, note that γ =1-1
s
1. For our algorithm, we add weighting on the BM calculation when the receive signal is in the area “A” (the interval between –s1 and a2). First, we define a cost function (3.7) that measures the probability of correct weighting and incorrect weighting. Figure 3.8 Received symbol distribution (2))]
Note that Q(0)-Q(γ1) indicates the probability that the transmit symbol is from a2 and the receive signal is in the area “A”. In other words, the hard-decision is correct and the weighing should be carried out. The term Q(1)-Q(2-γ1) indicates the probability that the transmit symbol is from a1 and the receive signal in the area “E”.
The hard-decision for this case is not correct and there should no be weighting in this
probability of correct weighting for symbols from a1 and correct “not weighting” for symbols from a2. Now, the term Q(2-γ1) gives the probability that the transmit symbol is from a1 and the receive signal is in the area “D”. In this case, it should no be weighting; however, it is weighted. Thus, the weighting is incorrect. Finally, the term Q(γ1)-Q(1) gives the probability that the transmit symbol is from a2 and the receive signal is in the area “B”. It should be weighted; it is not actually. This is incorrect either. Thus, the second term on the left hand side of (3.8), which is the product of two probabilities, indicates the joint probability of incorrect weighting for symbols from a2 and incorrect “no weighting” for symbols from a1. The cost function then corresponds to the relative probability of correct weighting decision. We then
minimize the cost function in (3.8) and obtain the optimal threshold. Figure 3.9 shows the cost function vs. the threshold. We can see that the optimal threshold is around 0.6.
r
Figure 3.9 The cost function vs. threshold
The SNR used is 7 dB here. We have found that the optimal threshold is between 0.6 and 0.75 when the SNR varies from 0 to 20 dB. The optimal threshold is not sensitive to the SNR. We can generalize (3.7) to have the optimization criterion for the general
noise case scenarios as
After finding optimal thresholds, we then have to determine how much weight we should give. Since this is something to do with the Viterbi algorithm, it is difficult to find a criterion to optimize. We then use simulations to find the optimal one. Figure 3.10 shows the simulation results. In the figure, “w1.0” indicates the results without weighting, “w1.2” indicates the results with weighting (weight is 1.2), and so on.
From the figure, we found that if the weight value is between 1.1 and 2, the Viterbi performance is similar. Also note that the optimal threshold is around 0.6. The SNR used here is 7 dB. Other cases will give similar results. We then use 0.625 as the threshold and 2 as the weight for simplicity.
Figure 3.10 BER vs. threshold and weight
The idea of hard-decision weighting can be extended further. We can partition
find optimal thresholds, we can formulate a criterion similar that in (3.8). The resultant cost function is shown in (3.9).
)
Figures 3.12 and 3.13 display the results at the optimal solution. The optimal
thresholds are found to be γ1=0.77 and γ2=0.5. The optimal weights are found to be around 2 and 1.5. We can generalize (3.10) and (3.11) to obtain the optimization criterion for the general noise case as
2 ))
Figure 3.12 Cost function value vs. γ2 for two-weight algorithm
Figure 3.13 Cost function value vs. γ1 for two-weight algorithm (γ2=0.77)
Figure 3.14 BER performance for hard-decision weighting algorithm
Figure 3.14 illustrates the BER performance for various Viterbi algorithms (in AWGN environment). In the figure, HD denotes the conventional hard-decision decoding, HDW1 denotes the proposed one-weight algorithm, and HDW2 denotes the proposed two-weight algorithm. As we can see, the proposed hard-decision weighting algorithm outperforms the hard-decision algorithm by 2dB at BER=10-3. The two-weight algorithm only performs slightly better than the one-two-weight algorithm. For this reason, we then use the one-weight algorithm in our implementation. As we
mentioned, the hard-decision weighting algorithm only needs XOR logic operations to compute BMs and its computational complexity is lower.