But perhaps static void chainback_viterbi() should return this instead?
So running convolutional-fec.exe now gives something more sensible:
test passed, expected error rate=0.00e+00, observed error rate=0.00e+00 @infdB for rate 2 order 6
test passed, expected error rate=8.00e-06, observed error rate=4.00e-06 @4.5dB for rate 2 order 6
test passed, expected error rate=5.00e-05, observed error rate=2.45e-05 @4.0dB for rate 2 order 6
test passed, expected error rate=0.00e+00, observed error rate=0.00e+00 @infdB for rate 2 order 9
test passed, expected error rate=3.00e-06, observed error rate=0.00e+00 @4.5dB for rate 2 order 9
test passed, expected error rate=8.00e-06, observed error rate=2.75e-06 @4.0dB for rate 2 order 9
test passed, expected error rate=0.00e+00, observed error rate=0.00e+00 @infdB for rate 3 order 9
test passed, expected error rate=3.00e-06, observed error rate=0.00e+00 @4.5dB for rate 3 order 9
test passed, expected error rate=5.00e-06, observed error rate=2.25e-06 @4.0dB for rate 3 order 9
test passed, expected error rate=0.00e+00, observed error rate=0.00e+00 @infdB for rate 6 order 15
test passed, expected error rate=3.00e-06, observed error rate=0.00e+00 @3.0dB for rate 6 order 15
test passed, expected error rate=1.00e-05, observed error rate=0.00e+00 @2.5dB for rate 6 order 15
When running this test program on MSVC/clang (x86), all I got was:
expected to decode 4096 bytes, decoded 0 bytes instead
before it exited. The reason is that
error-sim.c
andscratch->decode()
is expecting a number of bytes decoded. Correct?But in fact
scratch->decode
point to functions returningvoid
! Seems thatconv_fec27_decode()
returns 0 after all. But I patched them all:But perhaps
static void chainback_viterbi()
should return this instead?So running
convolutional-fec.exe
now gives something more sensible:Takes 2 minutes to complete.