@@ -8,7 +8,7 @@ In APRS, a single flipped bit results in a ruined packet. In CATS, Forward Error
Like APRS, CATS packets are variable-length. This is advantageous as packets that contain small amounts of data don't need to be padded; this increases efficiency. However, LDPC encoding requires data to be of a constant width. The solution is to break our data into chunks, so that we can LDPC-encode each chunk individually.
The structure of the data chunks is not encoded in the packet. Instead, the data is broken into chunks deterministically. The same algorithm can be used by the receiver to break the chunks apart, decode them, and combine the resulting data together. The valid LDPC codes are TC128, TC256, TC512, TM2048, and TM8192, all with $r=1/2$. These codes are specified in detail in CCSDS document 231.1-0-1. The algorithm works as follows:
The structure of the data chunks is not encoded in the packet. Instead, the data is broken into chunks deterministically. The same algorithm can be used by the receiver to break the chunks apart, decode them, and combine the resulting data together. The valid LDPC codes are TC128, TC256, TC512, TM2048, and TM8192, all with $r=1/2$. These codes are specified in detail in CCSDS documents\footnote{TC-prefixed codes are from CCSDS 231.1-O-1, which can be found at https://public.ccsds.org/Pubs/231x1o1s.pdf . TM-prefixed codes are from CCSDS 131.0-B-2, which can be found at https://public.ccsds.org/Pubs/131x0b2ec1s.pdf}. The algorithm works as follows:
\begin{enumerate}
\item Pick the largest code with an input size $M \le N$