Skip to content

baglab.signal

baglab.signal

Signal processing utilities for time-series data.

diff(x, t)

Numerical differentiation using finite differences.

Uses forward difference for interior points and backward difference for the last point. The first element is NaN because there is no preceding sample.

Parameters

x : pd.Series Signal values. t : pd.Series Time in seconds (same length as x).

Returns

pd.Series dx/dt, same length as x. First element is NaN.

integrate(x, t)

Cumulative trapezoidal integration.

Parameters

x : pd.Series Signal values. t : pd.Series Time in seconds (same length as x).

Returns

pd.Series Cumulative integral. First element is 0.0.

lowpass(x, cutoff, fs, order=4)

Apply a zero-phase Butterworth lowpass filter.

Parameters

x : pd.Series | np.ndarray Input signal. cutoff : float Cutoff frequency in Hz. fs : float Sampling frequency in Hz. order : int, optional Filter order (default 4).

Returns

pd.Series | np.ndarray Filtered signal, same type as x.

fft(x, fs)

Compute the single-sided FFT magnitude spectrum.

Parameters

x : pd.Series | np.ndarray Input signal. fs : float Sampling frequency in Hz.

Returns

freq : np.ndarray Positive frequency bins in Hz. amplitude : np.ndarray Magnitude spectrum (absolute value, normalised by N).

moving_average(x, window)

Centered moving average filter.

Parameters

x : pd.Series Input signal. window : int Number of points in the averaging window.

Returns

pd.Series Smoothed signal with NaN at edges where the full window is not available (centered).