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

ADAU1701 HELP FOR STRANGE AGC

SigmaDSP & SigmaStudio piero Jul 4, 2018 00:00 5 replies Original on forum ↗
Subscribe
piero Question
Jul 4, 2018 00:00

I need to make an automatic volume control to be applied to a project.
The ZIP file contains a part created only for testing.

The current manual volume adjustment function must remain unchanged.

A switch will then be inserted that allows you to choose whether to use manual volume adjustment, or automatic.

I need to make sure that when the input signal SSB decreases, or the demodulated audio signal decreases, "I do not know if the control is better to do it on the SSB input or the demodulated audio", the listening volume level is always as close as possible to the maximum.

Currently the entire project uses 412 instructions on 512 available, my sample rate is 96,000 Hz, "the part here visible is only a test", possibly this volume AGC should consume few instructions, I still have to add other parts to the project and the saving of instructions is important.

Any suggestions.
Thanks Piero

Audio Signal Processors

sigma studios

SigmaDSP Audio Processors

agc config

adau1701

KJBob Reply
Jul 5, 2018 00:00

Hellp Piero,

Your volume LUT covers only a 6 dB range -- is this all your application needs? How much dynamic range does the automatic level control (agc) need to handle?

If your IF signal were straight AM with carrier, the agc would belong in the IF stage before the detector / demodulator (as found in AM receivers generally). With suppressed-carrier DSB or SSB, there's no steady carrier to regulate -- so the agc really acts as an audio compressor. It might as well go in the AF stage.

The smallest stock compressor is the RMS Standard Low-Range Mono without gain and hold. It uses 34 instructions. If this won't fit, perhaps we can think of another solution.

Best regards,

Bob

8ab43b7aad96e18afb8650fedb956c8d.png
8ab43b7aad96e18afb8650fedb956c8d.png
8ab43b7aad96e18afb8650fedb956c8d.png-339x274.png
8ab43b7aad96e18afb8650fedb956c8d.png-339x274.png
2820c92b5581ac75bd5fb7336316646d.png
2820c92b5581ac75bd5fb7336316646d.png
2820c92b5581ac75bd5fb7336316646d.png-337x479.png
2820c92b5581ac75bd5fb7336316646d.png-337x479.png
piero Reply
Jul 5, 2018 00:00

Hello Bob,
The received modulation is SSB so the carrier increases and decreases according to the intensity of the transmitted signal, if there is no transmitted signal the carrier is zero.

What I would like to do is try to amplify the signal received when the receiver moves away from the transmitter, but on condition that at least a few dB are detected, if the AGC always amplifies, in the absence of carrier, we would amplify only annoying noise.

The system works with two different frequencies 32.768 hZ and 42.018 hZ ..

Having to manage 2 different frequencies maybe it would be better to insert the AGC after the demodulator keeping the same dynamics of the current lokup table.

The audio band is the telephone band 300/3000 hZ

If the AGC is inserted on the carrier the dynamics could be even 10 dB

You can also use 45/50 instructions without problems

What is your thought?

Thanks
Piero

KJBob Reply
Jul 8, 2018 00:00

Hello Piero,

The attached project shows what can be done with just a stock compressor. Its graph is set to level the signal over a range down to -10 dB, below which it no longer tries to bring up the level. Your volume adjustment via S6 and the LUT remain as before. Please let me know how well it works for you -- if it doesn't, describing what it lacks may help with designing something better.

Best regards,

Bob

11b9199a8d1b5f7024eca76dc9fe968b.png
11b9199a8d1b5f7024eca76dc9fe968b.png
11b9199a8d1b5f7024eca76dc9fe968b.png-1012x477.png
11b9199a8d1b5f7024eca76dc9fe968b.png-1012x477.png
piero Reply
Jul 8, 2018 00:00

Thanks Bob,

yes, this block performs the function necessary for me.

A curiosity, where I find the table and I think they exist for all the blocks, where you read the instructions using a single block?

Piero

KJBob Reply
Jul 8, 2018 00:00

Hello Piero,

I'm glad it's working for you. Often as not the standard blocks can do the job while using fewer instructions than a an assembled solution.

The table of instruction usage for the Dynamics Processors is taken from a spreadsheet you'll find here:

ADAU1701 Instruction Usage Table

More details are found in the SigmaStudio Toolbox [Analog Devices Wiki]

Best regards,

Bob