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

ADAU1772 - Active Noise Reduction?

SigmaDSP & SigmaStudio freemanc Jan 14, 2014 00:00 8 replies Original on forum ↗
Subscribe
freemanc Question
Jan 14, 2014 00:00

Hi Guys,

I've had to ditch the use of the ADAU1701 for my application. Too many issues getting it working and also it appears that the latency from the ADC to DAC will be too large for what I need as the application is Active Noise Reduction for headphones. The reason for me picking it in the first place was the large amount of DSP blocks it supports in Sigma Studio as I was going to implement a FIR filter that compensates for the amplitude and phase response of the microphone/speaker. I've done this in the analog domain before, where a microphone in the headset cavity measures incoming noise, applies a filter to the signal and then drives a speaker to provide a 180' phase shift in the sound. However, doing this in the analog domain is a nightmare and for this particular design I decided to go the DSP route as arbitrary filters can be created.

However, it is proving to have its own can of worms. The next best device seems the ADAU1772 as it has extremely low latency and seems more geared for microphone/speaker driving than the ADAU1701, however, I see it supports very few of the functions in Sigma Studio that the ADAU1701 did. No FIR filters, no IIR filters, no delays even. I see on the datasheet it is supposed to be designed for Active Noise Reduction in mind, but I cannot see from the building blocks provided, how on earth this could be implemented?

Any help would be appreciated!

Kind regards

Charles

Audio Signal Processors

adau1772

Integrated/Special Purpose A/D Converters

noise

SigmaDSP Audio Processors

active

Audio CODECs

adau1701

reduction

Show More

ADIApproved Reply
Jan 14, 2014 00:00

Hi Charles,

The ADAU1772 is not a DSP in the same sense as the ADAU1701 or other SigmaDSPs. The ADAU1772 has a small filter engine that allows up to 31 IIR filters to be executed in the span of a single sample. There are also very basic functions like phase inversion (pass the signal through an allpass filter with a linear gain of -1), addition and subtraction.

Most active noise cancellation applications are simply filters and small delays on the order of a few samples, along with phase inversion or addition/subtraction. So the ADAU1772's processing engine and algorithm library, while limited, are suited for this kind of application.

If you look in the toolbox of algorithms for the ADAU1772, you'll see algorithms like filters, addition, and volume.

1052fe3fd7a8a9a2a06b5806523b0456.jpg
1052fe3fd7a8a9a2a06b5806523b0456.jpg
1052fe3fd7a8a9a2a06b5806523b0456.jpg-211x373.jpg
1052fe3fd7a8a9a2a06b5806523b0456.jpg-211x373.jpg
JohnAmpetronic Reply
Jan 15, 2014 00:00

Hi Charles

Remember that any digital filtering will add a delay. The delay of the datasheet is the delay caused by the ADC and DAC systems. You will need to add to that any delay caused by the filters that you use.

Back of cig packet calculation:

Distance from microphone to ear - 6cm

Distance from speaker to ear - 2cm

Difference = 4cm

Time for sound to cover 4cm is the time you have to process the input and produce the output

= 0.04/330 = 121uS or just under 6 samples at 48kHz.

So the group delay of the devices ADC and DAC plus any digital filtering you introduce must be less than 6 samples at 48kHz. It might be worth running at 96kHz or 192kHz to give you more processing cycles and still stay within your time limits.

Regards

John

KJBob Reply
Jan 16, 2014 00:00

Hi Charles,

You can estimate the group delay of any SigmaStudio filter at a frequency of interest by plotting its phase response and approximating its derivative as shown here:

Here, the composite filter at left has its phase response plotted at right. Its group delay near 5KHz can be estimated by the slope of the phase curve around that frequency. The vertical change is about 25 radians, the horizontal is 10,000 radians per second (or 1590 Hz). The resulting group delay is T = - dy / dx = 25/10000 = 2.5 mS. Because the frequency axis is logarithmic. the group delay changes with frequency even when the phase curve appears as a straight line.

Best regards,

Bob

50a2cd99148d29ee1e4afa114523d1d6.jpg
50a2cd99148d29ee1e4afa114523d1d6.jpg
50a2cd99148d29ee1e4afa114523d1d6.jpg-450x306.jpg
50a2cd99148d29ee1e4afa114523d1d6.jpg-450x306.jpg
918046cee24a7a81263b65fd200609c3.jpg
918046cee24a7a81263b65fd200609c3.jpg
918046cee24a7a81263b65fd200609c3.jpg-450x302.jpg
918046cee24a7a81263b65fd200609c3.jpg-450x302.jpg
freemanc Reply
Feb 9, 2014 00:00

Thanks for all your help guys, I have spun up another design and have the board running. Hopefully this will be successful!

davepmo Reply
Apr 9, 2015 00:00

Hi Charles,

Did you ever get anywhere on this? We are looking at starting a similar project.

Best,

Dave.

vidhya Reply
Nov 12, 2015 00:00

Hi Charles,

Did you implement Active noise cancellation in ADAU1772 ?

freemanc

It would be really helpful if can share some info on it. I am asked to implement ANC adaptive algorithms on

1772.

Thanks in advance,

Best regards,

Vidhya

ykanybb Reply
Feb 23, 2016 00:00

Hi, Charles

I am also doing something about the ANC by ADAU1772.I designed a 4-order IIR filter and it can works,however,it has poor noise cancellation performance.What‘s the order of the filter you use in your project and how to design a good filter.Can you give some advises?Thank you!

freemanc Reply
Oct 21, 2016 00:00

Hi Dave, Vidhya and ykanbb,

Sorry for the late reply, I didn't receive notification that there were follow ups, and stumbled on my own post while searching for info. I have had very little success, and immense frustration with this project. The major problem lies in that the transfer function from the microphone to the ANR speaker in a feedback setup, is always non-minimal phase, and so there is no inverse transfer function. So, the best compromise is to invert as much of the frequency range as possible without causing positive feedback at other frequencies. Very tricky. Here is the response of the project I'm working on, the problem is also that the tolerance on the specification of the speakers is not generally small enough to be able to apply this in production to a lot of units, without some problems.

What I'm trying to find next is how to implement in the ADAU1772, as an allpass filter with phase lead. In analog circuits, there are 2 types of allpass filters, one of which provides phase lead. This is negative group delay, which seems to indicate "prediction". It isn't, but it will work with a periodic signal, of which most sounds have for short periods of time at least. How to do this in this DSP is another story.

Have you had any success in the meantime?

Cheers

Charles

64d8094fcf746927874d1bd19a661798.jpg
64d8094fcf746927874d1bd19a661798.jpg
64d8094fcf746927874d1bd19a661798.jpg-620x289.jpg
64d8094fcf746927874d1bd19a661798.jpg-620x289.jpg