ANC Simulink Model Error

Hi all,
I'm trying to adapt the ANC example from MathWorks (https://www.mathworks.com/videos/active-noise-control-from-modeling-to-real-time-prototyping-1561451814853.html) but using National Instrument DAQs instead of the speedgoat one. here is my modified model:
i keep getting an error at the path estimation boxes:
saying that there's a mistmatch. I see that there's a mismatch, but the "51200x1" error mic signal is coming directly from the NI DAQmx input from a microphone, and I cannot make the block sizes less than 83.... is there a way I can fix this?
thank you!

2 Comments

Jay
Jay on 26 Jun 2024
Does anyone have the sample file of "Speedgoat_FXLMS_ANC_model.slx"?
I'm not sure if you mean the SLX:
openExample('audio/ActiveNoiseControlWithSimulinkExample')
Or the optional "noise" file (washing machine), which you could generate using one of the washing machine recordings in toolbox\audio\samples

Sign in to comment.

Answers (1)

Jimmy Lapierre
Jimmy Lapierre on 2 Mar 2020

0 votes

Hi Olivia, it sounds like your device is incapable of ultra-low latency operation. Unless the noise to cancel is steady-state and exclusively tonal, the total latency time of the system has to be faster than the speed of sound between the error microphone and the loudspeaker.
The example here uses the Speedgoat since its latency can be as low as approximately 2 samples. If you intend to develop ANC for something physically small like headphones, you will need that ultra-low latency (and probably increase the sample rate of the model to further reduce latency).
So you could add buffering to the error microphone in the model to make it execute, but the ANC performance will be severly limited if the latency is too long.

4 Comments

My sample rate is currently set to 51200, and I’m not trying to implement ANC as a headset but more for a rook using an array of microphones, but I will try the buffer and see what happens
I tried to buffer just the error mic, but one of the LMS filters still gave an error, so I tried to buffer both mics but i get this error "The block 'FxLMS_ANC_test/Buffer' of type 'Buffer' is a multi-rate block. Currently Simulink supports only single-rate blocks of this type when the model is configured for concurrent execution."
Have you tried to uncheck "allow tasks to execute concurrently on target" in Configuration, Solver, down in the Tasking section?
yes, and now it gives me this error:

Sign in to comment.

Categories

Find more on Audio Processing Algorithm Design in Help Center and File Exchange

Asked:

on 2 Mar 2020

Commented:

on 26 Jun 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!