-
Notifications
You must be signed in to change notification settings - Fork 44
ECMA 418 2 Hearing model implementation
The objective of this page is to discuss the implementation of the hearing model according to ECMA 418-2:2020
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.
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