Return a zero-mean, unit-RMS copy of a signal (empty stays empty).
(signal)
| 65 | |
| 66 | |
| 67 | def _normalize(signal): |
| 68 | """Return a zero-mean, unit-RMS copy of a signal (empty stays empty).""" |
| 69 | if signal.size == 0: |
| 70 | return signal |
| 71 | |
| 72 | centered = signal - signal.mean() |
| 73 | rms = np.sqrt(np.mean(centered * centered)) |
| 74 | if rms <= 0.0: |
| 75 | return centered |
| 76 | |
| 77 | return centered / rms |
| 78 | |
| 79 | |
| 80 | def _best_lag(a, b): |