title: Comparing multiple signals for similarity
body: <p>I have multiple (between 2 and 100) signals and need to determine when a significant number diverge from the rest. We're exploring machine learning techniques, but we also want tackle this as a signal processing problem and see where we get the best results. </p>
  
  <p><a href="https://stackoverflow.com/questions/20644599/similarity-between-two-signals-looking-for-simple-measure">This very informative post</a> suggests that best results come from a weighted ensemble of techniques, including:</p>
  
  <ul>
  <li>Similarity in time domain (static): Multiply in place and sum.</li>
  <li>Similarity in time domain (with shift*): Take FFT of each signal, multiply, and IFFT. (matlab's xcorr)</li>
  <li>Similarity in frequency domain (static**): Take FFT of each signal, multiply, and sum.</li>
  <li>Similarity in frequency domain (with shift*): Multiply the two signals and take FFT. This will show if the signals share similar spectral shapes.</li>
  <li>Similarity in energy (or power if different lengths)</li>
  </ul>
  
  <p>But this is a fairly high-level outline. Can anyone point me to a more thorough discussion of these techniques, preferably with some <strong>python</strong> code or in lieu of that, some code in R?</p>