AK5703的ALC

Posted cumtchw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AK5703的ALC相关的知识,希望对你有一定的参考价值。

AKM5703是一款音频ADC,具有自动增益(ALC)功能,它的自动增益功能具体是指:当音量大于设定的界限时,ALC会把音量值往下拉,使之不破音(如下图所示),而当音量小于某个界限时,ALC会把音量值往上拉,

技术图片

这里的最大值界限和最小值界限时可以设置的,如下图所示,一共有四个范围值可以选择

技术图片

这里重点介绍下当音量值小于某个范围ALC往上拉的具体过程.因为当初在调试ALC时,由于对这个不太理解,寄存器配置错误,导致用了ALC之后底噪特别大.

首先看下图中的两个寄存器,IVAL和REF,IVAL就是数字增益,而REF是参考增益,当我们用ALC之后,首先5703会根据IVAL对音量进行放大,然后把放大后的值和我们的设定的最低界限进行比较,如果这个值大于我们设定的最低界限,那么

这时候我们的ALC就不会对音量进行上拉,但是如果放大了IVAL倍之后,音量值小于我们设定的最小的界限,那么ALC就会对音量进行上拉,上拉的倍数为:REF-IVAL,例如如果我们的IVAL设置的是10dB,而我们的REF设置的是30dB,那么我们的ALC就会

上拉20dB,所以有一个问题就是,如果我们不接入音频,而如果我们的设备底噪本来可能并不大,但是如果用了ALC之后,它检测到音量值没有到我们设定的最小的界限,那么就会把底噪进行放大,这个问题解决的方法就是把我们的IVAL和我们的REF的值设置成一样的,

这样当检测到音量值小于我们设定的界限之后,它也不会上拉,因为这时候REF-IVAL=0.

技术图片

另外,还有一个问题就是,当检测到我们的音量值小于我们设定的界限,然后ALC对音量进行上拉时,它只管上拉(REF-IVAL)dB,不一定能拉到我们设定的界限,例如我们的IVAL设置的是10dB,而如果我们的REF设置的是11dB,那么ALC只会上拉1dB,这样的

上拉幅度不一定能达到我们设定的最小界限.

以上是关于AK5703的ALC的主要内容,如果未能解决你的问题,请参考以下文章

OpenAL 中的 ALC_STEREO_SOURCES 是啥?

hdu 5703 Desert(找规律)

hdu-5703 Desert(水题)

HDU5703 Desert水题

jzoj5703

jzoj5703