Home > On-Demand Archives > Talks >
Against the Clock
Joseph Gaeddert - Watch Now - DSP Online Conference 2024 - Duration: 42:34
There's a famous joke where someone starts to ask a comedian "What's the secret to good comedy?" but before they can finish, the comedian interrupts with "Good timing." The same can be said for digital communications (well, good timing and good carrier recovery).
This talk will cover algorithmically efficient means to estimate (and correct for) timing and carrier (frequency/phase) offsets for various signal types to generate custom waveforms. It will include practical examples with source code for participants to follow along with.
Good question, and sorry for the delayed response. GNSS acquisition is a little different from synchronous burst transmissions where you cannot afford to miss any transmissions as this will result in a loss of data. Since GNSS is continuously transmitting, you can just hypothesize as to the timing and carrier frequency offset, and check the correlator output to see if you were correct. If not, just pick a different timing/carrier hypothesis and try again. You can get away with that since GNSS in constantly transmitting so it's not a big deal if you make a wrong guess; you just try again.
Thanks for the interesting talk Joseph. Is this method similar to what is typically done for DSSS signals, or is this something novel in that application? What makes this method particular to DSSS signals? It seems like it could be used for anything with a sufficiently long preamble.
Great question! There’s nothing that restricts this method to DSSS signals but it’s a good application for it since those preambles can be extremely long. As far as I know, this method isn’t used for DSSS signals but it’s possible I just haven’t found it in the literature. You are right that it could be used for any signal with a long preamble, and it can in fact be used for signals other than just linear modulation (e.g. GMSK, OFDM, or even noise-like signals). I chose linear modulation here because it was easier to visualize in the presentation.
Good to know. I sometimes deal with HF waveforms that have long preambles in the hundreds of symbols range, so I'd be interested to try this method. Thanks!
HF is a tricky beast for sure. Let me know how it goes. joseph@liquidsdr.org
Great presentation. It left me wanting more.
Thank you! I'm very glad you enjoyed it.
I'm not sure if it would conflict with your spread-spectrum requirement, but if your short preamble "partitions" were all the same, then you could instead do an extremely efficient "delay-and-correlate" detection. That can be done with a sliding window architecture, so is much more efficient than a cross-correlation (even an FFT-based one) - it only needs 1 multiply-accumulate per sample. This is how the "Short Training Field" was designed in Wi-Fi (802.11a/g and later) for coarse frequency and timing recovery. Another nice feature is that the carrier offset and power estimate (for AGC) also fall out as bi-products from the numerator and denominator of the correlation calculation, respectively. So, you really get a lot from remarkably little computation.
That STF is followed by a separate LTF (long training field), which can obviously be much longer because the frequency error has been approximately removed. So, the LTF is used to refine the frequency/timing recovery and also estimate/equalize the channel.
Reading between the lines, I guess you need your signal to appear "noise-like", which is why you need to use a more unstructured preamble.
Great points! I think the Schmidl & Cox algorithm does this, no? You do certainly get coarse timing and carrier frequency estimates from this method, but it can be susceptible to noise and interference. It's definitely a trade-off.
A long time I ago I implemented an 802.11a/g receiver in C, but it didn't use the auto-correlator method and instead uses an FFT-based method. This was because 802.11a/g uses a 16-sample repeating sequence (ten copies, IIRC) for the short training field. By looking at the output of the FFT, you can remove some of the noise by ignoring subcarriers that are effectively not enabled (e.g. only 1/4 of the subcarriers are used), and also ignore something like a tone interferer that is in the band but not overlapping those subcarriers.
This is good stuff! Thanks for the great comment!
I must admit, I never knew who invented the algorithm - but I think you're right. It appears to be credited to Schmidl and Cox. I'm glad to finally have a name (or pair of names) for it!
Yes, if I remember correctly, it was known to be sub-optimal (perhaps significantly so), but it was just irresistibly cheap to compute. I suppose 20 - 25 years ago, that was much more of a concern that it would be today.
Thank you for the very enjoyable presentation. Your diagrams and descriptions were really crystal clear.
Can this method be applied to GNSS acquisition? If yes, why is not popular as GNSS acquisition usually use the FFT method?