  This paper explores list decoding of convolutional and polar codes for short
messages such as those found in the 5G physical broadcast channel. A cyclic
redundancy check (CRC) is used to select a codeword from a list of likely
codewords. One example in the 5G standard encodes a 32-bit message with a
24-bit CRC and a 512-bit polar code with additional bits added by repetition to
achieve a very low rate of 32/864. This paper shows that optimizing the CRC
length improves the $E_b/N_0$ performance of this polar code, where $E_b/N_0$
is the ratio of the energy per data bit to the noise power spectral density.
Furthermore, even better $E_b/N_0$ performance is achieved by replacing the
polar code with a tail-biting convolutional code (TBCC) with a
distance-spectrum-optimal (DSO) CRC. This paper identifies the optimal CRC
length to minimize the frame error rate (FER) of a rate-1/5 TBCC at a specific
value of $E_b/N_0$. We also show that this optimized TBCC/CRC can attain the
same excellent $E_b/N_0$ performance with the very low rate of 32/864 of the 5G
polar code, where the low rate is achieved through repetition. We show that the
proposed TBCC/CRC concatenated code outperforms the PBCH polar code described
in the 5G standard both in terms of FER and decoding run time. We also explore
the tradeoff between undetected error rate and erasure rate as the CRC size
varies.
