Frequency offset compensation in echo cancellation refers to when the sampling frequency of the far-end and near-end signals are not the same. This offset can destroy the performance of the echo cancellers because it will appear to the adaptive filter that the echo path is constantly moving. Standard adaptive algorithms cannot sufficiently handle this type of dynamic movement.
In acoustic echo cancellation (AEC), the source of the frequency offset is when the loudspeaker and microphone are not driven by the same piece of hardware. This is because maintaining same sampling frequency of the ADC and DAC cannot be guaranteed. The source of frequency offset in data-driven modem communications result when the modulation and demodulation of a signal is not consistent in the system. For example, a narrow-band signal is modulated up to higher frequencies for transmission, then, when it is received at the far-end, the signal is demodulated back to the narrow-band frequency. If the modulator and demodulator are not synchronized, a frequency offset results. For an echo canceller to be robust to this challenge, the system must be able to estimate this offset.
Although the offset in frequency may remain constant for the duration of the communication, it is not likely the offset will be the same between calls. Therefore, estimation will be required at startup. There are several approaches to handling this problem. One approach is to send pilot signals for calibration. Another method relies on the idea that the offset will introduce phase fluctuations into the far-end echo signal. By introducing a cross-coupled filter structure and a phase rotation into the filter update, the echo canceller will be able to handle the phase fluctuation better than standard echo cancellers.
A final approach is to incorporate an adaptive sampling rate conversion into the adaptive algorithm of the echo canceller. Let parameter β̂ represent an estimate of the required sampling rate conversion needed to achieve equal sampling frequencies of the near-end and far-end signals. To obtain β̂, one can use an approach similar to that of LMS.
In addition, to updating filter coefficients to minimize the mean square error, β̂ can be updated by the following equation:
β̂(n + 1) = β̂(n) + μe(n)d n)
- μ is the step-size of the gradient-based algorithm
- e(n) is the error signal
- d(n) is the excitation signal at time instance n.