Skip to content
MaBu19 edited this page Aug 15, 2018 · 19 revisions

Feedback is the portion of an emitted signal which is recorded by the microphones. It mainly depends on the acoustical paths from the loudspeaker to the microphone, i.e., on the physical connection between both. In other words, the sound waves that travel from the loudspeakers through the air and the enclosure of the headset to the microphones. If feedback-times-amplification exceeds 100% for any frequency (and certain phase conditions are met) the amplitude diverges which results in a loud and unpleasant howling tone. Hence, feedback limits the maximum amplification. Different strategies exist to mitigate the effect of feedback and allow increased maximum amplification.

Feedback in Roland CS-10EM Binaural Microphones/Earphones

The feedback with these devices seems to have a high degree of variation within a series. We observed that even the left and the right side can be very different. There is substantial feedback which severely limits the possible amplification at the moment.

Here are the measured feedback paths for three pairs of Roland CS-10EM earphones: Image You can see the impulse responses of both channels in the upper panel, and the corresponding frequency responses in the lower panel. The delay from playback to recording is about 4 ms. The feedback paths are very different for both channels and the different devices. Peak feedback amplitudes range from -20 to -40 dB and 1.5 kHz to 20.0 kHz.

One important factor to control feedback is the stability of the feedback path, e.g., when the earphones are re-positioned. Here are the measured feedback paths for one pair of Roland CS-10EM earphones which were re-positioned between the measurements: Image The feedback path in the important frequency range from 1.0 to 4.0 kHz is very stable for this device. The largest deviations are at levels below -40 dB and above 4.0 kHz.

Static feedback cancellation

If the feedback path is known, the portion of a given emitted signal that will arrive at the microphone can be estimated and subtracted from the recorded signal, which is called feedback cancellation.

A very simple implementation is to measure the average portion of the playback signal that is recorded by the microphone (feedback path) once, and then continuously subtract the expected portion due to feedback from the recorded signal. This approach is implemented since version 0.3 of the SD-card image, where the measurement is performed when booting the device. Since version 0.6 of the SD-card image the estimation of the feedback path is more robust. Less estimation artifacts should result in better compensation and allow higher gains.

Here are the measured feedback paths (in-situ, i.e., when wearing the earphones) before and after enabling the static feedback cancellation for a pair of Roland CS-10EM earphones which were re-positioned between the measurements: Image The feedback could be reduced by about 20 dB in the important frequency range from 1.0 to 4.0 kHz on both sides even when the earphones were re-positioned. Above 4.0 kHz, the reduction seems to be more dependent on the exact positioning and may not effective after re-positioning.

Measure and visualize the feedback path

A simple possibility to measure the feedback path is playing back a noise signal and simultaneously recording the signal from the microphones.

Since version 0.7 of the SD-card image, the script measure_feedback.sh does this job. After an initial measurement of the feedback path, the feedback cancellation is set up and started (similar to the start.sh script). But instead of starting the openMHA, the script subsequently repeats the measurement of the feedback path after cancellation (infinitely). The recordings are saved to /tmp/feedback*.wav

The data can be visualized using the tools/plot_feedback.sh script, which was also used (with very minor modifications) to generate the images above. It generates a plot which shows the estimated feedback paths in the time domain and the corresponding spectra for each side separately. By default, the first path (usually /tmp/feedback.wav) is plotted in black.

Here is an example: Image The black part of the waveform is considered for feedback cancellation (here 3 ms).

If there are further feedback recordings (usually /tmp/feedback_*.wav) these are plotted on top in red like in the images obove.

Clone this wiki locally