ΣSigmaStudio Ask AI Русский Log in

How to setup and train the Modified FxLMS filter

SigmaDSP & SigmaStudio rjacobs Aug 16, 2018 00:00 1 replies Original on forum ↗
Subscribe
rjacobs Question
Aug 16, 2018 00:00

It looks like the Modified FxLMS filter offers many enhancements over the normal FxLMS filter for ANC applications. It appears to consider multiple secondary paths and has some internal calculation tools for the secondly path coefficients, etc. However, there are a couple of points from the documentation that are not totally clear, and I was hoping someone could shed some light on things.

First, for the training mode the documentation suggests muting the reference and error inputs. While in training mode I get a white noise sound coming out of the cancellation loudspeaker, but with the other inputs muted what feedback signal is being used to calculate (train) the secondary path coefficients? I thought that the purpose of the training was to observe a known noise signal generated at the cancellation speaker via the reference and error mics in order to calculate secondary path filter coefficients. It's very possible I'm missing something obvious with that.

Second, the documentation suggests down-sampling the inputs for the filter and the up-sampling the outputs. Why is this? I assume this particular LMS filter is simply more effective at lower sampling rates, but if so why not lower the sampling rate for the whole project?

This is in reference to the ADAU1467 chip.

Thank you!

Audio Signal Processors

adaptive filtering

adau1467

SigmaDSP Audio Processors

dsp filter

lms

Show More

kbug Reply
Aug 30, 2018 00:00

You are right about muting error signal. If you want to obtain secondary path coefficients that is a model of Secondary path between ANC speaker and error mic the signal from error mic can't be muted as you will not be able to get the coefficients for the S(z) filter.

For multirate processing it's advisable to use high sampling frequency to decrease system delay while sampling analog signal and run the algorithm at lower rate as you want to have good frequency resolution - if you're using 256 taps you'll get frequency resolution fs/N = 2000/256 = 7.856 Hz

Take care