Skip to content

ECMA 418 2 Hearing model implementation

Martin Glesser edited this page Nov 23, 2021 · 7 revisions

The objective of this page is to discuss the implementation of the hearing model according to ECMA 418-2:2020

Ear filtering

Outer and middle/inner ear filtering is described in section 5.1.2 of the standard. In the figure below the frequency response of the filter implemented in MOSQITO (blue curve) is compared with the one of frequency response from the Figure 3 of the standard (orange curve). To check the application of the filter, some sine wave signals at various frequencies are filtered the difference between the amplitude of the original and the filtered signals is plotted in green dot.

The figure above can be obtained by running the script: hearing_model_validation.

Auditory filters

The implementation of the auditory filter bank is discussed in section 5.1.3 of the standard. In the figure below, different steps of the implementation of the filter for the critical band 18 (with centre frequency around 1027 Hz) are shown.

In blue is the frequency response of the low-pass filter obtained with the real-valued coefficients of Formula (11) and (12) of the standard.

In orange is the frequency response of the filter obtained with the coefficients of Formula (13) and (14) of the standard (obtained by multiplying the previous coeeficient by a compex exponential exp(-j...) ). According to the standard, this filter is supposed to be band-pass. However, if the coefficient are calculated by multiplying the previous coefficient by a complex exponential exp(+j...), the band-pass filter in green is obtained.

This last filter is pretty similar to the corresponding gammatone filter from the scipy.signal library.

The figures above can be obtained by running the script: valid_gammatone.

The filter coefficients obtained from MOSQITO implementation for the critical band 18 (with centre frequency around 1027 Hz) are given in the table below.

Coeff am & bm a'm & b'm with exp(+j...)
a0 1 1
a1 -4.8608 -4.8170 - 6.5151e-01j
a2 9.4510 9.1114 + 2.5106j
a3 -9.1879 -8.4507 - 3.6059j
a4 4.4661 3.8358 + 2.2875j
a5 -8.6835e-01 -6.7945e-01 - 5.4072e-01j
b0 0 0
b1 7.2649e-10 7.1993e-10 + 9.7373e-11j
b2 7.7689e-09 7.4898e-09 + 2.0638e-09j
b3 7.5527e-09 6.9467e-09 + 2.9642e-09j
b4 6.6749e-10 5.7328e-10 + 3.4189E-10j

Objective for the auditory filter implementation validation:

  • Get the confirmation that there is an error in the standard
  • Obtain the filter coefficient for the filter above from a valid implementation
Clone this wiki locally