Log Lookup Table Explanation

Is there any documentation or has any one found a detailed explanation of the Log Lookup Table in ADAU1452.  I am trying to understand how increasing or decreasing the points effect the output of the table? Why increasing the resolution of the Log Lookup Table is important?

had a answer on the log lookup table of ADAU 1701, is it something similar? 

  • 0
    •  Super User 
    on Aug 9, 2018 4:48 AM

       Hello skhan,

       The Log Lookup Table for the ADAU1452 works in a similar way to that of the ADAU1701.  Yet the ADAU1452's 8.24 number format allows for more range, both higher and lower, than the -1701's 5.23 number format.  The -1452's Log Lookup table reflects this difference with an overall range of -144 to +42 dB.  Thus the table covers a full 186 dB from end to end.

       To get the same 3 dB spacing as with the -1701 lookup table, increase the number of rows to 63.  I attached a sample LUT and a project to test the results:

       The output reads as dB / 10 -- multiply the value by 10 to get dB.  This is needed because the 8.24 format only allows numbers between -128 to +128, not allowing for the lowest readings approaching -144 dB.

       You may not need to increase the number of rows, but I figured it would be good to keep the 3 dB spacing of the ADAU1701's Log LUT.  Most everything in Sigmaland (such as compressor tables) is based on 3 dB spacing.

       Best regards,

       Bob

  • Hallo 

    Thanks for the nice explanation. That makes things more clear than before. Could you please attach the sigma studio project that you mentioned. For some reason i can not find the attachment, it would be more great help to understand the whole concept. 

    So i wanted to achieve a filter setup where 2 dB changes in the volume control would make one filter change. As i understood from your setup that i would need 93 steps. In the attached project file, i tried to fill up the log table of 93 steps with 37 filters, i duplicated each filter value two times and added zeros at the begging to make up 93 steps.

    I actually got this idea from the following thread Volume control steps ADAU1452 . Actually this is what i am trying to achieve. A loudness algorithm. Your expert opinion would be much necessary. 

    Log_Table_Test.dspproj.zip
  • 0
    •  Super User 
    on Aug 9, 2018 8:14 PM

       Hello,

       Sorry I forgot to attach the files -- here they are.  I'll have a look at your project when time allows.

       Bob

    attachments.zip
  • +1
    •  Super User 
    on Aug 10, 2018 4:46 AM

       Hello skhan,

       You've got a lot right in your project -- a responsive envelope follower, a low limit for its output (the clipper) to keep the log lookup from zero-input insanity, and readbacks to see what's going on.  Now let's add a few refinements and build an example "dynamic loudness" project.

    • When processing audio it's always a good idea to include a DC Block Filter (DCB1).  Typical audio ADCs are designed to sound good, not for DC accuracy.  Their digital output may have a DC offset amounting to perhaps -40 dB -- enough to fool the dynamic processing to follow if you don't remove it.
    • Have a look at the Log Lookup Table's contents and you'll see I used plain whole numbers.  The following DC Source and Multiplier converts them to the needed integers, so I didn't need to figure those tiny decimals otherwise needed.  The few extra instructions used are worth it.
    • Notice that the table runs backwards -- the louder the input audio, the lower the number.  This simply allows for the way the index filters work.  I'm assuming we want more boost (higher index) for quieter inputs.You can use any of a variety of index filters to achieve your desired curves.  I chose the Var Param Slew filters because they set up quickly.
    • This example is just the beginning -- there's many improvements / adjustments you can make.

       Best regards,

       Bob

    Dynamic-Loudness-1452.dspproj.zip
  • Hallo 

    thanks for the help. that clears a lot of confusion. Thanks for the trick with multiplying via a dc integer, that makes life easier now. To be honest i am still a bit confused about the setup of the log look up table. So what i am trying to do is i have in total 37 filter. I want them to be spaced over the log look up table with 2 dB difference. That's why 93 steps as you did. Can you please have a look at the attached table and let me know if this works. I did put the values same way as you did it, higher values has lower numbers. it changes now one filter with every 2 dB steps. 

    But the thing that still makes me confused is when i change the pre and post values, the filter that gets selected at 0 dB of the volume control changes, can you please have a look and suggest me what would be a good number of pre and post padding values for the setup i have, that would work for the loudness. 

    I am attaching the project file. please have a look. And thanks a lot for the great help. I have the filters setup. If you need i can provide them.

    loudness_logtable.dspproj.zip