Easy zero crossing detection in Python using UliEngineering
In order to perform zero crossing detection in NumPy arrays you can use the UliEngineering library which provides an easy-to-use zero_crossings
function:
How to install UliEngineering
UliEngineering is a Python 3 only library. Install using pip
:
sudo pip3 install -U UliEngineering
Usage example:
from UliEngineering.SignalProcessing.Utils import zero_crossings
# To generate test data
from UliEngineering.SignalProcessing.Simulation import sine_wave
# Generate test data: 10 Hz 10ksps, 1 second (= 1D 10000 values NumPy array)
data = sine_wave(frequency=10.0, samplerate=10e3)
# Prints: [0, 500, 1000, 1500, ...]
print(zero_crossings(data))
Thanks to Jim Brissom on StackOverflow for the original solution!