The relative simplicity of the Soft Output Viterbi Algorithm (SOYA) in Turbo code decoding makes it more efficient in hardware implementation, compared with the more complex Maximum a Posterior (MAP) Algorithm. However, the performance of SOYA-based decoding is generally inferior to that of MAP-based decoding in terms of Bit Error Rate (BER) and Frame Error Rate (FER). Therefore, for the emerging applications of turbo code, it is very desirable to improve both the performance and the hardware efficiency of the SOVA-based Turbo code decoding.
We propose a Bi-directional SOVA (BI-SOYA) and a serially mixed SOYA (SM-SOVA) consists of the original SOVA (a forward SOYA) and the backward directional SOYA (a backward SOVA) to improve the performance of SOVA based Turbo decoding.
At first, the backward SOVA is compared with the forward SOVA in turbo code decoding. We find noticeable performance improvement for the backward SOYA when it is not terminated, which turns out to be due to a smaller reliability value, indicating that the termination conditions of the turbo encoder strongly affect the performance of the backward SOYA decoder.
Bi-directional SOYA (BI-SOYA) consists of the original SOYA and the backward SOVA in parallel. The advantage of our BI-SOVA is that we do not need either parameter extraction or threshold value evaluation. The disadvantage is that the required area is about two times larger. The simulation results show that out BI-SOVA produce performance similar to that achieved by Max-Log MAP algorithm.
We also propose a hardware efficient serially mixed SOYA decoder composed of the forward SOYA decoder and the backward SOVA decoder. Although the SM-SOVA is similar to BI-SOYA, in combining forward and backward SOVA's together to improve BER performance, its hardware algorithm is quite different. First, while both forward and backward decoders are required for the Bi-SOVA, in the SM-SOVA, the backward SOYA decoding can be done in the forward SOYA decoder by simply reordering data and changing initial values. Thus both forward and backward SOYA can share the same hardware. Secondly, the SM-SOVA does not need hardware to combine two reliability values of the forward and backward SOYA. Thirdly, this decoder has a reduced latency time. The decoding is starting from the forward SOYA. So it does not have to wait until the last data bit has arrived as in Bi-SOVA.
Simulation results show that the proposed serially mixed SOYA decoder has a 0.2dB coding gain at 2.0dB Eb/No over the forward SOYA for a typical turbo code example.
Turbo code decoding을 위한 알고리즘은 Soft Output Vierbi Algorithm (SOVA)와 Maximum a Posterior (MAP) Algorithm으로 크게 나눌 수 있다. SOVA는 MAP에 비해 상대적으로 하드웨어 구현이 용이한 반면 Bit Error Rate (BER)이나 Frame Error Rate (FER) 측면에서 보면 성능이 MAP에 비해 나쁜 단점이 있다. 따라서 하드웨어가 간단한 SOVA를 이용하면서 성능향상을 가지는 연구가 turbo code decoding분야에서 절실히 필요하다.
우리는 SOVA를 이용한 Turbo code decoding의 성능 향상을 위해서 두 가지 알고리즘을 제안하였다. 그것은 기존 forward SOVA와 새로 도입된 backward SOVA를 결합한 구조로써, 병렬로 연결한 Bi-directional SOVA (BI-SOVA)와 직렬로 연결한 serially mixed SOVA (SM-SOVA)이다.
우선 backward SOVA를 이용하기 위해서 그 특징을 forward SOVA와 비교하였다. 우리는 $2^nd$ RSC(Recursive Systematic Convolution code) encoder가 termination이 안된 경우 backward SOVA가 forward SOVA보다 우수한 성능을 보임을 알았다. 이것은 termination 조건에 따라 초기 state metric이 변화하여, backward의 경우 전체 reliability value가 작아지는 효과로 나타나며, 이에 따라 전체 BER/FER의 특성이 개선됨을 보였다.
Bi-directional SOVA(BI-SOVA)는 위에서 언급했듯이 forward SOVA와 backward SOVA를 병렬 연결한 구조이다. 이 구조의 장점은 특별한 parameter를 추출이나 threshold값을 이용 하지 않아도 성능 향상을 보인다는 점이다. 그러나 병렬구조라서 2배정도의 면적을 차지하며, forward와 backward SOVA값이 함께 나오므로 이 둘을 결합하기 위한 추가 회로 및 연산이 필요한 단점이 있다. 그러나 성능 면에서는 Max log MAP 알고리즘과 비슷한 성능 향상을 보였다.
우리는 또한 직렬구조를 가지는 Serially mixed SOVA (SM-SOVA)를 제안 하였다. 이 구조 역시 두 의 forward SOVA와 backward SOVA를 이용하여 성능 향상에 기여 한 점은 BI-SOVA와 유사하지만, 하드웨어 알고리즘은 꽤 차이가 난다. 첫째로 병렬구조인 BI-SOVA의 경우 forward SOVA와 backward SOVA가 각각 독립적으로 필요하나, SM-SOVA의 경우는 하드웨어 공유가 가능하다. 즉 forward SOVA로 사용하던 하드웨어를 입력의 순서와 초기만 state metric 값만 바꾸면 backward SOVA로 활용가능 해 진다. 따라서 하드웨어 면적 측면에서 유리하다. 두 번째로 BI-SOVA에서는 forward SOVA와 backward SOVA에서 동시에 나오는 reliability 값을 결합하는 추가 연산에 필요하지만 SM-SOVA에서는 전혀 필요하지 않다. 세 번째로 forward SOVA에서부터 decoding이 시작 되므로 latency 문제가 감소한다. BI-SOVA의 경우 backward SOVA도 같이 시작하므로 latency면에서 손해가 있다.
SM-SOVA 실험 결과 특정 turbo code에서 $2^nd$ RSC encoder가 termination 안된 경우, 2.0dB Eb/No에서 0.2dB의 성능 향상은 보였다.