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

Implementing AGC in ADAU1442

SigmaDSP & SigmaStudio ian Aug 25, 2010 00:00 20 replies Original on forum ↗
Thread Summary

Thread Summary

The user inquired about implementing Automatic Gain Control (AGC) with a +/-10dB range on the ADAU1442. The final answer confirmed that an AGC is in development and will be included in the next SigmaStudio release. In the meantime, the user can use a lookup table and a single slew ext control volume control, or consider an RMS compressor/expander with slow attack and release. The AGC will include features such as gain freezing and decay rate control, and is available in the 'ADI Algorithms' folder under 'unclassified' in SigmaStudio 3.4. For the ADAU1701, a custom AGC can be implemented using an RMS table and an externally controlled volume control.
AI Generated Content
Subscribe
ian Question
Aug 25, 2010 00:00

Hello,

Does anyone have any suggestions for how to implement AGC (+/-10dB range) on the ADAU1442?

I currently have something running using a lookup table and a single slew ext control volume control. Whilst it works in a fashion I'm sure it should be possible to do better.

Cheers

Ian.

Audio Signal Processors

adau1442

SigmaDSP Audio Processors

ADIApproved Reply
Aug 27, 2010 00:00

Hi Ian,

We currently have an AGC in development and it should ship with the next release of SigmaStudio.

In the meantime, your solution with the look-up table and slew volume is probably the best bet.

Another option would be an RMS compressor/expander with a very slow attack and release.

ian Reply
Aug 27, 2010 00:00

Hi Brett,

Thanks for the info. I'll push on with what I have for now.

Does the new AGC component have the ability to freeze in the absence of input signal? It's useful to have if you are dealing with speach so the gain doesn't ramp up in speach pauses.

Cheers

Ian.

ADIApproved Reply
Aug 27, 2010 00:00

Hi Ian,

Since this algorithm should be shipping soon, I think it's OK to give you a preview of the GUI. This is the beta version, so keep in mind that the finished product might end up looking a little different, but this should give you the basic idea.

AVC Enable : Turns the processing on and off. I'm not sure yet if turning the algorithm off in mid-operation will reset the gain immediately or if the gain will slowly decay back to 0 dB.

Decay Rate : Sets the rate at which gain or attenuation is applied. In other words, how long does it take for the output gain to reach its target?

Max Attenuation : The maximum attenuation that will be applied to a loud signal.

Max Gain : The maximum gain that will be applied to a quiet signal.

Output Level : The target level (I believe in RMS) that the algorithm will try to maintain.

Freeze Level : The level at which the gain will "freeze" at its current value. For example, when the audio input goes away, the output gain will remain unchanged.

62c46dd2f6c126c415c31d9fee8bbd6b.jpg
62c46dd2f6c126c415c31d9fee8bbd6b.jpg
62c46dd2f6c126c415c31d9fee8bbd6b.jpg-175x130.jpg
62c46dd2f6c126c415c31d9fee8bbd6b.jpg-175x130.jpg
ian Reply
Aug 27, 2010 00:00

Hi Brett

Thanks, that looks very useful. Any idea when it will be available?

On a separate note, are there any plans to add any bit manipulation

components? We use the devices in a self-booted mode and feed control

data in or out through one of the spare digital audio channels. A

component that allowed us to directly access the bits within a stream

would be very useful.

I've used this technique to drive LED bar-graphs and 7 segment displays

from the sigma chip using just external shift registers.

Kind Regards

Ian Burns

Design Engineer

Glensound Electronics Ltd. 1,5 & 6 Brooks Place, Maidstone, Kent, ME14

1HE. UK

Tel: +44 (0) 1622 753020 Fax: +44 (0) 1622 762330

www.glensound.co.uk <http://www.glensound.co.uk/>;

*Designers and manufacturers of the leading broadcast products

including the new T3 Analogue Broadcast Console, *and the new

GDC-6432 Glensound Digital Commentary System.

Product line includes: ATM networked audio systems, 4 wire boxes,

commentators equipment, DTMF equipment, distribution amps, headphone

amps & limiters, hearing aid loop amplifiers, ISDN codecs, level

controllers, mobile phone interfaces, audio mixers, mic amps, audio

monitoring units, switchers, converters, talkback intercoms, and balance

converters, Specialists in bespoke designs.

Glensound Electronics. Serving broadcasters since 1966.

/This email and its attachments may be confidential and are intended

solely for the use of the individual to whom it is addressed. Any views

or opinions expressed are solely those of the author and do not

necessarily represent those of Glensound Electronics Ltd. If you are not

the intended recipient of this email and its attachments, you must take

no action based upon them, nor must you copy or show them to anyone.

Please contact the sender if you believe you have received this email in

error.

Glensound Electronics Ltd. Is registered in London no:1347507.

Registered address: Sunn Lodge, Weavering Street, Maidstone, Kent. Email

//office@glensound.co.uk/ <mailto:office@glensound.co.uk

ADIApproved Reply
Aug 27, 2010 00:00

Currently there are no bit manipulation elements but I can see how that would be useful. Depending on the core generation, the ability to perform bit-level functions changes, so it's possible that some of the more complex functions would only be available on the newer cores. I will pass this request on to the software team.

ADIApproved Reply
Aug 27, 2010 00:00

