Hawkynt

Tail-Biting Convolutional Code

Convolutional codes where ending state equals starting state, eliminating rate loss from tailing bits. Used in 802.11 WiFi, LTE control channels, satellite communications. No zero-padding needed. Circular trellis structure. Viterbi decoding starts from all possible initial states. Achieves full rate without truncation.

Properties

Property Value
Category Error Correction
Sub-category Convolutional Code
Security status πŸŽ“ Educational Only
Complexity Advanced
Inventor Howard Ma, Jack Wolf
Year 1986
Origin πŸ‡ΊπŸ‡Έ United States
Source algorithms/ecc/tail-biting-convolutional.js

Security

Status: πŸŽ“ Educational Only

Known vulnerabilities

Issue Description Mitigation
Decoding Complexity Must try all possible starting states in Viterbi decoding. Complexity is S times standard Viterbi, where S is number of encoder states. For K=3 (4 states), overhead is 4x. β€”
Short Block Performance Tail-biting advantage diminishes for long blocks where rate loss from tailing bits becomes negligible. Most beneficial for blocks of 40-500 bits. Longer blocks should use zero-termination. β€”
Synchronization Requires proper frame synchronization. Block boundaries must be known precisely or tail-biting constraint will be violated, causing significant performance degradation. β€”

Documentation

References

Test vectors

4 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.

Vector 1 β€” Tail-biting K=3 all zeros (state 00->00)

Field Value
input 00000000
expected 0000000000000000

Vector 2 β€” Tail-biting K=3 pattern 1100 (state 00->00)

Field Value
input 01010000
expected 0101000100010101

Vector 3 β€” Tail-biting K=3 pattern 0110 (state 10->10)

Field Value
input 00010100
expected 0101010100010001

Vector 4 β€” Tail-biting K=3 pattern 1001 (state 01->01)

Field Value
input 01000001
expected 0001000101010101

← All algorithms