什么是音频AGC算法 音频AGC算法实现过程

lw44
lw44 这家伙很懒,还没有设置简介...

0 人点赞了该文章 · 29 浏览

什么是音频AGC算法 音频AGC算法实现过程

    要了解音频AGC算法,就要先去了解什么是音频信号。音频信号是(Audio)带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。 根据声波的特征,可把音频信息分类为规则音频和不规则声音。其中规则音频制作又可以分为语音、音乐和音效。规则音频是一种连续变化的模拟信号,可用一条连续的曲线来表示,称为声波。声音的三个要素是音调、音强和音色。声波或正弦波有三个重要参数:频率 ω0、幅度A n 和相位ψn ,这也就决定了音频信号的特征。
    什么是AGC算法
    使放大电路的增益随信号强度的变化而自动调整的控制方法,就是AGC-自动增益控制。实现AGC可以是硬件电路,即AGC闭环电子电路,也可以是软件算法。下面主要讨论用软件算法来实现音频信号的AGC。
    音频AGC是音频自动增益控制算法,更为准确的说是峰值自动增益控制算法,是一种根据输入音频信号水平自动动态地调整增益的机制。当音量超过某一门限值,信号就会被限幅。限幅指的是音频设备的输出不再随着输入而变化,输出实质上变成了最大音量位置上的一条水平线;当检测到音频剪辑增益达到了某一门限时,它会自动减小增益来避免限幅的发生。另一方面,如果捕捉到的音量太低时,系统将自动提高增益。当然,增益的调整不会使音量超过用户在调节向导中设置的值。
    AGC算法的实现过程
    首先从串口获取音频数据,它是16位的整型数,一般来说,这些数都是比较小的,通过AGC算法将输入的音频数据投影在一个固定区间内,从而使得不论输入的数据点数值大小都会等比例地向这连接个空间映射。一方面将获得的音频数据最大值与原来的峰值进行比较,如果有新的峰值出现就计算新的增益系数;另一方面在一定的时间周期内获取一个新的峰值,这个峰值就具有检测性能,又与原峰值比较,然后就计算新的增益系数。这个增益系数是相对稳定的。当音量加大时,信号峰值会自动增加,从而增益系数自动下降;当音量减小时,新的峰值会减小并且取代原来的峰值,从而使峰值下降,使增益系数上升。最后输出的数据乘以新增益系数后映射到音频信号输入的投影区间内。
    AGC_Coff是初始增益系数,初始值为1;maxAGC_in是增益峰值,初始值为0;time是采样点计数,门限值为4096;AGC_in是新的音频数据,MAXArrIn是新的音频增益峰值;映射区间【-20000,20000】。
    整个系统的软件部分为5人模块。系统主函数main、CMD文件、中断向量表、DSP5402头文件和专为C语言开发的库函数rtdx.lib。其中主函数部分是核心,主要包括:DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化及算法程序等。
    在CCS2.0集成开发环境下,采用*.c语言和*.asm语言相结合的方式编写程序。将编写的程序*.c、*.asm和链接程序*.cmd文件编译链接后生成执行目标文件*.out,通过仿真器将执行目标文件*.out下载到系统板上,经过调试、编译并运行,以音乐作为音频信号源输入到系统板上。
    语音处理可采用通用数字信号处理器DSP和现场可编程门阵列 实现,其中DSP实现方法具有实现简便、程序可移植行强、处理速度快等优点,特别是TI公司TMS320C54X系列在音频处理方面有很好的性价比,能够解决复杂的算法设计和满足系统的实时性要求,在许多领域得到广泛应用。在DSP的基础上对音频信号做AGC算法处理可以使输出电平保持在一定范围内,能够解决不同节目音频制作不均衡等问题。

发布于 2022-09-27 22:20

免责声明:

本文由 lw44 原创或收集发布于 火鲤鱼 ,著作权归作者所有,如有侵权可联系本站删除。

火鲤鱼 © 2024 专注小微企业服务 冀ICP备09002609号-8