This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] [FAQ] TLV320AIC编解码器:将线性值或dB值转换为十六进制值

Guru**** 657500 points
Other Parts Discussed in Thread: TLV320AIC3254, TLV320AIC3111
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/773105/faq-tlv320aic-codecs-converting-from-linear-or-db-values-into-hex-values

如何在TLV320AIC编解码器中将线性值或dB值转换为mini-DSP的十六进制值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    适用于:

    TLV320AIC3254类器件(24位C-RAM)

    TLV320AIC3111类器件(16位C-RAM)

    TASxxxx miniDSP器件(24位C-RAM)

    要从dB或线性值转换为设备理解的格式,需要了解设备的数据格式。 miniDSP器件将用户可访问的变量存储在系数存储器(C-RAM)中。 C-RAM的位宽度可能因设备而异,如上所示。

    例如,音量控制音量 级别由存储其C-RAM位置的值确定。 0dB音量级别(1x增益)对应于0x40万 (24位设备)或0x4000 (16位设备)。 这意味着音量控制采用2.xx格式,其中MSB是符号位, MSB-1是幅度位,xx是分数位。 这是2的补码格式,意味着数字的范围为[0x80万,0x7FFFFFF],其中0x80...是最大的负数,0x7F...是最大的正数。 一些示例:

    • 1.xx格式:[-1,0.999 ...],最大0 dB
    • 2.xx格式:[-2,1.999 ...],最大6dB
    • 3.xx格式:[-4,3.999 ...],最大12dB
    • 4.xx格式:[-8,7.999 ...],最大18dB

    通常,数字可以从十进制转换为M.xx格式的十六进制值,如下所示:

    ValueHEX = DEC2HEX (ValueDEC  x 2N-M),其中N是内存位置的位分辨率。

     如果以分贝(dB)为单位提供该值,则可按如下方式进行转换:

    ValueHEX = DEC2HEX (10值(dB)/20 x 2N-M)

    请注意,   如果转换为十六进制值,则大于2N-1-1且小于-2N-1的值超出范围。

    例如,对于PurePath Studio (2.xx格式)中的音量控制,增益0dB将导致:

    ValueHEX = DEC2HEX (100/20 x 224-2)= 0x40万

    下表显示了其他值:

      十六进制音量控制值示例

    从十六进制转换为 十进制:

    ValueDEC = HEX2DEC (ValueHEX)/2N-M

    要将十进制值转换回数据库:

    ValuedB = 20 x log10 (ValueDEC)

    例如,0x40万 (作为2.xx十六进制数)可以转换 为线性 ,如下所示:

     ValueDEC = HEX2DEC (40万)/224-2 = 1

     dB /线性到十六进制 计算器可在以下位置下载:

    0523.dB_Linear_to_Hex.xlsx