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

Question about Tolerance block and State Machine block

SigmaDSP & SigmaStudio Jaap_EA Dec 2, 2014 00:00 3 replies Original on forum ↗
Subscribe
Jaap_EA Question
Dec 2, 2014 00:00

For my project I need to boost weak signals and to attenuate strong signals The volume from the input should be in a certain bandwidth.

I made the attached scheme for testing, put the max allowed volume (constant signal from a pc, Windows Media Player max, Windows System Volume 82%) to the ADAU1761 evaluation board and found out that 450 000 in tol1 was the lower limit value for which the scheme would pass only "high value"signals. (Next step is to attenuate this, not covered here).

For boosting lower signals, I used the same blocks, but now I entered an upper limit, thinking that the Tolerance block would output an '1' when the signal was not higher than 250 000. Surprisingly, it acts exact as the part above: it passes only high volume signals.

Then I started testing and switching 450 000 and 0 to 0 and 450 000 gives no different output (I expected it would work in the opposite way). It still pass only high volume signals.

What I am wondering:

Gives the Tolerance block a real zero/one?

Are the 0 and the 2 the boundaries of the bandwidth of the statemachine?

When I put the max value in the tolerance block (450 000 and 134217728) all kind of volumes will pass. Why?

I did some testing:

Tol1

Result

>

<

-134217728

134217728

PassWhenLoud passes all input

-134217728

0

PassWhenLoud passes all input

0

-134217728

PassWhenLoud passes all input

0

0

PassWhenLoud passes all input

0

134217728

PassWhenLoud passes all input

134217728

0

PassWhenLoud passes all input

134217728

134217728

PassWhenLoud passes all input

450000

134217728

PassWhenLoud passes all input

450 000

0

PassWhenLoud passes high volume only

450 000

-134217728

PassWhenLoud passes high volume only

0

450 000

PassWhenLoud passes high volume only

Last three rows are what I want, but surprises me.

Then I did some more value changing, I kept the Tolereance block intact as in the table:

Tol1

Tol1_2

>

<

>

<

450 000

0

0

450 000

Statemachine

PassWhenLoud

PassWhenQuiet

>

<

Works as expected?

-10

-1

No, nothing passes

No, nothing passes

-10

0

Yes

No, high vol passes

-10

1

Yes

No, high vol passes

-10

2

Yes

No, high vol passes

-10

10

Yes

No, high vol passes

-1

10

Yes

No, high vol passes

0

10

Yes

No, high vol passes

1

10

No, nothing passes

No, nothing passes

2

10

No, nothing passes

No, nothing passes

What am I missing here?

Other suggestions to bring the inputvolume to a fixed desired outputvolume, are also welcome.

Audio Signal Processors

SigmaDSP Audio Processors

adau1761

KKSL Reply
Dec 3, 2014 00:00

Hello Jaap,

Kindly take a look at the Automatic Volume Control Block in the ADI Algorithms>Unclassified.

For a more customized approach, take a look at the Dynamics Processors where you can lift the weak signals to the desired level and pull back the strong signals, all using a level curve.

I hope that this helps.

Jaap_EA Reply
Dec 5, 2014 00:00

Thank you. I thought I'd all of the present blocks, but missed the AVC.

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