Signal Detection: Matched Filter
Some notes on the topic of matched filtering. An example based on AIS is presented.
Let’s take a look now at what this transformation does to a GMSK signal. Here we have the differential phase of an AIS message with 9600 bauds, oversampled with T=10 and with a bit of noise added:
It’s a bit noisy but its eye diagram comes out well defined and it should not be a challenge for the clock recovery algorithm to work with it. This diagram has been prepared with the help from this simple interactive javascript tool.
Surely enough, the spectrum of \(Re\{\dot{c}(t)\}\), the real component of the derivative of \(\tilde{c}(t)\), shows a strong peak at 9600, our symbol rate:
And its eye diagram shows the properties we are looking for in a S-curve:
Notice however that this curve shows a bias of one quarter of the symbol period \(T\).
Average all the symbol periods from the eye diagram, the result (an approximation to its expected value) shows like this:
Which is a robust S-curve centered at about one quarter of the symbol period \(T\).
The most important detrimental effect to this method is the effect of series of consecutive symbol values in the data stream. Logically a long series of zeros or ones in the MSK signal produce a single tone frequency that doesn’t give any chance for the clock recovery. This is the reason why encoding schemas limit this effect by introducing “bit stuffing,” effectively breaking those long sequences by introducing alternating symbols in the data stream.
Moreover, the harmonics that showed up in the S-curve spectrum presented before are coming from those sequences of consecutive symbol values.
Following a similar approach to Guobing et al in “Blind Frequency and Symbol Rate Estimation for MSK Signal under low SNR” we can estimate how is the SNR of D’Andrea’s fourth-order transformation in comparison to the original signal’s SNR.
Being of constant envelope, the power of an MSK signal goes with \(\dfrac{A^2}{2}\), where \(A\) is the amplitude of the signal. As far as the noise, we say its power is equal to the square of its standard deviation or \(\sigma^2\). Then, the power of our fourth order transformation:
\[\tilde{z}^2(t)\tilde{z}^{*2}(t-T) = (s(t)+n(t))^2(s(t-T)+n(t-T)^{*2}\]can be approximated, as far as power computation is concerned, by:
\[(\dfrac{A^2}{2})^4 + 4(\dfrac{A^2}{2})^3\sigma^2 + 6(\dfrac{A^2}{2})^2\sigma^4 + 4\dfrac{A^2}{2}\sigma^6 + \sigma^8\]The first term in the summation is our signal while the rest are its noise components. Normalizing \(\sigma\) to 1, the SNR of the original \(s(t)\) is then \(SNR(s) = \dfrac{A^2}{2}\) and the SNR of our fourth order transformation can be approximated by:
\[\dfrac{SNR(s)^4}{4SNR(s)^3 + 6SNR(s)^2 + 4SNR(s) + 1}\]We can see that this is about one fourth (6 dB less) for high SNR values of \(s(t)\) and it decreases rapidly for lower SNRs:
We can see then how the degradation of this transformation is worse in presence of noise in comparison to the original signal \(s(t)\). Still, it seems remarkably reliable, even when a considerable amount of noise is added to our original signal, to the point that its eye diagram starts to get all murky:
the averaged S-curve still holds its shape, although its amplitude has decreased:
Of course we are using here the whole signal (about 230 symbols) to average the S-curve. This approach might not be practical in some applications where low latency is critical.
This method shows great potential and an exploration of its limitations shows a number of avenues for further improvement:
A data-driven approach: given that some symbol repetitions are detrimental to the method, they can be detected and skipped from the clock recovery stage, or perhaps the S-curve coming from those repeated symbols can be manipulated to make it better behaved.
S-curve noise reduction: a number of different schemas can be applied to reduce the noise from the S-curve. The most immediate is to average values from a number of periods. The tradeoff here is that the longer our averaging, the more delay is added and the longer it will take for the method to synchronize, should this method be used for clock acquisition. An extended approach presented in some later papers by the same authors considered the autocorrelation also at multiples of \(T\), taking in consideration that the sign flips at even multiples.
I’ll leave it here for now.
Leave a Comment