Ah, and to answer your first question, the AVC algorithm should be included in the SigmaStudio 3.2 release, but there's a small chance it won't.

ian Reply
Aug 27, 2010 00:00

Thanks. We have a technique that works but it's not as simple as it

could be.

Cheers

Ian.

jimwoodElectrojim Reply
Sep 1, 2010 00:00

Interesting, and thanks for including this new block. Yes, some of us are using the 'slew volume control' in various circuits, although correction must be added for the asymmetrical up-and-down slew rates of this part.

In addition to "gating," to hold gain at the current value when the program falls below a preset threshold, the held gain ought to time out after a few seconds and slowly return to the 0dB resting point. The gating might want to have some frequency weighting included, or the option to put a bandpass filter in this path, as air-conditioner rumble or random high-frequency noises (like crickets!) don't want to be brought slowly up to full level during lulls in dialog.

Also, what is the response of this AGC to program material; that is, peak, quasi-peak or RMS? Will it have a separate control input, like the other compressors and limiters, so that its response to program dynamics can be tailored?

ADIApproved Reply
Sep 2, 2010 00:00

Hi electrojim. Thanks for the comments!

The algorithm is new enough that I'm actually still getting a handle on it myself. I'll be working together with the software engineers to create the related help documentation, so at that point I'll be able to get the answers to your questions.

I'll also pass on your comments and suggestions. I especially like the idea of bandlimiting the detection signal and the gain time-out. If these features don't make it into the original release, perhaps they could show up sometime in the future as an "advanced AGC" algorithm.

Ramon Reply
Oct 7, 2011 00:00

Hi All,

This post is over a year old, but still have related questions:

In sigma studio 3.4 i can not find the AVC module - has this been implemented?

About the AGC/AVC:

I'm looking for a solution to connect microphones (to a ADAU1442) to measure the ambient noise.

When the noise increases/decreases (starting from a defined minimum level), the output gain of the specific channel should also increase/decrease (within a certain range, but with a minimum set level).

Any change this is possible using the AGC and some other blocks?

If the AGC module has not been implemented in Sigma studio 3.2 (>): any suggestions to achieve this are very welcome.

Thanks.

ADIApproved Reply
Oct 7, 2011 00:00

Hi everyone.

You can certainly take the do-it-yourself approach and craft a custom AVC with some of SigmaStudio's basic building blocks. If you want to instead use our AVC solution, you can find in in the "ADI Algorithms" folder in SigmaStudio's toolbox. It hasn't found an appropriate subfolder yet, so we dropped it into a folder called "unclassified" for now.

iPodから送信

jimwoodElectrojim Reply
Oct 7, 2011 00:00

Hey, Ramon,

Seems to me that I did see some sort of AGC/AVC in 3.4, but it fell short of our particular need. We implemented this function in Sigma using common building blocks. In short: You have level detectors, logic blocks and an adjustable-slewing-rate volume control. If the corrected output level is below a determined optimum value, you tell the volume control to slew up; if it's above your desired level you tell it to slew down. Where the input falls below some 'legitimate' input level, you either freeze the gain or slowly return it back to your unity-gain resting value.

All this is possible in Sigma; in fact, many, many things can be done that have not yet been (nor probably ever will be!) implemented into Sigma modules. Working with this suite has almost put the fun back into audio equipment design. It's darn-near the equivalent of my old 3M breadboard and pushing components and connecting wires into little holes. You need only use your imagination and true wonders can be accomplished.

Ramon Reply
Oct 10, 2011 00:00

Thank you both,

I found the building block. Is more information available how to use this block, or examples maybe. I've check the SS-3.4 help file, bu could not find anything on this building block.

I would like to now how i could use a mic to sense the ambient noise, if getting loud, increase the output gain (and the other way around).

Looking at the AVC building block o do not see an immediate solution, bu i may be wrong.

Thanks to all for sharing more info/examples of this block.

ADIApproved Reply
Oct 10, 2011 00:00

Hi Ramon,

Please check this post earlier in the thread, which has basic descriptions of how each of the controls work:

https://ez.analog.com/message/12899#12899

vocomotion Reply
Apr 3, 2012 00:00

Is this AVC block not available in the ADAU1701?

ADIApproved Reply
Apr 6, 2012 00:00

The AVC algorithm implementation uses some specific hardware accelerators that are not present in the ADAU1701 core. We might try to port this over at some point, but it would require a re-write.

vocomotion Reply
Apr 7, 2012 00:00

Any way to implement this using standard blocks in the ADAU1701?

ADIApproved Reply
Apr 9, 2012 00:00

Yes, there is a way to do this using standard blocks. I would recommend using an RMS table to feed the input of an externally controlled volume control. You would need to tweak the values in the RMS table to different levels of gain depending on the level of the input.

In the example project, I set all of the values in the RMS table to one, so it will have no effect. However, you could start changing the values to create your required functionality.

7bfe1c21494c07a9d6fc1e8282b7c773.jpg
7bfe1c21494c07a9d6fc1e8282b7c773.jpg
7bfe1c21494c07a9d6fc1e8282b7c773.jpg-450x200.jpg
7bfe1c21494c07a9d6fc1e8282b7c773.jpg-450x200.jpg
ADIApproved Reply
Apr 9, 2012 00:00

Here is the example project I mentioned.

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin