Today I figured out why half of my data is being decoded correctly and the other half is not.
Turns out that the D30 bit of the previous word causes bits 1-24 of the next word to be inverted.
These bits need to be reinverted before they can be used.
Steps to locate and confirm the preamble are as follows.
- Locate preamble 1000101100.
- Locate the preamble again 10 words away.
- Check the 2nd word(HOW) and verify that it has a valid subframe ID, and how time.
- Check the next (HOW) word and verify that it has a valid subframe ID, HOW time, and that they increment or roll over accordingly.
- Perform parity checks.
- Check the d29 and d30 of the HOW word and ensure they are equal to zero.