A method for performing frame and symbol timing synchronization on samples of a received signal, wherein the received signal includes a series of frames, wherein each frame includes a preamble and payload data, wherein the preamble of each frame includes multiple repetitions of a base pattern and also includes a start-of-message (SOM) word, wherein the multiple repetitions of the base pattern conform to a first constant-amplitude continuous-phase frequency modulation scheme, the method comprising:
- a computer system shifting the samples of the received signal based on a coarse estimate for a start-of-frame time to determine samples x1(n);
- the computer system maximizing a first function with respect to shift index q, wherein the first function is a sum of square magnitudes of cross-correlation sums C(s,q) over index s, wherein the cross-correlation sum C(s,q) is a cross-correlation sum between a model sequence p(n) and a subsequence of the samples x1(n) shifted by a sample distance sSL+q, where S is a number of symbols in the base pattern, wherein L is the number of samples per symbol, wherein the model sequence p(n) is based on a known model of the base pattern;
- the computer system shifting the samples x1(n) by an amount depending on the maximizing value of the shift index q to obtain samples x2(n);
- and
- the computer system identifying a beginning of the payload data within the samples x2(n) by demodulating the samples x2(n) to obtain demodulated bits and detecting an end of the start-of-message word in a first of the preambles.