# "Perfect waveform" for cross-correlations?

I am well versed in cross-correlations, as my masters thesis heavily relied on them for music classification and beat detection. So this question focuses more on the signals that I am running an xcorr on as opposed to the actual cross correlation process.

Here is a simplified version of my setup:
Suppose I have the original signal, which I time shift the signal (add a delay), and add noise/distort the signal. Then I run a cross-correlation on the two signals to find this time delay and get some value of R.

Is there some formulation to come up with a signal that will reduce ambiguity errors and optimize my value of R?
I know it will be some non-repeating, pseudo-random signal, but is there a formal formulation for this? Or should I be looking at other techniques?

Perhaps something like this would be perfect: http://tedxtalks.ted.com/video/TEDxMIAMI-Scott-Rickard-The-Wor. You see any issues with this?

I'm not talking about cross correlation processing techniques to improve the performance. I'm strictly talking about the shape of the waveform

In general, the resolution of the cross correlation is proportional to the bandwidth of the signal. This is way pseudo-random signals are common for that purpose.
So if you are looking for a signal that will produce sharp and distinct cross-correlation, you should use such signals.

However, if you are looking to improve the time-delay estimation for a given signal, you should pre-filter the signal with high-pass filter as the lower frequencies tend to produce more smooth cross correlation.

• The Cramer-Rao bound for the error in TDOA estimation in an AWGN environment is described in "Algorithms for Ambiguity Function Processing" by Stein. As ThP noted, the standard deviation of your TDOA estimate is inversely proportional to the signal bandwidth. Nov 13, 2014 at 18:05
• Thanks for the response. I said in the original question that I knew the signal would be pseudo-random, but I was looking for a formulation of some sort. I'm not just going to go into matlab, ask for a pseudo-random array and go with the first thing they give. Also, in terms of pre-processing, I'm obviously going to be doing that. That's why I specifically wrote that I was not asking about that in the question. Nov 13, 2014 at 18:08

Finally, I found the answer I was looking for! A whole host of sequences have been analyzed and discussed in terms of their auto- and cross-correlation properties in the following thesis.

Here are the possible candidates. I will have to research them further, but I will surely go with one of these:

M-Sequences
Gold Sequences
Chaos-Based Sequences
Kasami Sequences
OVSF Sequences
De Bruijn Sequences


The author advocates De Bruijn Sequences, but I believe my case is mmost suited towards an M-Sequence.