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

DSP noise suppression and AEC

SigmaDSP & SigmaStudio Lah Feb 13, 2025 00:00 2 replies Original on forum ↗
Thread Summary

Thread Summary

The user is seeking a cost-effective codec with 2 ADCs and 2 DACs for noise suppression and AEC. The ADAU1787, while suitable for ANC with its low power and small size, lacks pre-built AEC and NLMS algorithms. The ADAU1452/1467 family, with the Sigma300 core, supports AEC and block processing, making them better suited for AEC applications. The user's application involves local ANC in a free-field space to cancel noise from a gas burner, with a peak at 300Hz, and a maximum microphone distance of 10-20cm. Using Biquad filters on the ADAU1787 might be sufficient, but the ADAU1452/1467 with FxLMS is recommended for more robust AEC.
AI Generated Content
Subscribe
Lah Question
Feb 13, 2025 00:00

Hello,
We are looking for a cost-effective codec that includes at least 2 ADCs and 2 DACs, with a DSP capable of noise suppression and AEC.

We started testing with the ADAU1787 evaluation board, although we have noticed that it does not support a pre-built AEC algorithm.

Our questions are: Is this codec suitable for our purpose?

Is it possible to implement ANC and AEC with this chip?

Are there any other codecs better suited for AEC?

Would it be better to use a DSP like the ADAU1452 or ADAU1466 with a separate codec, as they include an AEC library?

How is licensing managed for the AEC algorithm ?

We appreciate your guidance in helping us identify the optimal solution.

Audio Signal Processors

hardware

ADAU1787

Integrated/Special Purpose A/D Converters

sigmastudio

SigmaDSP Audio Processors

aec

Audio CODECs

Show More

DaveThib Reply
Feb 13, 2025 00:00

Hello Lah

You are asking some great questions but the answers can be a bit difficult because there are tradeoffs with different approaches and parts choices. Typical design work! So some of this will depend on what are "no-go" or "must-have" for your specific application.

I will list off a few details for you and others who may read this but, we may have to take this off-line to get into more specifics.

The ADAU1787 was designed for ANC headphones.

The part is very low power so it can run off of batteries.

It is very small so it can fit into headphones. This can be great if you need something really small.

The size is bad if you are looking to minimize PCB build costs because it is in a 3.5mm spacing ball-grid array package. This means you most likely will need vias in pads so all this increases PCB costs and some PCB houses will not build it for you. Too difficult.

It has four ADCs each with a PGA if needed.

It has two DACs each with a headphone amp output if needed.

It has two serial ports for interfacing with other parts like system controllers or even with ARM cores if you like.

It has plenty of sample rate converters to go between the serial ports the signal flows inside the part. These are asynchronous types.

There are several channels of synchronous sample rate converters to go between cores internally.

It is capable of self-booting off of an EEPROM.

There are two DSP cores, a FastDSP and a SigmaDSP.

The SigmaDSP is a Sigma200 core that can run up to 50MHz. (50 MIPS)

The Fast DSP core is what I call a "filter engine". It executes 64 filters per sample period. So it is limited as to what it can do but there are a few extensions which allow it to do things like limiters. However, it is capable of running up to 768kHz sampling rate!!

The idea with this part is that you route the audio from the ADC directly to the FastDSP and then from the Fast DSP directly to the DACs giving you a really low latency that can be as low as 5us in this mode with the fastest sample rate.

Then you also take the audio before and after the Fast DSP and send it to the SigmaDSP where you do some analysis of how good the cancellation is and then modify the filters running in the FastDSP core to adapt. Those processes are slower so the SigmaDSP core is good for that and other things can be done like controlling a volume control and GPIO.

The bad things is that the Sigma200 core running at 50MIPS is a little limiting in what you can do. This is why the FxLMS and AEC algorithms are not able to be ported over. You would have to implement these using the Biquad filters which are IIR filters that are used for ANC. This core cannot do block processing so doing FFTs and other time domain to frequency domain things is not possible.

The ADAU1452 and ADAU1467 family of parts are much more capable DSP cores. These parts have the same basic core (Sigma300 Core) with some differences around the cores. They both can do block processing which is why they can run the AEC algorithm.

Licensing depends on volume of sales is my understanding. So it is somewhat of a flexible model and I would have to get you in touch with the licensing folks in the company to get the details.

So the Sigma300 core is fairly fast. It takes around 5 to 7 samples to get audio into the part, through the core and out of the part. The difference depends on the serial port settings.

Then you need to have converters. Some of our older converters were not optimized for low latency so they really are not suitable. We have some low latency codecs like the ADAU1372. But it is still not super low latency. The DSP serial port can run up to 192kHz fs but the core could run faster. This limits the latency. If you are doing things like getting rid of noise in a duct then you could space out the mics such that you can process the cancellation signal in time.

If the echo you are trying to cancel is somewhat fixed, like a mic and speaker locations then that would help to allow the ADAU1452 to be used.

Sorry for the long winded and in some ways not direct answers but as you see, it will depend on your application.

Dave T

Viliam24 Reply
May 3, 2025 00:00

Hi,

So does that mean the Adau 1787 could be used as semi FxLMS? I am don't have to much space in my application to put the microphone in a distance. Maximum would be 10-20cm which is still far less than 1ms.

I am trying to do the local ANC in a almost perfect free field space (in air) to cancel the gas burner. The noise has peak at around 300Hz. Since adau 1787 is really fast I thought it might be the best options as it could be run on batteries and that is what I want - a modular system with DSP and subwoofer.

However, NLMS might not be powerful enough. Do you think that using Biquad filters to work around is going to be sufficient? Or still using slower adau1467 is better option as it has FxLMS? The topology would be most likely feedforward.

Viliam