apollon.signal.tools module

apollon/signal/tools.py

Licensed under the terms of the BSD-3-Clause license. Copyright (C) 2019 Michael Blaß mblass@posteo.net

Functions:

acf Normalized autocorrelation. acf_pearson Normalized Pearson acf. corr_coef_pearson Correlation coefficient after Pearson. c_weighting C-weighting for SPL. freq2mel Transform frequency to mel. limit Limit dynamic range. mel2freq Transform mel to frequency. frq2bark Transform frequency to Bark scale. maxamp Maximal amplitude of signal. minamp Minimal amplitude of signal. normalize Scale data betwee -1.0 and 1.0. noise Generate white noise. sinusoid Generate sinusoidal signal. zero_padding Append array with zeros. trim_spectrogram Trim spectrogram to a frequency range.

apollon.signal.tools.acf(inp: numpy.ndarray)numpy.ndarray

Normalized estimate of the autocorrelation function of inp by means of cross correlation.

Parameters

inp – One-dimensional input array.

Returns

Autocorrelation function for all positive lags.

apollon.signal.tools.acf_pearson(inp_sig)

Normalized estimate of the autocorrelation function of inp_sig by means of pearson correlation coefficient.

apollon.signal.tools.amp(spl: Union[numpy.ndarray, int, float], ref: float = 2e-05)Union[numpy.ndarray, float]

Computes amplitudes form sound pressure level.

The reference pressure defaults to the human hearing treshold of 20 μPa.

Parameters

spl – Sound pressure level.

Returns

DFT magnituds.

apollon.signal.tools.c_weighting(frqs: numpy.ndarray)numpy.ndarray

C-weighhting for SPL.

Parameters

frq – Frequencies.

Returns

Weight for DFT bin with center frequency frq.

apollon.signal.tools.corr_coef_pearson(x_sig: numpy.ndarray, y_sig: numpy.ndarray)float

Fast perason correlation coefficient.

apollon.signal.tools.freq2mel(frqs)

Transforms Hz to Mel-Frequencies.

Params:

frqs: Frequency in Hz.

Returns

Frequency transformed to Mel scale.

apollon.signal.tools.limit(inp: numpy.ndarray, ldb: Optional[float] = None, udb: Optional[float] = None)numpy.ndarray

Limit the dynamic range of inp to [ldb, udb].

Boundaries are given in dB SPL.

Parameters
  • inp – DFT bin magnitudes.

  • ldb – Lower clip boundary in deci Bel.

  • udb – Upper clip boundary in deci Bel.

Returns

Copy of inp with values clipped.

apollon.signal.tools.maxamp(sig)

Maximal absolute elongation within the signal.

Params:

sig (array-like) Input signal.

Returns

(scalar) Maximal amplitude.

apollon.signal.tools.mel2freq(zfrq)

Transforms Mel-Frequencies to Hzfrq.

Parameters

zfrq – Mel-Frequency.

Returns

Frequency in Hz.

apollon.signal.tools.minamp(sig)

Minimal absolute elongation within the signal.

Params

sig (array-like) Input signal.

Returns

(scalar) Maximal amplitude.

apollon.signal.tools.noise(level, n=9000)

Generate withe noise.

Params:

level (float) Noise level as standard deviation of a gaussian. n (int) Length of noise signal in samples.

Returns

(ndarray) White noise signal.

apollon.signal.tools.normalize(sig)

Normlize a signal to [-1.0, 1.0].

Params:

sig (np.nadarray) Signal to normalize.

Returns

(np.ndarray) Normalized signal.

apollon.signal.tools.sinusoid(frqs: Union[Sequence, numpy.ndarray, int, float], amps: Union[Sequence, numpy.ndarray, int, float] = 1, fps: int = 9000, length: float = 1.0, noise: Optional[float] = None, comps: bool = False)numpy.ndarray

Generate sinusoidal signal.

Parameters
  • frqs – Component frequencies.

  • amps – Amplitude of each component in frqs. If amps is an integer, each component of frqs is scaled according to amps. If amps iis an iterable each frequency is scaled by the respective amplitude.

  • fps – Sample rate.

  • length – Length of signal in seconds.

  • noise – Add gaussian noise with standard deviation noise to each sinusodial component.

  • comps – If True, return the components of the signal, else return the sum.

Returns

Array of signals.

apollon.signal.tools.zero_padding(sig: numpy.ndarray, n_pad: int, dtype: Optional[Union[str, numpy.dtype]] = None)numpy.ndarray

Append n zeros to signal. sig must be 1D array.

Parameters
  • sig – Array to be padded.

  • n_pad – Number of zeros to be appended.

Returns

Zero-padded input signal.