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/
    我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

  • 相关阅读:
    SpringSecurity配置
    SpringBoot整合Mybatis
    springboot整合JDBC
    SpringBoot的WEB流程
    List&TreeSet实现斗地主发牌及牌序
    SpringBoot第一个程序
    项目错误总结2021.4.21
    Spring整合Mybatis
    学习——构建民航业知识图谱并实现语义查询的
    新闻文本分类——词云可视化
  • 原文地址:https://www.cnblogs.com/cumtchw/p/10999291.html
Copyright © 2011-2022 走看看