zoukankan      html  css  js  c++  java
  • 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,这样的

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

    作者:cumtchw
    出处:http://www.cnblogs.com/cumtchw/
    我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

  • 相关阅读:
    百度富文本编辑器的上传图片的路径问题
    laravel初次学习总结及一些细节
    macOS apache配置及开启虚拟服务器的开启,apache开启重写模式
    类似于qq空间类型的评论和回复
    向php提交数据及json
    mac 初次配置apache,及mac下安装mysql
    C#连接mysql数据库插入数据后获取自增长主键ID值
    PHP 真正多线程的使用
    C# 连接mysql数据库
    MySql状态查看方法 MySql如何查看连接数和状态?
  • 原文地址:https://www.cnblogs.com/cumtchw/p/10999291.html
Copyright © 2011-2022 走看看