SDOct 22, 2021
Signal-Envelope: A C++ library with Python bindings for temporal envelope estimationCarlos Tarjano, Valdecy Pereira
Signals can be interpreted as composed of a rapidly varying component modulated by a slower varying envelope. Identifying this envelope is an essential operation in signal processing, with applications in areas ranging from seismology to medicine. Conventional envelope detection approaches based on classic methods tend to lack generality, however, and need to be tailored to each specific application in order to yield reasonable results. Taking inspiration from geometric concepts, most notably the theory of alpha-shapes, we introduce a general-purpose library to efficiently extract the envelope of arbitrary signals.
SDSep 7, 2020
Digital Envelope Estimation Via Geometric Properties of an Arbitrary Real SignalCarlos Tarjano, Valdecy Pereira
Envelope detection techniques have applications in areas like medicine, sound classification and synthesis, seismology and speech recognition. Nevertheless, a general approach to digital envelope detection of signals with rich spectral content doesn't exist, as most methods involve manual intervention, in the form of filter design, smoothing, and other specific design choices, based on prior knowledge of the signals under investigation. To address this problem, we propose an algorithm that uses intrinsic characteristics of a signal to estimate its envelope, eliminating the necessity of parameter tuning. The approach here described draws inspiration from geometric concepts to estimate the temporal envelope of an arbitrary signal; specifically, a new measure of discrete curvature is used to obtain the average radius of curvature of a discrete wave, that will serve as a threshold to identify the waves samples that are part of the envelope. The algorithm compares favourably with classic envelope detection techniques based on smoothing, filtering and the Hilbert Transform, besides being physically plausible. We provide visualizations of the envelope extracted via the algorithm for various real-world signals, with very diverse characteristics, such as voice, spoken and sang, and pitched and non-pitched musical instruments, and discuss some approaches to assess the quality of the obtained envelopes. A Python module implementing the algorithm was made available via the Python Package Index; interactive visualizations of envelopes for a diverse range of digital waves, as well as the source code for the Python implementation, are available online.