EnvelopeCorrelation¶
Introduction¶
Envelope Correlation is a distance metric that compares the amplitude envelopes of two signals to evaluate their similarity. This method is particularly useful when analyzing signals where amplitude modulation is a key feature, such as in audio or physiological signals.
Sense of the Distance¶
Envelope Correlation assesses the global similarity between two signals by comparing their amplitude envelopes, capturing the overall energy variation over time. A higher correlation indicates greater similarity between the envelopes, while a lower correlation suggests greater divergence.
Formal Representation¶
The Envelope Correlation between two signals ( x(t) ) and ( y(t) ) can be defined as: [ C_{env}(x, y) = frac{sum_{t} (E_x(t) - bar{E_x})(E_y(t) - bar{E_y})}{sqrt{sum_{t} (E_x(t) - bar{E_x})^2} sqrt{sum_{t} (E_y(t) - bar{E_y})^2}} ] where ( E_x(t) ) and ( E_y(t) ) are the amplitude envelopes of ( x(t) ) and ( y(t) ), and ( bar{E_x} ) and ( bar{E_y} ) are their respective means.
from distancia import EnvelopeCorrelation
# Example usage:
signal1: List[float] = [0.1 * math.sin(2 * math.pi * 440 * t / 16000) for t in range(16000)]
signal2: List[float] = [0.1 * math.sin(2 * math.pi * 445 * t / 16000) for t in range(16000)] # Slightly different frequency
envelope_correlation_calculator = EnvelopeCorrelation()
correlation_value: float = envelope_correlation_calculator.compute(signal1, signal2)
print("Envelope Correlation:", correlation_value)
>>>Envelope Correlation: 0.0006076026733088895
Academic Reference¶
Cohen[1]
Conclusion¶
The EnvelopeCorrelation class provides a tool for comparing the amplitude envelopes of signals, making it an important metric in fields like audio analysis and biomedical signal processing.