AnsweredAssumed Answered

Question about Tolerance block and State Machine block

Question asked by Jaap_EA on Dec 2, 2014
Latest reply on Dec 5, 2014 by Jaap_EA

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.

Outcomes