spectrum2dBA#

spectrum2dBA(spectrum, fs)[source]#

A_weighting dB ponderation

This function does the dBA weighting of a spectrum according to CEI 61672:2014.

Parameters:
  • spectrum (array_like) – Input spectrum in [dB].

  • fs (integer) – Sampling frequency in [Hz].

Returns:

spectrum_dba – dBA spectrum.

Return type:

array_like

Notes

Third-octave spectrum are directly calculated, other are calculated using linear interpolation.

See also

noct_spectrum

N-th octave band spectrum computation from a time signal

Examples

>>> from mosqito.sound_level_meter import noct_synthesis
>>> from mosqito.utils import amp2db
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> f=1000
>>> fs=48000
>>> d=0.2
>>> dB=60
>>> time = np.arange(0, d, 1/fs)
>>> stimulus = np.sin(2 * np.pi * f * time) + 0.5 * np.sin(6 * np.pi * f * time)
>>> rms = np.sqrt(np.mean(np.power(stimulus, 2)))
>>> ampl = 0.00002 * np.power(10, dB / 20) / rms
>>> stimulus = stimulus * ampl
>>> n = len(stimulus)
>>> spec = np.abs(2/np.sqrt(2)/n*np.fft.fft(stimulus)[:n//2])
>>> freqs = np.linspace(0, fs//2,n//2)
>>> spec_3, freq_axis = noct_synthesis(spec, freqs, fmin=90, fmax=14000)
>>> spec_3db = amp2db(spec_3, ref=2e-5)
>>> plt.step(freq_axis, spec_3db)
>>> plt.ylim(0,60)
>>> plt.xlabel("Center frequency [Hz]")
>>> plt.ylabel("Amplitude [dB]")

(Source code, png, hires.png, pdf)

../../_images/mosqito-utils-conversion-spectrum2dBA-1.png