2
$\begingroup$

I'm trying to implement the NLMS algorithm on an FPGA. The problem is that I'm only allowed to use a maximum number of 2048 coefficients for my FIR filter, my sampling rate is 16KHz, however, the room impulse response sampled at 16KHz can be 10 times longer than 2048, is there any way to decrease the number of taps to remove long echos with only 2048 taps? I'm new to FIR subject, I know that my FIR filter IP allows decimation, interpolation, and can have different sampling rate than the input, can I exploit this to decrease the number of taps? I can also compress room impulse response and round many samples that are close to zero and make them zero but can this help to reduce the number of coefficients?

$\endgroup$
2
$\begingroup$

The only data on the environment where your setup is operating is given in the phrase "the room impulse response sampled at 16KHz can be 10 times longer than 2048". These 20480 samples cover a time interval of 1280 ms. I wonder what the room it is, because in the article "Adaptive algorithms for sparse echo cancellation" I read: "The length of the acoustic echo response in a typical teleconferencing room is in the region of 100 to 400 ms". The good news for you is in the phrase continuation: " and hence adaptive filters employing 1024 taps or more are typically required in order to achieve adequate levels of echo cancellation". Therefore, using the techniques described in the ref., with your 2048-tap filter you will be able to cancel echo in the region of up to 800 ms, not far from claimed 1280 ms.

I recommend you first to make sure that your estimation (and understanding) of the room impulse response parameter is correct. If the task specs are more optimistic, you have the ready solution among the adaptive algorithms of the article "Adaptive algorithms for sparse echo cancellation". If the task specs are tougher, your best bet is to use further developments of adaptive filter algorithms, as a nonparametric variable step-size PNLMS algorithm (NPVSS-NLMS) and a sparseness-controlled affine projection algorithm (PAPA).

Being a novice in the subject, you may benefit from learning of a first-entry approach to a sparse array-based room transfer function estimation for echo cancellation.

$\endgroup$
1
  • $\begingroup$ I kindly want to thank you for your detailed answer; I was aiming for echo cancellation in environments like caves and bridges for worst-case where echo length is long; though it was not the main objective; I was curious that if it was possible to eliminate such long echos using an average fpga device. $\endgroup$ – Filthy Man Aug 13 '20 at 14:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.