...But can I ask what pulse lengths you were using? 00/01/10/11 will always minimise the count of pulses you output, but I wouldn’t expect it to minimise the total recording length unless your four pulse lengths are quite similar to each other.
spacing of (100+ 100*n) +----------------+-----------------+--------------+ | Pulse duration | arithmetic code | huffman code | +----------------+-----------------+--------------+ | 100 cycles | 0.51879 | 1 | | 200 cycles | 0.26914 | 01 | | 300 cycles | 0.13963 | 001 | | 400 cycles | 0.07244 | 000 | +----------------+-----------------+--------------+ mean cycles per bit, arithmetic code = 105.6 mean cycles per bit, huffman code = 107.1 spacing of (100+ 28*n) +----------------+-----------------+--------------+ | Pulse duration | arithmetic code | huffman code | +----------------+-----------------+--------------+ | 100 cycles | 0.36380 | 0 | | 128 cycles | 0.27410 | 10 | | 156 cycles | 0.20651 | 111 | | 184 cycles | 0.15559 | 110 | +----------------+-----------------+--------------+ mean cycles per bit, arithmetic code = 68.6 mean cycles per bit, huffman code = 71.1 spacing of (100+ 27*n) +----------------+-----------------+--------------+ | Pulse duration | arithmetic code | huffman code | +----------------+-----------------+--------------+ | 100 cycles | 0.36057 | 11 | | 127 cycles | 0.27376 | 10 | | 154 cycles | 0.20785 | 01 | | 181 cycles | 0.15781 | 00 | +----------------+-----------------+--------------+ mean cycles per bit, arithmetic code = 68.0 mean cycles per bit, huffman code = 70.2