3 语音AGC方法的实现
使放大器的增益随信号强度的变化而自动调整的控制方法,就是AGC,即自动增益控制。AGC可由硬件或软件实现,本设计充分利用AIC23内部集成的VGA,采用软硬结合的方法实现。输入和输出AGC的实现方法,如图3,图4所示。
3.1 输入AGC实现方法
输入AGC由反馈控制环路实现。检波模块对McBSPl接收到的语音信号进行鉴幅,估计出语音信号的平均包络电平,增益折算模块将平均包络电平与目标电平比较,折算出VGA的增益调整量,由积分模块对增益调整量进行累加,得到VGA的目标增益值,目标增益值经McBSP0、控制接口反馈到VGA和从而实现增益的自动控制。
(1)检波模块。
检波模块采用快充慢放包络检波算法,对输入信号进行低通滤波,得到信号包络的均值。其表达式为
其中,x(n)为输人语音信号,y(n)为检波结果,Mf为充电时间常数,Ms为放电时间常数。根据语音信号包络起伏较大的特点,充电时间应该在几百毫秒量级,而放电时间应该在几秒到十几秒之间。另外,由于语音字与字,句与句之间有停顿,停顿期间只有噪声,包络检波器应停止工作。实现的方法是设定幅度门限Ln,幅度低于Ln的信号认为是噪声,只有幅度高于Ln的信号才参与包络检波。
(2)增益折算模块。
平均包络电平y(n)与目标电平Yaim相差的分贝数为△G(n)=20 log(Yaim/y(n)),由于输入VGA的调整精度为1.5 dB(共31档),所以VGA的增益调整量△G0(n)应取与△G(n)最接近且能被1.5整除的数。y(n)与△G0(n)之间的映射关系,如图5所示,一定范围内的y(n)与唯一的△G0(n)相对应,例如,若y(n)∈[1.3 Yaim,1.54 Yaim],则△G0(n)=-3 dB。
3.2输出AGC实现方法
输出AGC由前馈控制算法实现。检波模块对语音信号进行鉴幅,估计出语音信号的平均包络电平,增益折算模块将平均包络电平与目标电平比较,折算出VGA的增益调整量,再与VGA的初始增益值相加,得到VGA的目标增益值。目标增益值经McBSP0和控制接口前馈到VGA,从而实现增益的自动控制。
输出AGC中检波模块的实现方法与输入AGC中检波模块完全一致,增益折算方法与输入AGC中的增益折算方法相似,但由于输出VGA的调整精度为1 dB(共79档),所以输出VGA的增益调整量△G0(n)应取与△G(n)最接近的整数。
结束语
在介绍AIC23特点和结构的基础上,给出了基于AIC23的语音接口设计方法,详细讲解了语音AGC的实现方法。充分利用AIC23接口简单灵活、输入和输出信噪比高、增益可调的特点,使所设计的语音接口电路简单、音质清晰、音量稳定。