We are trying to implement Active Noise Cancelling into a pair of standard headphones using the MFxLMS block in Sigma Studio using an EVAL-ADAU1452RevBZ. We are currently trying to cancel frequencies between 100hz-800hz. We followed the guide that is listed on the filters page here (https://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/filters/mfxlms). We performed the secondary path training by placing the error microphone inside the cup of the headphones and obtained the filter coefficients as seen in the picture below. We have a reference microphone to pick up outside noise on the outside, but it is not currently being used.
After obtaining the secondary path coefficients, we switched the MFxLMS block to runtime mode but we get little to no anti-noise coming out of the output. Below is our schematic design. We are currently trying to cancel out a 300Hz sine tone. Our project sampling rate is 48KHz such as the example and our microphone input and reference tone are being down sampled to 2KHz (the sampling rate the module is listed to operate at). Anti-aliasing filters are included (although we are not positive if they are correct). The anti-noise is then up sampled and interpolated back up to 48KHz and outputted.
We have the following questions after attempting to implement this ourselves:
1. When doing the secondary path training, it states in the documentation that the reference and error microphone should be muted. We found that when the error microphone was muted, the coefficients would stay at 0. When we unmute it, we get coefficients that are all negative in the magnitude of -0.0001. Should we leave the mic unmuted when training the secondary path coefficients? If that is incorrect and we should leave the microphone muted, why are we getting all 0 coefficients?
2. What should be our expected output at the anti-noise output when the reference signal is a 300Hz sine tone? Should we expect an inverse 300Hz sine tone? Or should we expect to hear silence since the anti-noise is canceling the reference out?
3. In the documentation page of the MFxLMS filter, the downsampler and upsampler had built in anti-aliasing filters. In Sigma Studio version 4.7, these have been removed. We added these back since it appears they are being used in the example on the documentation page. Are the implementation of these LPFs correct?
3. Any other suggestions on what we should do to get the project working.
We have linked the project file below as well for investigation.
Thanks,
Adries