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 个评论

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

请先登录,再进行评论。

回答(1 个)

Jimmy Lapierre
Jimmy Lapierre 2020-3-2

0 个投票

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 个评论

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:

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Audio Processing Algorithm Design 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by