-
Notifications
You must be signed in to change notification settings - Fork 33
Calibration
The goal of calibrating the setup is to achieve an agreement between physical values and internal values of sound pressure level (SPL). In other words, if the current sound pressure is, e.g., 70 dB SPL, the internal measure of the sound pressure should be 70 dB SPL as well; and for the output vice versa. False calibration can be harmful, since the device may generate very high sound pressures if the internal levels are estimated too low.
The preset values have been adjusted (since version 0.5 of the SD-card image) based on measurements with professional equipment with one representative prototype and should work fine for the described hardware with correct settings. Only change these if you know what you are doing and/or the settings do not work as expected. You can, however, use the described methods to check the calibration of your setup. We used the methods described at the bottom of this page.
In openMHA this is achieved by setting the values of mha.calib_in.peaklevel
and mha.calib_out.peaklevel
.
You can read out the current internal levels with the Octave-based openMHA GUI using the "levels" tool. There, it can help to select the 2 second averaging.
There are several ways of calibrating the device:
(See also bottom of Detailed quick start)
Configure the hearing aid prototype with the "nogain" fitting (using the openMHA GUI).
Ask someone to talk normally and continously in a quiet environment and read out the internal levels at a distance of 1 meter.
To "calibrate" the input, configure mha.calib_in.peaklevel
such that the internal value is about 65 dB in that situation.
Then, find a noisy environment with a constant level, e.g., switch on a hair dryer, microwave oven, or vacuum cleaner.
To calibrate the output, configure mha.calib_out.peaklevel
such that the perceived loudness is similar when hearing with the hearing aid prototype and without it.
These are the steps required for calibrating the microphone of the prototype, i.e. it makes sure that the internal levels are equal the physical sound pressure. An input filter inverting the mean frequency response of the prototypes' microphones is indcluded in the distribution (mha.calib_in.fir
) and compensates for most frequency-dependent variations ( see also Inversionfilters ).
- Place the microphone of the prototype close to a calibrated microphone or level meter, ideally avoiding larger objects nearby. Set the level meter to Z-weighting, if not available use C instead of A-weighting, and a long averaging time.
- Activate a sound source with constant level (e.g., connect your phone to a loudspeaker and generate noise using an appropriate app)
- Read out the current internal levels with the Octave-based openMHA GUI using the "levels" tool and adjust
mha.calib_in.peaklevel
such that the internal level and the level displayed by the level meter is equal (Add the difference between the level meeter and internal reading tomha.calib_in.peaklevel
).
These steps adjust the output level calibration to make sure that the internal levels generate appropriate sound pressure levels at the eardrum. Here, it is not desired that the internal level is created at the eardrum for every frequency, but the frequency-dependent response of the headphone should resemble the amplification that the ear canal would provide if the ears were open. The output filter mha.calib_out.fir
is designed to this aim ( Inversionfilters ). To adjust the broadband level, perform the following steps.
- Couple the headphone to a calibrated ear simulator (best IEC711, for the coupling we used anthropometric pinnae, GRAS KB5000).
- Create and playback bandpass noise around 1kHz from the prototype. To do so, you can connect the Jack server to MHA (see
tools/playwavfile.m
andtools/record_feedback.sh
for an example). - For a bandpass noise around 1 kHz, the sound pressure at the ear simulator should equal the internal level in MHA. Adjust
mha.calib_out.peaklevel
accordingly - to increase the output level, decrease the value.